namespace Server.Engines.Quests.Matriarch
{
public class DontOfferConversation : QuestConversation
{
private bool m_Friend;
public DontOfferConversation(bool friend)
{
m_Friend = friend;
}
public DontOfferConversation()
{
}
public override object Message
{
get
{
if (m_Friend)
{
/* The Solen Matriarch smiles as you greet her.
*
* It is good to see you again. I would offer to process some zoogi fungus for you,
* but you seem to be busy with another task at the moment. Perhaps you should
* finish whatever is occupying your attention at the moment and return to me once
* you're done.
*/
return 1054081;
}
else
{
/* The Solen Matriarch smiles as she eats the seed you offered.
*
* Thank you for that seed. It was quite delicious.
*
* I would offer to make you a friend of my colony, but you seem to be busy with
* another task at the moment. Perhaps you should finish whatever is occupying
* your attention at the moment and return to me once you're done.
*/
return 1054079;
}
}
}
public override bool Logged => false;
public override void ChildDeserialize(GenericReader reader)
{
int version = reader.ReadEncodedInt();
m_Friend = reader.ReadBool();
}
public override void ChildSerialize(GenericWriter writer)
{
writer.WriteEncodedInt(0); // version
writer.Write(m_Friend);
}
}
public class AcceptConversation : QuestConversation
{
public override object Message =>
/* The Solen Matriarch looks pleased that you've accepted.
*
* Very good. Please start by hunting some infiltrators from the other solen
* colony and eliminating them. Slay 7 of them and then return to me.
*
* Farewell for now and good hunting.
*/
1054084;
public override void OnRead()
{
System.AddObjective(new KillInfiltratorsObjective());
}
}
public class DuringKillInfiltratorsConversation : QuestConversation
{
public override object Message =>
/* The Solen Matriarch looks up as you approach.
*
* You're back, but you have not yet eliminated 7 infiltrators from the enemy
* colony. Return when you have completed this task.
*
* Carry on. I'll be waiting for your return.
*/
1054089;
public override bool Logged => false;
}
public class GatherWaterConversation : QuestConversation
{
public override object Message =>
/* The Solen Matriarch nods favorably as you approach her.
*
* Marvelous! I'm impressed at your ability to hunt and kill enemies for me.
* My colony is thankful.
*
* Now I must ask that you gather some water for me. A standard pitcher of water
* holds approximately one gallon. Please decant 8 gallons of fresh water
* into our water vats.
*
* Farewell for now.
*/
1054091;
public override void OnRead()
{
System.AddObjective(new GatherWaterObjective());
}
}
public class DuringWaterGatheringConversation : QuestConversation
{
public override object Message =>
/* The Solen Matriarch looks up as you approach.
*
* You're back, but you have not yet gathered 8 gallons of water. Return when
* you have completed this task.
*
* Carry on. I'll be waiting for your return.
*/
1054094;
public override bool Logged => false;
}
public class ProcessFungiConversation : QuestConversation
{
private bool m_Friend;
public ProcessFungiConversation(bool friend)
{
m_Friend = friend;
}
public ProcessFungiConversation()
{
}
public override object Message
{
get
{
if (m_Friend)
{
/* The Solen Matriarch listens as you report the completion of your
* tasks to her.
*
* I give you my thanks for your help, and I will gladly process some zoogi
* fungus into powder of translocation for you. Two of the zoogi fungi are
* required for each measure of the powder. I will process up to 200 zoogi fungi
* into 100 measures of powder of translocation.
*
* I will also give you some gold for assisting me and my colony, but first let's
* take care of your zoogi fungus.
*/
return 1054097;
}
else
{
/* The Solen Matriarch listens as you report the completion of your
* tasks to her.
*
* I give you my thanks for your help, and I will gladly make you a friend of my
* solen colony. My warriors, workers, and queens will not longer look at you
* as an intruder and attack you when you enter our lair.
*
* I will also process some zoogi fungus into powder of translocation for you.
* Two of the zoogi fungi are required for each measure of the powder. I will
* process up to 200 zoogi fungi into 100 measures of powder of translocation.
*
* I will also give you some gold for assisting me and my colony, but first let's
* take care of your zoogi fungus.
*/
return 1054096;
}
}
}
public override void OnRead()
{
System.AddObjective(new ProcessFungiObjective());
}
public override void ChildDeserialize(GenericReader reader)
{
int version = reader.ReadEncodedInt();
m_Friend = reader.ReadBool();
}
public override void ChildSerialize(GenericWriter writer)
{
writer.WriteEncodedInt(0); // version
writer.Write(m_Friend);
}
}
public class DuringFungiProcessConversation : QuestConversation
{
public override object Message =>
/* The Solen Matriarch smiles as you greet her.
*
* I will gladly process some zoogi fungus into powder of translocation for you.
* Two of the zoogi fungi are required for each measure of the powder.
* I will process up to 200 zoogi fungi into 100 measures of powder of translocation.
*/
1054099;
public override bool Logged => false;
}
public class FullBackpackConversation : QuestConversation
{
private readonly bool m_Logged;
public FullBackpackConversation(bool logged)
{
m_Logged = logged;
}
public FullBackpackConversation()
{
m_Logged = true;
}
public override object Message =>
/* The Solen Matriarch 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.
*/
1054102;
public override bool Logged => m_Logged;
public override void OnRead()
{
if (m_Logged)
System.AddObjective(new GetRewardObjective());
}
}
public class EndConversation : QuestConversation
{
public override object Message =>
/* The Solen Matriarch smiles as you greet her.
*
* Ah good, you've returned. I will conclude our business by giving you
* gold I owe you for aiding me.
*/
1054101;
public override void OnRead()
{
System.Complete();
}
}
}