fix(codegen): Reverts & Disables codegen (for now) (#625)

After speaking with the C# devs, it is clear that code gen is not ready.
I can get around this by doing the following:
1. Creating a library
2. Splitting out the schema writing from the source generator
3. Moving the schema loading to `AdditionalFiles`
4. Writing a new post-build application using Roslyn to write the schema files after building.
This commit is contained in:
Kamron Batman 2021-05-27 19:50:22 -07:00 committed by GitHub
parent 6e9108302a
commit f2d44e0283
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
84 changed files with 1053 additions and 487 deletions

View file

@ -27,13 +27,6 @@ namespace SerializationGenerator
{
public void Initialize(GeneratorInitializationContext context)
{
#if DEBUG
if (!Debugger.IsAttached)
{
Debugger.Launch();
}
#endif
context.RegisterForPostInitialization(i =>
{
SerializerSyntaxReceiver.AttributeTypes.Add("Server.SerializableAttribute");

View file

@ -70,7 +70,7 @@ namespace SerializationGenerator
Array.Copy(ruleArguments, 2, arrayElementRuleArguments, 0, ruleArguments.Length - 2);
var propertyIndex = $"{property.Name}Index";
source.AppendLine($"{indent}{property.Name} = new {ruleArguments[0]}[reader.ReadEncodedInt()];");
source.AppendLine($"{indent}{property.Name} = new {ruleArguments[0]}[reader.ReadInt()];");
source.AppendLine($"{indent}for (var {propertyIndex} = 0; {propertyIndex} < {property.Name}.Length; {propertyIndex}++)");
source.AppendLine($"{indent}{{");
@ -101,9 +101,11 @@ namespace SerializationGenerator
var arrayElementRuleArguments = new string[ruleArguments.Length - 2];
Array.Copy(ruleArguments, 2, arrayElementRuleArguments, 0, ruleArguments.Length - 2);
var propertyIndex = $"{property.Name}Index";
source.AppendLine($"{indent}writer.WriteEncodedInt({property.Name}.Length);");
source.AppendLine($"{indent}for (var {propertyIndex} = 0; {propertyIndex} < {property.Name}.Length; {propertyIndex}++)");
var propertyName = property.Name;
var propertyVarPrefix = $"{char.ToLower(propertyName[0])}{propertyName.Substring(1, propertyName.Length - 1)}";
var propertyIndex = $"{propertyVarPrefix}Index";
source.AppendLine($"{indent}writer.Write({property.Name}.Length);");
source.AppendLine($"{indent}for (var {propertyIndex} = 0; {propertyIndex} < {propertyVarPrefix}.Length; {propertyIndex}++)");
source.AppendLine($"{indent}{{");
var serializableArrayElement = new SerializableProperty

View file

@ -76,12 +76,10 @@ namespace SerializationGenerator
var propertyVarPrefix = $"{char.ToLower(propertyName[0])}{propertyName.Substring(1, propertyName.Length - 1)}";
var propertyIndex = $"{propertyVarPrefix}Index";
var propertyEntry = $"{propertyVarPrefix}Entry";
var propertyCount = $"{propertyVarPrefix}Count";
source.AppendLine($"{indent}{ruleArguments[0]} {propertyEntry};");
source.AppendLine($"{indent}var {propertyCount} = reader.ReadEncodedInt();");
source.AppendLine($"{indent}{property.Name} = new System.Collections.Generic.HashSet<{ruleArguments[0]}>({propertyCount});");
source.AppendLine($"{indent}for (var {propertyIndex} = 0; i < {propertyCount}; {propertyIndex}++)");
source.AppendLine($"{indent}{propertyName} = new System.Collections.Generic.HashSet<{ruleArguments[0]}>(reader.ReadInt());");
source.AppendLine($"{indent}for (var {propertyIndex} = 0; i < {propertyName}.Count; {propertyIndex}++)");
source.AppendLine($"{indent}{{");
var serializableSetElement = new SerializableProperty
@ -115,7 +113,7 @@ namespace SerializationGenerator
var propertyName = property.Name;
var propertyVarPrefix = $"{char.ToLower(propertyName[0])}{propertyName.Substring(1, propertyName.Length - 1)}";
var propertyEntry = $"{propertyVarPrefix}Entry";
source.AppendLine($"{indent}writer.WriteEncodedInt({property.Name}.Count);");
source.AppendLine($"{indent}writer.Write({property.Name}.Count);");
source.AppendLine($"{indent}foreach (var {propertyEntry} in {property.Name});");
source.AppendLine($"{indent}{{");

View file

@ -76,12 +76,10 @@ namespace SerializationGenerator
var propertyVarPrefix = $"{char.ToLower(propertyName[0])}{propertyName.Substring(1, propertyName.Length - 1)}";
var propertyIndex = $"{propertyVarPrefix}Index";
var propertyEntry = $"{propertyVarPrefix}Entry";
var propertyCount = $"{propertyVarPrefix}Count";
source.AppendLine($"{indent}{ruleArguments[0]} {propertyEntry};");
source.AppendLine($"{indent}var {propertyCount} = reader.ReadEncodedInt();");
source.AppendLine($"{indent}{propertyName} = new System.Collections.Generic.List<{ruleArguments[0]}>({propertyCount});");
source.AppendLine($"{indent}for (var {propertyIndex} = 0; {propertyIndex} < {propertyCount}; {propertyIndex}++)");
source.AppendLine($"{indent}{propertyName} = new System.Collections.Generic.List<{ruleArguments[0]}>(reader.ReadInt());");
source.AppendLine($"{indent}for (var {propertyIndex} = 0; {propertyIndex} < {propertyName}.Count; {propertyIndex}++)");
source.AppendLine($"{indent}{{");
var serializableListElement = new SerializableProperty
@ -114,7 +112,7 @@ namespace SerializationGenerator
var propertyName = property.Name;
var propertyEntry = $"{char.ToLower(propertyName[0])}{propertyName.Substring(1, propertyName.Length - 1)}Entry";
source.AppendLine($"{indent}writer.WriteEncodedInt({propertyName}.Count);");
source.AppendLine($"{indent}writer.Write({propertyName}.Count);");
source.AppendLine($"{indent}foreach (var {propertyEntry} in {propertyName})");
source.AppendLine($"{indent}{{");

View file

@ -41,32 +41,32 @@
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Zlib.Bindings" Version="1.5.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SerializationGenerator\SerializationGenerator.csproj">
<SetTargetFramework>TargetFramework=netstandard2.0</SetTargetFramework>
<OutputItemType>Analyzer</OutputItemType>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<PrivateAssets>all</PrivateAssets>
</ProjectReference>
</ItemGroup>
<Target Name="AddSourceGeneratedFiles" AfterTargets="CoreCompile">
<ItemGroup>
<Compile Include="Generated\**" />
</ItemGroup>
</Target>
<Target Name="RemoveSourceGeneratedFiles" BeforeTargets="CoreCompile">
<ItemGroup>
<Compile Remove="Generated\**" />
</ItemGroup>
<RemoveDir Directories="Generated" />
</Target>
<ItemGroup>
<CompilerVisibleProperty Include="SerializableMigrationPath" />
</ItemGroup>
<ItemGroup>
<Folder Include="Migrations" />
</ItemGroup>
<PropertyGroup>
<SerializableMigrationPath>.\Migrations\</SerializableMigrationPath>
</PropertyGroup>
<!-- <ItemGroup>-->
<!-- <ProjectReference Include="..\SerializationGenerator\SerializationGenerator.csproj">-->
<!-- <SetTargetFramework>TargetFramework=netstandard2.0</SetTargetFramework>-->
<!-- <OutputItemType>Analyzer</OutputItemType>-->
<!-- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>-->
<!-- <PrivateAssets>all</PrivateAssets>-->
<!-- </ProjectReference>-->
<!-- </ItemGroup>-->
<!-- <Target Name="AddSourceGeneratedFiles" AfterTargets="CoreCompile">-->
<!-- <ItemGroup>-->
<!-- <Compile Include="Generated\**" />-->
<!-- </ItemGroup>-->
<!-- </Target>-->
<!-- <Target Name="RemoveSourceGeneratedFiles" BeforeTargets="CoreCompile">-->
<!-- <ItemGroup>-->
<!-- <Compile Remove="Generated\**" />-->
<!-- </ItemGroup>-->
<!-- <RemoveDir Directories="Generated" />-->
<!-- </Target>-->
<!-- <ItemGroup>-->
<!-- <CompilerVisibleProperty Include="SerializableMigrationPath" />-->
<!-- </ItemGroup>-->
<!-- <ItemGroup>-->
<!-- <Folder Include="Migrations" />-->
<!-- </ItemGroup>-->
<!-- <PropertyGroup>-->
<!-- <SerializableMigrationPath>.\Migrations\</SerializableMigrationPath>-->
<!-- </PropertyGroup>-->
</Project>

View file

@ -6,8 +6,7 @@ using Server.Targeting;
namespace Server.Items
{
[Serializable(0)]
public partial class Fireflies : Item, IAddon
public class Fireflies : Item, IAddon
{
[Constructible]
public Fireflies(int itemID = 0x1596)
@ -17,11 +16,35 @@ namespace Server.Items
Movable = false;
}
public Fireflies(Serial serial)
: base(serial)
{
}
public override int LabelNumber => 1150061;
public bool FacingSouth => ItemID == 0x2336;
public bool FacingSouth
{
get
{
if (ItemID == 0x2336)
{
return true;
}
public Item Deed => new FirefliesDeed();
return false;
}
}
public Item Deed
{
get
{
var deed = new FirefliesDeed();
return deed;
}
}
public bool CouldFit(IPoint3D p, Map map)
{
@ -30,9 +53,12 @@ namespace Server.Items
return false;
}
return FacingSouth ?
BaseAddon.IsWall(p.X, p.Y - 1, p.Z, map) :
BaseAddon.IsWall(p.X - 1, p.Y, p.Z, map);
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
}
public override void OnDoubleClick(Mobile from)
@ -58,10 +84,23 @@ 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();
}
}
[Serializable(0)]
public partial class FirefliesDeed : Item
public class FirefliesDeed : Item
{
[Constructible]
public FirefliesDeed()
@ -71,6 +110,11 @@ namespace Server.Items
Weight = 1.0;
}
public FirefliesDeed(Serial serial)
: base(serial)
{
}
public override int LabelNumber => 1150061;
public override void OnDoubleClick(Mobile from)
@ -99,6 +143,20 @@ 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,8 +1,7 @@
namespace Server.Items.Holiday
{
[Serializable(0, false)]
[TypeAlias("Server.Items.AngelDecoration"), Flippable(0x46FA, 0x46FB)]
public partial class AngelDecoration : Item
public class AngelDecoration : Item
{
public AngelDecoration() : base(0x46FA)
{
@ -10,5 +9,24 @@
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,8 +1,7 @@
namespace Server.Items.Holiday
{
[Serializable(0, false)]
[TypeAlias("Server.Items.RockingHorse"), Flippable(0x4214, 0x4215)]
public partial class RockingHorse : Item
public class RockingHorse : Item
{
public RockingHorse() : base(0x4214)
{
@ -10,5 +9,24 @@
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,7 +1,6 @@
namespace Server.Items
{
[Serializable(0, false)]
public partial class DragonEasterEgg : Item, IDyable
public class DragonEasterEgg : Item, IDyable
{
[Constructible]
public DragonEasterEgg()
@ -9,6 +8,11 @@
{
}
public DragonEasterEgg(Serial serial)
: base(serial)
{
}
public override int LabelNumber => 1097278;
public bool Dye(Mobile from, DyeTub sender)
@ -22,5 +26,19 @@
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,8 +230,7 @@ namespace Server.Engines.Events
}
}
[Serializable(0, false)]
public partial class NaughtyTwin : BaseCreature
public class NaughtyTwin : BaseCreature
{
private static readonly Point3D[] Felucca_Locations =
{
@ -287,6 +286,11 @@ namespace Server.Engines.Events
}
}
public NaughtyTwin(Serial serial)
: base(serial)
{
}
public override void OnThink()
{
if (m_From?.Deleted != false)
@ -300,7 +304,12 @@ namespace Server.Engines.Events
Type[] types =
{ typeof(WrappedCandy), typeof(Lollipops), typeof(NougatSwirl), typeof(Taffy), typeof(JellyBeans) };
return TrickOrTreat.CheckMobile(target) ? target.Backpack.FindItemByType(types) : null;
if (TrickOrTreat.CheckMobile(target))
{
return target.Backpack.FindItemByType(types);
}
return null;
}
public static void StealCandyOrGate(Mobile target)
@ -336,5 +345,17 @@ 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,16 +2,11 @@
namespace Server.Items
{
[Serializable(1, false)]
public partial class HalloweenPumpkin : Item
public class HalloweenPumpkin : Item
{
private static readonly string[] m_Staff =
{
"Owyn",
"Luthius",
"Kamron",
"Jaedan",
"Vorspire"
"Ryan", "Mark", "Eos", "Athena", "Xavier", "Krrios", "Zippy"
};
[Constructible]
@ -23,6 +18,11 @@ 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,8 +78,19 @@ namespace Server.Items
return true;
}
private void Deserialize(IGenericReader reader, int version)
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();
if (version == 0 && Name == null && ItemID == 0x4698)
{
AssignRandomName();

View file

@ -1,7 +1,6 @@
namespace Server.Items
{
[Serializable(0, false)]
public partial class PumpkinScarecrow : Item
public class PumpkinScarecrow : Item
{
[Constructible]
public PumpkinScarecrow()
@ -9,6 +8,25 @@
{
}
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,7 +1,6 @@
namespace Server.Items
{
[Serializable(0, false)]
public partial class RuinedTapestry : Item
public class RuinedTapestry : Item
{
[Constructible]
public RuinedTapestry()
@ -9,6 +8,25 @@
{
}
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,11 +1,15 @@
namespace Server.Items
{
[Serializable(0, false)]
public partial class TwilightLantern : Lantern
public 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;
@ -16,5 +20,19 @@
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,12 +4,31 @@
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
[Serializable(0, false)]
public partial class CreepyCake : Food
public 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,13 +4,34 @@
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
[Serializable(0, false)]
public partial class HarvestWine : BeverageBottle
public class HarvestWine : BeverageBottle
{
[Constructible]
public HarvestWine() : base(BeverageType.Wine) => Hue = 0xe0;
public HarvestWine()
: base(BeverageType.Wine) =>
Hue = 0xe0;
public HarvestWine(Serial serial)
: base(serial)
{
}
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,7 +1,6 @@
namespace Server.Items
{
[Serializable(0, false)]
public partial class MrPlainsCookies : Food
public class MrPlainsCookies : Food
{
[Constructible]
public MrPlainsCookies() : base(0x160C, 1)
@ -11,6 +10,25 @@
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,19 +4,39 @@
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
[Serializable(0, false)]
public partial class MurkyMilk : Pitcher
public 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,12 +4,31 @@
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
[Serializable(0, false)]
public partial class PumpkinPizza : CheesePizza
public 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,14 +4,34 @@
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
[Serializable(0, false)]
public partial class GrimWarning : Item
public class GrimWarning : Item
{
[Constructible]
public GrimWarning() : base(0x42BD)
public GrimWarning()
: base(0x42BD)
{
}
public GrimWarning(Serial serial)
: base(serial)
{
}
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,14 +4,34 @@
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
[Serializable(0, false)]
public partial class SkullsOnPike : Item
public class SkullsOnPike : Item
{
[Constructible]
public SkullsOnPike() : base(0x42B5)
public SkullsOnPike()
: base(0x42B5)
{
}
public SkullsOnPike(Serial serial)
: base(serial)
{
}
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,13 +1,32 @@
namespace Server.Items
{
[Serializable(0, false)]
public partial class ChairInAGhostCostume : Item
public class ChairInAGhostCostume : Item
{
[Constructible]
public ChairInAGhostCostume() : base(0x3F26)
public ChairInAGhostCostume()
: base(0x3F26)
{
}
public ChairInAGhostCostume(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,12 +1,31 @@
namespace Server.Items
{
[Serializable(0, false)]
public partial class ColoredSmallWebs : Item
public 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,13 +1,32 @@
namespace Server.Items
{
[Serializable(0, false)]
public partial class ExcellentIronMaiden : Item
public class ExcellentIronMaiden : Item
{
[Constructible]
public ExcellentIronMaiden() : base(0x3f15)
public ExcellentIronMaiden()
: base(0x3f15)
{
}
public ExcellentIronMaiden(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,13 +1,31 @@
namespace Server.Items
{
[Serializable(0, false)]
public partial class HalloweenGuillotine : Item
public 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,14 +7,15 @@ namespace Server.Items.Holiday
{
private static readonly string[] m_Staffers =
{
"Owyn",
"Luthius",
"Kamron",
"Jaedan",
"Vorspire"
"Ryan",
"Mark",
"Krrios",
"Zippy",
"Athena",
"Eos",
"Xavier"
};
// Todo: Requires private-only modifiers
private string m_Staffer;
public BasePaintedMask(int itemid) : this(m_Staffers.RandomElement(), itemid)

View file

@ -1,13 +1,32 @@
namespace Server.Items.Holiday
{
[Serializable(0, false)]
public partial class PaintedEvilClownMask : BasePaintedMask
public class PaintedEvilClownMask : BasePaintedMask
{
[Constructible]
public PaintedEvilClownMask() : base(0x4a90)
public PaintedEvilClownMask()
: base(0x4a90)
{
}
public PaintedEvilClownMask(Serial serial)
: base(serial)
{
}
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,7 +1,6 @@
namespace Server.Items.Holiday
{
[Serializable(0, false)]
public partial class PaintedDaemonMask : BasePaintedMask
public class PaintedDaemonMask : BasePaintedMask
{
[Constructible]
public PaintedDaemonMask()
@ -9,6 +8,25 @@
{
}
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,7 +1,6 @@
namespace Server.Items.Holiday
{
[Serializable(0, false)]
public partial class PaintedPlagueMask : BasePaintedMask
public class PaintedPlagueMask : BasePaintedMask
{
[Constructible]
public PaintedPlagueMask()
@ -9,6 +8,25 @@
{
}
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,8 +4,7 @@ using Server.Items.Holiday;
namespace Server.Mobiles
{
[Serializable(0, false)]
public partial class PumpkinHead : BaseCreature
public class PumpkinHead : BaseCreature
{
[Constructible]
public PumpkinHead()
@ -48,6 +47,11 @@ 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;
@ -115,5 +119,17 @@ 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,9 +175,8 @@ namespace Server.Engines.Events
public class ZombieSkeleton : BaseCreature
{
private const string _name = "Zombie Skeleton";
private static readonly string m_Name = "Zombie Skeleton";
// TODO: Requires private modifier
private PlayerMobile m_DeadPlayer;
public ZombieSkeleton(PlayerMobile player = null)
@ -185,7 +184,7 @@ namespace Server.Engines.Events
{
m_DeadPlayer = player;
Name = player != null ? $"{player.Name}'s {_name}" : _name;
Name = player != null ? $"{player.Name}'s {m_Name}" : m_Name;
Body = 0x93;
BaseSoundID = 0x1c3;

View file

@ -1,13 +1,32 @@
namespace Server.Items.Holiday
{
[Serializable(0, false)]
public partial class PaintedEvilJesterMask : BasePaintedMask
public class PaintedEvilJesterMask : BasePaintedMask
{
[Constructible]
public PaintedEvilJesterMask() : base(0x4BA5)
public PaintedEvilJesterMask()
: base(0x4BA5)
{
}
public PaintedEvilJesterMask(Serial serial)
: base(serial)
{
}
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,13 +1,32 @@
namespace Server.Items.Holiday
{
[Serializable(0, false)]
public partial class PaintedPorcelainMask : BasePaintedMask
public class PaintedPorcelainMask : BasePaintedMask
{
[Constructible]
public PaintedPorcelainMask() : base(0x4BA7)
public PaintedPorcelainMask()
: base(0x4BA7)
{
}
public PaintedPorcelainMask(Serial serial)
: base(serial)
{
}
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,12 +30,13 @@ namespace Server.Events.Halloween
typeof(NougatSwirl)
};
// YY MM DD
public static DateTime StartHalloween => new(2021, 10, 24);
public static DateTime StartHalloween // YY MM DD
=> new(2012, 10, 24);
public static DateTime FinishHalloween => new(2021, 11, 15);
public static DateTime FinishHalloween => new(2012, 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,11 +1,31 @@
namespace Server.Items
{
[Serializable(0, false)]
public partial class JellyBeans : CandyCane
public class JellyBeans : CandyCane
{
[Constructible]
public JellyBeans(int amount = 1) : base(0x468C) => Stackable = true;
public JellyBeans(int amount = 1)
: base(0x468C) =>
Stackable = true;
public JellyBeans(Serial serial)
: base(serial)
{
}
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,10 +1,30 @@
namespace Server.Items
{
[TypeAlias("Server.Items.Lollipop")]
[Serializable(0, false)]
public partial class Lollipops : CandyCane
public class Lollipops : CandyCane
{
[Constructible]
public Lollipops(int amount = 1) : base(0x468D + Utility.Random(3)) => Stackable = true;
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();
}
}
}

View file

@ -1,11 +1,31 @@
namespace Server.Items
{
[Serializable(0, false)]
public partial class NougatSwirl : CandyCane
public class NougatSwirl : CandyCane
{
[Constructible]
public NougatSwirl(int amount = 1) : base(0x4690) => Stackable = true;
public NougatSwirl(int amount = 1)
: base(0x4690) =>
Stackable = true;
public NougatSwirl(Serial serial)
: base(serial)
{
}
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,11 +1,31 @@
namespace Server.Items
{
[Serializable(0, false)]
public partial class Taffy : CandyCane
public class Taffy : CandyCane
{
[Constructible]
public Taffy(int amount = 1) : base(0x469D) => Stackable = true;
public Taffy(int amount = 1)
: base(0x469D) =>
Stackable = true;
public Taffy(Serial serial)
: base(serial)
{
}
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,11 +1,31 @@
namespace Server.Items
{
[Serializable(0, false)]
public partial class WrappedCandy : CandyCane
public class WrappedCandy : CandyCane
{
[Constructible]
public WrappedCandy(int amount = 1) : base(0x469e) => Stackable = true;
public WrappedCandy(int amount = 1)
: base(0x469e) =>
Stackable = true;
public WrappedCandy(Serial serial)
: base(serial)
{
}
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,10 +1,28 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0x49CC, 0x49D0)]
public partial class AnimatedHeartShapedBox : HeartShapedBox
public 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,62 +4,104 @@ using Server.Network;
namespace Server.Items
{
[Serializable(0, false)]
public abstract partial class StValentinesBear : Item
public abstract class StValentinesBear : Item
{
[InternString]
[InvalidateProperties]
[SerializableField(0)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private string _owner;
private string m_Line1;
private string m_Line2;
private string m_Line3;
[InternString]
[InvalidateProperties]
[SerializableField(1)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private string _line1;
private string m_Owner;
[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)
public StValentinesBear(int itemid, string name)
: base(itemid)
{
_owner = name;
m_Owner = name;
LootType = LootType.Blessed;
}
public override string DefaultName => _owner != null ? $"{_owner}'s St. Valentine Bear" : "St. Valentine Bear";
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();
}
}
[CommandProperty(AccessLevel.GameMaster)]
public DateTime EditLimit { get; set; }
public bool IsSigned => _line1 != null || _line2 != null || _line3 != null;
public bool IsSigned => m_Line1 != null || m_Line2 != null || m_Line3 != null;
public bool CanSign => !IsSigned || Core.Now <= EditLimit;
public override void AddNameProperty(ObjectPropertyList list)
{
if (_owner != null)
if (m_Owner != null)
{
list.Add(1150295, _owner); // ~1_NAME~'s St. Valentine Bear
list.Add(1150295, m_Owner); // ~1_NAME~'s St. Valentine Bear
}
else
{
list.Add(1150294); // St. Valentine Bear
}
AddLine(list, 1150301, _line1); // [ ~1_LINE0~ ]
AddLine(list, 1150302, _line2); // [ ~1_LINE1~ ]
AddLine(list, 1150303, _line3); // [ ~1_LINE2~ ]
AddLine(list, 1150301, m_Line1); // [ ~1_LINE0~ ]
AddLine(list, 1150302, m_Line2); // [ ~1_LINE1~ ]
AddLine(list, 1150303, m_Line3); // [ ~1_LINE2~ ]
}
private static void AddLine(ObjectPropertyList list, int cliloc, string line)
@ -74,9 +116,9 @@ namespace Server.Items
{
base.OnSingleClick(from);
ShowLine(from, 1150301, _line1); // [ ~1_LINE0~ ]
ShowLine(from, 1150302, _line2); // [ ~1_LINE1~ ]
ShowLine(from, 1150303, _line3); // [ ~1_LINE2~ ]
ShowLine(from, 1150301, m_Line1); // [ ~1_LINE0~ ]
ShowLine(from, 1150302, m_Line2); // [ ~1_LINE1~ ]
ShowLine(from, 1150303, m_Line3); // [ ~1_LINE2~ ]
}
private void ShowLine(Mobile from, int cliloc, string line)
@ -103,6 +145,30 @@ 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;
@ -190,23 +256,61 @@ namespace Server.Items
}
}
[Serializable(0, false)]
[Flippable(0x48E0, 0x48E1)]
public partial class StValentinesPanda : StValentinesBear
public 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 partial class StValentinesPolarBear : StValentinesBear
public 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,12 +1,32 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0x4F7C, 0x4F7D)]
public partial class CupidStatue : Item
public class CupidStatue : Item
{
[Constructible]
public CupidStatue() : base(0x4F7D) => LootType = LootType.Blessed;
public CupidStatue()
: base(0x4F7D) =>
LootType = LootType.Blessed;
public CupidStatue(Serial serial)
: base(serial)
{
}
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,30 +1,49 @@
using System;
using Server.Targeting;
namespace Server.Items
{
[Serializable(0, false)]
public partial class CupidsArrow : Item
public class CupidsArrow : Item
{
[InternString]
[InvalidateProperties]
[SerializableField(0)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private string _from;
[InternString]
[InvalidateProperties]
[SerializableField(1)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private string _to;
private string m_From;
private string m_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
public bool IsSigned => _from != null && _to != null;
[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 override void AddNameProperty(ObjectPropertyList list)
{
@ -32,7 +51,7 @@ namespace Server.Items
if (IsSigned)
{
list.Add(1152273, $"{_from}\t{_to}"); // ~1_val~ is madly in love with ~2_val~
list.Add(1152273, $"{m_From}\t{m_To}"); // ~1_val~ is madly in love with ~2_val~
}
}
@ -53,7 +72,7 @@ namespace Server.Items
if (IsSigned)
{
LabelTo(from, 1152273, $"{_from}\t{_to}"); // ~1_val~ is madly in love with ~2_val~
LabelTo(from, 1152273, $"{m_From}\t{m_To}"); // ~1_val~ is madly in love with ~2_val~
}
}
@ -91,8 +110,8 @@ namespace Server.Items
return;
}
_from = from.Name;
_to = m.Name;
m_From = from.Name;
m_To = m.Name;
InvalidateProperties();
@ -103,5 +122,25 @@ 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,13 +1,18 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0x49CA, 0x49CB)]
public partial class HeartShapedBox : BaseContainer
public class HeartShapedBox : BaseContainer
{
private static int m_DropSound;
[Constructible]
public HeartShapedBox() : base(0x49CA)
public HeartShapedBox()
: base(0x49CA)
{
}
public HeartShapedBox(Serial serial)
: base(serial)
{
}
@ -29,5 +34,19 @@ 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

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,22 +0,0 @@
{
"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

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,38 +0,0 @@
{
"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

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -39,24 +39,24 @@
<PackageReference Include="Zlib.Bindings" Version="1.5.0" />
<PackageReference Include="Argon2.Bindings" Version="1.9.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SerializationGenerator\SerializationGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
</ItemGroup>
<Target Name="AddSourceGeneratedFiles" AfterTargets="CoreCompile">
<ItemGroup>
<Compile Include="Generated\**" />
</ItemGroup>
</Target>
<Target Name="RemoveSourceGeneratedFiles" BeforeTargets="CoreCompile">
<ItemGroup>
<Compile Remove="Generated\**" />
</ItemGroup>
<RemoveDir Directories="Generated" />
</Target>
<ItemGroup>
<CompilerVisibleProperty Include="SerializableMigrationPath" />
</ItemGroup>
<PropertyGroup>
<SerializableMigrationPath>.\Migrations\</SerializableMigrationPath>
</PropertyGroup>
<!-- <ItemGroup>-->
<!-- <ProjectReference Include="..\SerializationGenerator\SerializationGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />-->
<!-- </ItemGroup>-->
<!-- <Target Name="AddSourceGeneratedFiles" AfterTargets="CoreCompile">-->
<!-- <ItemGroup>-->
<!-- <Compile Include="Generated\**" />-->
<!-- </ItemGroup>-->
<!-- </Target>-->
<!-- <Target Name="RemoveSourceGeneratedFiles" BeforeTargets="CoreCompile">-->
<!-- <ItemGroup>-->
<!-- <Compile Remove="Generated\**" />-->
<!-- </ItemGroup>-->
<!-- <RemoveDir Directories="Generated" />-->
<!-- </Target>-->
<!-- <ItemGroup>-->
<!-- <CompilerVisibleProperty Include="SerializableMigrationPath" />-->
<!-- </ItemGroup>-->
<!-- <PropertyGroup>-->
<!-- <SerializableMigrationPath>.\Migrations\</SerializableMigrationPath>-->
<!-- </PropertyGroup>-->
</Project>