Files
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

256 lines
9.5 KiB
C#

using System;
using Server.Items;
using Server.Network;
using Server.Commands;
using Server.Engines.Quests;
using Server.Gumps;
namespace Server.Mobiles
{
public class ChampHuthwait : Mobile
{
public virtual bool IsInvulnerable { get { return true; } }
[Constructable]
public ChampHuthwait()
: base()
{
this.Name = "Champ Huthwait";
this.Title = "The Seedy Cobbler";
this.Female = false;
this.Race = Race.Human;
this.CantWalk = true;
this.Blessed = true;
this.Hue = Utility.RandomSkinHue();
Utility.AssignRandomHair(this);
this.AddItem(new Backpack());
this.AddItem(new Boots(2017));
this.AddItem(new LongPants(2017));
this.AddItem(new FancyShirt(1432));
this.AddItem(new JinBaori(1408));
}
public override void OnDoubleClick(Mobile m)
{
if (!(m is PlayerMobile))
return;
PlayerMobile pm = (PlayerMobile)m;
if (pm.ExploringTheDeepQuest == ExploringTheDeepQuestChain.CollectTheComponent)
{
if (!m.HasGump(typeof(ChampHuthwaitGump)))
{
m.SendGump(new ChampHuthwaitGump(m));
}
}
else
{
m.SendLocalizedMessage(1154325); // You feel as though by doing this you are missing out on an important part of your journey...
}
}
public override bool OnDragDrop(Mobile from, Item dropped)
{
PlayerMobile m = from as PlayerMobile;
if (m != null)
{
if (m.ExploringTheDeepQuest == ExploringTheDeepQuestChain.CollectTheComponent)
{
if (dropped is MercutiosCutlass)
{
dropped.Delete();
from.AddToBackpack(new BootsOfBallast());
if (!m.HasGump(typeof(ChampHuthwaitCompleteGump)))
{
m.SendGump(new ChampHuthwaitCompleteGump(m));
}
}
else
{
this.PublicOverheadMessage(MessageType.Regular, 0x3B2, 501550); // I am not interested in this.
}
}
else
{
m.SendLocalizedMessage(1154325); // You feel as though by doing this you are missing out on an important part of your journey...
}
}
return false;
}
public ChampHuthwait(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();
}
}
}
namespace Server.Gumps
{
public class ChampHuthwaitGump : Gump
{
public static void Initialize()
{
CommandSystem.Register("ChampHuthwait", AccessLevel.GameMaster, new CommandEventHandler(ChampHuthwaitGump_OnCommand));
}
private static void ChampHuthwaitGump_OnCommand(CommandEventArgs e)
{
e.Mobile.SendGump(new ChampHuthwaitGump(e.Mobile));
}
public ChampHuthwaitGump(Mobile owner): base(50, 50)
{
this.Closable = false;
this.Disposable = true;
this.Dragable = true;
this.Resizable = false;
AddPage(0);
this.AddImageTiled(50, 20, 400, 460, 0x1404);
this.AddImageTiled(50, 29, 30, 450, 0x28DC);
this.AddImageTiled(34, 140, 17, 339, 0x242F);
this.AddImage(48, 135, 0x28AB);
this.AddImage(-16, 285, 0x28A2);
this.AddImage(0, 10, 0x28B5);
this.AddImage(25, 0, 0x28B4);
this.AddImageTiled(83, 15, 350, 15, 0x280A);
this.AddImage(34, 479, 0x2842);
this.AddImage(442, 479, 0x2840);
this.AddImageTiled(51, 479, 392, 17, 0x2775);
this.AddImageTiled(415, 29, 44, 450, 0xA2D);
this.AddImageTiled(415, 29, 30, 450, 0x28DC);
this.AddImage(370, 50, 0x589);
this.AddImage(379, 60, 0x15A9);
this.AddImage(425, 0, 0x28C9);
this.AddImage(90, 33, 0x232D);
this.AddImageTiled(130, 65, 175, 1, 0x238D);
AddHtmlLocalized(140, 45, 250, 24, 1154327, 0x7FFF, false, false); // Exploring the Deep
AddPage(1);
AddHtmlLocalized(107, 140, 300, 150, 1154303, 0x7FFF, false, true); // Just tell him I'll have the money by...*pauses*...*with a smile*...Oh, you aren't part of Mercutio's crew? Oh well then, what's your business then? Loafers? Sandals? A Fine pair of boots then?
AddHtmlLocalized(145, 300, 250, 24, 1154304, 0x7FFF, false, false); // I'm looking for the Boots of Ballast...
AddButton(115, 300, 0x26B0, 0x26B1, 0, GumpButtonType.Page, 2);
AddButton(345, 440, 0xF7, 0xF8, 0, GumpButtonType.Reply, 0);//OK
AddPage(2);
AddHtmlLocalized(107, 140, 300, 150, 1154305, 0x7FFF, false, true); // *reads the note* Well I see you and Cousteau are after that suit then. Well I'll tell you what I tell everyone else...if you want the Boots of Ballast you need to help me out with a sticky situation.
AddHtmlLocalized(145, 300, 250, 24, 1154306, 0x7FFF, false, false); // What kind of sticky situation?
AddButton(115, 300, 0x26B0, 0x26B1, 0, GumpButtonType.Page, 3);
AddButton(345, 440, 0xF7, 0xF8, 0, GumpButtonType.Reply, 0);//OK
AddPage(3);
AddHtmlLocalized(107, 140, 300, 150, 1154307, 0x7FFF, false, true); // Yea, that's right. Seems Mercutio's Gang is after me for a bit of a...disagreement about a small debt...if you were to...take care of Mercutio's gang I'd be willing to hook you up with those boots.
AddHtmlLocalized(145, 300, 250, 24, 1154308, 0x7FFF, false, false); // Where is Mercutio's Gang?
AddButton(115, 300, 0x26B0, 0x26B1, 0, GumpButtonType.Page, 4);
AddButton(345, 440, 0xF7, 0xF8, 0, GumpButtonType.Reply, 0);//OK
AddPage(4);
AddHtmlLocalized(107, 140, 300, 150, 1154309, 0x7FFF, false, true); // They usually hangout just southwest of the City in some old ruins. Bring me evidence of Mercutio's demise and I will get you the boots you seek.
AddButton(345, 440, 0xF7, 0xF8, 0, GumpButtonType.Reply, 0);//OK
}
public override void OnResponse(NetState state, RelayInfo info) //Function for GumpButtonType.Reply Buttons
{
Mobile from = state.Mobile;
switch (info.ButtonID)
{
case 0:
{
//Cancel
break;
}
}
}
}
public class ChampHuthwaitCompleteGump : Gump
{
public static void Initialize()
{
CommandSystem.Register("ChampHuthwaitComplete", AccessLevel.GameMaster, new CommandEventHandler(ChampHuthwaitCompleteGump_OnCommand));
}
private static void ChampHuthwaitCompleteGump_OnCommand(CommandEventArgs e)
{
e.Mobile.SendGump(new ChampHuthwaitCompleteGump(e.Mobile));
}
public ChampHuthwaitCompleteGump(Mobile owner): base(50, 50)
{
this.Closable = false;
this.Disposable = true;
this.Dragable = true;
this.Resizable = false;
AddPage(0);
this.AddImageTiled(50, 20, 400, 460, 0x1404);
this.AddImageTiled(50, 29, 30, 450, 0x28DC);
this.AddImageTiled(34, 140, 17, 339, 0x242F);
this.AddImage(48, 135, 0x28AB);
this.AddImage(-16, 285, 0x28A2);
this.AddImage(0, 10, 0x28B5);
this.AddImage(25, 0, 0x28B4);
this.AddImageTiled(83, 15, 350, 15, 0x280A);
this.AddImage(34, 479, 0x2842);
this.AddImage(442, 479, 0x2840);
this.AddImageTiled(51, 479, 392, 17, 0x2775);
this.AddImageTiled(415, 29, 44, 450, 0xA2D);
this.AddImageTiled(415, 29, 30, 450, 0x28DC);
this.AddImage(370, 50, 0x589);
this.AddImage(379, 60, 0x15A9);
this.AddImage(425, 0, 0x28C9);
this.AddImage(90, 33, 0x232D);
this.AddImageTiled(130, 65, 175, 1, 0x238D);
AddHtmlLocalized(140, 45, 250, 24, 1154327, 0x7FFF, false, false); // Exploring the Deep
AddPage(1);
AddHtmlLocalized(107, 140, 300, 150, 1154310, 0x7FFF, false, true); // You did it! Hot diggity! Looks like I won't have to deal with that knave any longer! Smooth sailing from here on out...just me and the tables...oh, right here are your boots!
AddButton(345, 440, 0xF7, 0xF8, 0, GumpButtonType.Reply, 0);//OK
}
public override void OnResponse(NetState state, RelayInfo info) //Function for GumpButtonType.Reply Buttons
{
Mobile from = state.Mobile;
switch (info.ButtonID)
{
case 0:
{
//Cancel
break;
}
}
}
}
}