Overwrite

Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
Unstable Kitsune
2023-11-28 23:20:26 -05:00
parent 3cd54811de
commit b918192e4e
11608 changed files with 2644205 additions and 47 deletions

View File

@@ -0,0 +1,726 @@
#region Header
// _,-'/-'/
// . __,-; ,'( '/
// \. `-.__`-._`:_,-._ _ , . ``
// `:-._,------' ` _,`--` -: `_ , ` ,' :
// `---..__,,--' (C) 2023 ` -'. -'
// # Vita-Nex [http://core.vita-nex.com] #
// {o)xxx|===============- # -===============|xxx(o}
// # #
#endregion
#region References
using System;
using System.Collections.Generic;
using System.Drawing;
using Server;
using Server.Items;
using Server.Mobiles;
using Server.Targeting;
using VitaNex.Network;
using VitaNex.SuperGumps.UI;
using VitaNex.Targets;
#endregion
namespace VitaNex.Items
{
public static class HueDeeds
{
public static event Action<IHueDeed> OnCreated;
public static void Register<T>(Action<T> onCreated)
where T : IHueDeed
{
OnCreated += o =>
{
if (o is T d)
{
onCreated(d);
}
};
}
public static void InvokeCreated(IHueDeed d)
{
if (OnCreated != null)
{
OnCreated(d);
}
}
}
public interface IHueDeed
{
List<int> Hues { get; }
void AddHue(int hue);
void AddHues(params int[] hues);
void AddHueRange(int hue, int count);
}
public abstract class BaseHueDeed<TEntity> : Item, IHueDeed
where TEntity : IEntity
{
private HueSelector _Gump;
private GenericSelectTarget<TEntity> _Target;
public List<int> Hues { get; private set; }
public virtual string TargetUsage => "an object";
public BaseHueDeed()
: base(0x14F0)
{
Hues = new List<int>();
Name = "Color Change Deed";
Weight = 1.0;
LootType = LootType.Blessed;
Timer.DelayCall(HueDeeds.InvokeCreated, this);
}
public BaseHueDeed(Serial serial)
: base(serial)
{ }
public void AddHue(int hue)
{
Hues.Update(hue);
}
public void AddHues(params int[] hues)
{
if (hues == null || hues.Length == 0)
{
return;
}
foreach (var h in hues)
{
AddHue(h);
}
}
public void AddHueRange(int hue, int count)
{
count = Math.Max(0, count);
while (--count >= 0)
{
AddHue(hue++);
}
}
public override void GetProperties(ObjectPropertyList list)
{
base.GetProperties(list);
ExtendedOPL.AddTo(list, "Use: Change the color of {0}".WrapUOHtmlColor(Color.LawnGreen), TargetUsage);
}
public override void OnDoubleClick(Mobile m)
{
if (this.CheckDoubleClick(m, true, false, 2, true))
{
BeginTarget(m);
}
}
protected virtual void BeginTarget(Mobile m)
{
if (_Target != null)
{
if (_Target.User != null && _Target.User.Target == _Target)
{
_Target.Cancel(_Target.User, TargetCancelType.Overriden);
}
_Target = null;
}
m.SendMessage("Target an object to recolor...");
_Target = new GenericSelectTarget<TEntity>(
(u, t) =>
{
_Target = null;
OpenGump(u, t);
},
u =>
{
OnTargetFail(u);
_Target = null;
});
m.Target = _Target;
}
protected virtual void OnTargetFail(Mobile m)
{
if (_Target.User == m && _Target.Result == TargetResult.Invalid)
{
m.SendMessage("That is not a valid target.");
}
}
protected virtual void OpenGump(Mobile m, TEntity t)
{
if (_Gump != null)
{
_Gump.Close();
_Gump = null;
}
m.SendMessage("Select a color from the chart...");
_Gump = new HueSelector(m)
{
PreviewIcon = GetPreviewIcon(t),
Hues = Hues.ToArray(),
AcceptCallback = hue =>
{
_Gump = null;
ApplyHue(m, t, hue);
},
CancelCallback = hue => _Gump = null
};
_Gump.Send();
}
public virtual int GetPreviewIcon(TEntity t)
{
return HueSelector.DefaultIcon;
}
protected virtual void ApplyHue(Mobile m, TEntity t, int hue)
{
if (m == null || t == null)
{
return;
}
if (hue < 0 || hue >= 3000)
{
m.SendMessage(0x22, "You cannot use an invalid hue.");
OpenGump(m, t);
return;
}
var item = t as Item;
if (item != null)
{
if (item.Hue == hue)
{
m.SendMessage(0x22, "The item is already that color.");
OpenGump(m, t);
return;
}
item.Hue = hue;
m.SendMessage(0x55, "The item has been recolored.");
Delete();
return;
}
var mob = t as Mobile;
if (mob != null)
{
if (mob.Hue == hue)
{
m.SendMessage(0x22, "{0} skin is already that color.", mob == m ? "Your" : "Their");
OpenGump(m, t);
return;
}
mob.Hue = hue;
m.SendMessage(0x55, "{0} skin has been recolored.", mob == m ? "Your" : "Their");
Delete();
return;
}
m.SendMessage(0x22, "Could not recolor that object.");
}
public override void OnDelete()
{
base.OnDelete();
_Gump = null;
_Target = null;
Hues.Free(true);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
writer.WriteList(Hues, writer.Write);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
Hues = reader.ReadList(reader.ReadInt);
}
}
public abstract class ItemHueDeed<TItem> : BaseHueDeed<TItem>
where TItem : Item
{
public override string TargetUsage => "an item";
public ItemHueDeed()
{ }
public ItemHueDeed(Serial serial)
: base(serial)
{ }
protected override void OpenGump(Mobile m, TItem t)
{
if (m == null || t == null)
{
return;
}
if (m.AccessLevel < AccessLevel.GameMaster)
{
if (!t.Movable && !t.IsAccessibleTo(m))
{
m.SendMessage("That item is not accessible.");
return;
}
if (!t.IsChildOf(m.Backpack) && t.RootParent != m)
{
m.SendMessage("That item must be equipped or in your pack to recolor it.");
return;
}
}
base.OpenGump(m, t);
}
public override int GetPreviewIcon(TItem t)
{
return t == null ? HueSelector.DefaultIcon : t.ItemID;
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public abstract class MobileHueDeed<TMobile> : BaseHueDeed<TMobile>
where TMobile : Mobile
{
public override string TargetUsage => "a mobile";
public MobileHueDeed()
{ }
public MobileHueDeed(Serial serial)
: base(serial)
{ }
protected override void OpenGump(Mobile m, TMobile t)
{
if (m == null || t == null)
{
return;
}
if (m.AccessLevel < t.AccessLevel)
{
m.SendMessage("They are not accessible.");
return;
}
base.OpenGump(m, t);
}
public override int GetPreviewIcon(TMobile t)
{
return t == null ? HueSelector.DefaultIcon : ShrinkTable.Lookup(t);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class SkinHueDeed : MobileHueDeed<PlayerMobile>
{
public override string TargetUsage => "your character";
[Constructable]
public SkinHueDeed()
{
Name = "Skin Recolor Deed";
AddHueRange(1002, 57);
}
public SkinHueDeed(Serial serial)
: base(serial)
{ }
protected override void BeginTarget(Mobile m)
{
OpenGump(m, m as PlayerMobile);
}
protected override void OpenGump(Mobile m, PlayerMobile t)
{
if (m == null || t == null)
{
return;
}
if (m.AccessLevel < AccessLevel.GameMaster)
{
if (m != t)
{
m.SendMessage("You can only recolor your own skin.");
return;
}
}
base.OpenGump(m, t);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class PetHueDeed : MobileHueDeed<BaseCreature>
{
public override string TargetUsage => "your pet";
[Constructable]
public PetHueDeed()
{
Name = "Pet Recolor Deed";
AddHueRange(2301, 18);
}
public PetHueDeed(Serial serial)
: base(serial)
{ }
protected override void OpenGump(Mobile m, BaseCreature t)
{
if (m == null || t == null)
{
return;
}
if (m.AccessLevel < AccessLevel.GameMaster)
{
if (t.GetMaster() != m)
{
m.SendMessage("You can only recolor the skin of pets that you own.");
return;
}
}
base.OpenGump(m, t);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class WeaponHueDeed : ItemHueDeed<BaseWeapon>
{
public override string TargetUsage => "a weapon";
[Constructable]
public WeaponHueDeed()
{
Name = "Weapon Recolor Deed";
AddHueRange(2401, 30);
}
public WeaponHueDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class ArmorHueDeed : ItemHueDeed<BaseArmor>
{
public override string TargetUsage => "armor";
[Constructable]
public ArmorHueDeed()
{
Name = "Armor Recolor Deed";
AddHueRange(2401, 30);
}
public ArmorHueDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class ClothingHueDeed : ItemHueDeed<BaseClothing>
{
public override string TargetUsage => "clothing";
[Constructable]
public ClothingHueDeed()
{
Name = "Clothing Recolor Deed";
AddHueRange(2, 1000);
}
public ClothingHueDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class JewelHueDeed : ItemHueDeed<BaseJewel>
{
public override string TargetUsage => "your jewelry";
[Constructable]
public JewelHueDeed()
{
Name = "Jewelry Recolor Deed";
AddHueRange(2401, 30);
}
public JewelHueDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class QuiverHueDeed : ItemHueDeed<BaseQuiver>
{
public override string TargetUsage => "your quiver";
[Constructable]
public QuiverHueDeed()
{
Name = "Quiver Recolor Deed";
AddHueRange(2, 1000);
}
public QuiverHueDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class LightHueDeed : ItemHueDeed<BaseEquipableLight>
{
public override string TargetUsage => "your light source";
[Constructable]
public LightHueDeed()
{
Name = "Light Source Recolor Deed";
AddHueRange(2401, 30);
}
public LightHueDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class SpellbookHueDeed : ItemHueDeed<Spellbook>
{
public override string TargetUsage => "your spellbook";
[Constructable]
public SpellbookHueDeed()
{
Name = "Spellbook Recolor Deed";
AddHueRange(2, 1000);
}
public SpellbookHueDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class ContainerHueDeed : ItemHueDeed<Container>
{
public override string TargetUsage => "a container";
[Constructable]
public ContainerHueDeed()
{
Name = "Container Recolor Deed";
AddHueRange(2, 1000);
}
public ContainerHueDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
}

View File

@@ -0,0 +1,723 @@
#region Header
// _,-'/-'/
// . __,-; ,'( '/
// \. `-.__`-._`:_,-._ _ , . ``
// `:-._,------' ` _,`--` -: `_ , ` ,' :
// `---..__,,--' (C) 2023 ` -'. -'
// # Vita-Nex [http://core.vita-nex.com] #
// {o)xxx|===============- # -===============|xxx(o}
// # #
#endregion
#region References
using System;
using System.Collections.Generic;
using System.Drawing;
using Server;
using Server.Items;
using Server.Misc;
using Server.Mobiles;
using Server.Targeting;
using VitaNex.Network;
using VitaNex.SuperGumps;
using VitaNex.SuperGumps.UI;
using VitaNex.Targets;
#endregion
namespace VitaNex.Items
{
public static class NameDeeds
{
public static event Action<INameDeed> OnCreated;
public static void Register<T>(Action<T> onCreated)
where T : INameDeed
{
OnCreated += o =>
{
if (o is T d)
{
onCreated(d);
}
};
}
public static void InvokeCreated(INameDeed d)
{
if (OnCreated != null)
{
OnCreated(d);
}
}
}
public interface INameDeed
{
List<string> Names { get; }
void AddName(string name);
void AddNames(params string[] names);
}
public abstract class BaseNameDeed<TEntity> : Item, INameDeed
where TEntity : IEntity
{
private SuperGump _Gump;
private GenericSelectTarget<TEntity> _Target;
public List<string> Names { get; private set; }
public virtual string TargetUsage => "an object";
public BaseNameDeed()
: base(0x14F0)
{
Names = new List<string>();
Name = "Rename Deed";
Weight = 1.0;
LootType = LootType.Blessed;
Timer.DelayCall(NameDeeds.InvokeCreated, this);
}
public BaseNameDeed(Serial serial)
: base(serial)
{ }
public void AddName(string name)
{
Names.Update(name);
}
public void AddNames(params string[] names)
{
if (names == null || names.Length == 0)
{
return;
}
foreach (var n in names)
{
AddName(n);
}
}
public override void GetProperties(ObjectPropertyList list)
{
base.GetProperties(list);
new ExtendedOPL(list)
{
{"Use: Change the name of {0}".WrapUOHtmlColor(Color.LawnGreen), TargetUsage}
}.Apply();
}
public override void OnDoubleClick(Mobile m)
{
if (this.CheckDoubleClick(m, true, false, 2, true))
{
BeginTarget(m);
}
}
protected virtual void BeginTarget(Mobile m)
{
if (_Target != null)
{
if (_Target.User != null && _Target.User.Target == _Target)
{
_Target.Cancel(_Target.User, TargetCancelType.Overriden);
}
_Target = null;
}
m.SendMessage("Target an object to rename...");
_Target = new GenericSelectTarget<TEntity>(
(u, t) =>
{
_Target = null;
OpenGump(u, t);
},
u =>
{
OnTargetFail(u);
_Target = null;
});
m.Target = _Target;
}
protected virtual void OnTargetFail(Mobile m)
{
if (_Target.User == m && _Target.Result == TargetResult.Invalid)
{
m.SendMessage("That is not a valid target.");
}
}
protected virtual void OpenGump(Mobile m, TEntity t)
{
if (_Gump != null)
{
_Gump.Close();
_Gump = null;
}
if (Names != null && Names.Count > 0)
{
m.SendMessage("Select a name from the registry...");
var opts = new MenuGumpOptions();
foreach (var name in Names.OrderByNatural())
{
var n = name;
opts.AppendEntry(
new ListGumpEntry(
n,
() =>
{
_Gump = null;
ApplyName(m, t, n);
}));
}
var menu = new MenuGump(m, null, opts);
menu.OnActionClose += HandleGumpClose;
_Gump = menu.Send();
}
else
{
string name;
int limit;
if (t is Item)
{
name = (t as Item).Name;
limit = 20;
}
else if (t is Mobile)
{
name = (t as Mobile).RawName;
limit = 20;
}
else
{
name = String.Empty;
limit = 0;
}
var dialog = new InputDialogGump(m)
{
Title = "Name Selection",
Html = "Type the name you wish to use and click OK to accept.",
InputText = name ?? String.Empty,
Limit = limit,
Callback = (b, n) =>
{
_Gump = null;
ApplyName(m, t, n);
}
};
dialog.OnActionClose += HandleGumpClose;
_Gump = dialog.Send();
}
}
private void HandleGumpClose(SuperGump g, bool all)
{
if (_Gump == g && all)
{
_Gump.OnActionClose -= HandleGumpClose;
_Gump = null;
}
}
protected virtual void ApplyName(Mobile m, TEntity t, string name)
{
if (m == null || t == null)
{
return;
}
if (String.IsNullOrWhiteSpace(name))
{
m.SendMessage(0x22, "You cannot use a blank name.");
OpenGump(m, t);
return;
}
name = Utility.FixHtml(name.Trim());
if (!NameVerification.Validate(name, 2, 20, true, t is Item, true, 1, NameVerification.SpaceDashPeriodQuote))
{
m.SendMessage(0x22, "That name is unacceptable.");
OpenGump(m, t);
return;
}
var item = t as Item;
if (item != null)
{
if (item.Name == name)
{
m.SendMessage(0x22, "The item is already named {0}.", name);
OpenGump(m, t);
return;
}
item.Name = name;
m.SendMessage(0x55, "The item has been renamed.");
Delete();
return;
}
var mob = t as Mobile;
if (mob != null)
{
if (mob.RawName == name)
{
m.SendMessage(0x22, "{0} are already named {1}.", mob == m ? "You" : "They", name);
OpenGump(m, t);
return;
}
mob.RawName = name;
m.SendMessage(0x55, "{0} name has been changed.", mob == m ? "Your" : "Their");
Delete();
if (mob is PlayerMobile)
{
var pm = (PlayerMobile)mob;
PlayerNames.Register(pm);
PlayerNames.ValidateSharedName(pm);
}
return;
}
m.SendMessage(0x22, "Could not rename that object.");
}
public override void OnDelete()
{
base.OnDelete();
_Gump = null;
_Target = null;
Names.Free(true);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
writer.WriteList(Names, writer.Write);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
Names = reader.ReadList(reader.ReadString);
}
}
public abstract class ItemNameDeed<TItem> : BaseNameDeed<TItem>
where TItem : Item
{
public override string TargetUsage => "an item";
public ItemNameDeed()
{ }
public ItemNameDeed(Serial serial)
: base(serial)
{ }
protected override void OpenGump(Mobile m, TItem t)
{
if (m == null || t == null)
{
return;
}
if (m.AccessLevel < AccessLevel.GameMaster)
{
if (!t.Movable && !t.IsAccessibleTo(m))
{
m.SendMessage("That item is not accessible.");
return;
}
if (!t.IsChildOf(m.Backpack) && t.RootParent != m)
{
m.SendMessage("That item must be equipped or in your pack to rename it.");
return;
}
}
base.OpenGump(m, t);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public abstract class MobileNameDeed<TMobile> : BaseNameDeed<TMobile>
where TMobile : Mobile
{
public override string TargetUsage => "a mobile";
public MobileNameDeed()
{ }
public MobileNameDeed(Serial serial)
: base(serial)
{ }
protected override void OpenGump(Mobile m, TMobile t)
{
if (m == null || t == null)
{
return;
}
if (m.AccessLevel < t.AccessLevel)
{
m.SendMessage("They are not accessible.");
return;
}
base.OpenGump(m, t);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class PlayerNameDeed : MobileNameDeed<PlayerMobile>
{
public override string TargetUsage => "your character";
[Constructable]
public PlayerNameDeed()
{
Name = "Player Rename Deed";
}
public PlayerNameDeed(Serial serial)
: base(serial)
{ }
protected override void BeginTarget(Mobile m)
{
OpenGump(m, m as PlayerMobile);
}
protected override void OpenGump(Mobile m, PlayerMobile t)
{
if (m == null || t == null)
{
return;
}
if (m.AccessLevel < AccessLevel.GameMaster)
{
if (m != t)
{
m.SendMessage("You can only change your own name.");
return;
}
}
base.OpenGump(m, t);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class WeaponNameDeed : ItemNameDeed<BaseWeapon>
{
public override string TargetUsage => "your weapon";
[Constructable]
public WeaponNameDeed()
{
Name = "Weapon Rename Deed";
}
public WeaponNameDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class ArmorNameDeed : ItemNameDeed<BaseArmor>
{
public override string TargetUsage => "your armor";
[Constructable]
public ArmorNameDeed()
{
Name = "Armor Rename Deed";
}
public ArmorNameDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class ClothingNameDeed : ItemNameDeed<BaseClothing>
{
public override string TargetUsage => "your clothing";
[Constructable]
public ClothingNameDeed()
{
Name = "Clothing Rename Deed";
}
public ClothingNameDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class JewelNameDeed : ItemNameDeed<BaseJewel>
{
public override string TargetUsage => "your jewelry";
[Constructable]
public JewelNameDeed()
{
Name = "Jewelry Rename Deed";
}
public JewelNameDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class QuiverNameDeed : ItemNameDeed<BaseQuiver>
{
public override string TargetUsage => "your quiver";
[Constructable]
public QuiverNameDeed()
{
Name = "Quiver Rename Deed";
}
public QuiverNameDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class LightNameDeed : ItemNameDeed<BaseEquipableLight>
{
public override string TargetUsage => "your light source";
[Constructable]
public LightNameDeed()
{
Name = "Light Source Rename Deed";
}
public LightNameDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class SpellbookNameDeed : ItemNameDeed<Spellbook>
{
public override string TargetUsage => "your spellbook";
[Constructable]
public SpellbookNameDeed()
{
Name = "Spellbook Rename Deed";
}
public SpellbookNameDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
public class ContainerNameDeed : ItemNameDeed<Container>
{
public override string TargetUsage => "a container";
[Constructable]
public ContainerNameDeed()
{
Name = "Container Rename Deed";
}
public ContainerNameDeed(Serial serial)
: base(serial)
{ }
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.SetVersion(0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
reader.GetVersion();
}
}
}