using System;
using Server.Items;
using Server.Mobiles;
namespace Server.Engines.Quests
{
public class CleansingOldHavenQuest : BaseQuest
{
public override bool DoneOnce
{
get
{
return true;
}
}
/* Cleansing Old Haven */
public override object Title
{
get
{
return 1077719;
}
}
/* Head East out of town to Old Haven. Consecrate your weapon, cast Divine Fury, and battle monsters there until
you have raised your Chivalry skill to 50.
------
Hail, friend. The life of a Paladin is
a life of much sacrifice, humility, bravery, and righteousness. If you wish to pursue such a life, I have an
assignment for you. Adventure east to Old Haven, consecrate your weapon, and lay to rest the undead that inhabit
there.
Each ability a Paladin wishes to invoke will require a certain amount of "tithing points" to use.
A Paladin can earn these tithing points by donating gold at a shrine or holy place. You may tithe at this shrine.
Return to me once you feel that you are worthy of the rank of Apprentice Paladin. */
public override object Description
{
get
{
return 1077722;
}
}
/* Farewell to you my friend. Return to me if you wish to live the life of a Paladin. */
public override object Refuse
{
get
{
return 1077723;
}
}
/* There are still more undead to lay to rest. You still have more to learn. Return to me once you have done so. */
public override object Uncomplete
{
get
{
return 1077724;
}
}
/* Well done, friend. While I know you understand Chivalry is its own reward, I would like to reward you with
something that will protect you in battle. It was passed down to me when I was a lad. Now, I am passing it on you.
It is called the Bulwark Leggings. Thank you for your service. */
public override object Complete
{
get
{
return 1077726;
}
}
public CleansingOldHavenQuest()
: base()
{
this.AddObjective(new ApprenticeObjective(SkillName.Chivalry, 50, "Old Haven Training", 1077720, 1077721));
// 1077720 Your Chivalry potential is greatly enhanced while questing in this area.
// 1077721 You are not in the quest area for Apprentice Paladin. Your Chivalry potential is not enhanced here.
this.AddReward(new BaseReward(typeof(BulwarkLeggings), 1077727));
}
public override bool CanOffer()
{
#region Scroll of Alacrity
PlayerMobile pm = this.Owner as PlayerMobile;
if (pm.AcceleratedStart > DateTime.UtcNow)
{
this.Owner.SendLocalizedMessage(1077951); // You are already under the effect of an accelerated skillgain scroll.
return false;
}
#endregion
else
return this.Owner.Skills.Chivalry.Base < 50;
}
public override void OnCompleted()
{
this.Owner.SendLocalizedMessage(1077725, null, 0x23); // You have achieved the rank of Apprentice Paladin. Return to Aelorn in New Haven to report your progress.
this.Owner.PlaySound(this.CompleteSound);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
public class Aelorn : MondainQuester
{
public override Type[] Quests
{
get
{
return new Type[]
{
typeof(CleansingOldHavenQuest)
};
}
}
public override bool IsActiveVendor
{
get
{
return true;
}
}
public override void InitSBInfo()
{
this.SBInfos.Add(new SBKeeperOfChivalry());
}
[Constructable]
public Aelorn()
: base("Aelorn", "The Chivalry Instructor")
{
this.SetSkill(SkillName.Anatomy, 120.0, 120.0);
this.SetSkill(SkillName.MagicResist, 120.0, 120.0);
this.SetSkill(SkillName.Tactics, 120.0, 120.0);
this.SetSkill(SkillName.Swords, 120.0, 120.0);
this.SetSkill(SkillName.Meditation, 120.0, 120.0);
this.SetSkill(SkillName.Focus, 120.0, 120.0);
this.SetSkill(SkillName.Chivalry, 120.0, 120.0);
}
public Aelorn(Serial serial)
: base(serial)
{
}
public override void Advertise()
{
this.Say(1078133); // Hail, friend. Want to live the life of a paladin?
}
public override void OnOfferFailed()
{
this.Say(1077772); // I cannot teach you, for you know all I can teach!
}
public override void InitBody()
{
this.Female = false;
this.CantWalk = true;
this.Race = Race.Human;
base.InitBody();
}
public override void InitOutfit()
{
this.AddItem(new Backpack());
this.AddItem(new VikingSword());
this.AddItem(new PlateChest());
this.AddItem(new PlateLegs());
this.AddItem(new PlateGloves());
this.AddItem(new PlateArms());
this.AddItem(new PlateGorget());
this.AddItem(new OrderShield());
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}