/**********************************************************
RunUO AoV C# script file
Official Age of Valor Script :: www.uovalor.com
Last modified by Red Squirrel on Jan-01-2012 10:09:14pm
Filepath: scripts\events and scenarios\Halloween2011\Quests\Quest Givers\Lars.cs
Lines of code: 82

Description: 

***********************************************************/


using System;
using Server;
using Server.Items;
using Server.Mobiles;

namespace Server.Engines.Quests
{	
	public class MasterOfEvilQuest : BaseQuest
	{				
		public override object Title{ get{ return "Master of Evil"; } }
		
		public override object Description{ get{ return "The grim reaper Malevolent has grown strong. I used to be her apprentice, training as the next reaper, but I was forced to abandon the idea. She used to be a fair reaper, but she became corrupt and abused her power. Now death sustains her, she no longer feels compassion or fairness in her judgement.<br><br>I am the only one left alive who holds the key to the Boneyard, her domain.<br><br>If you are strong enough to defeat her, show your strength and I will reward you with the key to the Boneyard and her home. I warn you, my task is not for the faint-hearted. Accept my quest only if you are truly prepared."; } }
		
		public override object Refuse{ get{ return "I understand that you are not yet ready for such a task. Return to me when you are ready."; } }
		
		public override object Uncomplete{ get{ return "Kill all the boss monsters on my list, then return to me."; } }
		
		public override object Complete{ get{ return "You have shown strength, wisdom and courage in battle. I grant you the key to the Boneyard and to Malevolent's domain. For the sake of all of humanity, rid the world of this corrupted reaper. Release the souls of the dead from her torment. Take caution as she will find every way possible to destroy you."; } }
	
		public MasterOfEvilQuest() : base()
		{			
			AddObjective( new SlayObjective( typeof( PumpkinKing ), "Pumpkin King", 1 ) );
			AddObjective( new SlayObjective( typeof( DerangedWitch ), "Deranged Witch", 1 ) );
			AddObjective( new SlayObjective( typeof( Herpekitus ), "Herpekitus", 1 ) );
			AddObjective( new SlayObjective( typeof( SorceressOfTheNight ), "Sorceress of the Night", 1 ) );
			
			
			AddReward( new BaseReward( typeof( MalevolentKey ), "A haunted house key (Malevolent)" ) );
		}
		
		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 Lars : MondainQuester
	{
		public override Type[] Quests
		{ 
			get{ return new Type[] 
			{ 
				typeof( MasterOfEvilQuest )
			};} 
		}
		
		[Constructable]
		public Lars() : base( "Lars", "the druid" )
		{			
			SetSkill( SkillName.Meditation, 60.0, 83.0 );
			SetSkill( SkillName.Focus, 60.0, 83.0 );
		}
		
		public Lars( Serial serial ) : base( serial )
		{
		}		
		
		public override void InitBody()
		{
			InitStats( 100, 100, 25 );

			Hue = 33358;

			Female = false;
			Race=Race.Elf;
			Body = 605;
		}
		
		public override void InitOutfit()
		{
			AddItem( new MaleElvenRobe( 1364 ) );
			AddItem( new Sandals() );
			AddItem( new Obi( 1191 ) );
			AddItem( new GoldBracelet() );

			HairItemID = 0x203C;

			Item staff = new GnarledStaff();
			staff.Hue = 1190;
			staff.Movable = false;
			AddItem( staff );
		}
		
		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();
		}
	}
}