250 lines
7.8 KiB
C#
250 lines
7.8 KiB
C#
using System;
|
||
using Server;
|
||
using Server.Items;
|
||
using Server.Mobiles;
|
||
|
||
namespace Server.Engines.Quests
|
||
{
|
||
public class DoughtyWarriorsQuest : BaseQuest
|
||
{
|
||
public override QuestChain ChainID { get { return QuestChain.DoughtyWarriors; } }
|
||
public override Type NextQuest { get { return typeof(DoughtyWarriors2Quest); } }
|
||
public override bool DoneOnce { get { return true; } }
|
||
|
||
/* Doughty Warriors */
|
||
public override object Title { get { return 1075379; } }
|
||
|
||
/*Youngsters these days! Sorry, I didn’t introduce myself. I’m Kane,
|
||
* the Master of Arms for this city. This lot of trainees I got, they’re
|
||
* not worth a bucket of sour spit. You know the invasion some years back?
|
||
* Well, some of these pups weren’t even born then! What I need is an example,
|
||
* something that will put some steel into their spines. You seem pretty tough,
|
||
* what do you say to helping me out? */
|
||
public override object Description { get { return 1075380; } }
|
||
|
||
/* Ah. I see. Never mind then. */
|
||
public override object Refuse { get { return 1075382; } }
|
||
|
||
/* You’ll find mongbats all over the place. They’re a real pest.
|
||
* Once you’ve killed ten of them, come back and see me again. */
|
||
public override object Uncomplete { get { return 1075383; } }
|
||
|
||
/* Excellent! That’s the old fighting spirit. */
|
||
public override object Complete { get { return 1075384; } }
|
||
|
||
public DoughtyWarriorsQuest()
|
||
: base()
|
||
{
|
||
AddObjective(new SlayObjective(typeof(Mongbat), "Mongbats", 10));
|
||
|
||
AddReward(new BaseReward(1075381)); // Show them what a real warrior is made of!
|
||
}
|
||
|
||
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 DoughtyWarriors2Quest : BaseQuest
|
||
{
|
||
public override QuestChain ChainID { get { return QuestChain.DoughtyWarriors; } }
|
||
public override Type NextQuest { get { return typeof(DoughtyWarriors3Quest); } }
|
||
public override bool DoneOnce { get { return true; } }
|
||
|
||
/* Doughty Warriors */
|
||
public override object Title { get { return 1075404; } }
|
||
|
||
/* You did great work. Thanks to you, my puppies are training harder than ever.
|
||
* I think they could actually take a mongbat now. I’m still worried they’ll
|
||
* slack off, though. What say you to slaying some Imps for me now? Show them
|
||
* how it’s really done? */
|
||
public override object Description { get { return 1075405; } }
|
||
|
||
/* You’re pretty sad. When I was a young warrior, I wasn’t one to walk away from a challenge. */
|
||
public override object Refuse { get { return 1075407; } }
|
||
|
||
/* You won’t find many imps on this continent. Mostly, they’re native to Ilshenar. Might be a
|
||
* few up around the hedge maze east of Skara Brae, though. */
|
||
public override object Uncomplete { get { return 1075408; } }
|
||
|
||
/* Hah! I knew you were up to the challenge. */
|
||
public override object Complete { get { return 1075409; } }
|
||
|
||
public DoughtyWarriors2Quest()
|
||
: base()
|
||
{
|
||
AddObjective(new SlayObjective(typeof(Imp), "Imps", 10));
|
||
|
||
AddReward(new BaseReward(1075406)); // Show them what a real warrior is REALLY made of!
|
||
}
|
||
|
||
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 DoughtyWarriors3Quest : BaseQuest
|
||
{
|
||
public override QuestChain ChainID { get { return QuestChain.DoughtyWarriors; } }
|
||
public override bool DoneOnce { get { return true; } }
|
||
|
||
/* Doughty Warriors */
|
||
public override object Title { get { return 1075410; } }
|
||
|
||
/* You’ve really inspired my trainees. They’re working harder than ever. I’ve got
|
||
* one more request for you, and it’s a big one. Those mongbats didn’t pose a problem.
|
||
* You mowed down the imps with no trouble. But do you dare take on a couple of daemons? */
|
||
public override object Description { get { return 1075411; } }
|
||
|
||
/* What? You’re not scared of a couple of lousy daemons, are you? */
|
||
public override object Refuse { get { return 1075413; } }
|
||
|
||
/* There’s all kinds of daemons you can kill. There are some near the hedge maze,
|
||
* and some really powerful ones in Dungeon Doom. */
|
||
public override object Uncomplete { get { return 1075414; } }
|
||
|
||
/* Thanks for helping me out. You’re a real hero to my guards. Valor is its own reward,
|
||
* but maybe you wouldn’t mind wearing this sash. We don’t give these out to just
|
||
* anyone, you know! */
|
||
public override object Complete { get { return 1075415; } }
|
||
|
||
public DoughtyWarriors3Quest()
|
||
: base()
|
||
{
|
||
AddObjective(new SlayObjective(typeof(Daemon), "Daemons", 10));
|
||
|
||
AddReward(new BaseReward(typeof(SashOfMight), 1075412)); // Sash of Might
|
||
}
|
||
|
||
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 Kane : MondainQuester
|
||
{
|
||
public override Type[] Quests
|
||
{
|
||
get
|
||
{
|
||
return new Type[]
|
||
{
|
||
typeof( DoughtyWarriorsQuest )
|
||
};
|
||
}
|
||
}
|
||
|
||
[Constructable]
|
||
public Kane()
|
||
: base("Kane", "the Master of Arms")
|
||
{
|
||
if (!(this is MondainQuester))
|
||
|
||
this.Name = "Kane";
|
||
this.Title = "the Master of Arms";
|
||
}
|
||
|
||
public Kane(Serial serial)
|
||
: base(serial)
|
||
{
|
||
}
|
||
|
||
public override void InitBody()
|
||
{
|
||
InitStats(100, 100, 25);
|
||
|
||
Female = false;
|
||
Race = Race.Human;
|
||
|
||
//Hue = 0x840C;
|
||
HairItemID = 0x203C;
|
||
HairHue = 0x3B3;
|
||
}
|
||
|
||
public override void InitOutfit()
|
||
{
|
||
AddItem( new PlateArms() );
|
||
AddItem( new PlateChest() );
|
||
AddItem( new PlateGloves() );
|
||
AddItem( new StuddedGorget() );
|
||
AddItem( new PlateLegs() );
|
||
|
||
switch ( Utility.Random( 4 ) )
|
||
{
|
||
case 0: AddItem( new PlateHelm() ); break;
|
||
case 1: AddItem( new NorseHelm() ); break;
|
||
case 2: AddItem( new CloseHelm() ); break;
|
||
case 3: AddItem( new Helmet() ); break;
|
||
}
|
||
|
||
switch ( Utility.Random( 3 ) )
|
||
{
|
||
case 0: AddItem( new BodySash( 0x482 ) ); break;
|
||
case 1: AddItem( new Doublet( 0x482 ) ); break;
|
||
case 2: AddItem( new Tunic( 0x482 ) ); break;
|
||
}
|
||
|
||
AddItem( new Broadsword() );
|
||
|
||
Item shield = new MetalKiteShield();
|
||
|
||
shield.Hue = Utility.RandomNondyedHue();
|
||
|
||
AddItem( shield );
|
||
|
||
switch ( Utility.Random( 2 ) )
|
||
{
|
||
case 0: AddItem( new Boots() ); break;
|
||
case 1: AddItem( new ThighBoots() ); break;
|
||
}
|
||
|
||
PackGold( 100, 200 );
|
||
Blessed = true;
|
||
}
|
||
|
||
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();
|
||
}
|
||
}
|
||
}
|