501 lines
14 KiB
C#
501 lines
14 KiB
C#
using System;
|
||
using Server.Items;
|
||
using Server.Mobiles;
|
||
|
||
namespace Server.Engines.Quests
|
||
{
|
||
public class ChillInTheAirQuest : BaseQuest
|
||
{
|
||
public ChillInTheAirQuest()
|
||
: base()
|
||
{
|
||
this.AddObjective(new SlayObjective(typeof(IceElemental), "ice elementals", 15));
|
||
|
||
this.AddReward(new BaseReward(typeof(LargeTreasureBag), 1072706));
|
||
}
|
||
|
||
/* A Chill in the Air */
|
||
public override object Title
|
||
{
|
||
get
|
||
{
|
||
return 1073663;
|
||
}
|
||
}
|
||
/* Feel that chill in the air? It means an icy death for the unwary, for deadly Ice Elementals are about.
|
||
Who knows what magic summoned them, what's important now is getting rid of them. I don't have much, but
|
||
I'll give all I can if you'd only stop the cold-hearted monsters. */
|
||
public override object Description
|
||
{
|
||
get
|
||
{
|
||
return 1073702;
|
||
}
|
||
}
|
||
/* Perhaps you'll change your mind and return at some point. */
|
||
public override object Refuse
|
||
{
|
||
get
|
||
{
|
||
return 1073733;
|
||
}
|
||
}
|
||
/* The chill won't lift until you eradicate a few Ice Elemenals. */
|
||
public override object Uncomplete
|
||
{
|
||
get
|
||
{
|
||
return 1073743;
|
||
}
|
||
}
|
||
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 IndustriousAsAnAntLionQuest : BaseQuest
|
||
{
|
||
public IndustriousAsAnAntLionQuest()
|
||
: base()
|
||
{
|
||
this.AddObjective(new SlayObjective(typeof(AntLion), "ant lions", 12));
|
||
|
||
this.AddReward(new BaseReward(typeof(LargeTreasureBag), 1072706));
|
||
}
|
||
|
||
/* Industrious as an Ant Lion */
|
||
public override object Title
|
||
{
|
||
get
|
||
{
|
||
return 1073665;
|
||
}
|
||
}
|
||
/* Ants are industrious and Lions are noble so who'd think an Ant Lion would be such a problem? The Ant Lion's
|
||
have been causing mindless destruction in these parts. I suppose it's just how ants are. But I need you to help
|
||
eliminate the infestation. Would you be willing to help for a bit of reward? */
|
||
public override object Description
|
||
{
|
||
get
|
||
{
|
||
return 1073704;
|
||
}
|
||
}
|
||
/* Perhaps you'll change your mind and return at some point. */
|
||
public override object Refuse
|
||
{
|
||
get
|
||
{
|
||
return 1073733;
|
||
}
|
||
}
|
||
/* Please, rid us of the Ant Lion infestation. */
|
||
public override object Uncomplete
|
||
{
|
||
get
|
||
{
|
||
return 1073745;
|
||
}
|
||
}
|
||
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 ThePerilsOfFarmingQuest : BaseQuest
|
||
{
|
||
public ThePerilsOfFarmingQuest()
|
||
: base()
|
||
{
|
||
this.AddObjective(new SlayObjective(typeof(WhippingVine), "whipping vines", 15));
|
||
|
||
this.AddReward(new BaseReward(typeof(LargeTreasureBag), 1072706));
|
||
}
|
||
|
||
/* The Perils of Farming */
|
||
public override object Title
|
||
{
|
||
get
|
||
{
|
||
return 1073664;
|
||
}
|
||
}
|
||
/* I should be trimming back the vegetation here, but something nasty has taken root. Viscious vines I can't go near.
|
||
If there's any hope of getting things under control, some one's going to need to destroy a few of those Whipping Vines.
|
||
Someone strong and fast and tough. */
|
||
public override object Description
|
||
{
|
||
get
|
||
{
|
||
return 1073703;
|
||
}
|
||
}
|
||
/* Perhaps you'll change your mind and return at some point. */
|
||
public override object Refuse
|
||
{
|
||
get
|
||
{
|
||
return 1073733;
|
||
}
|
||
}
|
||
/* How are farmers supposed to work with these Whipping Vines around? */
|
||
public override object Uncomplete
|
||
{
|
||
get
|
||
{
|
||
return 1073744;
|
||
}
|
||
}
|
||
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 DishBestServedColdQuest : BaseQuest
|
||
{
|
||
public DishBestServedColdQuest()
|
||
: base()
|
||
{
|
||
this.AddObjective(new SlayObjective(typeof(Orc), "orcs", 10, "Sanctuary"));
|
||
this.AddObjective(new SlayObjective(typeof(OrcBomber), "orc bombers", 5, "Sanctuary"));
|
||
this.AddObjective(new SlayObjective(typeof(OrcBrute), "orc brutes", 3, "Sanctuary"));
|
||
|
||
this.AddReward(new BaseReward(typeof(TreasureBag), 1072583));
|
||
}
|
||
|
||
/* A Dish Best Served Cold */
|
||
public override object Title
|
||
{
|
||
get
|
||
{
|
||
return 1072372;
|
||
}
|
||
}
|
||
/* *mutter* I'll have my revenge. Oh! You there. Fancy some orc extermination? I despise them all. Bombers, brutes --
|
||
you name it, if it's orcish I want it killed. */
|
||
public override object Description
|
||
{
|
||
get
|
||
{
|
||
return 1072657;
|
||
}
|
||
}
|
||
/* Hrmph. Well maybe another time then. */
|
||
public override object Refuse
|
||
{
|
||
get
|
||
{
|
||
return 1072667;
|
||
}
|
||
}
|
||
/* Shouldn't you be slaying orcs? */
|
||
public override object Uncomplete
|
||
{
|
||
get
|
||
{
|
||
return 1072668;
|
||
}
|
||
}
|
||
public override bool CanOffer()
|
||
{
|
||
return MondainsLegacy.Sanctuary;
|
||
}
|
||
|
||
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 CommonBrigandsQuest : BaseQuest
|
||
{
|
||
public CommonBrigandsQuest()
|
||
: base()
|
||
{
|
||
this.AddObjective(new SlayObjective("common brigands", 20, typeof(Brigand)));
|
||
|
||
this.AddReward(new BaseReward(typeof(TreasureBag), 1072583));
|
||
}
|
||
|
||
/* Common Brigands */
|
||
public override object Title
|
||
{
|
||
get
|
||
{
|
||
return 1073082;
|
||
}
|
||
}
|
||
/* Thank goodness, a hero like you has arrived! Brigands have descended upon this area like locusts, stealing and
|
||
looting where ever they go. We need someone to put these vile curs where they belong -- in their graves. Are you
|
||
up to the task? */
|
||
public override object Description
|
||
{
|
||
get
|
||
{
|
||
return 1073572;
|
||
}
|
||
}
|
||
/* I hope you'll reconsider. Until then, farwell. */
|
||
public override object Refuse
|
||
{
|
||
get
|
||
{
|
||
return 1073580;
|
||
}
|
||
}
|
||
/* The Brigands still plague us. Have you killed 20 of their number? */
|
||
public override object Uncomplete
|
||
{
|
||
get
|
||
{
|
||
return 1073592;
|
||
}
|
||
}
|
||
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 ArchEnemiesQuest : BaseQuest
|
||
{
|
||
public ArchEnemiesQuest()
|
||
: base()
|
||
{
|
||
this.AddObjective(new SlayObjective(typeof(RatmanArcher), "ratman archers", 10));
|
||
|
||
this.AddReward(new BaseReward(typeof(TreasureBag), 1072583));
|
||
}
|
||
|
||
/* Arch Enemies */
|
||
public override object Title
|
||
{
|
||
get
|
||
{
|
||
return 1073085;
|
||
}
|
||
}
|
||
/* Vermin! They get into everything! I told the boy to leave out some poisoned cheese -- and they shot him.
|
||
What else can I do? Unless<73>these ratmen are skilled with a bow, but I'd lay a wager you're better, eh? Could
|
||
you skin a few of the wretches for me? */
|
||
public override object Description
|
||
{
|
||
get
|
||
{
|
||
return 1073575;
|
||
}
|
||
}
|
||
/* I hope you'll reconsider. Until then, farwell. */
|
||
public override object Refuse
|
||
{
|
||
get
|
||
{
|
||
return 1073580;
|
||
}
|
||
}
|
||
/* I don't see 10 tails from Ratman Archers on your belt -- and until I do, no reward for you. */
|
||
public override object Uncomplete
|
||
{
|
||
get
|
||
{
|
||
return 1073595;
|
||
}
|
||
}
|
||
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 VerminQuest : BaseQuest
|
||
{
|
||
public VerminQuest()
|
||
: base()
|
||
{
|
||
this.AddObjective(new SlayObjective(typeof(Ratman), "ratmen", 12));
|
||
|
||
this.AddReward(new BaseReward(typeof(TrinketBag), 1072341));
|
||
}
|
||
|
||
/* Vermin */
|
||
public override object Title
|
||
{
|
||
get
|
||
{
|
||
return 1072995;
|
||
}
|
||
}
|
||
/* You've got to help me out! Those ratmen have been causing absolute havok around here. Kill them off before
|
||
they destroy my land. I'll pay you if you kill off twelve of those dirty rats. */
|
||
public override object Description
|
||
{
|
||
get
|
||
{
|
||
return 1073029;
|
||
}
|
||
}
|
||
/* Well, okay. But if you decide you are up for it after all, c'mon back and see me. */
|
||
public override object Refuse
|
||
{
|
||
get
|
||
{
|
||
return 1072270;
|
||
}
|
||
}
|
||
/* You're not quite done yet. Get back to work! */
|
||
public override object Uncomplete
|
||
{
|
||
get
|
||
{
|
||
return 1072271;
|
||
}
|
||
}
|
||
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 Tiana : MondainQuester
|
||
{
|
||
[Constructable]
|
||
public Tiana()
|
||
: base("Tiana", "the guard")
|
||
{
|
||
}
|
||
|
||
public Tiana(Serial serial)
|
||
: base(serial)
|
||
{
|
||
}
|
||
|
||
public override Type[] Quests
|
||
{
|
||
get
|
||
{
|
||
return new Type[]
|
||
{
|
||
typeof(MaraudersQuest),
|
||
typeof(ChillInTheAirQuest),
|
||
typeof(IndustriousAsAnAntLionQuest),
|
||
typeof(ThePerilsOfFarmingQuest),
|
||
typeof(UnholyConstructQuest),
|
||
typeof(DishBestServedColdQuest),
|
||
typeof(CommonBrigandsQuest),
|
||
typeof(ArchEnemiesQuest),
|
||
typeof(TrollingForTrollsQuest),
|
||
typeof(DeadManWalkingQuest),
|
||
typeof(ForkedTonguesQuest),
|
||
typeof(VerminQuest)
|
||
};
|
||
}
|
||
}
|
||
public override void InitBody()
|
||
{
|
||
this.InitStats(100, 100, 25);
|
||
|
||
this.Female = true;
|
||
this.CantWalk = true;
|
||
this.Race = Race.Elf;
|
||
|
||
this.Hue = 0x824E;
|
||
this.HairItemID = 0x2FCC;
|
||
this.HairHue = 0x385;
|
||
}
|
||
|
||
public override void InitOutfit()
|
||
{
|
||
this.AddItem(new ElvenBoots());
|
||
this.AddItem(new HidePants());
|
||
this.AddItem(new HideFemaleChest());
|
||
this.AddItem(new HidePauldrons());
|
||
this.AddItem(new WoodlandBelt(0x657));
|
||
|
||
Item item;
|
||
|
||
item = new RavenHelm();
|
||
item.Hue = 0x1BB;
|
||
this.AddItem(item);
|
||
}
|
||
|
||
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();
|
||
}
|
||
}
|
||
} |