fix(codegen): Codegens Holiday stuff (#631)

This commit is contained in:
Kamron Batman 2021-06-01 16:34:24 -07:00 committed by GitHub
parent ac3958a0b8
commit 8b0bdc7d62
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
78 changed files with 419 additions and 993 deletions

View file

@ -6,7 +6,8 @@ using Server.Targeting;
namespace Server.Items
{
public class Fireflies : Item, IAddon
[Serializable(0)]
public partial class Fireflies : Item, IAddon
{
[Constructible]
public Fireflies(int itemID = 0x1596)
@ -16,35 +17,11 @@ namespace Server.Items
Movable = false;
}
public Fireflies(Serial serial)
: base(serial)
{
}
public override int LabelNumber => 1150061;
public bool FacingSouth
{
get
{
if (ItemID == 0x2336)
{
return true;
}
public bool FacingSouth => ItemID == 0x2336;
return false;
}
}
public Item Deed
{
get
{
var deed = new FirefliesDeed();
return deed;
}
}
public Item Deed => new FirefliesDeed();
public bool CouldFit(IPoint3D p, Map map)
{
@ -53,12 +30,9 @@ namespace Server.Items
return false;
}
if (FacingSouth)
{
return BaseAddon.IsWall(p.X, p.Y - 1, p.Z, map); // north wall
}
return BaseAddon.IsWall(p.X - 1, p.Y, p.Z, map); // west wall
return FacingSouth ?
BaseAddon.IsWall(p.X, p.Y - 1, p.Z, map) :
BaseAddon.IsWall(p.X - 1, p.Y, p.Z, map);
}
public override void OnDoubleClick(Mobile from)
@ -84,23 +58,10 @@ namespace Server.Items
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 FirefliesDeed : Item
[Serializable(0)]
public partial class FirefliesDeed : Item
{
[Constructible]
public FirefliesDeed()
@ -110,11 +71,6 @@ namespace Server.Items
Weight = 1.0;
}
public FirefliesDeed(Serial serial)
: base(serial)
{
}
public override int LabelNumber => 1150061;
public override void OnDoubleClick(Mobile from)
@ -143,20 +99,6 @@ namespace Server.Items
}
}
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 FacingGump : Gump
{
private readonly FirefliesDeed m_Deed;

View file

@ -1,7 +1,8 @@
namespace Server.Items.Holiday
{
[Serializable(0, false)]
[TypeAlias("Server.Items.AngelDecoration"), Flippable(0x46FA, 0x46FB)]
public class AngelDecoration : Item
public partial class AngelDecoration : Item
{
public AngelDecoration() : base(0x46FA)
{
@ -9,24 +10,5 @@
Weight = 30;
}
public AngelDecoration(Serial serial)
: base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,7 +1,8 @@
namespace Server.Items.Holiday
{
[Serializable(0, false)]
[TypeAlias("Server.Items.RockingHorse"), Flippable(0x4214, 0x4215)]
public class RockingHorse : Item
public partial class RockingHorse : Item
{
public RockingHorse() : base(0x4214)
{
@ -9,24 +10,5 @@
Weight = 30;
}
public RockingHorse(Serial serial)
: base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class DragonEasterEgg : Item, IDyable
[Serializable(0, false)]
public partial class DragonEasterEgg : Item, IDyable
{
[Constructible]
public DragonEasterEgg()
@ -8,11 +9,6 @@
{
}
public DragonEasterEgg(Serial serial)
: base(serial)
{
}
public override int LabelNumber => 1097278;
public bool Dye(Mobile from, DyeTub sender)
@ -26,19 +22,5 @@
return true;
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -230,7 +230,8 @@ namespace Server.Engines.Events
}
}
public class NaughtyTwin : BaseCreature
[Serializable(0, false)]
public partial class NaughtyTwin : BaseCreature
{
private static readonly Point3D[] Felucca_Locations =
{
@ -286,11 +287,6 @@ namespace Server.Engines.Events
}
}
public NaughtyTwin(Serial serial)
: base(serial)
{
}
public override void OnThink()
{
if (m_From?.Deleted != false)
@ -304,12 +300,7 @@ namespace Server.Engines.Events
Type[] types =
{ typeof(WrappedCandy), typeof(Lollipops), typeof(NougatSwirl), typeof(Taffy), typeof(JellyBeans) };
if (TrickOrTreat.CheckMobile(target))
{
return target.Backpack.FindItemByType(types);
}
return null;
return TrickOrTreat.CheckMobile(target) ? target.Backpack.FindItemByType(types) : null;
}
public static void StealCandyOrGate(Mobile target)
@ -345,17 +336,5 @@ namespace Server.Engines.Events
_ => Felucca_Locations.RandomElement()
};
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -2,11 +2,16 @@
namespace Server.Items
{
public class HalloweenPumpkin : Item
[Serializable(1, false)]
public partial class HalloweenPumpkin : Item
{
private static readonly string[] m_Staff =
{
"Ryan", "Mark", "Eos", "Athena", "Xavier", "Krrios", "Zippy"
"Owyn",
"Luthius",
"Kamron",
"Jaedan",
"Vorspire"
};
[Constructible]
@ -18,11 +23,6 @@ namespace Server.Items
: Utility.RandomList(0xc6a, 0xc6b, 0xc6c);
}
public HalloweenPumpkin(Serial serial)
: base(serial)
{
}
public override void OnDoubleClick(Mobile from)
{
if (!from.InRange(GetWorldLocation(), 2))
@ -78,19 +78,8 @@ namespace Server.Items
return true;
}
public override void Serialize(IGenericWriter writer)
private void Deserialize(IGenericReader reader, int version)
{
base.Serialize(writer);
writer.Write(1); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
if (version == 0 && Name == null && ItemID == 0x4698)
{
AssignRandomName();

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class PumpkinScarecrow : Item
[Serializable(0, false)]
public partial class PumpkinScarecrow : Item
{
[Constructible]
public PumpkinScarecrow()
@ -8,25 +9,6 @@
{
}
public PumpkinScarecrow(Serial serial)
: base(serial)
{
}
public override int LabelNumber => 1096947;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class RuinedTapestry : Item
[Serializable(0, false)]
public partial class RuinedTapestry : Item
{
[Constructible]
public RuinedTapestry()
@ -8,25 +9,6 @@
{
}
public RuinedTapestry(Serial serial)
: base(serial)
{
}
public override string DefaultName => "Ruined Tapestry ";
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,15 +1,11 @@
namespace Server.Items
{
public class TwilightLantern : Lantern
[Serializable(0, false)]
public partial class TwilightLantern : Lantern
{
[Constructible]
public TwilightLantern() => Hue = Utility.RandomBool() ? 244 : 997;
public TwilightLantern(Serial serial)
: base(serial)
{
}
public override string DefaultName => "Twilight Lantern";
public override bool AllowEquippedCast(Mobile from) => true;
@ -20,19 +16,5 @@
list.Add(1060482); // Spell Channeling
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -4,31 +4,12 @@
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class CreepyCake : Food
[Serializable(0, false)]
public partial class CreepyCake : Food
{
[Constructible]
public CreepyCake() : base(0x9e9, 1) => Hue = 0x3E4;
public CreepyCake(Serial serial)
: base(serial)
{
}
public override string DefaultName => "Creepy Cake";
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -4,34 +4,13 @@
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class HarvestWine : BeverageBottle
[Serializable(0, false)]
public partial class HarvestWine : BeverageBottle
{
[Constructible]
public HarvestWine()
: base(BeverageType.Wine) =>
Hue = 0xe0;
public HarvestWine(Serial serial)
: base(serial)
{
}
public HarvestWine() : base(BeverageType.Wine) => Hue = 0xe0;
public override string DefaultName => "Harvest Wine";
public override double DefaultWeight => 1;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class MrPlainsCookies : Food
[Serializable(0, false)]
public partial class MrPlainsCookies : Food
{
[Constructible]
public MrPlainsCookies() : base(0x160C, 1)
@ -10,25 +11,6 @@
Hue = 0xF4;
}
public MrPlainsCookies(Serial serial)
: base(serial)
{
}
public override string DefaultName => "Mr Plain's Cookies";
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -4,39 +4,19 @@
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class MurkyMilk : Pitcher
[Serializable(0, false)]
public partial class MurkyMilk : Pitcher
{
[Constructible]
public MurkyMilk()
: base(BeverageType.Milk)
public MurkyMilk() : base(BeverageType.Milk)
{
Hue = 0x3e5;
Quantity = MaxQuantity;
ItemID = Utility.RandomBool() ? 0x09F0 : 0x09AD;
}
public MurkyMilk(Serial serial)
: base(serial)
{
}
public override string DefaultName => "Murky Milk";
public override int MaxQuantity => 5;
public override double DefaultWeight => 1;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -4,31 +4,12 @@
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class PumpkinPizza : CheesePizza
[Serializable(0, false)]
public partial class PumpkinPizza : CheesePizza
{
[Constructible]
public PumpkinPizza() => Hue = 0xF3;
public PumpkinPizza(Serial serial)
: base(serial)
{
}
public override string DefaultName => "Pumpkin Pizza";
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -4,34 +4,14 @@
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class GrimWarning : Item
[Serializable(0, false)]
public partial class GrimWarning : Item
{
[Constructible]
public GrimWarning()
: base(0x42BD)
{
}
public GrimWarning(Serial serial)
: base(serial)
public GrimWarning() : base(0x42BD)
{
}
public override double DefaultWeight => 1;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -4,34 +4,14 @@
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class SkullsOnPike : Item
[Serializable(0, false)]
public partial class SkullsOnPike : Item
{
[Constructible]
public SkullsOnPike()
: base(0x42B5)
{
}
public SkullsOnPike(Serial serial)
: base(serial)
public SkullsOnPike() : base(0x42B5)
{
}
public override double DefaultWeight => 1;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,32 +1,13 @@
namespace Server.Items
{
public class ChairInAGhostCostume : Item
[Serializable(0, false)]
public partial class ChairInAGhostCostume : Item
{
[Constructible]
public ChairInAGhostCostume()
: base(0x3F26)
{
}
public ChairInAGhostCostume(Serial serial)
: base(serial)
public ChairInAGhostCostume() : base(0x3F26)
{
}
public override double DefaultWeight => 5;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,31 +1,12 @@
namespace Server.Items
{
public class ColoredSmallWebs : Item
[Serializable(0, false)]
public partial class ColoredSmallWebs : Item
{
[Constructible]
public ColoredSmallWebs()
: base(Utility.RandomBool() ? 0x10d6 : 0x10d7) =>
public ColoredSmallWebs() : base(Utility.RandomBool() ? 0x10d6 : 0x10d7) =>
Hue = Utility.RandomBool() ? 0x455 : 0x4E9;
public ColoredSmallWebs(Serial serial)
: base(serial)
{
}
public override double DefaultWeight => 5;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,32 +1,13 @@
namespace Server.Items
{
public class ExcellentIronMaiden : Item
[Serializable(0, false)]
public partial class ExcellentIronMaiden : Item
{
[Constructible]
public ExcellentIronMaiden()
: base(0x3f15)
{
}
public ExcellentIronMaiden(Serial serial)
: base(serial)
public ExcellentIronMaiden() : base(0x3f15)
{
}
public override double DefaultWeight => 5;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,31 +1,13 @@
namespace Server.Items
{
public class HalloweenGuillotine : Item
[Serializable(0, false)]
public partial class HalloweenGuillotine : Item
{
[Constructible]
public HalloweenGuillotine() : base(0x3F27)
{
}
public HalloweenGuillotine(Serial serial)
: base(serial)
{
}
public override double DefaultWeight => 5;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -7,15 +7,14 @@ namespace Server.Items.Holiday
{
private static readonly string[] m_Staffers =
{
"Ryan",
"Mark",
"Krrios",
"Zippy",
"Athena",
"Eos",
"Xavier"
"Owyn",
"Luthius",
"Kamron",
"Jaedan",
"Vorspire"
};
// Todo: Requires private-only modifiers
private string m_Staffer;
public BasePaintedMask(int itemid) : this(m_Staffers.RandomElement(), itemid)

View file

@ -1,32 +1,13 @@
namespace Server.Items.Holiday
{
public class PaintedEvilClownMask : BasePaintedMask
[Serializable(0, false)]
public partial class PaintedEvilClownMask : BasePaintedMask
{
[Constructible]
public PaintedEvilClownMask()
: base(0x4a90)
{
}
public PaintedEvilClownMask(Serial serial)
: base(serial)
public PaintedEvilClownMask() : base(0x4a90)
{
}
public override string MaskName => "Evil Clown Mask";
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items.Holiday
{
public class PaintedDaemonMask : BasePaintedMask
[Serializable(0, false)]
public partial class PaintedDaemonMask : BasePaintedMask
{
[Constructible]
public PaintedDaemonMask()
@ -8,25 +9,6 @@
{
}
public PaintedDaemonMask(Serial serial)
: base(serial)
{
}
public override string MaskName => "Daemon Mask";
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items.Holiday
{
public class PaintedPlagueMask : BasePaintedMask
[Serializable(0, false)]
public partial class PaintedPlagueMask : BasePaintedMask
{
[Constructible]
public PaintedPlagueMask()
@ -8,25 +9,6 @@
{
}
public PaintedPlagueMask(Serial serial)
: base(serial)
{
}
public override string MaskName => "Plague Mask";
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -4,7 +4,8 @@ using Server.Items.Holiday;
namespace Server.Mobiles
{
public class PumpkinHead : BaseCreature
[Serializable(0, false)]
public partial class PumpkinHead : BaseCreature
{
[Constructible]
public PumpkinHead()
@ -47,11 +48,6 @@ namespace Server.Mobiles
VirtualArmor = 49;
}
public PumpkinHead(Serial serial)
: base(serial)
{
}
public override string CorpseName => "a killer pumpkin corpse";
public override bool AutoDispel => true;
public override bool BardImmune => true;
@ -119,17 +115,5 @@ namespace Server.Mobiles
base.OnDamage(amount, from, willKill);
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -175,8 +175,9 @@ namespace Server.Engines.Events
public class ZombieSkeleton : BaseCreature
{
private static readonly string m_Name = "Zombie Skeleton";
private const string _name = "Zombie Skeleton";
// TODO: Requires private modifier
private PlayerMobile m_DeadPlayer;
public ZombieSkeleton(PlayerMobile player = null)
@ -184,7 +185,7 @@ namespace Server.Engines.Events
{
m_DeadPlayer = player;
Name = player != null ? $"{player.Name}'s {m_Name}" : m_Name;
Name = player != null ? $"{player.Name}'s {_name}" : _name;
Body = 0x93;
BaseSoundID = 0x1c3;

View file

@ -1,32 +1,13 @@
namespace Server.Items.Holiday
{
public class PaintedEvilJesterMask : BasePaintedMask
[Serializable(0, false)]
public partial class PaintedEvilJesterMask : BasePaintedMask
{
[Constructible]
public PaintedEvilJesterMask()
: base(0x4BA5)
{
}
public PaintedEvilJesterMask(Serial serial)
: base(serial)
public PaintedEvilJesterMask() : base(0x4BA5)
{
}
public override string MaskName => "Evil Jester Mask";
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,32 +1,13 @@
namespace Server.Items.Holiday
{
public class PaintedPorcelainMask : BasePaintedMask
[Serializable(0, false)]
public partial class PaintedPorcelainMask : BasePaintedMask
{
[Constructible]
public PaintedPorcelainMask()
: base(0x4BA7)
{
}
public PaintedPorcelainMask(Serial serial)
: base(serial)
public PaintedPorcelainMask() : base(0x4BA7)
{
}
public override string MaskName => "Porcelain Mask";
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(1); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -30,13 +30,12 @@ namespace Server.Events.Halloween
typeof(NougatSwirl)
};
public static DateTime StartHalloween // YY MM DD
=> new(2012, 10, 24);
// YY MM DD
public static DateTime StartHalloween => new(2021, 10, 24);
public static DateTime FinishHalloween => new(2012, 11, 15);
public static DateTime FinishHalloween => new(2021, 11, 15);
public static Item RandomGMBeggerItem =>
m_GMBeggarTreats.RandomElement().CreateInstance<Item>();
public static Item RandomGMBeggerItem => m_GMBeggarTreats.RandomElement().CreateInstance<Item>();
public static Item RandomTreat => m_Treats.RandomElement().CreateInstance<Item>();
}

View file

@ -1,31 +1,11 @@
namespace Server.Items
{
public class JellyBeans : CandyCane
[Serializable(0, false)]
public partial class JellyBeans : CandyCane
{
[Constructible]
public JellyBeans(int amount = 1)
: base(0x468C) =>
Stackable = true;
public JellyBeans(Serial serial)
: base(serial)
{
}
public JellyBeans(int amount = 1) : base(0x468C) => Stackable = true;
public override int LabelNumber => 1096932; /* jellybeans */
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,30 +1,10 @@
namespace Server.Items
{
[TypeAlias("Server.Items.Lollipop")]
public class Lollipops : CandyCane
[Serializable(0, false)]
public partial class Lollipops : CandyCane
{
[Constructible]
public Lollipops(int amount = 1)
: base(0x468D + Utility.Random(3)) =>
Stackable = true;
public Lollipops(Serial serial)
: base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
public Lollipops(int amount = 1) : base(0x468D + Utility.Random(3)) => Stackable = true;
}
}

View file

@ -1,31 +1,11 @@
namespace Server.Items
{
public class NougatSwirl : CandyCane
[Serializable(0, false)]
public partial class NougatSwirl : CandyCane
{
[Constructible]
public NougatSwirl(int amount = 1)
: base(0x4690) =>
Stackable = true;
public NougatSwirl(Serial serial)
: base(serial)
{
}
public NougatSwirl(int amount = 1) : base(0x4690) => Stackable = true;
public override int LabelNumber => 1096936; /* nougat swirl */
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,31 +1,11 @@
namespace Server.Items
{
public class Taffy : CandyCane
[Serializable(0, false)]
public partial class Taffy : CandyCane
{
[Constructible]
public Taffy(int amount = 1)
: base(0x469D) =>
Stackable = true;
public Taffy(Serial serial)
: base(serial)
{
}
public Taffy(int amount = 1) : base(0x469D) => Stackable = true;
public override int LabelNumber => 1096949; /* taffy */
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,31 +1,11 @@
namespace Server.Items
{
public class WrappedCandy : CandyCane
[Serializable(0, false)]
public partial class WrappedCandy : CandyCane
{
[Constructible]
public WrappedCandy(int amount = 1)
: base(0x469e) =>
Stackable = true;
public WrappedCandy(Serial serial)
: base(serial)
{
}
public WrappedCandy(int amount = 1) : base(0x469e) => Stackable = true;
public override int LabelNumber => 1096950; /* wrapped candy */
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,28 +1,10 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0x49CC, 0x49D0)]
public class AnimatedHeartShapedBox : HeartShapedBox
public partial class AnimatedHeartShapedBox : HeartShapedBox
{
[Constructible]
public AnimatedHeartShapedBox() => ItemID = 0x49CC;
public AnimatedHeartShapedBox(Serial serial)
: base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -4,104 +4,62 @@ using Server.Network;
namespace Server.Items
{
public abstract class StValentinesBear : Item
[Serializable(0, false)]
public abstract partial class StValentinesBear : Item
{
private string m_Line1;
private string m_Line2;
private string m_Line3;
[InternString]
[InvalidateProperties]
[SerializableField(0)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private string _owner;
private string m_Owner;
[InternString]
[InvalidateProperties]
[SerializableField(1)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private string _line1;
public StValentinesBear(int itemid, string name)
: base(itemid)
[InternString]
[InvalidateProperties]
[SerializableField(2)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private string _line2;
[InternString]
[InvalidateProperties]
[SerializableField(3)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private string _line3;
public StValentinesBear(int itemid, string name) : base(itemid)
{
m_Owner = name;
Owner = name;
LootType = LootType.Blessed;
}
public StValentinesBear(Serial serial)
: base(serial)
{
}
public override string DefaultName
{
get
{
if (m_Owner != null)
{
return $"{m_Owner}'s St. Valentine Bear";
}
return "St. Valentine Bear";
}
}
[CommandProperty(AccessLevel.GameMaster)]
public string Owner
{
get => m_Owner;
set
{
m_Owner = value;
InvalidateProperties();
}
}
[CommandProperty(AccessLevel.GameMaster)]
public string Line1
{
get => m_Line1;
set
{
m_Line1 = value;
InvalidateProperties();
}
}
[CommandProperty(AccessLevel.GameMaster)]
public string Line2
{
get => m_Line2;
set
{
m_Line2 = value;
InvalidateProperties();
}
}
[CommandProperty(AccessLevel.GameMaster)]
public string Line3
{
get => m_Line3;
set
{
m_Line3 = value;
InvalidateProperties();
}
}
public override string DefaultName => _owner != null ? $"{_owner}'s St. Valentine Bear" : "St. Valentine Bear";
[CommandProperty(AccessLevel.GameMaster)]
public DateTime EditLimit { get; set; }
public bool IsSigned => m_Line1 != null || m_Line2 != null || m_Line3 != null;
public bool IsSigned => _line1 != null || _line2 != null || _line3 != null;
public bool CanSign => !IsSigned || Core.Now <= EditLimit;
public override void AddNameProperty(ObjectPropertyList list)
{
if (m_Owner != null)
if (_owner != null)
{
list.Add(1150295, m_Owner); // ~1_NAME~'s St. Valentine Bear
list.Add(1150295, _owner); // ~1_NAME~'s St. Valentine Bear
}
else
{
list.Add(1150294); // St. Valentine Bear
}
AddLine(list, 1150301, m_Line1); // [ ~1_LINE0~ ]
AddLine(list, 1150302, m_Line2); // [ ~1_LINE1~ ]
AddLine(list, 1150303, m_Line3); // [ ~1_LINE2~ ]
AddLine(list, 1150301, _line1); // [ ~1_LINE0~ ]
AddLine(list, 1150302, _line2); // [ ~1_LINE1~ ]
AddLine(list, 1150303, _line3); // [ ~1_LINE2~ ]
}
private static void AddLine(ObjectPropertyList list, int cliloc, string line)
@ -116,9 +74,9 @@ namespace Server.Items
{
base.OnSingleClick(from);
ShowLine(from, 1150301, m_Line1); // [ ~1_LINE0~ ]
ShowLine(from, 1150302, m_Line2); // [ ~1_LINE1~ ]
ShowLine(from, 1150303, m_Line3); // [ ~1_LINE2~ ]
ShowLine(from, 1150301, _line1); // [ ~1_LINE0~ ]
ShowLine(from, 1150302, _line2); // [ ~1_LINE1~ ]
ShowLine(from, 1150303, _line3); // [ ~1_LINE2~ ]
}
private void ShowLine(Mobile from, int cliloc, string line)
@ -145,30 +103,6 @@ namespace Server.Items
from.SendGump(new InternalGump(this));
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
writer.Write(m_Owner);
writer.Write(m_Line1);
writer.Write(m_Line2);
writer.Write(m_Line3);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
m_Owner = Utility.Intern(reader.ReadString());
m_Line1 = Utility.Intern(reader.ReadString());
m_Line2 = Utility.Intern(reader.ReadString());
m_Line3 = Utility.Intern(reader.ReadString());
}
private class InternalGump : Gump
{
private readonly StValentinesBear m_Bear;
@ -256,61 +190,23 @@ namespace Server.Items
}
}
[Serializable(0, false)]
[Flippable(0x48E0, 0x48E1)]
public class StValentinesPanda : StValentinesBear
public partial class StValentinesPanda : StValentinesBear
{
[Constructible]
public StValentinesPanda(string name = null)
: base(0x48E0, name)
public StValentinesPanda(string name = null) : base(0x48E0, name)
{
}
public StValentinesPanda(Serial serial)
: base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
[Serializable(0, false)]
[Flippable(0x48E2, 0x48E3)]
public class StValentinesPolarBear : StValentinesBear
public partial class StValentinesPolarBear : StValentinesBear
{
[Constructible]
public StValentinesPolarBear(string name = null)
: base(0x48E2, name)
public StValentinesPolarBear(string name = null) : base(0x48E2, name)
{
}
public StValentinesPolarBear(Serial serial)
: base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,32 +1,12 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0x4F7C, 0x4F7D)]
public class CupidStatue : Item
public partial class CupidStatue : Item
{
[Constructible]
public CupidStatue()
: base(0x4F7D) =>
LootType = LootType.Blessed;
public CupidStatue(Serial serial)
: base(serial)
{
}
public CupidStatue() : base(0x4F7D) => LootType = LootType.Blessed;
public override int LabelNumber => 1099220; // cupid statue
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,49 +1,30 @@
using System;
using Server.Targeting;
namespace Server.Items
{
public class CupidsArrow : Item
[Serializable(0, false)]
public partial class CupidsArrow : Item
{
private string m_From;
private string m_To;
[InternString]
[InvalidateProperties]
[SerializableField(0)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private string _from;
[InternString]
[InvalidateProperties]
[SerializableField(1)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private string _to;
[Constructible]
public CupidsArrow()
: base(0x4F7F) =>
LootType = LootType.Blessed;
public CupidsArrow() : base(0x4F7F) => LootType = LootType.Blessed;
public CupidsArrow(Serial serial)
: base(serial)
{
}
// TODO: Check messages
public override int LabelNumber => 1152270; // Cupid's Arrow 2012
[CommandProperty(AccessLevel.GameMaster)]
public string From
{
get => m_From;
set
{
m_From = value;
InvalidateProperties();
}
}
[CommandProperty(AccessLevel.GameMaster)]
public string To
{
get => m_To;
set
{
m_To = value;
InvalidateProperties();
}
}
public bool IsSigned => m_From != null && m_To != null;
public bool IsSigned => _from != null && _to != null;
public override void AddNameProperty(ObjectPropertyList list)
{
@ -51,7 +32,7 @@ namespace Server.Items
if (IsSigned)
{
list.Add(1152273, $"{m_From}\t{m_To}"); // ~1_val~ is madly in love with ~2_val~
list.Add(1152273, $"{_from}\t{_to}"); // ~1_val~ is madly in love with ~2_val~
}
}
@ -72,7 +53,7 @@ namespace Server.Items
if (IsSigned)
{
LabelTo(from, 1152273, $"{m_From}\t{m_To}"); // ~1_val~ is madly in love with ~2_val~
LabelTo(from, 1152273, $"{_from}\t{_to}"); // ~1_val~ is madly in love with ~2_val~
}
}
@ -110,9 +91,10 @@ namespace Server.Items
return;
}
m_From = from.Name;
m_To = m.Name;
_from = from.Name;
_to = m.Name;
((ISerializable)this).MarkDirty();
InvalidateProperties();
from.SendMessage("You inscribe the arrow.");
@ -122,25 +104,5 @@ namespace Server.Items
from.SendMessage("That is not a person.");
}
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0);
writer.Write(m_From);
writer.Write(m_To);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
m_From = Utility.Intern(reader.ReadString());
m_To = Utility.Intern(reader.ReadString());
}
}
}

View file

@ -1,18 +1,13 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0x49CA, 0x49CB)]
public class HeartShapedBox : BaseContainer
public partial class HeartShapedBox : BaseContainer
{
private static int m_DropSound;
[Constructible]
public HeartShapedBox()
: base(0x49CA)
{
}
public HeartShapedBox(Serial serial)
: base(serial)
public HeartShapedBox() : base(0x49CA)
{
}
@ -34,19 +29,5 @@ namespace Server.Items
{
m_DropSound = from.Female ? 0x430 : 0x320;
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Engines.Events.NaughtyTwin",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.AnimatedHeartShapedBox",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.ChairInAGhostCostume",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.ColoredSmallWebs",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.CreepyCake",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.CupidStatue",
"properties": []
}

View file

@ -0,0 +1,22 @@
{
"version": 0,
"type": "Server.Items.CupidsArrow",
"properties": [
{
"name": "From",
"type": "string",
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"InternString"
]
},
{
"name": "To",
"type": "string",
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"InternString"
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.DragonEasterEgg",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.ExcellentIronMaiden",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.Fireflies",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.FirefliesDeed",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.GrimWarning",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.HalloweenGuillotine",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 1,
"type": "Server.Items.HalloweenPumpkin",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.HarvestWine",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.HeartShapedBox",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.Holiday.AngelDecoration",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.Holiday.PaintedDaemonMask",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.Holiday.PaintedEvilClownMask",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.Holiday.PaintedEvilJesterMask",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.Holiday.PaintedPlagueMask",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.Holiday.PaintedPorcelainMask",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.Holiday.RockingHorse",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.JellyBeans",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.Lollipops",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.MrPlainsCookies",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.MurkyMilk",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.NougatSwirl",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.PumpkinPizza",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.PumpkinScarecrow",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.RuinedTapestry",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.SkullsOnPike",
"properties": []
}

View file

@ -0,0 +1,38 @@
{
"version": 0,
"type": "Server.Items.StValentinesBear",
"properties": [
{
"name": "Owner",
"type": "string",
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"InternString"
]
},
{
"name": "Line1",
"type": "string",
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"InternString"
]
},
{
"name": "Line2",
"type": "string",
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"InternString"
]
},
{
"name": "Line3",
"type": "string",
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"InternString"
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.StValentinesPanda",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.StValentinesPolarBear",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.Taffy",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.TwilightLantern",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Items.WrappedCandy",
"properties": []
}

View file

@ -0,0 +1,5 @@
{
"version": 0,
"type": "Server.Mobiles.PumpkinHead",
"properties": []
}