145 lines
5.0 KiB
C#
145 lines
5.0 KiB
C#
using System;
|
|
using Server.Items;
|
|
|
|
namespace Server.Mobiles
|
|
{
|
|
[CorpseName("Garamons Corpse")]
|
|
public class Garamon : Mobile
|
|
{
|
|
[Constructable]
|
|
public Garamon()
|
|
{
|
|
Str = 100;
|
|
Int = 100;
|
|
Dex = 100;
|
|
|
|
Name = "Garamon";
|
|
HairItemID = 0x2044;
|
|
FacialHairItemID = 0x204B;
|
|
HairHue = 0x44E;
|
|
Body = 0x190;
|
|
Hue = 33821;
|
|
CantWalk = true;
|
|
Direction = Direction.South;
|
|
|
|
AddItem(new Shoes(1810));
|
|
AddItem(new Robe(946));
|
|
|
|
Blessed = true;
|
|
}
|
|
|
|
public Garamon(Serial serial)
|
|
: base(serial)
|
|
{
|
|
}
|
|
|
|
public virtual bool IsInvulnerable
|
|
{
|
|
get
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write((int)2);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int version = reader.ReadInt();
|
|
|
|
if (version == 1)
|
|
{
|
|
FacialHairItemID = 0x204B;
|
|
}
|
|
}
|
|
|
|
public override bool HandlesOnSpeech(Mobile from)
|
|
{
|
|
if (from.InRange(Location, 8))
|
|
return true;
|
|
|
|
return base.HandlesOnSpeech(from);
|
|
}
|
|
|
|
public override void OnSpeech(SpeechEventArgs e)
|
|
{
|
|
if (!e.Handled && e.Mobile.InRange(this.Location, 2))
|
|
{
|
|
PlayerMobile pm = e.Mobile as PlayerMobile;
|
|
|
|
if (pm.AbyssEntry)
|
|
{
|
|
pm.SendMessage("You have completed the Sacred Quest already!");
|
|
}
|
|
else
|
|
{
|
|
string keyword = e.Speech.ToLower();
|
|
|
|
switch (keyword)
|
|
{
|
|
case "hello":
|
|
{
|
|
this.Say("Greetings Adventurer! If you are seeking to enter the Abyss, I may be of assitance to you.");
|
|
break;
|
|
}
|
|
case "secret":
|
|
{
|
|
this.Say("He who pays close attention to the walls may notice something unusual.");
|
|
break;
|
|
}
|
|
case "teleporter":
|
|
{
|
|
this.Say("You will find many within the dungeon. They will facilitate your travels.");
|
|
break;
|
|
}
|
|
case "vines":
|
|
{
|
|
this.Say("Aaah yes! Tricky things they are. Try to find something that could burn through them.");
|
|
break;
|
|
}
|
|
case "burn":
|
|
{
|
|
this.Say("I can tell you right away it's not fire based. Surely something within the dungeon will yield what you need.");
|
|
break;
|
|
}
|
|
case "abyss":
|
|
{
|
|
this.Say("It's entrance is protected by stone guardians who will only grant passage to the carrier of a Tripartite Key!");
|
|
break;
|
|
}
|
|
case "stone guardian":
|
|
{
|
|
this.Say("They will not let you enter the Abyss unless you can present a Tripartite Key");
|
|
break;
|
|
}
|
|
case "key":
|
|
{
|
|
this.Say("It's three parts that you must find, and reunite as one!");
|
|
break;
|
|
}
|
|
case "parts":
|
|
{
|
|
this.Say("Two can be found hidden in secret rooms within the Underworld. The third you must take from a shadow of evil.");
|
|
break;
|
|
}
|
|
case "shadow of evil":
|
|
{
|
|
this.Say("A most foul traitor. Once you have the first two parts, challenge him for the third! He dwells beyond the void in the Shrine.");
|
|
break;
|
|
}
|
|
case "shrine":
|
|
{
|
|
this.Say("Find your way there through the dungeon. You must use a teleporter to reach it.");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
base.OnSpeech(e);
|
|
}
|
|
}
|
|
}
|
|
} |