using System;
using Server;
using Server.Engines.MLQuests;
using Server.Engines.MLQuests.Items;
using Server.Engines.MLQuests.Objectives;
using Server.Engines.MLQuests.Rewards;

namespace Server.Engines.MLQuests.Definitions
{
	// TODO: Assassination Contract, Evidence, Lost in Transit, Last Words

	#region Quests

	public class LostAndFound : MLQuest
	{
		public LostAndFound()
		{
			Activated = true;
			Title = 1072370; // Lost and Found
			Description = 1072589; // The battered, old bucket is inscribed with barely legible writing that indicates it belongs to someone named "Dallid".  Maybe they'd pay for its return?
			RefusalMessage = 1072590; // You're right, who cares if Dallid might pay for his battered old bucket back.  This way you can carry it around with you!
			InProgressMessage = 1072591; // Whoever this "Dallid" might be, he's probably looking for his bucket.
			CompletionMessage = 1074580; // Is that my bucket? I had to ditch my favorite bucket when a group of ratmen jumped me!

			Objectives.Add( new TimedDeliverObjective( TimeSpan.FromSeconds( 600 ), typeof( BatteredBucket ), 1, "battered bucket", typeof( Dallid ), false ) );

			Rewards.Add( ItemReward.BagOfTrinkets );
		}
	}

	#endregion

	#region Items

	public class BatteredBucket : TransientQuestGiverItem
	{
		// Original label, doesn't fit the expiration message well
		//public override int LabelNumber { get { return 1073129; } } // A battered bucket.

		public override string DefaultName { get { return "battered bucket"; } }

		[Constructable]
		public BatteredBucket()
			: base( 0x2004, TimeSpan.FromMinutes( 10 ) )
		{
			LootType = LootType.Blessed;
		}

		public BatteredBucket( Serial serial )
			: base( serial )
		{
		}

		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();
		}
	}

	#endregion
}
