v0.0.1-Alpha (#42)
This commit is contained in:
parent
d30f93c454
commit
a36796c2c1
3552 changed files with 2476 additions and 15223 deletions
|
|
@ -0,0 +1,36 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class BardGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public BardGuildmaster() : base("bard")
|
||||
{
|
||||
SetSkill(SkillName.Archery, 80.0, 100.0);
|
||||
SetSkill(SkillName.Discordance, 80.0, 100.0);
|
||||
SetSkill(SkillName.Musicianship, 80.0, 100.0);
|
||||
SetSkill(SkillName.Peacemaking, 80.0, 100.0);
|
||||
SetSkill(SkillName.Provocation, 80.0, 100.0);
|
||||
SetSkill(SkillName.Swords, 80.0, 100.0);
|
||||
}
|
||||
|
||||
public BardGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.BardsGuild;
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public abstract class BaseGuildmaster : BaseVendor
|
||||
{
|
||||
public BaseGuildmaster(string title) : base(title)
|
||||
{
|
||||
Title = $"the {title} {(Female ? "guildmistress" : "guildmaster")}";
|
||||
}
|
||||
|
||||
public BaseGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
protected override List<SBInfo> SBInfos{ get; } = new List<SBInfo>();
|
||||
|
||||
public override bool IsActiveVendor => false;
|
||||
|
||||
public override bool ClickTitle => false;
|
||||
|
||||
public virtual int JoinCost => 500;
|
||||
|
||||
public virtual TimeSpan JoinAge => TimeSpan.FromDays(0.0);
|
||||
public virtual TimeSpan JoinGameAge => TimeSpan.FromDays(2.0);
|
||||
public virtual TimeSpan QuitAge => TimeSpan.FromDays(7.0);
|
||||
public virtual TimeSpan QuitGameAge => TimeSpan.FromDays(4.0);
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
}
|
||||
|
||||
public virtual bool CheckCustomReqs(PlayerMobile pm)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public virtual void SayGuildTo(Mobile m)
|
||||
{
|
||||
SayTo(m, 1008055 + (int)NpcGuild);
|
||||
}
|
||||
|
||||
public virtual void SayWelcomeTo(Mobile m)
|
||||
{
|
||||
SayTo(m, 1008054); // Welcome to the guild! Thou shalt find that fellow members shall grant thee lower prices in shops.
|
||||
}
|
||||
|
||||
public virtual void SayPriceTo(Mobile m)
|
||||
{
|
||||
m.Send(new MessageLocalizedAffix(Serial, Body, MessageType.Regular, SpeechHue, 3, 1008052, Name,
|
||||
AffixType.Append, JoinCost.ToString(), ""));
|
||||
}
|
||||
|
||||
public virtual bool WasNamed(string speech)
|
||||
{
|
||||
string name = Name;
|
||||
|
||||
return name != null && Insensitive.StartsWith(speech, name);
|
||||
}
|
||||
|
||||
public override bool HandlesOnSpeech(Mobile from)
|
||||
{
|
||||
if (from.InRange(Location, 2))
|
||||
return true;
|
||||
|
||||
return base.HandlesOnSpeech(from);
|
||||
}
|
||||
|
||||
public override void OnSpeech(SpeechEventArgs e)
|
||||
{
|
||||
Mobile from = e.Mobile;
|
||||
|
||||
if (!e.Handled && from is PlayerMobile pm && pm.InRange(Location, 2) && WasNamed(e.Speech))
|
||||
{
|
||||
if (e.HasKeyword(0x0004)) // *join* | *member*
|
||||
{
|
||||
if (pm.NpcGuild == NpcGuild)
|
||||
SayTo(pm, 501047); // Thou art already a member of our guild.
|
||||
else if (pm.NpcGuild != NpcGuild.None)
|
||||
SayTo(pm, 501046); // Thou must resign from thy other guild first.
|
||||
else if (pm.GameTime < JoinGameAge || pm.CreationTime + JoinAge > DateTime.UtcNow)
|
||||
SayTo(pm, 501048); // You are too young to join my guild...
|
||||
else if (CheckCustomReqs(pm))
|
||||
SayPriceTo(pm);
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.HasKeyword(0x0005)) // *resign* | *quit*
|
||||
{
|
||||
if (pm.NpcGuild != NpcGuild)
|
||||
{
|
||||
SayTo(pm, 501052); // Thou dost not belong to my guild!
|
||||
}
|
||||
else if (pm.NpcGuildJoinTime + QuitAge > DateTime.UtcNow ||
|
||||
pm.NpcGuildGameTime + QuitGameAge > pm.GameTime)
|
||||
{
|
||||
SayTo(pm, 501053); // You just joined my guild! You must wait a week to resign.
|
||||
}
|
||||
else
|
||||
{
|
||||
SayTo(pm, 501054); // I accept thy resignation.
|
||||
pm.NpcGuild = NpcGuild.None;
|
||||
}
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
|
||||
base.OnSpeech(e);
|
||||
}
|
||||
|
||||
public override bool OnGoldGiven(Mobile from, Gold dropped)
|
||||
{
|
||||
if (from is PlayerMobile pm && dropped.Amount == JoinCost)
|
||||
{
|
||||
if (pm.NpcGuild == NpcGuild)
|
||||
{
|
||||
SayTo(pm, 501047); // Thou art already a member of our guild.
|
||||
}
|
||||
else if (pm.NpcGuild != NpcGuild.None)
|
||||
{
|
||||
SayTo(pm, 501046); // Thou must resign from thy other guild first.
|
||||
}
|
||||
else if (pm.GameTime < JoinGameAge || pm.CreationTime + JoinAge > DateTime.UtcNow)
|
||||
{
|
||||
SayTo(pm, 501048); // You are too young to join my guild...
|
||||
}
|
||||
else if (CheckCustomReqs(pm))
|
||||
{
|
||||
SayWelcomeTo(pm);
|
||||
|
||||
pm.NpcGuild = NpcGuild;
|
||||
pm.NpcGuildJoinTime = DateTime.UtcNow;
|
||||
pm.NpcGuildGameTime = pm.GameTime;
|
||||
|
||||
dropped.Delete();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return base.OnGoldGiven(from, dropped);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class BlacksmithGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public BlacksmithGuildmaster() : base("blacksmith")
|
||||
{
|
||||
SetSkill(SkillName.ArmsLore, 65.0, 88.0);
|
||||
SetSkill(SkillName.Blacksmith, 90.0, 100.0);
|
||||
SetSkill(SkillName.Macing, 36.0, 68.0);
|
||||
SetSkill(SkillName.Parry, 36.0, 68.0);
|
||||
}
|
||||
|
||||
public BlacksmithGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.BlacksmithsGuild;
|
||||
|
||||
public override bool IsActiveVendor => true;
|
||||
|
||||
public override bool ClickTitle => true;
|
||||
|
||||
public override VendorShoeType ShoeType => VendorShoeType.ThighBoots;
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
SBInfos.Add(new SBBlacksmith());
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
Item item = Utility.RandomBool() ? null : new RingmailChest();
|
||||
|
||||
if (item != null && !EquipItem(item))
|
||||
{
|
||||
item.Delete();
|
||||
item = null;
|
||||
}
|
||||
|
||||
if (item == null)
|
||||
AddItem(new FullApron());
|
||||
|
||||
AddItem(new Bascinet());
|
||||
AddItem(new SmithHammer());
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class FisherGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public FisherGuildmaster() : base("fisher")
|
||||
{
|
||||
SetSkill(SkillName.Fishing, 80.0, 100.0);
|
||||
}
|
||||
|
||||
public FisherGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.FishermensGuild;
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class HealerGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public HealerGuildmaster() : base("healer")
|
||||
{
|
||||
SetSkill(SkillName.Anatomy, 85.0, 100.0);
|
||||
SetSkill(SkillName.Healing, 90.0, 100.0);
|
||||
SetSkill(SkillName.Forensics, 75.0, 98.0);
|
||||
SetSkill(SkillName.MagicResist, 75.0, 98.0);
|
||||
SetSkill(SkillName.SpiritSpeak, 65.0, 88.0);
|
||||
}
|
||||
|
||||
public HealerGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.HealersGuild;
|
||||
|
||||
public override VendorShoeType ShoeType => VendorShoeType.Sandals;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
AddItem(new Robe(Utility.RandomYellowHue()));
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class MageGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public MageGuildmaster() : base("mage")
|
||||
{
|
||||
SetSkill(SkillName.EvalInt, 85.0, 100.0);
|
||||
SetSkill(SkillName.Inscribe, 65.0, 88.0);
|
||||
SetSkill(SkillName.MagicResist, 64.0, 100.0);
|
||||
SetSkill(SkillName.Magery, 90.0, 100.0);
|
||||
SetSkill(SkillName.Wrestling, 60.0, 83.0);
|
||||
SetSkill(SkillName.Meditation, 85.0, 100.0);
|
||||
SetSkill(SkillName.Macing, 36.0, 68.0);
|
||||
}
|
||||
|
||||
public MageGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
AddItem(new Robe(Utility.RandomBlueHue()));
|
||||
AddItem(new GnarledStaff());
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class MerchantGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public MerchantGuildmaster() : base("merchant")
|
||||
{
|
||||
SetSkill(SkillName.ItemID, 85.0, 100.0);
|
||||
SetSkill(SkillName.ArmsLore, 85.0, 100.0);
|
||||
}
|
||||
|
||||
public MerchantGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.MerchantsGuild;
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class MinerGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public MinerGuildmaster() : base("miner")
|
||||
{
|
||||
SetSkill(SkillName.ItemID, 60.0, 83.0);
|
||||
SetSkill(SkillName.Mining, 90.0, 100.0);
|
||||
}
|
||||
|
||||
public MinerGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.MinersGuild;
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class RangerGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public RangerGuildmaster() : base("ranger")
|
||||
{
|
||||
SetSkill(SkillName.AnimalLore, 64.0, 100.0);
|
||||
SetSkill(SkillName.Camping, 75.0, 98.0);
|
||||
SetSkill(SkillName.Hiding, 75.0, 98.0);
|
||||
SetSkill(SkillName.MagicResist, 75.0, 98.0);
|
||||
SetSkill(SkillName.Tactics, 65.0, 88.0);
|
||||
SetSkill(SkillName.Archery, 90.0, 100.0);
|
||||
SetSkill(SkillName.Tracking, 90.0, 100.0);
|
||||
SetSkill(SkillName.Stealth, 60.0, 83.0);
|
||||
SetSkill(SkillName.Fencing, 36.0, 68.0);
|
||||
SetSkill(SkillName.Herding, 36.0, 68.0);
|
||||
SetSkill(SkillName.Swords, 45.0, 68.0);
|
||||
}
|
||||
|
||||
public RangerGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.RangersGuild;
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class TailorGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public TailorGuildmaster() : base("tailor")
|
||||
{
|
||||
SetSkill(SkillName.Tailoring, 90.0, 100.0);
|
||||
}
|
||||
|
||||
public TailorGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.TailorsGuild;
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class ThiefGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public ThiefGuildmaster() : base("thief")
|
||||
{
|
||||
SetSkill(SkillName.DetectHidden, 75.0, 98.0);
|
||||
SetSkill(SkillName.Hiding, 65.0, 88.0);
|
||||
SetSkill(SkillName.Lockpicking, 85.0, 100.0);
|
||||
SetSkill(SkillName.Snooping, 90.0, 100.0);
|
||||
SetSkill(SkillName.Poisoning, 60.0, 83.0);
|
||||
SetSkill(SkillName.Stealing, 90.0, 100.0);
|
||||
SetSkill(SkillName.Fencing, 75.0, 98.0);
|
||||
SetSkill(SkillName.Stealth, 85.0, 100.0);
|
||||
SetSkill(SkillName.RemoveTrap, 85.0, 100.0);
|
||||
}
|
||||
|
||||
public ThiefGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.ThievesGuild;
|
||||
|
||||
public override TimeSpan JoinAge => TimeSpan.FromDays(7.0);
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
if (Utility.RandomBool())
|
||||
AddItem(new Kryss());
|
||||
else
|
||||
AddItem(new Dagger());
|
||||
}
|
||||
|
||||
public override bool CheckCustomReqs(PlayerMobile pm)
|
||||
{
|
||||
if (pm.Young)
|
||||
{
|
||||
SayTo(pm, 502089); // You cannot be a member of the Thieves' Guild while you are Young.
|
||||
return false;
|
||||
}
|
||||
|
||||
if (pm.Kills > 0)
|
||||
{
|
||||
SayTo(pm, 501050); // This guild is for cunning thieves, not oafish cutthroats.
|
||||
return false;
|
||||
}
|
||||
|
||||
if (pm.Skills.Stealing.Base < 60.0)
|
||||
{
|
||||
SayTo(pm, 501051); // You must be at least a journeyman pickpocket to join this elite organization.
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void SayWelcomeTo(Mobile m)
|
||||
{
|
||||
SayTo(m, 1008053); // Welcome to the guild! Stay to the shadows, friend.
|
||||
}
|
||||
|
||||
public override bool HandlesOnSpeech(Mobile from)
|
||||
{
|
||||
if (from.InRange(Location, 2))
|
||||
return true;
|
||||
|
||||
return base.HandlesOnSpeech(from);
|
||||
}
|
||||
|
||||
public override void OnSpeech(SpeechEventArgs e)
|
||||
{
|
||||
Mobile from = e.Mobile;
|
||||
|
||||
if (!e.Handled && from is PlayerMobile pm && pm.InRange(Location, 2) && e.HasKeyword(0x1F)) // *disguise*
|
||||
{
|
||||
if (pm.NpcGuild == NpcGuild.ThievesGuild)
|
||||
SayTo(pm, 501839); // That particular item costs 700 gold pieces.
|
||||
else
|
||||
SayTo(pm, 501838); // I don't know what you're talking about.
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
base.OnSpeech(e);
|
||||
}
|
||||
|
||||
public override bool OnGoldGiven(Mobile from, Gold dropped)
|
||||
{
|
||||
if (from is PlayerMobile pm && dropped.Amount == 700)
|
||||
{
|
||||
if (pm.NpcGuild == NpcGuild.ThievesGuild)
|
||||
{
|
||||
pm.AddToBackpack(new DisguiseKit());
|
||||
|
||||
dropped.Delete();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return base.OnGoldGiven(from, dropped);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.ContextMenus;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class TinkerGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public TinkerGuildmaster() : base("tinker")
|
||||
{
|
||||
SetSkill(SkillName.Lockpicking, 65.0, 88.0);
|
||||
SetSkill(SkillName.Tinkering, 90.0, 100.0);
|
||||
SetSkill(SkillName.RemoveTrap, 85.0, 100.0);
|
||||
}
|
||||
|
||||
public TinkerGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.TinkersGuild;
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public override void AddCustomContextEntries(Mobile from, List<ContextMenuEntry> list)
|
||||
{
|
||||
if (Core.ML && from.Alive)
|
||||
{
|
||||
RechargeEntry entry = new RechargeEntry(from, this);
|
||||
|
||||
if (WeaponEngravingTool.Find(from) == null)
|
||||
entry.Enabled = false;
|
||||
|
||||
list.Add(entry);
|
||||
}
|
||||
|
||||
base.AddCustomContextEntries(from, list);
|
||||
}
|
||||
|
||||
private class RechargeEntry : ContextMenuEntry
|
||||
{
|
||||
private Mobile m_From;
|
||||
private Mobile m_Vendor;
|
||||
|
||||
public RechargeEntry(Mobile from, Mobile vendor) : base(6271, 6)
|
||||
{
|
||||
m_From = from;
|
||||
m_Vendor = vendor;
|
||||
}
|
||||
|
||||
public override void OnClick()
|
||||
{
|
||||
if (!Core.ML || m_Vendor?.Deleted != false)
|
||||
return;
|
||||
|
||||
WeaponEngravingTool tool = WeaponEngravingTool.Find(m_From);
|
||||
|
||||
if (tool?.UsesRemaining <= 0)
|
||||
{
|
||||
if (Banker.GetBalance(m_From) >= 100000)
|
||||
m_From.SendGump(new WeaponEngravingTool.ConfirmGump(tool, m_Vendor));
|
||||
else
|
||||
m_Vendor.Say(1076167); // You need a 100,000 gold and a blue diamond to recharge the weapon engraver.
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Vendor.Say(
|
||||
1076164); // I can only help with this if you are carrying an engraving tool that needs repair.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class WarriorGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public WarriorGuildmaster() : base("warrior")
|
||||
{
|
||||
SetSkill(SkillName.ArmsLore, 75.0, 98.0);
|
||||
SetSkill(SkillName.Parry, 85.0, 100.0);
|
||||
SetSkill(SkillName.MagicResist, 60.0, 83.0);
|
||||
SetSkill(SkillName.Tactics, 85.0, 100.0);
|
||||
SetSkill(SkillName.Swords, 90.0, 100.0);
|
||||
SetSkill(SkillName.Macing, 60.0, 83.0);
|
||||
SetSkill(SkillName.Fencing, 60.0, 83.0);
|
||||
}
|
||||
|
||||
public WarriorGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.WarriorsGuild;
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue