Reorganizes Project (#41)
This commit is contained in:
parent
08bf44af9a
commit
3614a66aee
3499 changed files with 79 additions and 55 deletions
142
Projects/Scripts/Engines/Quests/Solen Matriarch/Objectives.cs
Normal file
142
Projects/Scripts/Engines/Quests/Solen Matriarch/Objectives.cs
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Engines.Quests.Matriarch
|
||||
{
|
||||
public class KillInfiltratorsObjective : QuestObjective
|
||||
{
|
||||
public override object Message => ((SolenMatriarchQuest)System).RedSolen ? 1054086 : 1054085;
|
||||
|
||||
public override int MaxProgress => 7;
|
||||
|
||||
public override void RenderProgress(BaseQuestGump gump)
|
||||
{
|
||||
if (!Completed)
|
||||
{
|
||||
// Black/Red Solen Infiltrators killed:
|
||||
gump.AddHtmlLocalized(70, 260, 270, 100, ((SolenMatriarchQuest)System).RedSolen ? 1054088 : 1054087,
|
||||
BaseQuestGump.Blue);
|
||||
gump.AddLabel(70, 280, 0x64, CurProgress.ToString());
|
||||
gump.AddLabel(100, 280, 0x64, "/");
|
||||
gump.AddLabel(130, 280, 0x64, MaxProgress.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
base.RenderProgress(gump);
|
||||
}
|
||||
}
|
||||
|
||||
public override bool IgnoreYoungProtection(Mobile from)
|
||||
{
|
||||
if (Completed)
|
||||
return false;
|
||||
|
||||
bool redSolen = ((SolenMatriarchQuest)System).RedSolen;
|
||||
|
||||
if (redSolen)
|
||||
return from is BlackSolenInfiltratorWarrior || from is BlackSolenInfiltratorQueen;
|
||||
return from is RedSolenInfiltratorWarrior || from is RedSolenInfiltratorQueen;
|
||||
}
|
||||
|
||||
public override void OnKill(BaseCreature creature, Container corpse)
|
||||
{
|
||||
bool redSolen = ((SolenMatriarchQuest)System).RedSolen;
|
||||
|
||||
if (redSolen)
|
||||
{
|
||||
if (creature is BlackSolenInfiltratorWarrior || creature is BlackSolenInfiltratorQueen)
|
||||
CurProgress++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (creature is RedSolenInfiltratorWarrior || creature is RedSolenInfiltratorQueen)
|
||||
CurProgress++;
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnComplete()
|
||||
{
|
||||
System.AddObjective(new ReturnAfterKillsObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class ReturnAfterKillsObjective : QuestObjective
|
||||
{
|
||||
public override object Message => 1054090;
|
||||
|
||||
public override void OnComplete()
|
||||
{
|
||||
System.AddConversation(new GatherWaterConversation());
|
||||
}
|
||||
}
|
||||
|
||||
public class GatherWaterObjective : QuestObjective
|
||||
{
|
||||
public override object Message => 1054092;
|
||||
|
||||
public override int MaxProgress => 40;
|
||||
|
||||
public override void RenderProgress(BaseQuestGump gump)
|
||||
{
|
||||
if (!Completed)
|
||||
{
|
||||
gump.AddHtmlLocalized(70, 260, 270, 100, 1054093, BaseQuestGump.Blue); // Gallons of Water gathered:
|
||||
gump.AddLabel(70, 280, 0x64, (CurProgress / 5).ToString());
|
||||
gump.AddLabel(100, 280, 0x64, "/");
|
||||
gump.AddLabel(130, 280, 0x64, (MaxProgress / 5).ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
base.RenderProgress(gump);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnComplete()
|
||||
{
|
||||
System.AddObjective(new ReturnAfterWaterObjective());
|
||||
}
|
||||
}
|
||||
|
||||
public class ReturnAfterWaterObjective : QuestObjective
|
||||
{
|
||||
public override object Message => 1054095;
|
||||
|
||||
public override void OnComplete()
|
||||
{
|
||||
PlayerMobile player = System.From;
|
||||
bool redSolen = ((SolenMatriarchQuest)System).RedSolen;
|
||||
|
||||
bool friend = SolenMatriarchQuest.IsFriend(player, redSolen);
|
||||
|
||||
System.AddConversation(new ProcessFungiConversation(friend));
|
||||
|
||||
if (redSolen)
|
||||
player.SolenFriendship = SolenFriendship.Red;
|
||||
else
|
||||
player.SolenFriendship = SolenFriendship.Black;
|
||||
}
|
||||
}
|
||||
|
||||
public class ProcessFungiObjective : QuestObjective
|
||||
{
|
||||
public override object Message => 1054098;
|
||||
|
||||
public override void OnComplete()
|
||||
{
|
||||
if (SolenMatriarchQuest.GiveRewardTo(System.From))
|
||||
System.Complete();
|
||||
else
|
||||
System.AddConversation(new FullBackpackConversation(true));
|
||||
}
|
||||
}
|
||||
|
||||
public class GetRewardObjective : QuestObjective
|
||||
{
|
||||
public override object Message => 1054149;
|
||||
|
||||
public override void OnComplete()
|
||||
{
|
||||
System.AddConversation(new EndConversation());
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue