namespace Server.Engines.Quests.Ambitious
{
public class DontOfferConversation : QuestConversation
{
public override object Message =>
/* The Solen queen considers you for a moment then says,
*
* Hmmm... I could perhaps benefit from your assistance, but you seem to be
* busy with another task at the moment. Return to me when you complete whatever
* it is that you're working on and maybe I can still put you to good use.
*/
1054059;
public override bool Logged => false;
}
public class AcceptConversation : QuestConversation
{
public override object Message =>
/* The Solen queen smiles as you decide to help her.
*
* Excellent. We'll worry about the zoogi fungus later - start by eliminating
* 5 queens from my colony.
That part's important, by the way; they must
* be queens from my colony. Killing queens from the other solen colony does
* little to help me become Matriarch of this colony and will not count
* toward your task.
*
* Oh, and none of those nasty infiltrator queens either. They perform a necessary
* duty, I suppose, spying on the other colony. I fail to see why that couldn't be
* left totally to the warriors, though. Nevertheless, they do not count as well.
*
* Very well. Carry on. I'll be waiting for your return.
*/
1054061;
public override void OnRead()
{
System.AddObjective(new KillQueensObjective());
}
}
public class DuringKillQueensConversation : QuestConversation
{
public override object Message =>
/* The Solen queen looks up as you approach.
*
* You're back, but you have not yet eliminated 5 queens from my colony.
* Return when you have completed this task.
*
* Remember, by the way, that queens from the other solen colony and
* infiltrator queens do not count toward your task.
*
* Very well. Carry on. I'll be waiting for your return.
*/
1054066;
public override bool Logged => false;
}
public class GatherFungiConversation : QuestConversation
{
public override object Message =>
/* The Solen queen looks pleased to see you.
*
* Splendid! You've done quite well in reducing my competition to become
* the next Matriarch. Now I must ask that you gather some zoogi fungus for me.
* I must practice processing it into powder of translocation.
*
* I believe the amount we agreed upon earlier was 50. Please return when
* you have that amount and then give them to me.
*
* Farewell for now.
*/
1054068;
public override void OnRead()
{
System.AddObjective(new GatherFungiObjective());
}
}
public class DuringFungiGatheringConversation : QuestConversation
{
public override object Message =>
/* The Solen queen looks up as you approach.
*
* Do you have the zoogi fungus?
*
* If so, give them to me. Otherwise, go gather some and then return to me.
*/
1054070;
public override bool Logged => false;
}
public class EndConversation : QuestConversation
{
public override object Message =>
/* The Solen queen smiles as she takes the zoogi fungus from you.
*
* Wonderful! I greatly appreciate your help with these tasks. My plans are beginning
* to take shape ensuring that I will be the next Matriarch. But there is still
* much to be done until then.
*
* You've done what I've asked of you and for that I thank you. Please accept this
* bag of sending and some powder of translocation as a reward. Oh, and I suppose
* I should give you some gold as well. Yes, yes. Of course.
*/
1054073;
public override void OnRead()
{
bool bagOfSending = true;
bool powderOfTranslocation = true;
bool gold = true;
AmbitiousQueenQuest.GiveRewardTo(System.From, ref bagOfSending, ref powderOfTranslocation, ref gold);
if (!bagOfSending && !powderOfTranslocation && !gold)
{
System.Complete();
}
else
{
System.AddConversation(new FullBackpackConversation(true, bagOfSending, powderOfTranslocation, gold));
}
}
}
public class FullBackpackConversation : QuestConversation
{
private readonly bool m_Logged;
private bool m_BagOfSending;
private bool m_PowderOfTranslocation;
private bool m_Gold;
public FullBackpackConversation(bool logged, bool bagOfSending, bool powderOfTranslocation, bool gold)
{
m_Logged = logged;
m_BagOfSending = bagOfSending;
m_PowderOfTranslocation = powderOfTranslocation;
m_Gold = gold;
}
public FullBackpackConversation()
{
m_Logged = true;
}
public override object Message =>
/* The Solen queen looks at you with a smile.
*
* While I'd like to finish conducting our business, it seems that you're a
* bit overloaded with equipment at the moment.
*
* Perhaps you should free some room in your backpack before we proceed.
*/
1054077;
public override bool Logged => m_Logged;
public override void OnRead()
{
if (m_Logged)
System.AddObjective(new GetRewardObjective(m_BagOfSending, m_PowderOfTranslocation, m_Gold));
}
public override void ChildDeserialize(GenericReader reader)
{
int version = reader.ReadEncodedInt();
m_BagOfSending = reader.ReadBool();
m_PowderOfTranslocation = reader.ReadBool();
m_Gold = reader.ReadBool();
}
public override void ChildSerialize(GenericWriter writer)
{
writer.WriteEncodedInt(0); // version
writer.Write(m_BagOfSending);
writer.Write(m_PowderOfTranslocation);
writer.Write(m_Gold);
}
}
public class End2Conversation : QuestConversation
{
public override object Message =>
/* The Solen queen looks up as you approach.
*
* Ah good, you've returned. I will conclude our business by giving you any
* remaining rewards I owe you for aiding me.
*/
1054078;
public override void OnRead()
{
System.Complete();
}
}
}