diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 82f6f558f..e86abb128 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"modernuoschemagenerator": {
- "version": "2.10.8",
+ "version": "2.10.9",
"commands": [
"ModernUOSchemaGenerator"
]
diff --git a/Projects/Server/Migrations/Server.Items.Container.v0.json b/Projects/Server/Migrations/Server.Items.Container.v0.json
new file mode 100644
index 000000000..3ecf78713
--- /dev/null
+++ b/Projects/Server/Migrations/Server.Items.Container.v0.json
@@ -0,0 +1,42 @@
+{
+ "version": 0,
+ "type": "Server.Items.Container",
+ "properties": [
+ {
+ "name": "MaxItems",
+ "type": "int",
+ "usesSaveFlag": true,
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ "EncodedInt"
+ ]
+ },
+ {
+ "name": "GumpID",
+ "type": "int",
+ "usesSaveFlag": true,
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ "EncodedInt"
+ ]
+ },
+ {
+ "name": "DropSound",
+ "type": "int",
+ "usesSaveFlag": true,
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ "EncodedInt"
+ ]
+ },
+ {
+ "name": "LiftOverride",
+ "type": "bool",
+ "usesSaveFlag": true,
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ ""
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Projects/Server/Server.csproj b/Projects/Server/Server.csproj
index 684d01082..073b6d7a9 100755
--- a/Projects/Server/Server.csproj
+++ b/Projects/Server/Server.csproj
@@ -38,7 +38,7 @@
-
+
diff --git a/Projects/UOContent/Migrations/Server.Items.Hold.v0.json b/Projects/UOContent/Migrations/Server.Items.Hold.v0.json
new file mode 100644
index 000000000..ae852dc19
--- /dev/null
+++ b/Projects/UOContent/Migrations/Server.Items.Hold.v0.json
@@ -0,0 +1,11 @@
+{
+ "version": 0,
+ "type": "Server.Items.Hold",
+ "properties": [
+ {
+ "name": "Boat",
+ "type": "Server.Multis.BaseBoat",
+ "rule": "SerializableInterfaceMigrationRule"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Projects/UOContent/Migrations/Server.Items.Plank.v1.json b/Projects/UOContent/Migrations/Server.Items.Plank.v1.json
new file mode 100644
index 000000000..918115930
--- /dev/null
+++ b/Projects/UOContent/Migrations/Server.Items.Plank.v1.json
@@ -0,0 +1,32 @@
+{
+ "version": 1,
+ "type": "Server.Items.Plank",
+ "properties": [
+ {
+ "name": "Boat",
+ "type": "Server.Multis.BaseBoat",
+ "rule": "SerializableInterfaceMigrationRule"
+ },
+ {
+ "name": "Side",
+ "type": "Server.Items.PlankSide",
+ "rule": "EnumMigrationRule"
+ },
+ {
+ "name": "Locked",
+ "type": "bool",
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ ""
+ ]
+ },
+ {
+ "name": "KeyValue",
+ "type": "uint",
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ ""
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Projects/UOContent/Migrations/Server.Items.TillerMan.v0.json b/Projects/UOContent/Migrations/Server.Items.TillerMan.v0.json
new file mode 100644
index 000000000..31100bb70
--- /dev/null
+++ b/Projects/UOContent/Migrations/Server.Items.TillerMan.v0.json
@@ -0,0 +1,11 @@
+{
+ "version": 0,
+ "type": "Server.Items.TillerMan",
+ "properties": [
+ {
+ "name": "Boat",
+ "type": "Server.Multis.BaseBoat",
+ "rule": "SerializableInterfaceMigrationRule"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Projects/UOContent/Migrations/Server.Multis.BaseBoat.v4.json b/Projects/UOContent/Migrations/Server.Multis.BaseBoat.v4.json
new file mode 100644
index 000000000..b91058451
--- /dev/null
+++ b/Projects/UOContent/Migrations/Server.Multis.BaseBoat.v4.json
@@ -0,0 +1,73 @@
+{
+ "version": 4,
+ "type": "Server.Multis.BaseBoat",
+ "properties": [
+ {
+ "name": "MapItem",
+ "type": "Server.Items.MapItem",
+ "rule": "SerializableInterfaceMigrationRule"
+ },
+ {
+ "name": "NextNavPoint",
+ "type": "int",
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ ""
+ ]
+ },
+ {
+ "name": "Facing",
+ "type": "Server.Direction",
+ "rule": "EnumMigrationRule"
+ },
+ {
+ "name": "TimeOfDecay",
+ "type": "System.DateTime",
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ "DeltaTime"
+ ]
+ },
+ {
+ "name": "Owner",
+ "type": "Server.Mobile",
+ "rule": "SerializableInterfaceMigrationRule"
+ },
+ {
+ "name": "PPlank",
+ "type": "Server.Items.Plank",
+ "rule": "SerializableInterfaceMigrationRule"
+ },
+ {
+ "name": "SPlank",
+ "type": "Server.Items.Plank",
+ "rule": "SerializableInterfaceMigrationRule"
+ },
+ {
+ "name": "TillerMan",
+ "type": "Server.Items.TillerMan",
+ "rule": "SerializableInterfaceMigrationRule"
+ },
+ {
+ "name": "Hold",
+ "type": "Server.Items.Hold",
+ "rule": "SerializableInterfaceMigrationRule"
+ },
+ {
+ "name": "Anchored",
+ "type": "bool",
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ ""
+ ]
+ },
+ {
+ "name": "ShipName",
+ "type": "string",
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ ""
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Projects/UOContent/Migrations/Server.Multis.BaseBoatDeed.v0.json b/Projects/UOContent/Migrations/Server.Multis.BaseBoatDeed.v0.json
new file mode 100644
index 000000000..ca2eff4e4
--- /dev/null
+++ b/Projects/UOContent/Migrations/Server.Multis.BaseBoatDeed.v0.json
@@ -0,0 +1,22 @@
+{
+ "version": 0,
+ "type": "Server.Multis.BaseBoatDeed",
+ "properties": [
+ {
+ "name": "MultiId",
+ "type": "int",
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ ""
+ ]
+ },
+ {
+ "name": "Offset",
+ "type": "Server.Point3D",
+ "rule": "PrimitiveUOTypeMigrationRule",
+ "ruleArguments": [
+ "Point3D"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Projects/UOContent/Migrations/Server.Multis.BaseCamp.v1.json b/Projects/UOContent/Migrations/Server.Multis.BaseCamp.v1.json
new file mode 100644
index 000000000..710a82be2
--- /dev/null
+++ b/Projects/UOContent/Migrations/Server.Multis.BaseCamp.v1.json
@@ -0,0 +1,34 @@
+{
+ "version": 1,
+ "type": "Server.Multis.BaseCamp",
+ "properties": [
+ {
+ "name": "Items",
+ "type": "System.Collections.Generic.List\u003CServer.Item\u003E",
+ "rule": "ListMigrationRule",
+ "ruleArguments": [
+ "@Tidy",
+ "Server.Item",
+ "SerializableInterfaceMigrationRule"
+ ]
+ },
+ {
+ "name": "Mobiles",
+ "type": "System.Collections.Generic.List\u003CServer.Mobile\u003E",
+ "rule": "ListMigrationRule",
+ "ruleArguments": [
+ "@Tidy",
+ "Server.Mobile",
+ "SerializableInterfaceMigrationRule"
+ ]
+ },
+ {
+ "name": "DecayTime",
+ "type": "System.DateTime",
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ "DeltaTime"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Projects/UOContent/Migrations/Server.Multis.BaseDockedBoat.v0.json b/Projects/UOContent/Migrations/Server.Multis.BaseDockedBoat.v0.json
new file mode 100644
index 000000000..e50803ae0
--- /dev/null
+++ b/Projects/UOContent/Migrations/Server.Multis.BaseDockedBoat.v0.json
@@ -0,0 +1,30 @@
+{
+ "version": 0,
+ "type": "Server.Multis.BaseDockedBoat",
+ "properties": [
+ {
+ "name": "MultiId",
+ "type": "int",
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ ""
+ ]
+ },
+ {
+ "name": "Offset",
+ "type": "Server.Point3D",
+ "rule": "PrimitiveUOTypeMigrationRule",
+ "ruleArguments": [
+ "Point3D"
+ ]
+ },
+ {
+ "name": "ShipName",
+ "type": "string",
+ "rule": "PrimitiveTypeMigrationRule",
+ "ruleArguments": [
+ ""
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Projects/UOContent/Migrations/Server.Multis.BrigandCamp.v0.json b/Projects/UOContent/Migrations/Server.Multis.BrigandCamp.v0.json
index 6421f6026..300e6d579 100644
--- a/Projects/UOContent/Migrations/Server.Multis.BrigandCamp.v0.json
+++ b/Projects/UOContent/Migrations/Server.Multis.BrigandCamp.v0.json
@@ -1,4 +1,11 @@
{
"version": 0,
- "type": "Server.Multis.BrigandCamp"
+ "type": "Server.Multis.BrigandCamp",
+ "properties": [
+ {
+ "name": "Prisoner",
+ "type": "Server.Mobile",
+ "rule": "SerializableInterfaceMigrationRule"
+ }
+ ]
}
\ No newline at end of file
diff --git a/Projects/UOContent/Migrations/Server.Multis.LizardmenCamp.v0.json b/Projects/UOContent/Migrations/Server.Multis.LizardmenCamp.v0.json
index d812e02eb..22da93ad8 100644
--- a/Projects/UOContent/Migrations/Server.Multis.LizardmenCamp.v0.json
+++ b/Projects/UOContent/Migrations/Server.Multis.LizardmenCamp.v0.json
@@ -1,4 +1,11 @@
{
"version": 0,
- "type": "Server.Multis.LizardmenCamp"
+ "type": "Server.Multis.LizardmenCamp",
+ "properties": [
+ {
+ "name": "Prisoner",
+ "type": "Server.Mobile",
+ "rule": "SerializableInterfaceMigrationRule"
+ }
+ ]
}
\ No newline at end of file
diff --git a/Projects/UOContent/Migrations/Server.Multis.OrcCamp.v0.json b/Projects/UOContent/Migrations/Server.Multis.OrcCamp.v0.json
index 8c71c402b..b4a708663 100644
--- a/Projects/UOContent/Migrations/Server.Multis.OrcCamp.v0.json
+++ b/Projects/UOContent/Migrations/Server.Multis.OrcCamp.v0.json
@@ -1,4 +1,11 @@
{
"version": 0,
- "type": "Server.Multis.OrcCamp"
+ "type": "Server.Multis.OrcCamp",
+ "properties": [
+ {
+ "name": "Prisoner",
+ "type": "Server.Mobile",
+ "rule": "SerializableInterfaceMigrationRule"
+ }
+ ]
}
\ No newline at end of file
diff --git a/Projects/UOContent/Migrations/Server.Multis.RatCamp.v0.json b/Projects/UOContent/Migrations/Server.Multis.RatCamp.v0.json
index ddd780533..06ec85cfa 100644
--- a/Projects/UOContent/Migrations/Server.Multis.RatCamp.v0.json
+++ b/Projects/UOContent/Migrations/Server.Multis.RatCamp.v0.json
@@ -1,4 +1,11 @@
{
"version": 0,
- "type": "Server.Multis.RatCamp"
+ "type": "Server.Multis.RatCamp",
+ "properties": [
+ {
+ "name": "Prisoner",
+ "type": "Server.Mobile",
+ "rule": "SerializableInterfaceMigrationRule"
+ }
+ ]
}
\ No newline at end of file
diff --git a/Projects/UOContent/Multis/Camps/BrigandCamp.cs b/Projects/UOContent/Multis/Camps/BrigandCamp.cs
index 934d8ccba..bfa60bd0d 100644
--- a/Projects/UOContent/Multis/Camps/BrigandCamp.cs
+++ b/Projects/UOContent/Multis/Camps/BrigandCamp.cs
@@ -8,6 +8,7 @@ namespace Server.Multis;
[SerializationGenerator(0, false)]
public partial class BrigandCamp : BaseCamp
{
+ [SerializableField(0)]
private Mobile _prisoner;
[Constructible]
diff --git a/Projects/UOContent/Multis/Camps/LizardmenCamp.cs b/Projects/UOContent/Multis/Camps/LizardmenCamp.cs
index 1ef9b50bc..42c5133cc 100644
--- a/Projects/UOContent/Multis/Camps/LizardmenCamp.cs
+++ b/Projects/UOContent/Multis/Camps/LizardmenCamp.cs
@@ -8,6 +8,7 @@ namespace Server.Multis;
[SerializationGenerator(0, false)]
public partial class LizardmenCamp : BaseCamp
{
+ [SerializableField(0)]
private Mobile _prisoner;
[Constructible]
diff --git a/Projects/UOContent/Multis/Camps/OrcCamp.cs b/Projects/UOContent/Multis/Camps/OrcCamp.cs
index 6f5658b8b..a90c7fc4a 100644
--- a/Projects/UOContent/Multis/Camps/OrcCamp.cs
+++ b/Projects/UOContent/Multis/Camps/OrcCamp.cs
@@ -8,6 +8,7 @@ namespace Server.Multis;
[SerializationGenerator(0, false)]
public partial class OrcCamp : BaseCamp
{
+ [SerializableField(0)]
private Mobile _prisoner;
[Constructible]
diff --git a/Projects/UOContent/Multis/Camps/RatCamp.cs b/Projects/UOContent/Multis/Camps/RatCamp.cs
index d094a1544..6ff3aa143 100644
--- a/Projects/UOContent/Multis/Camps/RatCamp.cs
+++ b/Projects/UOContent/Multis/Camps/RatCamp.cs
@@ -8,6 +8,7 @@ namespace Server.Multis;
[SerializationGenerator(0, false)]
public partial class RatCamp : BaseCamp
{
+ [SerializableField(0)]
private Mobile _prisoner;
[Constructible]
diff --git a/Projects/UOContent/UOContent.csproj b/Projects/UOContent/UOContent.csproj
index b022fada9..92ab683df 100644
--- a/Projects/UOContent/UOContent.csproj
+++ b/Projects/UOContent/UOContent.csproj
@@ -40,7 +40,7 @@
-
+