fix: Codegens heritage items (#1364)

This commit is contained in:
Kamron Batman 2023-03-07 21:29:13 -08:00 committed by GitHub
parent 82b5fa6af3
commit f1e8d4c6f7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
113 changed files with 1830 additions and 2840 deletions

View file

@ -1,58 +1,25 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class AppleTrunkAddon : BaseAddon
{
public class AppleTrunkAddon : BaseAddon
[Constructible]
public AppleTrunkAddon()
{
[Constructible]
public AppleTrunkAddon()
{
AddComponent(new LocalizedAddonComponent(0xD98, 1076785), 0, 0, 0);
}
public AppleTrunkAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new AppleTrunkDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0xD98, 1076785), 0, 0, 0);
}
public class AppleTrunkDeed : BaseAddonDeed
{
[Constructible]
public AppleTrunkDeed() => LootType = LootType.Blessed;
public AppleTrunkDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new AppleTrunkAddon();
public override int LabelNumber => 1076785; // Apple Trunk
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new AppleTrunkDeed();
}
[SerializationGenerator(0)]
public partial class AppleTrunkDeed : BaseAddonDeed
{
[Constructible]
public AppleTrunkDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new AppleTrunkAddon();
public override int LabelNumber => 1076785; // Apple Trunk
}

View file

@ -1,66 +1,33 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class BlueDecorativeRugAddon : BaseAddon
{
public class BlueDecorativeRugAddon : BaseAddon
[Constructible]
public BlueDecorativeRugAddon()
{
[Constructible]
public BlueDecorativeRugAddon()
{
AddComponent(new LocalizedAddonComponent(0xAD2, 1076589), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAD3, 1076589), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAD4, 1076589), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAD5, 1076589), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAD6, 1076589), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAD7, 1076589), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAD8, 1076589), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAD9, 1076589), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAD1, 1076589), 0, 0, 0);
}
public BlueDecorativeRugAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new BlueDecorativeRugDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0xAD2, 1076589), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAD3, 1076589), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAD4, 1076589), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAD5, 1076589), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAD6, 1076589), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAD7, 1076589), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAD8, 1076589), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAD9, 1076589), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAD1, 1076589), 0, 0, 0);
}
public class BlueDecorativeRugDeed : BaseAddonDeed
{
[Constructible]
public BlueDecorativeRugDeed() => LootType = LootType.Blessed;
public BlueDecorativeRugDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new BlueDecorativeRugAddon();
public override int LabelNumber => 1076589; // Blue decorative rug
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new BlueDecorativeRugDeed();
}
[SerializationGenerator(0)]
public partial class BlueDecorativeRugDeed : BaseAddonDeed
{
[Constructible]
public BlueDecorativeRugDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new BlueDecorativeRugAddon();
public override int LabelNumber => 1076589; // Blue decorative rug
}

View file

@ -1,66 +1,33 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class BlueFancyRugAddon : BaseAddon
{
public class BlueFancyRugAddon : BaseAddon
[Constructible]
public BlueFancyRugAddon()
{
[Constructible]
public BlueFancyRugAddon()
{
AddComponent(new LocalizedAddonComponent(0xAC2, 1076273), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAC3, 1076273), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAC4, 1076273), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAC5, 1076273), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF6, 1076273), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAF7, 1076273), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF8, 1076273), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAF9, 1076273), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAFA, 1076273), 0, 0, 0);
}
public BlueFancyRugAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new BlueFancyRugDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0xAC2, 1076273), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAC3, 1076273), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAC4, 1076273), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAC5, 1076273), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF6, 1076273), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAF7, 1076273), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF8, 1076273), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAF9, 1076273), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAFA, 1076273), 0, 0, 0);
}
public class BlueFancyRugDeed : BaseAddonDeed
{
[Constructible]
public BlueFancyRugDeed() => LootType = LootType.Blessed;
public BlueFancyRugDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new BlueFancyRugAddon();
public override int LabelNumber => 1076273; // Blue fancy rug
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new BlueFancyRugDeed();
}
[SerializationGenerator(0)]
public partial class BlueFancyRugDeed : BaseAddonDeed
{
[Constructible]
public BlueFancyRugDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new BlueFancyRugAddon();
public override int LabelNumber => 1076273; // Blue fancy rug
}

View file

@ -1,66 +1,33 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class BluePlainRugAddon : BaseAddon
{
public class BluePlainRugAddon : BaseAddon
[Constructible]
public BluePlainRugAddon()
{
[Constructible]
public BluePlainRugAddon()
{
AddComponent(new LocalizedAddonComponent(0xAC2, 1076585), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAC3, 1076585), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAC4, 1076585), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAC5, 1076585), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF6, 1076585), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAF7, 1076585), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF8, 1076585), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAF9, 1076585), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAC0, 1076585), 0, 0, 0);
}
public BluePlainRugAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new BluePlainRugDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0xAC2, 1076585), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAC3, 1076585), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAC4, 1076585), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAC5, 1076585), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF6, 1076585), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAF7, 1076585), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF8, 1076585), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAF9, 1076585), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAC0, 1076585), 0, 0, 0);
}
public class BluePlainRugDeed : BaseAddonDeed
{
[Constructible]
public BluePlainRugDeed() => LootType = LootType.Blessed;
public BluePlainRugDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new BluePlainRugAddon();
public override int LabelNumber => 1076585; // Blue plain rug
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new BluePlainRugDeed();
}
[SerializationGenerator(0)]
public partial class BluePlainRugDeed : BaseAddonDeed
{
[Constructible]
public BluePlainRugDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new BluePlainRugAddon();
public override int LabelNumber => 1076585; // Blue plain rug
}

View file

@ -1,63 +1,30 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[Flippable(0x2068, 0x207A)]
[SerializationGenerator(0)]
public partial class BoilingCauldronAddon : BaseAddonContainer
{
[Flippable(0x2068, 0x207A)]
public class BoilingCauldronAddon : BaseAddonContainer
[Constructible]
public BoilingCauldronAddon() : base(0x2068)
{
[Constructible]
public BoilingCauldronAddon() : base(0x2068)
{
AddComponent(new LocalizedContainerComponent(0xFAC, 1076267), 0, 0, 0);
AddComponent(new LocalizedContainerComponent(0x970, 1076267), 0, 0, 8);
}
public BoilingCauldronAddon(Serial serial) : base(serial)
{
}
public override BaseAddonContainerDeed Deed => new BoilingCauldronDeed();
public override int LabelNumber => 1076267; // Boiling Cauldron
public override int DefaultGumpID => 0x9;
public override int DefaultDropSound => 0x42;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedContainerComponent(0xFAC, 1076267), 0, 0, 0);
AddComponent(new LocalizedContainerComponent(0x970, 1076267), 0, 0, 8);
}
public class BoilingCauldronDeed : BaseAddonContainerDeed
{
[Constructible]
public BoilingCauldronDeed() => LootType = LootType.Blessed;
public BoilingCauldronDeed(Serial serial) : base(serial)
{
}
public override BaseAddonContainer Addon => new BoilingCauldronAddon();
public override int LabelNumber => 1076267; // Boiling Cauldron
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonContainerDeed Deed => new BoilingCauldronDeed();
public override int LabelNumber => 1076267; // Boiling Cauldron
public override int DefaultGumpID => 0x9;
public override int DefaultDropSound => 0x42;
}
[SerializationGenerator(0)]
public partial class BoilingCauldronDeed : BaseAddonContainerDeed
{
[Constructible]
public BoilingCauldronDeed() => LootType = LootType.Blessed;
public override BaseAddonContainer Addon => new BoilingCauldronAddon();
public override int LabelNumber => 1076267; // Boiling Cauldron
}

View file

@ -1,59 +1,26 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class CherryBlossomTreeAddon : BaseAddon
{
public class CherryBlossomTreeAddon : BaseAddon
[Constructible]
public CherryBlossomTreeAddon()
{
[Constructible]
public CherryBlossomTreeAddon()
{
AddComponent(new LocalizedAddonComponent(0x26EE, 1076268), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x3122, 1076268), 0, 0, 0);
}
public CherryBlossomTreeAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new CherryBlossomTreeDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0x26EE, 1076268), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x3122, 1076268), 0, 0, 0);
}
public class CherryBlossomTreeDeed : BaseAddonDeed
{
[Constructible]
public CherryBlossomTreeDeed() => LootType = LootType.Blessed;
public CherryBlossomTreeDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new CherryBlossomTreeAddon();
public override int LabelNumber => 1076268; // Cherry Blossom Tree
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new CherryBlossomTreeDeed();
}
[SerializationGenerator(0)]
public partial class CherryBlossomTreeDeed : BaseAddonDeed
{
[Constructible]
public CherryBlossomTreeDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new CherryBlossomTreeAddon();
public override int LabelNumber => 1076268; // Cherry Blossom Tree
}

View file

@ -1,58 +1,25 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class CherryBlossomTrunkAddon : BaseAddon
{
public class CherryBlossomTrunkAddon : BaseAddon
[Constructible]
public CherryBlossomTrunkAddon()
{
[Constructible]
public CherryBlossomTrunkAddon()
{
AddComponent(new LocalizedAddonComponent(0x26EE, 1076784), 0, 0, 0);
}
public CherryBlossomTrunkAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new CherryBlossomTrunkDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0x26EE, 1076784), 0, 0, 0);
}
public class CherryBlossomTrunkDeed : BaseAddonDeed
{
[Constructible]
public CherryBlossomTrunkDeed() => LootType = LootType.Blessed;
public CherryBlossomTrunkDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new CherryBlossomTrunkAddon();
public override int LabelNumber => 1076784; // Cherry Blossom Trunk
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new CherryBlossomTrunkDeed();
}
[SerializationGenerator(0)]
public partial class CherryBlossomTrunkDeed : BaseAddonDeed
{
[Constructible]
public CherryBlossomTrunkDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new CherryBlossomTrunkAddon();
public override int LabelNumber => 1076784; // Cherry Blossom Trunk
}

View file

@ -1,66 +1,33 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class CinnamonFancyRugAddon : BaseAddon
{
public class CinnamonFancyRugAddon : BaseAddon
[Constructible]
public CinnamonFancyRugAddon()
{
[Constructible]
public CinnamonFancyRugAddon()
{
AddComponent(new LocalizedAddonComponent(0xAE3, 1076587), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAE4, 1076587), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAE5, 1076587), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAE6, 1076587), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAE7, 1076587), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAE8, 1076587), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAE9, 1076587), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAEA, 1076587), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAEB, 1076587), 0, 0, 0);
}
public CinnamonFancyRugAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new CinnamonFancyRugDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0xAE3, 1076587), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAE4, 1076587), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAE5, 1076587), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAE6, 1076587), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAE7, 1076587), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAE8, 1076587), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAE9, 1076587), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAEA, 1076587), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAEB, 1076587), 0, 0, 0);
}
public class CinnamonFancyRugDeed : BaseAddonDeed
{
[Constructible]
public CinnamonFancyRugDeed() => LootType = LootType.Blessed;
public CinnamonFancyRugDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new CinnamonFancyRugAddon();
public override int LabelNumber => 1076587; // Cinnamon fancy rug
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new CinnamonFancyRugDeed();
}
[SerializationGenerator(0)]
public partial class CinnamonFancyRugDeed : BaseAddonDeed
{
[Constructible]
public CinnamonFancyRugDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new CinnamonFancyRugAddon();
public override int LabelNumber => 1076587; // Cinnamon fancy rug
}

View file

@ -1,203 +1,147 @@
using ModernUO.Serialization;
using Server.Gumps;
using Server.Network;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0)]
public partial class CurtainsComponent : AddonComponent, IDyable
{
public class CurtainsComponent : AddonComponent, IDyable
[SerializableField(0)]
[SerializedCommandProperty(AccessLevel.GameMaster)]
private int _closedId;
public CurtainsComponent(int itemID, int closedID) : base(itemID) => _closedId = closedID;
public override int LabelNumber => 1076280; // Curtains
public override bool DisplayWeight => false;
public virtual bool Dye(Mobile from, DyeTub sender)
{
public CurtainsComponent(int itemID, int closedID) : base(itemID) => ClosedID = closedID;
public CurtainsComponent(Serial serial) : base(serial)
if (Deleted)
{
return false;
}
public override int LabelNumber => 1076280; // Curtains
public override bool DisplayWeight => false;
Hue = sender.DyedHue;
return true;
}
[CommandProperty(AccessLevel.GameMaster)]
public int ClosedID { get; set; }
public override void OnDoubleClick(Mobile from)
{
base.OnDoubleClick(from);
public virtual bool Dye(Mobile from, DyeTub sender)
if (Addon != null)
{
if (Deleted)
if (from.InRange(Location, 1))
{
return false;
}
Hue = sender.DyedHue;
return true;
}
public override void OnDoubleClick(Mobile from)
{
base.OnDoubleClick(from);
if (Addon != null)
{
if (from.InRange(Location, 1))
foreach (var c in Addon.Components)
{
foreach (var c in Addon.Components)
if (c is CurtainsComponent curtain)
{
if (c is CurtainsComponent curtain)
{
var temp = curtain.ItemID;
curtain.ItemID = curtain.ClosedID;
curtain.ClosedID = temp;
}
else
{
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
}
(curtain.ItemID, curtain.ClosedId) = (curtain.ClosedId, curtain.ItemID);
}
else
{
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
}
}
}
}
}
}
public override void Serialize(IGenericWriter writer)
[SerializationGenerator(0)]
public partial class CurtainsAddon : BaseAddon
{
[Constructible]
public CurtainsAddon(bool east)
{
if (east) // east
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
writer.Write(ClosedID);
AddComponent(new CurtainsComponent(0x3D9E, 0x3DA8), 0, -1, 0);
AddComponent(new CurtainsComponent(0x3DAC, 0x3DAE), 0, 0, 0);
AddComponent(new CurtainsComponent(0x3DA0, 0x3DA6), 0, 2, 0);
AddComponent(new CurtainsComponent(0x3D9F, 0x3DA7), 0, 1, 0);
}
public override void Deserialize(IGenericReader reader)
else // south
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
ClosedID = reader.ReadInt();
AddComponent(new CurtainsComponent(0x3D9C, 0x3DAD), 0, 0, 0);
AddComponent(new CurtainsComponent(0x3D9D, 0x3DA3), -1, 0, 0);
AddComponent(new CurtainsComponent(0x3DA1, 0x3DA5), 2, 0, 0);
AddComponent(new CurtainsComponent(0x3DAB, 0x3DA4), 1, 0, 0);
}
}
public class CurtainsAddon : BaseAddon
public override BaseAddonDeed Deed => new CurtainsDeed();
public override bool RetainDeedHue => true;
}
[SerializationGenerator(0)]
public partial class CurtainsDeed : BaseAddonDeed
{
private bool _east;
[Constructible]
public CurtainsDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new CurtainsAddon(_east);
public override int LabelNumber => 1076280; // Curtains
public override void OnDoubleClick(Mobile from)
{
[Constructible]
public CurtainsAddon(bool east)
if (IsChildOf(from.Backpack))
{
if (east) // east
{
AddComponent(new CurtainsComponent(0x3D9E, 0x3DA8), 0, -1, 0);
AddComponent(new CurtainsComponent(0x3DAC, 0x3DAE), 0, 0, 0);
AddComponent(new CurtainsComponent(0x3DA0, 0x3DA6), 0, 2, 0);
AddComponent(new CurtainsComponent(0x3D9F, 0x3DA7), 0, 1, 0);
}
else // south
{
AddComponent(new CurtainsComponent(0x3D9C, 0x3DAD), 0, 0, 0);
AddComponent(new CurtainsComponent(0x3D9D, 0x3DA3), -1, 0, 0);
AddComponent(new CurtainsComponent(0x3DA1, 0x3DA5), 2, 0, 0);
AddComponent(new CurtainsComponent(0x3DAB, 0x3DA4), 1, 0, 0);
}
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
public CurtainsAddon(Serial serial) : base(serial)
else
{
}
public override BaseAddonDeed Deed => new CurtainsDeed();
public override bool RetainDeedHue => true;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
public class CurtainsDeed : BaseAddonDeed
private void SendTarget(Mobile m)
{
private bool m_East;
base.OnDoubleClick(m);
}
[Constructible]
public CurtainsDeed() => LootType = LootType.Blessed;
private class InternalGump : Gump
{
private readonly CurtainsDeed _deed;
public CurtainsDeed(Serial serial) : base(serial)
public InternalGump(CurtainsDeed deed) : base(60, 36)
{
_deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076581, 0x7FFF); // Please select your curtain position
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
}
public override BaseAddon Addon => new CurtainsAddon(m_East);
public override int LabelNumber => 1076280; // Curtains
public override void OnDoubleClick(Mobile from)
public override void OnResponse(NetState sender, RelayInfo info)
{
if (IsChildOf(from.Backpack))
if (_deed?.Deleted != false || info.ButtonID == 0)
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
private class InternalGump : Gump
{
private readonly CurtainsDeed m_Deed;
public InternalGump(CurtainsDeed deed) : base(60, 36)
{
m_Deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076581, 0x7FFF); // Please select your curtain position
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
return;
}
public override void OnResponse(NetState sender, RelayInfo info)
{
if (m_Deed?.Deleted != false || info.ButtonID == 0)
{
return;
}
m_Deed.m_East = info.ButtonID != 1;
m_Deed.SendTarget(sender.Mobile);
}
_deed._east = info.ButtonID != 1;
_deed.SendTarget(sender.Mobile);
}
}
}

View file

@ -1,57 +1,24 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class FountainAddon : StoneFountainAddon
{
public class FountainAddon : StoneFountainAddon
[Constructible]
public FountainAddon()
{
[Constructible]
public FountainAddon()
{
}
public FountainAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new FountainDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class FountainDeed : BaseAddonDeed
{
[Constructible]
public FountainDeed() => LootType = LootType.Blessed;
public FountainDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new FountainAddon();
public override int LabelNumber => 1076283; // Fountain
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new FountainDeed();
}
[SerializationGenerator(0)]
public partial class FountainDeed : BaseAddonDeed
{
[Constructible]
public FountainDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new FountainAddon();
public override int LabelNumber => 1076283; // Fountain
}

View file

@ -1,211 +1,125 @@
using System;
using ModernUO.Serialization;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0)]
public abstract partial class BaseFruitTreeAddon : BaseAddon
{
public abstract class BaseFruitTreeAddon : BaseAddon
public BaseFruitTreeAddon()
{
private int m_Fruits;
Timer.StartTimer(TimeSpan.FromMinutes(5), Respawn);
}
public BaseFruitTreeAddon()
public abstract override BaseAddonDeed Deed { get; }
public abstract Item Fruit { get; }
[SerializableProperty(0)]
[CommandProperty(AccessLevel.GameMaster)]
public int Fruits
{
get => _fruits;
set => _fruits = Math.Max(value, 0);
}
public override void OnComponentUsed(AddonComponent c, Mobile from)
{
if (from.InRange(c.Location, 2))
{
Timer.StartTimer(TimeSpan.FromMinutes(5), Respawn);
}
public BaseFruitTreeAddon(Serial serial) : base(serial)
{
}
public abstract override BaseAddonDeed Deed { get; }
public abstract Item Fruit { get; }
[CommandProperty(AccessLevel.GameMaster)]
public int Fruits
{
get => m_Fruits;
set => m_Fruits = Math.Max(value, 0);
}
public override void OnComponentUsed(AddonComponent c, Mobile from)
{
if (from.InRange(c.Location, 2))
if (_fruits > 0)
{
if (m_Fruits > 0)
var fruit = Fruit;
if (fruit == null)
{
var fruit = Fruit;
return;
}
if (fruit == null)
{
return;
}
if (!from.PlaceInBackpack(fruit))
{
fruit.Delete();
from.SendLocalizedMessage(501015); // There is no room in your backpack for the fruit.
}
else
{
if (--m_Fruits == 0)
{
Timer.StartTimer(TimeSpan.FromMinutes(30), Respawn);
}
from.SendLocalizedMessage(501016); // You pick some fruit and put it in your backpack.
}
if (!from.PlaceInBackpack(fruit))
{
fruit.Delete();
from.SendLocalizedMessage(501015); // There is no room in your backpack for the fruit.
}
else
{
from.SendLocalizedMessage(501017); // There is no more fruit on this tree
if (--Fruits == 0)
{
Timer.StartTimer(TimeSpan.FromMinutes(30), Respawn);
}
from.SendLocalizedMessage(501016); // You pick some fruit and put it in your backpack.
}
}
else
{
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
from.SendLocalizedMessage(501017); // There is no more fruit on this tree
}
}
private void Respawn()
else
{
m_Fruits = Utility.RandomMinMax(1, 4);
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
writer.Write(m_Fruits);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
m_Fruits = reader.ReadInt();
if (m_Fruits == 0)
{
Respawn();
}
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
}
}
public class AppleTreeAddon : BaseFruitTreeAddon
private void Respawn()
{
[Constructible]
public AppleTreeAddon()
{
AddComponent(new LocalizedAddonComponent(0xD98, 1076269), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x3124, 1076269), 0, 0, 0);
}
public AppleTreeAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new AppleTreeDeed();
public override Item Fruit => new Apple();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
_fruits = Utility.RandomMinMax(1, 4);
}
public class AppleTreeDeed : BaseAddonDeed
[AfterDeserialization]
private void AfterDeserialization()
{
[Constructible]
public AppleTreeDeed() => LootType = LootType.Blessed;
public AppleTreeDeed(Serial serial) : base(serial)
if (_fruits == 0)
{
}
public override BaseAddon Addon => new AppleTreeAddon();
public override int LabelNumber => 1076269; // Apple Tree
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class PeachTreeAddon : BaseFruitTreeAddon
{
[Constructible]
public PeachTreeAddon()
{
AddComponent(new LocalizedAddonComponent(0xD9C, 1076270), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x3123, 1076270), 0, 0, 0);
}
public PeachTreeAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new PeachTreeDeed();
public override Item Fruit => new Peach();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class PeachTreeDeed : BaseAddonDeed
{
[Constructible]
public PeachTreeDeed() => LootType = LootType.Blessed;
public PeachTreeDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new PeachTreeAddon();
public override int LabelNumber => 1076270; // Peach Tree
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
Respawn();
}
}
}
[SerializationGenerator(0)]
public partial class AppleTreeAddon : BaseFruitTreeAddon
{
[Constructible]
public AppleTreeAddon()
{
AddComponent(new LocalizedAddonComponent(0xD98, 1076269), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x3124, 1076269), 0, 0, 0);
}
public override BaseAddonDeed Deed => new AppleTreeDeed();
public override Item Fruit => new Apple();
}
[SerializationGenerator(0)]
public partial class AppleTreeDeed : BaseAddonDeed
{
[Constructible]
public AppleTreeDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new AppleTreeAddon();
public override int LabelNumber => 1076269; // Apple Tree
}
[SerializationGenerator(0)]
public partial class PeachTreeAddon : BaseFruitTreeAddon
{
[Constructible]
public PeachTreeAddon()
{
AddComponent(new LocalizedAddonComponent(0xD9C, 1076270), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x3123, 1076270), 0, 0, 0);
}
public override BaseAddonDeed Deed => new PeachTreeDeed();
public override Item Fruit => new Peach();
}
[SerializationGenerator(0)]
public partial class PeachTreeDeed : BaseAddonDeed
{
[Constructible]
public PeachTreeDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new PeachTreeAddon();
public override int LabelNumber => 1076270; // Peach Tree
}

View file

@ -1,66 +1,33 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class GoldenDecorativeRugAddon : BaseAddon
{
public class GoldenDecorativeRugAddon : BaseAddon
[Constructible]
public GoldenDecorativeRugAddon()
{
[Constructible]
public GoldenDecorativeRugAddon()
{
AddComponent(new LocalizedAddonComponent(0xADB, 1076586), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xADC, 1076586), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xADD, 1076586), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xADE, 1076586), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xADF, 1076586), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAE0, 1076586), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAE1, 1076586), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAE2, 1076586), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xADA, 1076586), 0, 0, 0);
}
public GoldenDecorativeRugAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new GoldenDecorativeRugDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0xADB, 1076586), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xADC, 1076586), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xADD, 1076586), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xADE, 1076586), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xADF, 1076586), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAE0, 1076586), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAE1, 1076586), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAE2, 1076586), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xADA, 1076586), 0, 0, 0);
}
public class GoldenDecorativeRugDeed : BaseAddonDeed
{
[Constructible]
public GoldenDecorativeRugDeed() => LootType = LootType.Blessed;
public GoldenDecorativeRugDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new GoldenDecorativeRugAddon();
public override int LabelNumber => 1076586; // Golden decorative rug
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new GoldenDecorativeRugDeed();
}
[SerializationGenerator(0)]
public partial class GoldenDecorativeRugDeed : BaseAddonDeed
{
[Constructible]
public GoldenDecorativeRugDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new GoldenDecorativeRugAddon();
public override int LabelNumber => 1076586; // Golden decorative rug
}

View file

@ -1,179 +1,121 @@
using System;
using ModernUO.Serialization;
using Server.Spells;
namespace Server.Items
namespace Server.Items;
[Flippable(0x125E, 0x1230)]
[SerializationGenerator(0)]
public partial class GuillotineComponent : AddonComponent
{
[Flippable(0x125E, 0x1230)]
public class GuillotineComponent : AddonComponent
public GuillotineComponent() : base(0x125E)
{
public GuillotineComponent() : base(0x125E)
}
public override int LabelNumber => 1024656; // Guillotine
}
[SerializationGenerator(0)]
public partial class GuillotineAddon : BaseAddon
{
[Constructible]
public GuillotineAddon()
{
AddComponent(new GuillotineComponent(), 0, 0, 0);
}
public override BaseAddonDeed Deed => new GuillotineDeed();
public override void OnComponentUsed(AddonComponent c, Mobile from)
{
if (from.InRange(Location, 2))
{
if (Utility.RandomBool())
{
from.Location = Location;
Timer.StartTimer(TimeSpan.FromSeconds(0.5), () => Activate(c, from));
}
else
{
// Hmm... you suspect that if you used this again, it might hurt.
from.LocalOverheadMessage(MessageType.Regular, 0, 501777);
}
}
public GuillotineComponent(Serial serial) : base(serial)
else
{
}
public override int LabelNumber => 1024656; // Guillotine
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
}
}
public class GuillotineAddon : BaseAddon
public virtual void Activate(AddonComponent c, Mobile from)
{
[Constructible]
public GuillotineAddon()
if (c.ItemID is 0x125E or 0x1269 or 0x1260)
{
AddComponent(new GuillotineComponent(), 0, 0, 0);
c.ItemID = 0x1269;
}
else
{
c.ItemID = 0x1247;
}
public GuillotineAddon(Serial serial) : base(serial)
// blood
var amount = Utility.RandomMinMax(3, 7);
for (var i = 0; i < amount; i++)
{
}
var x = c.X + Utility.RandomMinMax(-1, 1);
var y = c.Y + Utility.RandomMinMax(-1, 1);
var z = c.Z;
public override BaseAddonDeed Deed => new GuillotineDeed();
public override void OnComponentUsed(AddonComponent c, Mobile from)
{
if (from.InRange(Location, 2))
if (!c.Map.CanFit(x, y, z, 1, false, false))
{
if (Utility.RandomBool())
{
from.Location = Location;
Timer.StartTimer(TimeSpan.FromSeconds(0.5), () => Activate(c, from));
}
else
{
from.LocalOverheadMessage(
MessageType.Regular,
0,
501777 // Hmm... you suspect that if you used this again, it might hurt.
);
}
}
else
{
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
}
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
public virtual void Activate(AddonComponent c, Mobile from)
{
if (c.ItemID is 0x125E or 0x1269 or 0x1260)
{
c.ItemID = 0x1269;
}
else
{
c.ItemID = 0x1247;
}
// blood
var amount = Utility.RandomMinMax(3, 7);
for (var i = 0; i < amount; i++)
{
var x = c.X + Utility.RandomMinMax(-1, 1);
var y = c.Y + Utility.RandomMinMax(-1, 1);
var z = c.Z;
z = c.Map.GetAverageZ(x, y);
if (!c.Map.CanFit(x, y, z, 1, false, false))
{
z = c.Map.GetAverageZ(x, y);
if (!c.Map.CanFit(x, y, z, 1, false, false))
{
continue;
}
continue;
}
var blood = new Blood(Utility.RandomMinMax(0x122C, 0x122F));
blood.MoveToWorld(new Point3D(x, y, z), c.Map);
}
if (from.Female)
{
from.PlaySound(Utility.RandomMinMax(0x150, 0x153));
}
else
{
from.PlaySound(Utility.RandomMinMax(0x15A, 0x15D));
}
from.LocalOverheadMessage(
MessageType.Regular,
0,
501777
); // Hmm... you suspect that if you used this again, it might hurt.
SpellHelper.Damage(TimeSpan.Zero, from, Utility.Dice(2, 10, 5));
Timer.StartTimer(TimeSpan.FromSeconds(0.5), TimeSpan.FromSeconds(0.5), 2, () => Deactivate(c));
var blood = new Blood(Utility.RandomMinMax(0x122C, 0x122F));
blood.MoveToWorld(new Point3D(x, y, z), c.Map);
}
private void Deactivate(AddonComponent c)
if (from.Female)
{
c.ItemID = c.ItemID switch
{
0x1269 => 0x1260,
0x1260 => 0x125E,
0x1247 => 0x1246,
0x1246 => 0x1230,
_ => c.ItemID
};
from.PlaySound(Utility.RandomMinMax(0x150, 0x153));
}
else
{
from.PlaySound(Utility.RandomMinMax(0x15A, 0x15D));
}
// Hmm... you suspect that if you used this again, it might hurt.
from.LocalOverheadMessage(MessageType.Regular, 0, 501777);
SpellHelper.Damage(TimeSpan.Zero, from, Utility.Dice(2, 10, 5));
Timer.StartTimer(TimeSpan.FromSeconds(0.5), TimeSpan.FromSeconds(0.5), 2, () => Deactivate(c));
}
public class GuillotineDeed : BaseAddonDeed
private static void Deactivate(AddonComponent c)
{
[Constructible]
public GuillotineDeed() => LootType = LootType.Blessed;
public GuillotineDeed(Serial serial) : base(serial)
c.ItemID = c.ItemID switch
{
}
public override BaseAddon Addon => new GuillotineAddon();
public override int LabelNumber => 1024656; // Guillotine
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
0x1269 => 0x1260,
0x1260 => 0x125E,
0x1247 => 0x1246,
0x1246 => 0x1230,
_ => c.ItemID
};
}
}
public class GuillotineDeed : BaseAddonDeed
{
[Constructible]
public GuillotineDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new GuillotineAddon();
public override int LabelNumber => 1024656; // Guillotine
}

View file

@ -1,129 +1,95 @@
using ModernUO.Serialization;
using Server.Gumps;
using Server.Network;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0)]
public partial class HangingAxesAddon : BaseAddon
{
public class HangingAxesAddon : BaseAddon
[Constructible]
public HangingAxesAddon(bool east)
{
[Constructible]
public HangingAxesAddon(bool east)
if (east) // east
{
if (east) // east
{
AddComponent(new LocalizedAddonComponent(0x156A, 1076271), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x156B, 1076271), 0, -1, 0);
}
else // south
{
AddComponent(new LocalizedAddonComponent(0x1568, 1076271), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x1569, 1076271), 1, 0, 0);
}
AddComponent(new LocalizedAddonComponent(0x156A, 1076271), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x156B, 1076271), 0, -1, 0);
}
public HangingAxesAddon(Serial serial) : base(serial)
else // south
{
}
public override BaseAddonDeed Deed => new HangingAxesDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
AddComponent(new LocalizedAddonComponent(0x1568, 1076271), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x1569, 1076271), 1, 0, 0);
}
}
public class HangingAxesDeed : BaseAddonDeed
public override BaseAddonDeed Deed => new HangingAxesDeed();
}
[SerializationGenerator(0)]
public partial class HangingAxesDeed : BaseAddonDeed
{
private bool m_East;
[Constructible]
public HangingAxesDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new HangingAxesAddon(m_East);
public override int LabelNumber => 1076271; // Hanging Axes
public override void OnDoubleClick(Mobile from)
{
private bool m_East;
[Constructible]
public HangingAxesDeed() => LootType = LootType.Blessed;
public HangingAxesDeed(Serial serial) : base(serial)
if (IsChildOf(from.Backpack))
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
private class InternalGump : Gump
{
private readonly HangingAxesDeed m_Deed;
public InternalGump(HangingAxesDeed deed) : base(60, 36)
{
m_Deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076745, 0x7FFF); // Please select your hanging axe position
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
}
public override BaseAddon Addon => new HangingAxesAddon(m_East);
public override int LabelNumber => 1076271; // Hanging Axes
public override void OnDoubleClick(Mobile from)
public override void OnResponse(NetState sender, RelayInfo info)
{
if (IsChildOf(from.Backpack))
if (m_Deed?.Deleted != false || info.ButtonID == 0)
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
private class InternalGump : Gump
{
private readonly HangingAxesDeed m_Deed;
public InternalGump(HangingAxesDeed deed) : base(60, 36)
{
m_Deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076745, 0x7FFF); // Please select your hanging axe position
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
return;
}
public override void OnResponse(NetState sender, RelayInfo info)
{
if (m_Deed?.Deleted != false || info.ButtonID == 0)
{
return;
}
m_Deed.m_East = info.ButtonID != 1;
m_Deed.SendTarget(sender.Mobile);
}
m_Deed.m_East = info.ButtonID != 1;
m_Deed.SendTarget(sender.Mobile);
}
}
}

View file

@ -1,129 +1,95 @@
using ModernUO.Serialization;
using Server.Gumps;
using Server.Network;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0)]
public partial class HangingSwordsAddon : BaseAddon
{
public class HangingSwordsAddon : BaseAddon
[Constructible]
public HangingSwordsAddon(bool east)
{
[Constructible]
public HangingSwordsAddon(bool east)
if (east) // east
{
if (east) // east
{
AddComponent(new LocalizedAddonComponent(0x1566, 1076272), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x1567, 1076272), 0, -1, 0);
}
else // south
{
AddComponent(new LocalizedAddonComponent(0x1564, 1076272), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x1565, 1076272), 1, 0, 0);
}
AddComponent(new LocalizedAddonComponent(0x1566, 1076272), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x1567, 1076272), 0, -1, 0);
}
public HangingSwordsAddon(Serial serial) : base(serial)
else // south
{
}
public override BaseAddonDeed Deed => new HangingSwordsDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
AddComponent(new LocalizedAddonComponent(0x1564, 1076272), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x1565, 1076272), 1, 0, 0);
}
}
public class HangingSwordsDeed : BaseAddonDeed
public override BaseAddonDeed Deed => new HangingSwordsDeed();
}
[SerializationGenerator(0)]
public partial class HangingSwordsDeed : BaseAddonDeed
{
private bool _east;
[Constructible]
public HangingSwordsDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new HangingSwordsAddon(_east);
public override int LabelNumber => 1076272; // Hanging Swords
public override void OnDoubleClick(Mobile from)
{
private bool m_East;
[Constructible]
public HangingSwordsDeed() => LootType = LootType.Blessed;
public HangingSwordsDeed(Serial serial) : base(serial)
if (IsChildOf(from.Backpack))
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
private class InternalGump : Gump
{
private readonly HangingSwordsDeed m_Deed;
public InternalGump(HangingSwordsDeed deed) : base(60, 36)
{
m_Deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076746, 0x7FFF); // Please select your hanging sword position
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
}
public override BaseAddon Addon => new HangingSwordsAddon(m_East);
public override int LabelNumber => 1076272; // Hanging Swords
public override void OnDoubleClick(Mobile from)
public override void OnResponse(NetState sender, RelayInfo info)
{
if (IsChildOf(from.Backpack))
if (m_Deed?.Deleted != false || info.ButtonID == 0)
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
private class InternalGump : Gump
{
private readonly HangingSwordsDeed m_Deed;
public InternalGump(HangingSwordsDeed deed) : base(60, 36)
{
m_Deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076746, 0x7FFF); // Please select your hanging sword position
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
return;
}
public override void OnResponse(NetState sender, RelayInfo info)
{
if (m_Deed?.Deleted != false || info.ButtonID == 0)
{
return;
}
m_Deed.m_East = info.ButtonID != 1;
m_Deed.SendTarget(sender.Mobile);
}
m_Deed._east = info.ButtonID != 1;
m_Deed.SendTarget(sender.Mobile);
}
}
}

View file

@ -1,173 +1,149 @@
using ModernUO.Serialization;
using Server.Gumps;
using Server.Network;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0)]
public partial class HouseLadderAddon : BaseAddon
{
public class HouseLadderAddon : BaseAddon
[Constructible]
public HouseLadderAddon(int type)
{
[Constructible]
public HouseLadderAddon(int type)
switch (type)
{
switch (type)
{
case 0: // castle south
case 0: // castle south
{
AddComponent(new LocalizedAddonComponent(0x3DB2, 1076791), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x3F28, 1076791), 0, 1, 28);
AddComponent(new LocalizedAddonComponent(0x3DB4, 1076791), 0, 2, 20);
break;
case 1: // castle east
}
case 1: // castle east
{
AddComponent(new LocalizedAddonComponent(0x3DB3, 1076791), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x3F28, 1076791), 1, 0, 28);
AddComponent(new LocalizedAddonComponent(0x3DB5, 1076791), 2, 0, 20);
break;
case 2: // castle north
}
case 2: // castle north
{
AddComponent(new LocalizedAddonComponent(0x2FDF, 1076791), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x3F28, 1076791), 0, -1, 28);
AddComponent(new LocalizedAddonComponent(0x3DB6, 1076791), 0, -2, 20);
break;
case 3: // castle west
}
case 3: // castle west
{
AddComponent(new LocalizedAddonComponent(0x2FDE, 1076791), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x3F28, 1076791), -1, 0, 28);
AddComponent(new LocalizedAddonComponent(0x3DB7, 1076791), -2, 0, 20);
break;
case 4: // south
}
case 4: // south
{
AddComponent(new LocalizedAddonComponent(0x3DB2, 1076287), 0, 0, 0);
break;
case 5: // east
}
case 5: // east
{
AddComponent(new LocalizedAddonComponent(0x3DB3, 1076287), 0, 0, 0);
break;
case 6: // north
}
case 6: // north
{
AddComponent(new LocalizedAddonComponent(0x2FDF, 1076287), 0, 0, 0);
break;
case 7: // west
}
case 7: // west
{
AddComponent(new LocalizedAddonComponent(0x2FDE, 1076287), 0, 0, 0);
break;
}
}
public HouseLadderAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new HouseLadderDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
}
public class HouseLadderDeed : BaseAddonDeed
public override BaseAddonDeed Deed => new HouseLadderDeed();
}
[SerializationGenerator(0)]
public partial class HouseLadderDeed : BaseAddonDeed
{
private int _type;
[Constructible]
public HouseLadderDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new HouseLadderAddon(_type);
public override int LabelNumber => 1076287; // Ladder
public override void OnDoubleClick(Mobile from)
{
private int m_Type;
[Constructible]
public HouseLadderDeed() => LootType = LootType.Blessed;
public HouseLadderDeed(Serial serial) : base(serial)
if (IsChildOf(from.Backpack))
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
private class InternalGump : Gump
{
private readonly HouseLadderDeed _deed;
public InternalGump(HouseLadderDeed deed) : base(60, 36)
{
_deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
// Please select your ladder position. <br>Use the ladders marked (castle) <br> for accessing the tops of keeps <br> and castles.
AddHtmlLocalized(14, 12, 273, 20, 1076780, 0x7FFF);
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1076794, 0x7FFF); // South (Castle)
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1076795, 0x7FFF); // East (Castle)
AddButton(19, 97, 0x845, 0x846, 3);
AddHtmlLocalized(44, 95, 213, 20, 1076792, 0x7FFF); // North (Castle)
AddButton(19, 121, 0x845, 0x846, 4);
AddHtmlLocalized(44, 119, 213, 20, 1076793, 0x7FFF); // West (Castle)
AddButton(19, 145, 0x845, 0x846, 5);
AddHtmlLocalized(44, 143, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 169, 0x845, 0x846, 6);
AddHtmlLocalized(44, 167, 213, 20, 1075387, 0x7FFF); // East
AddButton(19, 193, 0x845, 0x846, 7);
AddHtmlLocalized(44, 191, 213, 20, 1075389, 0x7FFF); // North
AddButton(19, 217, 0x845, 0x846, 8);
AddHtmlLocalized(44, 215, 213, 20, 1075390, 0x7FFF); // West
}
public override BaseAddon Addon => new HouseLadderAddon(m_Type);
public override int LabelNumber => 1076287; // Ladder
public override void OnDoubleClick(Mobile from)
public override void OnResponse(NetState sender, RelayInfo info)
{
if (IsChildOf(from.Backpack))
if (_deed?.Deleted != false || info.ButtonID is 0 or < 1 or > 8)
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
private class InternalGump : Gump
{
private readonly HouseLadderDeed m_Deed;
public InternalGump(HouseLadderDeed deed) : base(60, 36)
{
m_Deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(
14,
12,
273,
20,
1076780,
0x7FFF
); // Please select your ladder position. <br>Use the ladders marked (castle) <br> for accessing the tops of keeps <br> and castles.
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1076794, 0x7FFF); // South (Castle)
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1076795, 0x7FFF); // East (Castle)
AddButton(19, 97, 0x845, 0x846, 3);
AddHtmlLocalized(44, 95, 213, 20, 1076792, 0x7FFF); // North (Castle)
AddButton(19, 121, 0x845, 0x846, 4);
AddHtmlLocalized(44, 119, 213, 20, 1076793, 0x7FFF); // West (Castle)
AddButton(19, 145, 0x845, 0x846, 5);
AddHtmlLocalized(44, 143, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 169, 0x845, 0x846, 6);
AddHtmlLocalized(44, 167, 213, 20, 1075387, 0x7FFF); // East
AddButton(19, 193, 0x845, 0x846, 7);
AddHtmlLocalized(44, 191, 213, 20, 1075389, 0x7FFF); // North
AddButton(19, 217, 0x845, 0x846, 8);
AddHtmlLocalized(44, 215, 213, 20, 1075390, 0x7FFF); // West
return;
}
public override void OnResponse(NetState sender, RelayInfo info)
{
if (m_Deed?.Deleted != false || info.ButtonID is 0 or < 1 or > 8)
{
return;
}
m_Deed.m_Type = info.ButtonID - 1;
m_Deed.SendTarget(sender.Mobile);
}
_deed._type = info.ButtonID - 1;
_deed.SendTarget(sender.Mobile);
}
}
}

View file

@ -1,130 +1,90 @@
using System;
using ModernUO.Serialization;
using Server.Spells;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0)]
public partial class IronMaidenAddon : BaseAddon
{
public class IronMaidenAddon : BaseAddon
public IronMaidenAddon()
{
public IronMaidenAddon()
{
AddComponent(new LocalizedAddonComponent(0x1249, 1076288), 0, 0, 0);
}
AddComponent(new LocalizedAddonComponent(0x1249, 1076288), 0, 0, 0);
}
public IronMaidenAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new IronMaidenDeed();
public override BaseAddonDeed Deed => new IronMaidenDeed();
public override void OnComponentUsed(AddonComponent c, Mobile from)
public override void OnComponentUsed(AddonComponent c, Mobile from)
{
if (from.InRange(GetWorldLocation(), 2) && from.InLOS(GetWorldLocation()))
{
if (from.InRange(GetWorldLocation(), 2) && from.InLOS(GetWorldLocation()))
if (Utility.RandomBool())
{
if (Utility.RandomBool())
{
from.Location = Location;
c.ItemID = 0x124A;
from.Location = Location;
c.ItemID = 0x124A;
Timer.StartTimer(TimeSpan.FromSeconds(0.5), TimeSpan.FromSeconds(0.5), 3, () => Activate(c, from));
}
else
{
from.LocalOverheadMessage(
MessageType.Regular,
0,
501777 // Hmm... you suspect that if you used this again, it might hurt.
);
}
Timer.StartTimer(TimeSpan.FromSeconds(0.5), TimeSpan.FromSeconds(0.5), 3, () => Activate(c, from));
}
else
{
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
// Hmm... you suspect that if you used this again, it might hurt.
from.LocalOverheadMessage(MessageType.Regular, 0, 501777);
}
}
public override void Serialize(IGenericWriter writer)
else
{
base.Serialize(writer);
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
}
}
writer.WriteEncodedInt(0); // version
public virtual void Activate(AddonComponent c, Mobile from)
{
c.ItemID += 1;
if (c.ItemID < 0x124D)
{
return;
}
public override void Deserialize(IGenericReader reader)
// blood
var amount = Utility.RandomMinMax(3, 7);
for (var i = 0; i < amount; i++)
{
base.Deserialize(reader);
var x = c.X + Utility.RandomMinMax(-1, 1);
var y = c.Y + Utility.RandomMinMax(-1, 1);
var z = c.Z;
var version = reader.ReadEncodedInt();
}
public virtual void Activate(AddonComponent c, Mobile from)
{
c.ItemID += 1;
if (c.ItemID < 0x124D)
if (!c.Map.CanFit(x, y, z, 1, false, false))
{
return;
}
// blood
var amount = Utility.RandomMinMax(3, 7);
for (var i = 0; i < amount; i++)
{
var x = c.X + Utility.RandomMinMax(-1, 1);
var y = c.Y + Utility.RandomMinMax(-1, 1);
var z = c.Z;
z = c.Map.GetAverageZ(x, y);
if (!c.Map.CanFit(x, y, z, 1, false, false))
{
z = c.Map.GetAverageZ(x, y);
if (!c.Map.CanFit(x, y, z, 1, false, false))
{
continue;
}
continue;
}
var blood = new Blood(Utility.RandomMinMax(0x122C, 0x122F));
blood.MoveToWorld(new Point3D(x, y, z), c.Map);
}
from.PlaySound(from.Female ? Utility.RandomMinMax(0x150, 0x153) : Utility.RandomMinMax(0x15A, 0x15D));
from.LocalOverheadMessage(
MessageType.Regular,
0,
501777
); // Hmm... you suspect that if you used this again, it might hurt.
SpellHelper.Damage(TimeSpan.Zero, from, Utility.Dice(2, 10, 5));
Timer.StartTimer(TimeSpan.FromSeconds(1), () => c.ItemID = 0x1249);
}
}
public class IronMaidenDeed : BaseAddonDeed
{
[Constructible]
public IronMaidenDeed() => LootType = LootType.Blessed;
public IronMaidenDeed(Serial serial) : base(serial)
{
var blood = new Blood(Utility.RandomMinMax(0x122C, 0x122F));
blood.MoveToWorld(new Point3D(x, y, z), c.Map);
}
public override BaseAddon Addon => new IronMaidenAddon();
public override int LabelNumber => 1076288; // Iron Maiden
from.PlaySound(from.Female ? Utility.RandomMinMax(0x150, 0x153) : Utility.RandomMinMax(0x15A, 0x15D));
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
// Hmm... you suspect that if you used this again, it might hurt.
from.LocalOverheadMessage(MessageType.Regular, 0, 501777);
SpellHelper.Damage(TimeSpan.Zero, from, Utility.Dice(2, 10, 5));
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
Timer.StartTimer(TimeSpan.FromSeconds(1), () => c.ItemID = 0x1249);
}
}
[SerializationGenerator(0)]
public partial class IronMaidenDeed : BaseAddonDeed
{
[Constructible]
public IronMaidenDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new IronMaidenAddon();
public override int LabelNumber => 1076288; // Iron Maiden
}

View file

@ -1,86 +1,36 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[Flippable(0x3D8E, 0x3D8F)]
[SerializationGenerator(0)]
public partial class LargeFishingNetComponent : AddonComponent
{
[Flippable(0x3D8E, 0x3D8F)]
public class LargeFishingNetComponent : AddonComponent
public LargeFishingNetComponent() : base(0x3D8E)
{
public LargeFishingNetComponent() : base(0x3D8E)
{
}
public LargeFishingNetComponent(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1076285; // Large Fish Net
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class LargeFishingNetAddon : BaseAddon
{
[Constructible]
public LargeFishingNetAddon()
{
AddComponent(new LargeFishingNetComponent(), 0, 0, 0);
}
public LargeFishingNetAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new LargeFishingNetDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class LargeFishingNetDeed : BaseAddonDeed
{
[Constructible]
public LargeFishingNetDeed() => LootType = LootType.Blessed;
public LargeFishingNetDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new LargeFishingNetAddon();
public override int LabelNumber => 1076285; // Large Fish Net
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override int LabelNumber => 1076285; // Large Fish Net
}
[SerializationGenerator(0)]
public partial class LargeFishingNetAddon : BaseAddon
{
[Constructible]
public LargeFishingNetAddon()
{
AddComponent(new LargeFishingNetComponent(), 0, 0, 0);
}
public override BaseAddonDeed Deed => new LargeFishingNetDeed();
}
[SerializationGenerator(0)]
public partial class LargeFishingNetDeed : BaseAddonDeed
{
[Constructible]
public LargeFishingNetDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new LargeFishingNetAddon();
public override int LabelNumber => 1076285; // Large Fish Net
}

View file

@ -1,58 +1,25 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class PeachTrunkAddon : BaseAddon
{
public class PeachTrunkAddon : BaseAddon
[Constructible]
public PeachTrunkAddon()
{
[Constructible]
public PeachTrunkAddon()
{
AddComponent(new LocalizedAddonComponent(0xD9C, 1076786), 0, 0, 0);
}
public PeachTrunkAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new PeachTrunkDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0xD9C, 1076786), 0, 0, 0);
}
public class PeachTrunkDeed : BaseAddonDeed
{
[Constructible]
public PeachTrunkDeed() => LootType = LootType.Blessed;
public PeachTrunkDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new PeachTrunkAddon();
public override int LabelNumber => 1076786; // Peach Trunk
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new PeachTrunkDeed();
}
[SerializationGenerator(0)]
public partial class PeachTrunkDeed : BaseAddonDeed
{
[Constructible]
public PeachTrunkDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new PeachTrunkAddon();
public override int LabelNumber => 1076786; // Peach Trunk
}

View file

@ -1,66 +1,33 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class PinkFancyRugAddon : BaseAddon
{
public class PinkFancyRugAddon : BaseAddon
[Constructible]
public PinkFancyRugAddon()
{
[Constructible]
public PinkFancyRugAddon()
{
AddComponent(new LocalizedAddonComponent(0xAEE, 1076590), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAEF, 1076590), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF0, 1076590), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAF1, 1076590), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF2, 1076590), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAF3, 1076590), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF4, 1076590), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAF5, 1076590), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAEC, 1076590), 0, 0, 0);
}
public PinkFancyRugAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new PinkFancyRugDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0xAEE, 1076590), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAEF, 1076590), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF0, 1076590), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAF1, 1076590), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF2, 1076590), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAF3, 1076590), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xAF4, 1076590), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAF5, 1076590), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAEC, 1076590), 0, 0, 0);
}
public class PinkFancyRugDeed : BaseAddonDeed
{
[Constructible]
public PinkFancyRugDeed() => LootType = LootType.Blessed;
public PinkFancyRugDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new PinkFancyRugAddon();
public override int LabelNumber => 1076590; // Pink fancy rug
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new PinkFancyRugDeed();
}
[SerializationGenerator(0)]
public partial class PinkFancyRugDeed : BaseAddonDeed
{
[Constructible]
public PinkFancyRugDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new PinkFancyRugAddon();
public override int LabelNumber => 1076590; // Pink fancy rug
}

View file

@ -1,66 +1,33 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class RedPlainRugAddon : BaseAddon
{
public class RedPlainRugAddon : BaseAddon
[Constructible]
public RedPlainRugAddon()
{
[Constructible]
public RedPlainRugAddon()
{
AddComponent(new LocalizedAddonComponent(0xAC9, 1076588), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xACA, 1076588), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xACB, 1076588), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xACC, 1076588), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xACD, 1076588), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xACE, 1076588), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xACF, 1076588), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAD0, 1076588), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAC6, 1076588), 0, 0, 0);
}
public RedPlainRugAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new RedPlainRugDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0xAC9, 1076588), 1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xACA, 1076588), -1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xACB, 1076588), -1, 1, 0);
AddComponent(new LocalizedAddonComponent(0xACC, 1076588), 1, -1, 0);
AddComponent(new LocalizedAddonComponent(0xACD, 1076588), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xACE, 1076588), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xACF, 1076588), 1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xAD0, 1076588), 0, 1, 0);
AddComponent(new LocalizedAddonComponent(0xAC6, 1076588), 0, 0, 0);
}
public class RedPlainRugDeed : BaseAddonDeed
{
[Constructible]
public RedPlainRugDeed() => LootType = LootType.Blessed;
public RedPlainRugDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new RedPlainRugAddon();
public override int LabelNumber => 1076588; // Red plain rug
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new RedPlainRugDeed();
}
[SerializationGenerator(0)]
public partial class RedPlainRugDeed : BaseAddonDeed
{
[Constructible]
public RedPlainRugDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new RedPlainRugAddon();
public override int LabelNumber => 1076588; // Red plain rug
}

View file

@ -1,86 +1,36 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[Flippable(0x1E34, 0x1E35)]
[SerializationGenerator(0)]
public partial class ScarecrowComponent : AddonComponent
{
[Flippable(0x1E34, 0x1E35)]
public class ScarecrowComponent : AddonComponent
public ScarecrowComponent() : base(0x1E34)
{
public ScarecrowComponent() : base(0x1E34)
{
}
public ScarecrowComponent(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1076608; // Scarecrow
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class ScarecrowAddon : BaseAddon
{
[Constructible]
public ScarecrowAddon()
{
AddComponent(new ScarecrowComponent(), 0, 0, 0);
}
public ScarecrowAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new ScarecrowDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class ScarecrowDeed : BaseAddonDeed
{
[Constructible]
public ScarecrowDeed() => LootType = LootType.Blessed;
public ScarecrowDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new ScarecrowAddon();
public override int LabelNumber => 1076608; // Scarecrow
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override int LabelNumber => 1076608; // Scarecrow
}
[SerializationGenerator(0)]
public partial class ScarecrowAddon : BaseAddon
{
[Constructible]
public ScarecrowAddon()
{
AddComponent(new ScarecrowComponent(), 0, 0, 0);
}
public override BaseAddonDeed Deed => new ScarecrowDeed();
}
[SerializationGenerator(0)]
public partial class ScarecrowDeed : BaseAddonDeed
{
[Constructible]
public ScarecrowDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new ScarecrowAddon();
public override int LabelNumber => 1076608; // Scarecrow
}

View file

@ -1,86 +1,36 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[Flippable(0x1EA3, 0x1EA4)]
[SerializationGenerator(0)]
public partial class SmallFishingNetComponent : AddonComponent
{
[Flippable(0x1EA3, 0x1EA4)]
public class SmallFishingNetComponent : AddonComponent
public SmallFishingNetComponent() : base(0x1EA3)
{
public SmallFishingNetComponent() : base(0x1EA3)
{
}
public SmallFishingNetComponent(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1076286; // Small Fish Net
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class SmallFishingNetAddon : BaseAddon
{
[Constructible]
public SmallFishingNetAddon()
{
AddComponent(new SmallFishingNetComponent(), 0, 0, 0);
}
public SmallFishingNetAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new SmallFishingNetDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class SmallFishingNetDeed : BaseAddonDeed
{
[Constructible]
public SmallFishingNetDeed() => LootType = LootType.Blessed;
public SmallFishingNetDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new SmallFishingNetAddon();
public override int LabelNumber => 1076286; // Small Fish Net
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override int LabelNumber => 1076286; // Small Fish Net
}
[SerializationGenerator(0)]
public partial class SmallFishingNetAddon : BaseAddon
{
[Constructible]
public SmallFishingNetAddon()
{
AddComponent(new SmallFishingNetComponent(), 0, 0, 0);
}
public override BaseAddonDeed Deed => new SmallFishingNetDeed();
}
[SerializationGenerator(0)]
public partial class SmallFishingNetDeed : BaseAddonDeed
{
[Constructible]
public SmallFishingNetDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new SmallFishingNetAddon();
public override int LabelNumber => 1076286; // Small Fish Net
}

View file

@ -1,131 +1,97 @@
using ModernUO.Serialization;
using Server.Gumps;
using Server.Network;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0)]
public partial class StoneStatueAddon : BaseAddon
{
public class StoneStatueAddon : BaseAddon
[Constructible]
public StoneStatueAddon(bool east)
{
[Constructible]
public StoneStatueAddon(bool east)
if (east) // east
{
if (east) // east
{
AddComponent(new LocalizedAddonComponent(0x139E, 1076284), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x139F, 1076284), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0x13A0, 1076284), 0, -1, 0);
}
else // south
{
AddComponent(new LocalizedAddonComponent(0x129F, 1076284), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x12A0, 1076284), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0x12A1, 1076284), -1, 0, 0);
}
AddComponent(new LocalizedAddonComponent(0x139E, 1076284), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x139F, 1076284), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0x13A0, 1076284), 0, -1, 0);
}
public StoneStatueAddon(Serial serial) : base(serial)
else // south
{
}
public override BaseAddonDeed Deed => new StoneStatueDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
AddComponent(new LocalizedAddonComponent(0x129F, 1076284), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0x12A0, 1076284), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0x12A1, 1076284), -1, 0, 0);
}
}
public class StoneStatueDeed : BaseAddonDeed
public override BaseAddonDeed Deed => new StoneStatueDeed();
}
[SerializationGenerator(0)]
public partial class StoneStatueDeed : BaseAddonDeed
{
private bool _east;
[Constructible]
public StoneStatueDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new StoneStatueAddon(_east);
public override int LabelNumber => 1076284; // Statue
public override void OnDoubleClick(Mobile from)
{
private bool m_East;
[Constructible]
public StoneStatueDeed() => LootType = LootType.Blessed;
public StoneStatueDeed(Serial serial) : base(serial)
if (IsChildOf(from.Backpack))
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
private class InternalGump : Gump
{
private readonly StoneStatueDeed _deed;
public InternalGump(StoneStatueDeed deed) : base(60, 36)
{
_deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076579, 0x7FFF); // Please select your statue position
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
}
public override BaseAddon Addon => new StoneStatueAddon(m_East);
public override int LabelNumber => 1076284; // Statue
public override void OnDoubleClick(Mobile from)
public override void OnResponse(NetState sender, RelayInfo info)
{
if (IsChildOf(from.Backpack))
if (_deed?.Deleted != false || info.ButtonID == 0)
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
private class InternalGump : Gump
{
private readonly StoneStatueDeed m_Deed;
public InternalGump(StoneStatueDeed deed) : base(60, 36)
{
m_Deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076579, 0x7FFF); // Please select your statue position
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
return;
}
public override void OnResponse(NetState sender, RelayInfo info)
{
if (m_Deed?.Deleted != false || info.ButtonID == 0)
{
return;
}
m_Deed.m_East = info.ButtonID != 1;
m_Deed.SendTarget(sender.Mobile);
}
_deed._east = info.ButtonID != 1;
_deed.SendTarget(sender.Mobile);
}
}
}

View file

@ -1,86 +1,36 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[Flippable(0x3DAA, 0x3DA9)]
[SerializationGenerator(0)]
public partial class SuitOfGoldArmorComponent : AddonComponent
{
[Flippable(0x3DAA, 0x3DA9)]
public class SuitOfGoldArmorComponent : AddonComponent
public SuitOfGoldArmorComponent() : base(0x3DAA)
{
public SuitOfGoldArmorComponent() : base(0x3DAA)
{
}
public SuitOfGoldArmorComponent(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1076265; // Suit of Gold Armor
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class SuitOfGoldArmorAddon : BaseAddon
{
[Constructible]
public SuitOfGoldArmorAddon()
{
AddComponent(new SuitOfGoldArmorComponent(), 0, 0, 0);
}
public SuitOfGoldArmorAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new SuitOfGoldArmorDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class SuitOfGoldArmorDeed : BaseAddonDeed
{
[Constructible]
public SuitOfGoldArmorDeed() => LootType = LootType.Blessed;
public SuitOfGoldArmorDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new SuitOfGoldArmorAddon();
public override int LabelNumber => 1076265; // Suit of Gold Armor
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override int LabelNumber => 1076265; // Suit of Gold Armor
}
[SerializationGenerator(0)]
public partial class SuitOfGoldArmorAddon : BaseAddon
{
[Constructible]
public SuitOfGoldArmorAddon()
{
AddComponent(new SuitOfGoldArmorComponent(), 0, 0, 0);
}
public override BaseAddonDeed Deed => new SuitOfGoldArmorDeed();
}
[SerializationGenerator(0)]
public partial class SuitOfGoldArmorDeed : BaseAddonDeed
{
[Constructible]
public SuitOfGoldArmorDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new SuitOfGoldArmorAddon();
public override int LabelNumber => 1076265; // Suit of Gold Armor
}

View file

@ -1,86 +1,36 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[Flippable(0x3D86, 0x3D87)]
[SerializationGenerator(0)]
public partial class SuitOfSilverArmorComponent : AddonComponent
{
[Flippable(0x3D86, 0x3D87)]
public class SuitOfSilverArmorComponent : AddonComponent
public SuitOfSilverArmorComponent() : base(0x3D86)
{
public SuitOfSilverArmorComponent() : base(0x3D86)
{
}
public SuitOfSilverArmorComponent(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1076266; // Suit of Silver Armor
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class SuitOfSilverArmorAddon : BaseAddon
{
[Constructible]
public SuitOfSilverArmorAddon()
{
AddComponent(new SuitOfSilverArmorComponent(), 0, 0, 0);
}
public SuitOfSilverArmorAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new SuitOfSilverArmorDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class SuitOfSilverArmorDeed : BaseAddonDeed
{
[Constructible]
public SuitOfSilverArmorDeed() => LootType = LootType.Blessed;
public SuitOfSilverArmorDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new SuitOfSilverArmorAddon();
public override int LabelNumber => 1076266; // Suit of Silver Armor
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override int LabelNumber => 1076266; // Suit of Silver Armor
}
[SerializationGenerator(0)]
public partial class SuitOfSilverArmorAddon : BaseAddon
{
[Constructible]
public SuitOfSilverArmorAddon()
{
AddComponent(new SuitOfSilverArmorComponent(), 0, 0, 0);
}
public override BaseAddonDeed Deed => new SuitOfSilverArmorDeed();
}
[SerializationGenerator(0)]
public partial class SuitOfSilverArmorDeed : BaseAddonDeed
{
[Constructible]
public SuitOfSilverArmorDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new SuitOfSilverArmorAddon();
public override int LabelNumber => 1076266; // Suit of Silver Armor
}

View file

@ -1,58 +1,25 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class TableWithBlueClothAddon : BaseAddon
{
public class TableWithBlueClothAddon : BaseAddon
[Constructible]
public TableWithBlueClothAddon()
{
[Constructible]
public TableWithBlueClothAddon()
{
AddComponent(new LocalizedAddonComponent(0x118C, 1076276), 0, 0, 0);
}
public TableWithBlueClothAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new TableWithBlueClothDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0x118C, 1076276), 0, 0, 0);
}
public class TableWithBlueClothDeed : BaseAddonDeed
{
[Constructible]
public TableWithBlueClothDeed() => LootType = LootType.Blessed;
public TableWithBlueClothDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new TableWithBlueClothAddon();
public override int LabelNumber => 1076276; // Table With A Blue Tablecloth
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new TableWithBlueClothDeed();
}
[SerializationGenerator(0)]
public partial class TableWithBlueClothDeed : BaseAddonDeed
{
[Constructible]
public TableWithBlueClothDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new TableWithBlueClothAddon();
public override int LabelNumber => 1076276; // Table With A Blue Tablecloth
}

View file

@ -1,58 +1,25 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class TableWithOrangeClothAddon : BaseAddon
{
public class TableWithOrangeClothAddon : BaseAddon
[Constructible]
public TableWithOrangeClothAddon()
{
[Constructible]
public TableWithOrangeClothAddon()
{
AddComponent(new LocalizedAddonComponent(0x118E, 1076278), 0, 0, 0);
}
public TableWithOrangeClothAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new TableWithOrangeClothDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0x118E, 1076278), 0, 0, 0);
}
public class TableWithOrangeClothDeed : BaseAddonDeed
{
[Constructible]
public TableWithOrangeClothDeed() => LootType = LootType.Blessed;
public TableWithOrangeClothDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new TableWithOrangeClothAddon();
public override int LabelNumber => 1076278; // Table With An Orange Tablecloth
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new TableWithOrangeClothDeed();
}
[SerializationGenerator(0)]
public partial class TableWithOrangeClothDeed : BaseAddonDeed
{
[Constructible]
public TableWithOrangeClothDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new TableWithOrangeClothAddon();
public override int LabelNumber => 1076278; // Table With An Orange Tablecloth
}

View file

@ -1,58 +1,25 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class TableWithPurpleClothAddon : BaseAddon
{
public class TableWithPurpleClothAddon : BaseAddon
[Constructible]
public TableWithPurpleClothAddon()
{
[Constructible]
public TableWithPurpleClothAddon()
{
AddComponent(new LocalizedAddonComponent(0x118B, 1076275), 0, 0, 0);
}
public TableWithPurpleClothAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new TableWithPurpleClothDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0x118B, 1076275), 0, 0, 0);
}
public class TableWithPurpleClothDeed : BaseAddonDeed
{
[Constructible]
public TableWithPurpleClothDeed() => LootType = LootType.Blessed;
public TableWithPurpleClothDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new TableWithPurpleClothAddon();
public override int LabelNumber => 1076275; // Table With A Purple Tablecloth
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new TableWithPurpleClothDeed();
}
[SerializationGenerator(0)]
public partial class TableWithPurpleClothDeed : BaseAddonDeed
{
[Constructible]
public TableWithPurpleClothDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new TableWithPurpleClothAddon();
public override int LabelNumber => 1076275; // Table With A Purple Tablecloth
}

View file

@ -1,58 +1,25 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[SerializationGenerator(0)]
public partial class TableWithRedClothAddon : BaseAddon
{
public class TableWithRedClothAddon : BaseAddon
[Constructible]
public TableWithRedClothAddon()
{
[Constructible]
public TableWithRedClothAddon()
{
AddComponent(new LocalizedAddonComponent(0x118D, 1076277), 0, 0, 0);
}
public TableWithRedClothAddon(Serial serial) : base(serial)
{
}
public override BaseAddonDeed Deed => new TableWithRedClothDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
AddComponent(new LocalizedAddonComponent(0x118D, 1076277), 0, 0, 0);
}
public class TableWithRedClothDeed : BaseAddonDeed
{
[Constructible]
public TableWithRedClothDeed() => LootType = LootType.Blessed;
public TableWithRedClothDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new TableWithRedClothAddon();
public override int LabelNumber => 1076277; // Table With A Red Tablecloth
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public override BaseAddonDeed Deed => new TableWithRedClothDeed();
}
[SerializationGenerator(0)]
public partial class TableWithRedClothDeed : BaseAddonDeed
{
[Constructible]
public TableWithRedClothDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new TableWithRedClothAddon();
public override int LabelNumber => 1076277; // Table With A Red Tablecloth
}

View file

@ -1,133 +1,99 @@
using ModernUO.Serialization;
using Server.Gumps;
using Server.Network;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0)]
public partial class UnmadeBedAddon : BaseAddon
{
public class UnmadeBedAddon : BaseAddon
[Constructible]
public UnmadeBedAddon(bool east)
{
[Constructible]
public UnmadeBedAddon(bool east)
if (east) // east
{
if (east) // east
{
AddComponent(new LocalizedAddonComponent(0xA8C, 1076279), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0xA8D, 1076279), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xA90, 1076279), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xA91, 1076279), -1, -1, 0);
}
else // south
{
AddComponent(new LocalizedAddonComponent(0xDB0, 1076279), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0xDB1, 1076279), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xDB4, 1076279), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xDB5, 1076279), -1, -1, 0);
}
AddComponent(new LocalizedAddonComponent(0xA8C, 1076279), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0xA8D, 1076279), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xA90, 1076279), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xA91, 1076279), -1, -1, 0);
}
public UnmadeBedAddon(Serial serial) : base(serial)
else // south
{
}
public override BaseAddonDeed Deed => new UnmadeBedDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
AddComponent(new LocalizedAddonComponent(0xDB0, 1076279), 0, 0, 0);
AddComponent(new LocalizedAddonComponent(0xDB1, 1076279), -1, 0, 0);
AddComponent(new LocalizedAddonComponent(0xDB4, 1076279), 0, -1, 0);
AddComponent(new LocalizedAddonComponent(0xDB5, 1076279), -1, -1, 0);
}
}
public class UnmadeBedDeed : BaseAddonDeed
public override BaseAddonDeed Deed => new UnmadeBedDeed();
}
[SerializationGenerator(0)]
public partial class UnmadeBedDeed : BaseAddonDeed
{
private bool _east;
[Constructible]
public UnmadeBedDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new UnmadeBedAddon(_east);
public override int LabelNumber => 1076279; // Unmade Bed
public override void OnDoubleClick(Mobile from)
{
private bool m_East;
[Constructible]
public UnmadeBedDeed() => LootType = LootType.Blessed;
public UnmadeBedDeed(Serial serial) : base(serial)
if (IsChildOf(from.Backpack))
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
private class InternalGump : Gump
{
private readonly UnmadeBedDeed _deed;
public InternalGump(UnmadeBedDeed deed) : base(60, 36)
{
_deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076580, 0x7FFF); // Please select your unmade bed position
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
}
public override BaseAddon Addon => new UnmadeBedAddon(m_East);
public override int LabelNumber => 1076279; // Unmade Bed
public override void OnDoubleClick(Mobile from)
public override void OnResponse(NetState sender, RelayInfo info)
{
if (IsChildOf(from.Backpack))
if (_deed?.Deleted != false || info.ButtonID == 0)
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
private class InternalGump : Gump
{
private readonly UnmadeBedDeed m_Deed;
public InternalGump(UnmadeBedDeed deed) : base(60, 36)
{
m_Deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076580, 0x7FFF); // Pleae select your unmade bed position
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
return;
}
public override void OnResponse(NetState sender, RelayInfo info)
{
if (m_Deed?.Deleted != false || info.ButtonID == 0)
{
return;
}
m_Deed.m_East = info.ButtonID != 1;
m_Deed.SendTarget(sender.Mobile);
}
_deed._east = info.ButtonID != 1;
_deed.SendTarget(sender.Mobile);
}
}
}

View file

@ -1,130 +1,96 @@
using ModernUO.Serialization;
using Server.Gumps;
using Server.Network;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0)]
public partial class VanityAddon : BaseAddonContainer
{
public class VanityAddon : BaseAddonContainer
[Constructible]
public VanityAddon(bool east) : base(east ? 0xA44 : 0xA3C)
{
[Constructible]
public VanityAddon(bool east) : base(east ? 0xA44 : 0xA3C)
if (east) // east
{
if (east) // east
{
AddComponent(new AddonContainerComponent(0xA45), 0, -1, 0);
}
else // south
{
AddComponent(new AddonContainerComponent(0xA3D), -1, 0, 0);
}
AddComponent(new AddonContainerComponent(0xA45), 0, -1, 0);
}
public VanityAddon(Serial serial) : base(serial)
else // south
{
}
public override BaseAddonContainerDeed Deed => new VanityDeed();
public override int LabelNumber => 1074027; // Vanity
public override int DefaultGumpID => 0x51;
public override int DefaultDropSound => 0x42;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
AddComponent(new AddonContainerComponent(0xA3D), -1, 0, 0);
}
}
public class VanityDeed : BaseAddonContainerDeed
public override BaseAddonContainerDeed Deed => new VanityDeed();
public override int LabelNumber => 1074027; // Vanity
public override int DefaultGumpID => 0x51;
public override int DefaultDropSound => 0x42;
}
[SerializationGenerator(0)]
public partial class VanityDeed : BaseAddonContainerDeed
{
private bool m_East;
[Constructible]
public VanityDeed() => LootType = LootType.Blessed;
public override BaseAddonContainer Addon => new VanityAddon(m_East);
public override int LabelNumber => 1074027; // Vanity
public override void OnDoubleClick(Mobile from)
{
private bool m_East;
[Constructible]
public VanityDeed() => LootType = LootType.Blessed;
public VanityDeed(Serial serial) : base(serial)
if (IsChildOf(from.Backpack))
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
private class InternalGump : Gump
{
private readonly VanityDeed _deed;
public InternalGump(VanityDeed deed) : base(60, 36)
{
_deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076744, 0x7FFF); // Please select your vanity position.
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
}
public override BaseAddonContainer Addon => new VanityAddon(m_East);
public override int LabelNumber => 1074027; // Vanity
public override void OnDoubleClick(Mobile from)
public override void OnResponse(NetState sender, RelayInfo info)
{
if (IsChildOf(from.Backpack))
if (_deed?.Deleted != false || info.ButtonID == 0)
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
private class InternalGump : Gump
{
private readonly VanityDeed m_Deed;
public InternalGump(VanityDeed deed) : base(60, 36)
{
m_Deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076744, 0x7FFF); // Please select your vanity position.
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
return;
}
public override void OnResponse(NetState sender, RelayInfo info)
{
if (m_Deed?.Deleted != false || info.ButtonID == 0)
{
return;
}
m_Deed.m_East = info.ButtonID != 1;
m_Deed.SendTarget(sender.Mobile);
}
_deed.m_East = info.ButtonID != 1;
_deed.SendTarget(sender.Mobile);
}
}
}

View file

@ -1,106 +1,56 @@
namespace Server.Items
using ModernUO.Serialization;
namespace Server.Items;
[Flippable(0x3D98, 0x3D94)]
[SerializationGenerator(0)]
public partial class WallTorchComponent : AddonComponent
{
[Flippable(0x3D98, 0x3D94)]
public class WallTorchComponent : AddonComponent
public WallTorchComponent() : base(0x3D98)
{
public WallTorchComponent() : base(0x3D98)
{
}
public WallTorchComponent(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1076282; // Wall Torch
public override void OnDoubleClick(Mobile from)
{
if (from.InRange(Location, 2))
{
ItemID = ItemID switch
{
0x3D98 => 0x3D9B,
0x3D9B => 0x3D98,
0x3D94 => 0x3D97,
0x3D97 => 0x3D94,
_ => ItemID
};
Effects.PlaySound(Location, Map, 0x3BE);
}
else
{
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
}
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class WallTorchAddon : BaseAddon
public override int LabelNumber => 1076282; // Wall Torch
public override void OnDoubleClick(Mobile from)
{
public WallTorchAddon()
if (from.InRange(Location, 2))
{
AddComponent(new WallTorchComponent(), 0, 0, 0);
ItemID = ItemID switch
{
0x3D98 => 0x3D9B,
0x3D9B => 0x3D98,
0x3D94 => 0x3D97,
0x3D97 => 0x3D94,
_ => ItemID
};
Effects.PlaySound(Location, Map, 0x3BE);
}
public WallTorchAddon(Serial serial) : base(serial)
else
{
}
public override BaseAddonDeed Deed => new WallTorchDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class WallTorchDeed : BaseAddonDeed
{
[Constructible]
public WallTorchDeed() => LootType = LootType.Blessed;
public WallTorchDeed(Serial serial) : base(serial)
{
}
public override BaseAddon Addon => new WallTorchAddon();
public override int LabelNumber => 1076282; // Wall Torch
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
}
}
}
[SerializationGenerator(0)]
public partial class WallTorchAddon : BaseAddon
{
public WallTorchAddon()
{
AddComponent(new WallTorchComponent(), 0, 0, 0);
}
public override BaseAddonDeed Deed => new WallTorchDeed();
}
[SerializationGenerator(0)]
public partial class WallTorchDeed : BaseAddonDeed
{
[Constructible]
public WallTorchDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new WallTorchAddon();
public override int LabelNumber => 1076282; // Wall Torch
}

View file

@ -1,158 +1,107 @@
using ModernUO.Serialization;
using Server.Gumps;
using Server.Network;
namespace Server.Items
namespace Server.Items;
[SerializationGenerator(0)]
public partial class WoodenCoffinComponent : AddonComponent
{
public class WoodenCoffinComponent : AddonComponent
public WoodenCoffinComponent(int itemID) : base(itemID)
{
public WoodenCoffinComponent(int itemID) : base(itemID)
}
public override int LabelNumber => 1076274; // Coffin
}
[SerializationGenerator(0)]
public partial class WoodenCoffinAddon : BaseAddon
{
[Constructible]
public WoodenCoffinAddon(bool east)
{
if (east) // east
{
AddComponent(new WoodenCoffinComponent(0x1C41), 0, 0, 0);
AddComponent(new WoodenCoffinComponent(0x1C42), 1, 0, 0);
AddComponent(new WoodenCoffinComponent(0x1C43), 2, 0, 0);
}
public WoodenCoffinComponent(Serial serial) : base(serial)
else // south
{
}
public override int LabelNumber => 1076274; // Coffin
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
AddComponent(new WoodenCoffinComponent(0x1C4F), 0, 0, 0);
AddComponent(new WoodenCoffinComponent(0x1C50), 0, 1, 0);
AddComponent(new WoodenCoffinComponent(0x1C51), 0, 2, 0);
}
}
public class WoodenCoffinAddon : BaseAddon
public override BaseAddonDeed Deed => new WoodenCoffinDeed();
}
[SerializationGenerator(0)]
public partial class WoodenCoffinDeed : BaseAddonDeed
{
private bool m_East;
[Constructible]
public WoodenCoffinDeed() => LootType = LootType.Blessed;
public override BaseAddon Addon => new WoodenCoffinAddon(m_East);
public override int LabelNumber => 1076274; // Coffin
public override void OnDoubleClick(Mobile from)
{
[Constructible]
public WoodenCoffinAddon(bool east)
if (IsChildOf(from.Backpack))
{
if (east) // east
{
AddComponent(new WoodenCoffinComponent(0x1C41), 0, 0, 0);
AddComponent(new WoodenCoffinComponent(0x1C42), 1, 0, 0);
AddComponent(new WoodenCoffinComponent(0x1C43), 2, 0, 0);
}
else // south
{
AddComponent(new WoodenCoffinComponent(0x1C4F), 0, 0, 0);
AddComponent(new WoodenCoffinComponent(0x1C50), 0, 1, 0);
AddComponent(new WoodenCoffinComponent(0x1C51), 0, 2, 0);
}
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
public WoodenCoffinAddon(Serial serial) : base(serial)
else
{
}
public override BaseAddonDeed Deed => new WoodenCoffinDeed();
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
public class WoodenCoffinDeed : BaseAddonDeed
private void SendTarget(Mobile m)
{
private bool m_East;
base.OnDoubleClick(m);
}
[Constructible]
public WoodenCoffinDeed() => LootType = LootType.Blessed;
private class InternalGump : Gump
{
private readonly WoodenCoffinDeed _deed;
public WoodenCoffinDeed(Serial serial) : base(serial)
public InternalGump(WoodenCoffinDeed deed) : base(60, 36)
{
_deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076748, 0x7FFF); // Please select your coffin position
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
}
public override BaseAddon Addon => new WoodenCoffinAddon(m_East);
public override int LabelNumber => 1076274; // Coffin
public override void OnDoubleClick(Mobile from)
public override void OnResponse(NetState sender, RelayInfo info)
{
if (IsChildOf(from.Backpack))
if (_deed?.Deleted != false || info.ButtonID == 0)
{
from.CloseGump<InternalGump>();
from.SendGump(new InternalGump(this));
}
else
{
from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used.
}
}
private void SendTarget(Mobile m)
{
base.OnDoubleClick(m);
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
private class InternalGump : Gump
{
private readonly WoodenCoffinDeed m_Deed;
public InternalGump(WoodenCoffinDeed deed) : base(60, 36)
{
m_Deed = deed;
AddPage(0);
AddBackground(0, 0, 273, 324, 0x13BE);
AddImageTiled(10, 10, 253, 20, 0xA40);
AddImageTiled(10, 40, 253, 244, 0xA40);
AddImageTiled(10, 294, 253, 20, 0xA40);
AddAlphaRegion(10, 10, 253, 304);
AddButton(10, 294, 0xFB1, 0xFB2, 0);
AddHtmlLocalized(45, 296, 450, 20, 1060051, 0x7FFF); // CANCEL
AddHtmlLocalized(14, 12, 273, 20, 1076748, 0x7FFF); // Please select your coffin position
AddPage(1);
AddButton(19, 49, 0x845, 0x846, 1);
AddHtmlLocalized(44, 47, 213, 20, 1075386, 0x7FFF); // South
AddButton(19, 73, 0x845, 0x846, 2);
AddHtmlLocalized(44, 71, 213, 20, 1075387, 0x7FFF); // East
return;
}
public override void OnResponse(NetState sender, RelayInfo info)
{
if (m_Deed?.Deleted != false || info.ButtonID == 0)
{
return;
}
m_Deed.m_East = info.ButtonID != 1;
m_Deed.SendTarget(sender.Mobile);
}
_deed.m_East = info.ButtonID != 1;
_deed.SendTarget(sender.Mobile);
}
}
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.AppleTreeAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.AppleTreeDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.AppleTrunkAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.AppleTrunkDeed"
}

View file

@ -0,0 +1,14 @@
{
"version": 0,
"type": "Server.Items.BaseFruitTreeAddon",
"properties": [
{
"name": "Fruits",
"type": "int",
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
}
]
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BlueDecorativeRugAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BlueDecorativeRugDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BlueFancyRugAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BlueFancyRugDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BluePlainRugAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BluePlainRugDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BoilingCauldronAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BoilingCauldronDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.CherryBlossomTreeAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.CherryBlossomTreeDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.CherryBlossomTrunkAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.CherryBlossomTrunkDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.CinnamonFancyRugAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.CinnamonFancyRugDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.CurtainsAddon"
}

View file

@ -0,0 +1,14 @@
{
"version": 0,
"type": "Server.Items.CurtainsComponent",
"properties": [
{
"name": "ClosedId",
"type": "int",
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
}
]
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.CurtainsDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.FountainAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.FountainDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.GoldenDecorativeRugAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.GoldenDecorativeRugDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.GuillotineAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.GuillotineComponent"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.HangingAxesAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.HangingAxesDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.HangingSwordsAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.HangingSwordsDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.HouseLadderAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.HouseLadderDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.IronMaidenAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.IronMaidenDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.LargeFishingNetAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.LargeFishingNetComponent"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.LargeFishingNetDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.PeachTreeAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.PeachTreeDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.PeachTrunkAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.PeachTrunkDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.PinkFancyRugAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.PinkFancyRugDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.RedPlainRugAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.RedPlainRugDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.ScarecrowAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.ScarecrowComponent"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.ScarecrowDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.SmallFishingNetAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.SmallFishingNetComponent"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.SmallFishingNetDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.StoneStatueAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.StoneStatueDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.SuitOfGoldArmorAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.SuitOfGoldArmorComponent"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.SuitOfGoldArmorDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.SuitOfSilverArmorAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.SuitOfSilverArmorComponent"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.SuitOfSilverArmorDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TableWithBlueClothAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TableWithBlueClothDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TableWithOrangeClothAddon"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TableWithOrangeClothDeed"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TableWithPurpleClothAddon"
}

Some files were not shown because too many files have changed in this diff Show more