RunUO/Scripts/Engines/Quests/Emino's Undertaking/Objectives.cs

393 lines
No EOL
7.8 KiB
C#
Raw Blame History

using System;
using Server;
using Server.Items;
using Server.Mobiles;
namespace Server.Engines.Quests.Ninja
{
public class FindEminoBeginObjective : QuestObjective
{
public override object Message
{
get
{
// Your value as a Ninja must be proven. Find Daimyo Emino and accept the test he offers.
return 1063174;
}
}
public FindEminoBeginObjective()
{
}
public override void OnComplete()
{
System.AddConversation( new FindZoelConversation() );
}
}
public class FindZoelObjective : QuestObjective
{
public override object Message
{
get
{
// Find Elite Ninja Zoel immediately!
return 1063176;
}
}
public FindZoelObjective()
{
}
public override void OnComplete()
{
System.AddConversation( new EnterCaveConversation() );
}
}
public class EnterCaveObjective : QuestObjective
{
public override object Message
{
get
{
// Enter the cave and walk through it. You will be tested as you travel along the path.
return 1063179;
}
}
public EnterCaveObjective()
{
}
public override void CheckProgress()
{
if ( System.From.Map == Map.Malas && System.From.InRange( new Point3D( 406, 1141, 0 ), 2 ) )
Complete();
}
public override void OnComplete()
{
System.AddConversation( new SneakPastGuardiansConversation() );
}
}
public class SneakPastGuardiansObjective : QuestObjective
{
private bool m_TaughtHowToUseSkills;
public bool TaughtHowToUseSkills
{
get{ return m_TaughtHowToUseSkills; }
set{ m_TaughtHowToUseSkills = value; }
}
public override object Message
{
get
{
// Use your Ninja training to move invisibly past the magical guardians.
return 1063261;
}
}
public SneakPastGuardiansObjective()
{
}
public override void CheckProgress()
{
if ( System.From.Map == Map.Malas && System.From.InRange( new Point3D( 412, 1123, 0 ), 3 ) )
Complete();
}
public override void OnComplete()
{
System.AddConversation( new UseTeleporterConversation() );
}
public override void ChildDeserialize( GenericReader reader )
{
int version = reader.ReadEncodedInt();
m_TaughtHowToUseSkills = reader.ReadBool();
}
public override void ChildSerialize( GenericWriter writer )
{
writer.WriteEncodedInt( (int) 0 ); // version
writer.Write( (bool) m_TaughtHowToUseSkills );
}
}
public class UseTeleporterObjective : QuestObjective
{
public override object Message
{
get
{
/* The special tile is known as a teleporter.
* Step on the teleporter tile and you will be transported to a new location.
*/
return 1063183;
}
}
public UseTeleporterObjective()
{
}
public override void OnComplete()
{
System.AddConversation( new GiveZoelNoteConversation() );
}
}
public class GiveZoelNoteObjective : QuestObjective
{
public override object Message
{
get
{
/* Bring the note to Elite Ninja Zoel and speak with him again.
* He is near the cave entrance. You can hand the note to Zoel
* by dragging it and dropping it on his body.
*/
return 1063185;
}
}
public GiveZoelNoteObjective()
{
}
public override void OnComplete()
{
System.AddConversation( new GainInnInformationConversation() );
}
}
public class GainInnInformationObjective : QuestObjective
{
public override object Message
{
get
{
/* Take the Blue Teleporter Tile from Daimyo Emino's
* house to the Abandoned Inn. Quietly look around
* to gain information.
*/
return 1063190;
}
}
public GainInnInformationObjective()
{
}
public override void CheckProgress()
{
Mobile from = System.From;
if ( from.Map == Map.Malas && from.X > 399 && from.X < 408 && from.Y > 1091 && from.Y < 1099 )
Complete();
}
public override void OnComplete()
{
System.AddConversation( new ReturnFromInnConversation() );
}
}
public class ReturnFromInnObjective : QuestObjective
{
public override object Message
{
get
{
// Go back through the blue teleporter and tell Daimyo Emino what you<6F>ve overheard.
return 1063197;
}
}
public ReturnFromInnObjective()
{
}
public override void OnComplete()
{
System.AddConversation( new SearchForSwordConversation() );
}
}
public class SearchForSwordObjective : QuestObjective
{
public override object Message
{
get
{
/* Take the white teleporter and check the chests for the sword.
* Leave everything else behind. Avoid damage from traps you may
* encounter. To use a potion, make sure at least one hand is
* free and double click on the bottle.
*/
return 1063200;
}
}
public SearchForSwordObjective()
{
}
public override void OnComplete()
{
System.AddConversation( new HallwayWalkConversation() );
}
}
public class HallwayWalkObjective : QuestObjective
{
private bool m_StolenTreasure;
public bool StolenTreasure
{
get{ return m_StolenTreasure; }
set{ m_StolenTreasure = value; }
}
public override object Message
{
get
{
/* Walk through the hallway being careful
* to avoid the traps. You may be able to
* time the traps to avoid injury.
*/
return 1063202;
}
}
public HallwayWalkObjective()
{
}
public override void OnComplete()
{
System.AddConversation( new ReturnSwordConversation() );
}
public override void ChildDeserialize( GenericReader reader )
{
int version = reader.ReadEncodedInt();
m_StolenTreasure = reader.ReadBool();
}
public override void ChildSerialize( GenericWriter writer )
{
writer.WriteEncodedInt( (int) 0 ); // version
writer.Write( (bool) m_StolenTreasure );
}
}
public class ReturnSwordObjective : QuestObjective
{
public override object Message
{
get
{
// Take the sword and bring it back to Daimyo Emino.
return 1063204;
}
}
public ReturnSwordObjective()
{
}
public override void CheckProgress()
{
Mobile from = System.From;
if ( from.Map != Map.Malas || from.Y > 992 )
Complete();
}
public override void OnComplete()
{
System.AddConversation( new SlayHenchmenConversation() );
}
}
public class SlayHenchmenObjective : QuestObjective
{
public override object Message
{
get
{
// Kill three henchmen.
return 1063206;
}
}
public SlayHenchmenObjective()
{
}
public override int MaxProgress{ get{ return 3; } }
public override void RenderProgress( BaseQuestGump gump )
{
if ( !Completed )
{
// Henchmen killed:
gump.AddHtmlLocalized( 70, 260, 270, 100, 1063207, BaseQuestGump.Blue, false, false );
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 void OnKill( BaseCreature creature, Container corpse )
{
if ( creature is Henchman )
CurProgress++;
}
public override void OnComplete()
{
System.AddConversation( new GiveEminoSwordConversation() );
}
}
public class GiveEminoSwordObjective : QuestObjective
{
public override object Message
{
get
{
/* You have proven your fighting skills. Bring the Sword to
* Daimyo Emino immediately. Be sure to follow the
* path back to the teleporter.
*/
return 1063210;
}
}
public GiveEminoSwordObjective()
{
}
public override void OnComplete()
{
}
}
}