100 lines
3.1 KiB
C#
100 lines
3.1 KiB
C#
using System;
|
|
using Server.Mobiles;
|
|
|
|
namespace Server.Engines.Quests.Necro
|
|
{
|
|
public class DarkTidesQuest : QuestSystem
|
|
{
|
|
private static Type[] m_TypeReferenceTable = new[]
|
|
{
|
|
typeof( Necro.AcceptConversation ),
|
|
typeof( Necro.AnimateMaabusCorpseObjective ),
|
|
typeof( Necro.BankerConversation ),
|
|
typeof( Necro.CashBankCheckObjective ),
|
|
typeof( Necro.FetchAbraxusScrollObjective ),
|
|
typeof( Necro.FindBankObjective ),
|
|
typeof( Necro.FindCallingScrollObjective ),
|
|
typeof( Necro.FindCityOfLightObjective ),
|
|
typeof( Necro.FindCrystalCaveObjective ),
|
|
typeof( Necro.FindMaabusCorpseObjective ),
|
|
typeof( Necro.FindMaabusTombObjective ),
|
|
typeof( Necro.FindMardothAboutKronusObjective ),
|
|
typeof( Necro.FindMardothAboutVaultObjective ),
|
|
typeof( Necro.FindMardothEndObjective ),
|
|
typeof( Necro.FindVaultOfSecretsObjective ),
|
|
typeof( Necro.FindWellOfTearsObjective ),
|
|
typeof( Necro.HorusConversation ),
|
|
typeof( Necro.LostCallingScrollConversation ),
|
|
typeof( Necro.MaabasConversation ),
|
|
typeof( Necro.MardothEndConversation ),
|
|
typeof( Necro.MardothKronusConversation ),
|
|
typeof( Necro.MardothVaultConversation ),
|
|
typeof( Necro.RadarConversation ),
|
|
typeof( Necro.ReadAbraxusScrollConversation ),
|
|
typeof( Necro.ReadAbraxusScrollObjective ),
|
|
typeof( Necro.ReanimateMaabusConversation ),
|
|
typeof( Necro.RetrieveAbraxusScrollObjective ),
|
|
typeof( Necro.ReturnToCrystalCaveObjective ),
|
|
typeof( Necro.SecondHorusConversation ),
|
|
typeof( Necro.SpeakCavePasswordObjective ),
|
|
typeof( Necro.UseCallingScrollObjective ),
|
|
typeof( Necro.VaultOfSecretsConversation ),
|
|
typeof( Necro.FindHorusAboutRewardObjective ),
|
|
typeof( Necro.HealConversation ),
|
|
typeof( Necro.HorusRewardConversation )
|
|
};
|
|
|
|
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 DarkTidesQuest( PlayerMobile from ) : base( from )
|
|
{
|
|
}
|
|
|
|
// Serialization
|
|
public DarkTidesQuest()
|
|
{
|
|
}
|
|
|
|
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( typeof( KronusScroll ) ) == null );
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|
|
}
|