ModernUO/Projects/Scripts/Engines/Quests/Dark Tides/DarkTidesQuest.cs
2019-08-02 18:16:11 -07:00

98 lines
No EOL
2.9 KiB
C#

using System;
using Server.Mobiles;
namespace Server.Engines.Quests.Necro
{
public class DarkTidesQuest : QuestSystem
{
private static Type[] m_TypeReferenceTable =
{
typeof(AcceptConversation),
typeof(AnimateMaabusCorpseObjective),
typeof(BankerConversation),
typeof(CashBankCheckObjective),
typeof(FetchAbraxusScrollObjective),
typeof(FindBankObjective),
typeof(FindCallingScrollObjective),
typeof(FindCityOfLightObjective),
typeof(FindCrystalCaveObjective),
typeof(FindMaabusCorpseObjective),
typeof(FindMaabusTombObjective),
typeof(FindMardothAboutKronusObjective),
typeof(FindMardothAboutVaultObjective),
typeof(FindMardothEndObjective),
typeof(FindVaultOfSecretsObjective),
typeof(FindWellOfTearsObjective),
typeof(HorusConversation),
typeof(LostCallingScrollConversation),
typeof(MaabasConversation),
typeof(MardothEndConversation),
typeof(MardothKronusConversation),
typeof(MardothVaultConversation),
typeof(RadarConversation),
typeof(ReadAbraxusScrollConversation),
typeof(ReadAbraxusScrollObjective),
typeof(ReanimateMaabusConversation),
typeof(RetrieveAbraxusScrollObjective),
typeof(ReturnToCrystalCaveObjective),
typeof(SecondHorusConversation),
typeof(SpeakCavePasswordObjective),
typeof(UseCallingScrollObjective),
typeof(VaultOfSecretsConversation),
typeof(FindHorusAboutRewardObjective),
typeof(HealConversation),
typeof(HorusRewardConversation)
};
public DarkTidesQuest(PlayerMobile from) : base(from)
{
}
// Serialization
public DarkTidesQuest()
{
}
public override Type[] TypeReferenceTable => m_TypeReferenceTable;
public override object Name => 1060095;
public override object OfferMessage => 1060094;
public override TimeSpan RestartDelay => TimeSpan.MaxValue;
public override bool IsTutorial => true;
public override int Picture => 0x15B5;
public override void Accept()
{
base.Accept();
AddConversation(new AcceptConversation());
}
public override bool IgnoreYoungProtection(Mobile from)
{
if (from is SummonedPaladin)
return true;
return base.IgnoreYoungProtection(from);
}
public static bool HasLostCallingScroll(Mobile from)
{
if (!(from is PlayerMobile pm))
return false;
QuestSystem qs = pm.Quest;
if (qs is DarkTidesQuest)
if (qs.IsObjectiveInProgress(typeof(FindMardothAboutKronusObjective)) ||
qs.IsObjectiveInProgress(typeof(FindWellOfTearsObjective)) ||
qs.IsObjectiveInProgress(typeof(UseCallingScrollObjective)))
return from.Backpack?.FindItemByType<KronusScroll>() == null;
return false;
}
}
}