ModernUO/Projects/Scripts/Engines/Quests/Ambitious Solen Queen/Conversations.cs
2019-08-02 18:16:11 -07:00

123 lines
No EOL
3 KiB
C#

namespace Server.Engines.Quests.Ambitious
{
public class DontOfferConversation : QuestConversation
{
public override object Message => 1054059;
public override bool Logged => false;
}
public class AcceptConversation : QuestConversation
{
public override object Message => 1054061;
public override void OnRead()
{
System.AddObjective(new KillQueensObjective());
}
}
public class DuringKillQueensConversation : QuestConversation
{
public override object Message => 1054066;
public override bool Logged => false;
}
public class GatherFungiConversation : QuestConversation
{
public override object Message => 1054068;
public override void OnRead()
{
System.AddObjective(new GatherFungiObjective());
}
}
public class DuringFungiGatheringConversation : QuestConversation
{
public override object Message => 1054070;
public override bool Logged => false;
}
public class EndConversation : QuestConversation
{
public override object Message => 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 bool m_BagOfSending;
private bool m_Gold;
private bool m_Logged;
private bool m_PowderOfTranslocation;
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 => 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 => 1054078;
public override void OnRead()
{
System.Complete();
}
}
}