fix: Converts BaseArmor and BaseClothing to use string crafter fields (#928)

This commit is contained in:
Kamron Batman 2022-02-27 03:18:17 -08:00 committed by GitHub
parent 651cffa872
commit 77181678da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 610 additions and 259 deletions

View file

@ -0,0 +1,165 @@
using AMA = Server.Items.ArmorMeditationAllowance;
namespace Server.Items;
public partial class BaseArmor
{
private void MigrateFrom(V8Content content)
{
_attributes = content.Attributes ?? AttributesDefaultValue();
_armorAttributes = content.ArmorAttributes ?? ArmorAttributesDefaultValue();
_physicalBonus = content.PhysicalBonus ?? 0;
_fireBonus = content.FireBonus ?? 0;
_coldBonus = content.ColdBonus ?? 0;
_poisonBonus = content.PoisonBonus ?? 0;
_energyBonus = content.EnergyBonus ?? 0;
_identified = content.Identified;
_maxHitPoints = content.MaxHitPoints ?? 0;
_hitPoints = content.HitPoints ?? 0;
_crafter = content.Crafter?.RawName; // Convert from Mobile -> String via RawName
_quality = content.Quality ?? ArmorQuality.Regular;
_durability = content.Durability ?? ArmorDurabilityLevel.Regular;
_rawResource = content.RawResource ?? DefaultResource;
_armorBase = content.BaseArmorRating ?? -1;
_strBonus = content.StrBonus ?? -1;
_dexBonus = content.DexBonus ?? -1;
_intBonus = content.IntBonus ?? -1;
_strReq = content.StrRequirement ?? -1;
_dexReq = content.DexRequirement ?? -1;
_intReq = content.IntRequirement ?? -1;
_meditate = content.MeditationAllowance ?? (AMA)(-1);
_skillBonuses = content.SkillBonuses ?? SkillBonusesDefaultValue();
_playerConstructed = content.PlayerConstructed;
}
// Version 7 (pre-codegen)
private void Deserialize(IGenericReader reader, int version)
{
var flags = (OldSaveFlag)reader.ReadEncodedInt();
Attributes = new AosAttributes(this);
if (GetSaveFlag(flags, OldSaveFlag.Attributes))
{
Attributes.Deserialize(reader);
}
ArmorAttributes = new AosArmorAttributes(this);
if (GetSaveFlag(flags, OldSaveFlag.ArmorAttributes))
{
ArmorAttributes.Deserialize(reader);
}
if (GetSaveFlag(flags, OldSaveFlag.PhysicalBonus))
{
_physicalBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.FireBonus))
{
_fireBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.ColdBonus))
{
_coldBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.PoisonBonus))
{
_poisonBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.EnergyBonus))
{
_energyBonus = reader.ReadEncodedInt();
}
_identified = GetSaveFlag(flags, OldSaveFlag.Identified);
if (GetSaveFlag(flags, OldSaveFlag.MaxHitPoints))
{
_maxHitPoints = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.HitPoints))
{
_hitPoints = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.Crafter))
{
_crafter = reader.ReadEntity<Mobile>()?.RawName;
}
if (GetSaveFlag(flags, OldSaveFlag.Quality))
{
_quality = (ArmorQuality)reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.Durability))
{
_durability = (ArmorDurabilityLevel)reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.Protection))
{
_protection = (ArmorProtectionLevel)reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.Resource))
{
_rawResource = (CraftResource)reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.BaseArmor))
{
_armorBase = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.StrBonus))
{
_strBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.DexBonus))
{
_dexBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.IntBonus))
{
_intBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.StrReq))
{
_strReq = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.DexReq))
{
_dexReq = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.IntReq))
{
_intReq = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.MedAllowance))
{
_meditate = (AMA)reader.ReadEncodedInt();
}
SkillBonuses = new AosSkillBonuses(this);
if (GetSaveFlag(flags, OldSaveFlag.SkillBonuses))
{
SkillBonuses.Deserialize(reader);
}
PlayerConstructed = GetSaveFlag(flags, OldSaveFlag.PlayerConstructed);
}
}

View file

@ -10,7 +10,7 @@ using AMT = Server.Items.ArmorMaterialType;
namespace Server.Items
{
[Serializable(8, false)]
[Serializable(9, false)]
public abstract partial class BaseArmor : Item, IScissorable, IFactionItem, ICraftable, IWearableDurability
{
[SerializableField(0, setter: "private")]
@ -99,7 +99,7 @@ namespace Server.Items
[InvalidateProperties]
[SerializableField(10)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private Mobile _crafter;
private string _crafter;
[SerializableFieldSaveFlag(10)]
private bool ShouldSerializeCrafter() => _crafter != null;
@ -572,7 +572,7 @@ namespace Server.Items
if (makersMark)
{
Crafter = from;
Crafter = from.RawName;
}
var resourceType = typeRes ?? craftItem.Resources[0].ItemType;
@ -1076,143 +1076,6 @@ namespace Server.Items
m?.CheckStatTimers();
}
private void Deserialize(IGenericReader reader, int version)
{
var flags = (OldSaveFlag)reader.ReadEncodedInt();
Attributes = new AosAttributes(this);
if (GetSaveFlag(flags, OldSaveFlag.Attributes))
{
Attributes.Deserialize(reader);
}
ArmorAttributes = new AosArmorAttributes(this);
if (GetSaveFlag(flags, OldSaveFlag.ArmorAttributes))
{
ArmorAttributes.Deserialize(reader);
}
if (GetSaveFlag(flags, OldSaveFlag.PhysicalBonus))
{
_physicalBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.FireBonus))
{
_fireBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.ColdBonus))
{
_coldBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.PoisonBonus))
{
_poisonBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.EnergyBonus))
{
_energyBonus = reader.ReadEncodedInt();
}
_identified = GetSaveFlag(flags, OldSaveFlag.Identified);
if (GetSaveFlag(flags, OldSaveFlag.MaxHitPoints))
{
_maxHitPoints = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.HitPoints))
{
_hitPoints = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.Crafter))
{
_crafter = reader.ReadEntity<Mobile>();
}
if (GetSaveFlag(flags, OldSaveFlag.Quality))
{
_quality = (ArmorQuality)reader.ReadEncodedInt();
}
else
{
_quality = ArmorQuality.Regular;
}
if (GetSaveFlag(flags, OldSaveFlag.Durability))
{
_durability = (ArmorDurabilityLevel)reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.Protection))
{
_protection = (ArmorProtectionLevel)reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.Resource))
{
_rawResource = (CraftResource)reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.BaseArmor))
{
_armorBase = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.StrBonus))
{
_strBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.DexBonus))
{
_dexBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.IntBonus))
{
_intBonus = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.StrReq))
{
_strReq = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.DexReq))
{
_dexReq = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.IntReq))
{
_intReq = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.MedAllowance))
{
_meditate = (AMA)reader.ReadEncodedInt();
}
SkillBonuses = new AosSkillBonuses(this);
if (GetSaveFlag(flags, OldSaveFlag.SkillBonuses))
{
SkillBonuses.Deserialize(reader);
}
if (GetSaveFlag(flags, OldSaveFlag.PlayerConstructed))
{
PlayerConstructed = true;
}
}
public override bool AllowSecureTrade(Mobile from, Mobile to, Mobile newOwner, bool accepted)
{
if (!Ethic.CheckTrade(from, to, newOwner, this))
@ -1431,7 +1294,7 @@ namespace Server.Items
if (_crafter != null)
{
list.Add(1050043, _crafter.Name); // crafted by ~1_NAME~
list.Add(1050043, _crafter); // crafted by ~1_NAME~
}
if (m_FactionState != null)
@ -1672,7 +1535,7 @@ namespace Server.Items
return;
}
from.NetState.SendDisplayEquipmentInfo(Serial, number, _crafter?.RawName, false, attrs);
from.NetState.SendDisplayEquipmentInfo(Serial, number, _crafter, false, attrs);
}
[Flags]

View file

@ -0,0 +1,88 @@
namespace Server.Items;
public partial class BaseClothing
{
private void MigrateFrom(V6Content content)
{
_rawResource = content.RawResource ?? DefaultResource;
_attributes = content.Attributes ?? AttributesDefaultValue();
_clothingAttributes = content.ClothingAttributes ?? ClothingAttributesDefaultValue();
_skillBonuses = content.SkillBonuses ?? SkillBonusesDefaultValue();
_resistances = content.Resistances ?? ResistancesDefaultValue();
_maxHitPoints = content.MaxHitPoints ?? 0;
_playerConstructed = content.PlayerConstructed;
_crafter = content.Crafter?.RawName; // Convert from Mobile -> String via RawName
_quality = content.Quality ?? ClothingQuality.Regular;
_strReq = content.StrRequirement ?? -1;
}
// Version 5 (pre-codegen)
private void Deserialize(IGenericReader reader, int version)
{
var flags = (OldSaveFlag)reader.ReadEncodedInt();
if (GetSaveFlag(flags, OldSaveFlag.Resource))
{
_rawResource = (CraftResource)reader.ReadEncodedInt();
}
else
{
_rawResource = DefaultResource;
}
Attributes = new AosAttributes(this);
if (GetSaveFlag(flags, OldSaveFlag.Attributes))
{
Attributes.Deserialize(reader);
}
ClothingAttributes = new AosArmorAttributes(this);
if (GetSaveFlag(flags, OldSaveFlag.ClothingAttributes))
{
ClothingAttributes.Deserialize(reader);
}
SkillBonuses = new AosSkillBonuses(this);
if (GetSaveFlag(flags, OldSaveFlag.SkillBonuses))
{
SkillBonuses.Deserialize(reader);
}
Resistances = new AosElementAttributes(this);
if (GetSaveFlag(flags, OldSaveFlag.Resistances))
{
Resistances.Deserialize(reader);
}
if (GetSaveFlag(flags, OldSaveFlag.MaxHitPoints))
{
_maxHitPoints = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.HitPoints))
{
_hitPoints = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.Crafter))
{
_crafter = reader.ReadEntity<Mobile>()?.RawName;
}
if (GetSaveFlag(flags, OldSaveFlag.Quality))
{
_quality = (ClothingQuality)reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.StrReq))
{
_strReq = reader.ReadEncodedInt();
}
PlayerConstructed = GetSaveFlag(flags, OldSaveFlag.PlayerConstructed);
}
}

View file

@ -22,7 +22,7 @@ namespace Server.Items
int MaxArcaneCharges { get; set; }
}
[Serializable(6, false)]
[Serializable(7, false)]
public abstract partial class BaseClothing : Item, IDyable, IScissorable, IFactionItem, ICraftable, IWearableDurability
{
[SerializableField(0, "private", "private")]
@ -93,7 +93,7 @@ namespace Server.Items
[InvalidateProperties]
[SerializableField(8)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private Mobile _crafter;
private string _crafter;
[SerializableFieldSaveFlag(8)]
private bool ShouldSerializeCrafter() => _crafter != null;
@ -193,7 +193,7 @@ namespace Server.Items
if (makersMark)
{
Crafter = from;
Crafter = from.RawName;
}
if (DefaultResource != CraftResource.None)
@ -699,7 +699,7 @@ namespace Server.Items
if (_crafter != null)
{
list.Add(1050043, _crafter.Name); // crafted by ~1_NAME~
list.Add(1050043, _crafter); // crafted by ~1_NAME~
}
if (_factionState != null)
@ -907,7 +907,7 @@ namespace Server.Items
return;
}
from.NetState.SendDisplayEquipmentInfo(Serial, number, _crafter?.RawName, false, attrs);
from.NetState.SendDisplayEquipmentInfo(Serial, number, _crafter, false, attrs);
}
public virtual void AddEquipInfoAttributes(Mobile from, List<EquipInfoAttribute> attrs)
@ -964,83 +964,6 @@ namespace Server.Items
private static bool GetSaveFlag(OldSaveFlag flags, OldSaveFlag toGet) => (flags & toGet) != 0;
private void Deserialize(IGenericReader reader, int version)
{
var flags = (OldSaveFlag)reader.ReadEncodedInt();
if (GetSaveFlag(flags, OldSaveFlag.Resource))
{
_rawResource = (CraftResource)reader.ReadEncodedInt();
}
else
{
_rawResource = DefaultResource;
}
Attributes = new AosAttributes(this);
if (GetSaveFlag(flags, OldSaveFlag.Attributes))
{
Attributes.Deserialize(reader);
}
ClothingAttributes = new AosArmorAttributes(this);
if (GetSaveFlag(flags, OldSaveFlag.ClothingAttributes))
{
ClothingAttributes.Deserialize(reader);
}
SkillBonuses = new AosSkillBonuses(this);
if (GetSaveFlag(flags, OldSaveFlag.SkillBonuses))
{
SkillBonuses.Deserialize(reader);
}
Resistances = new AosElementAttributes(this);
if (GetSaveFlag(flags, OldSaveFlag.Resistances))
{
Resistances.Deserialize(reader);
}
if (GetSaveFlag(flags, OldSaveFlag.MaxHitPoints))
{
_maxHitPoints = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.HitPoints))
{
_hitPoints = reader.ReadEncodedInt();
}
if (GetSaveFlag(flags, OldSaveFlag.Crafter))
{
_crafter = reader.ReadEntity<Mobile>();
}
if (GetSaveFlag(flags, OldSaveFlag.Quality))
{
_quality = (ClothingQuality)reader.ReadEncodedInt();
}
else
{
_quality = ClothingQuality.Regular;
}
if (GetSaveFlag(flags, OldSaveFlag.StrReq))
{
_strReq = reader.ReadEncodedInt();
}
else
{
_strReq = -1;
}
PlayerConstructed = GetSaveFlag(flags, OldSaveFlag.PlayerConstructed);
}
[AfterDeserialization]
private void AfterDeserialization()
{

View file

@ -126,12 +126,12 @@ namespace Server.Items
if (clothing != null)
{
clothing.Quality = ClothingQuality.Regular;
clothing.Crafter = from;
clothing.Crafter = from.RawName;
}
else if (armor != null)
{
armor.Quality = ArmorQuality.Regular;
armor.Crafter = from;
armor.Crafter = from.RawName;
armor.PhysicalBonus =
armor.FireBonus =
armor.ColdBonus =

View file

@ -3971,10 +3971,7 @@ namespace Server.Items
parentMobile.AddSkillMod(m_MageMod);
}
if (GetSaveFlag(flags, SaveFlag.PlayerConstructed))
{
PlayerConstructed = true;
}
PlayerConstructed = GetSaveFlag(flags, SaveFlag.PlayerConstructed);
SkillBonuses = new AosSkillBonuses(this);

View file

@ -0,0 +1,216 @@
{
"version": 9,
"type": "Server.Items.BaseArmor",
"properties": [
{
"name": "Attributes",
"type": "Server.AosAttributes",
"usesSaveFlag": true,
"rule": "RawSerializableMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "ArmorAttributes",
"type": "Server.AosArmorAttributes",
"usesSaveFlag": true,
"rule": "RawSerializableMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "PhysicalBonus",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "FireBonus",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "ColdBonus",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "PoisonBonus",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "EnergyBonus",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "Identified",
"type": "bool",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "MaxHitPoints",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "HitPoints",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "Crafter",
"type": "string",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "Quality",
"type": "Server.Items.ArmorQuality",
"usesSaveFlag": true,
"rule": "EnumMigrationRule"
},
{
"name": "Durability",
"type": "Server.Items.ArmorDurabilityLevel",
"usesSaveFlag": true,
"rule": "EnumMigrationRule"
},
{
"name": "ProtectionLevel",
"type": "Server.Items.ArmorProtectionLevel",
"usesSaveFlag": true,
"rule": "EnumMigrationRule"
},
{
"name": "RawResource",
"type": "Server.Items.CraftResource",
"usesSaveFlag": true,
"rule": "EnumMigrationRule"
},
{
"name": "BaseArmorRating",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "StrBonus",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "DexBonus",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "IntBonus",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "StrRequirement",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "DexRequirement",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "IntRequirement",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "MeditationAllowance",
"type": "Server.Items.ArmorMeditationAllowance",
"usesSaveFlag": true,
"rule": "EnumMigrationRule"
},
{
"name": "SkillBonuses",
"type": "Server.AosSkillBonuses",
"usesSaveFlag": true,
"rule": "RawSerializableMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "PlayerConstructed",
"type": "bool",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
}
]
}

View file

@ -0,0 +1,99 @@
{
"version": 7,
"type": "Server.Items.BaseClothing",
"properties": [
{
"name": "RawResource",
"type": "Server.Items.CraftResource",
"usesSaveFlag": true,
"rule": "EnumMigrationRule"
},
{
"name": "Attributes",
"type": "Server.AosAttributes",
"usesSaveFlag": true,
"rule": "RawSerializableMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "ClothingAttributes",
"type": "Server.AosArmorAttributes",
"usesSaveFlag": true,
"rule": "RawSerializableMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "SkillBonuses",
"type": "Server.AosSkillBonuses",
"usesSaveFlag": true,
"rule": "RawSerializableMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "Resistances",
"type": "Server.AosElementAttributes",
"usesSaveFlag": true,
"rule": "RawSerializableMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "MaxHitPoints",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "HitPoints",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"EncodedInt"
]
},
{
"name": "PlayerConstructed",
"type": "bool",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "Crafter",
"type": "string",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "Quality",
"type": "Server.Items.ClothingQuality",
"usesSaveFlag": true,
"rule": "EnumMigrationRule"
},
{
"name": "StrRequirement",
"type": "int",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
}
]
}

View file

@ -42,21 +42,21 @@ namespace Server.Mobiles
var cht = new ChainChest();
cht.Movable = false;
cht.LootType = LootType.Newbied;
cht.Crafter = this;
cht.Crafter = RawName;
cht.Quality = ArmorQuality.Regular;
AddItem(cht);
var chl = new ChainLegs();
chl.Movable = false;
chl.LootType = LootType.Newbied;
chl.Crafter = this;
chl.Crafter = RawName;
chl.Quality = ArmorQuality.Regular;
AddItem(chl);
var pla = new PlateArms();
pla.Movable = false;
pla.LootType = LootType.Newbied;
pla.Crafter = this;
pla.Crafter = RawName;
pla.Quality = ArmorQuality.Regular;
AddItem(pla);
@ -116,21 +116,21 @@ namespace Server.Mobiles
var cht = new ChainChest();
cht.Movable = false;
cht.LootType = LootType.Newbied;
cht.Crafter = this;
cht.Crafter = RawName;
cht.Quality = ArmorQuality.Regular;
AddItem(cht);
var chl = new ChainLegs();
chl.Movable = false;
chl.LootType = LootType.Newbied;
chl.Crafter = this;
chl.Crafter = RawName;
chl.Quality = ArmorQuality.Regular;
AddItem(chl);
var pla = new PlateArms();
pla.Movable = false;
pla.LootType = LootType.Newbied;
pla.Crafter = this;
pla.Crafter = RawName;
pla.Quality = ArmorQuality.Regular;
AddItem(pla);
@ -190,21 +190,21 @@ namespace Server.Mobiles
var cht = new ChainChest();
cht.Movable = false;
cht.LootType = LootType.Newbied;
cht.Crafter = this;
cht.Crafter = RawName;
cht.Quality = ArmorQuality.Regular;
AddItem(cht);
var chl = new ChainLegs();
chl.Movable = false;
chl.LootType = LootType.Newbied;
chl.Crafter = this;
chl.Crafter = RawName;
chl.Quality = ArmorQuality.Regular;
AddItem(chl);
var pla = new PlateArms();
pla.Movable = false;
pla.LootType = LootType.Newbied;
pla.Crafter = this;
pla.Crafter = RawName;
pla.Quality = ArmorQuality.Regular;
AddItem(pla);
@ -328,28 +328,28 @@ namespace Server.Mobiles
var lea = new LeatherArms();
lea.Movable = false;
lea.LootType = LootType.Newbied;
lea.Crafter = this;
lea.Crafter = RawName;
lea.Quality = ArmorQuality.Regular;
AddItem(lea);
var lec = new LeatherChest();
lec.Movable = false;
lec.LootType = LootType.Newbied;
lec.Crafter = this;
lec.Crafter = RawName;
lec.Quality = ArmorQuality.Regular;
AddItem(lec);
var leg = new LeatherGorget();
leg.Movable = false;
leg.LootType = LootType.Newbied;
leg.Crafter = this;
leg.Crafter = RawName;
leg.Quality = ArmorQuality.Regular;
AddItem(leg);
var lel = new LeatherLegs();
lel.Movable = false;
lel.LootType = LootType.Newbied;
lel.Crafter = this;
lel.Crafter = RawName;
lel.Quality = ArmorQuality.Regular;
AddItem(lel);
@ -419,28 +419,28 @@ namespace Server.Mobiles
var lea = new LeatherArms();
lea.Movable = false;
lea.LootType = LootType.Newbied;
lea.Crafter = this;
lea.Crafter = RawName;
lea.Quality = ArmorQuality.Regular;
AddItem(lea);
var lec = new LeatherChest();
lec.Movable = false;
lec.LootType = LootType.Newbied;
lec.Crafter = this;
lec.Crafter = RawName;
lec.Quality = ArmorQuality.Regular;
AddItem(lec);
var leg = new LeatherGorget();
leg.Movable = false;
leg.LootType = LootType.Newbied;
leg.Crafter = this;
leg.Crafter = RawName;
leg.Quality = ArmorQuality.Regular;
AddItem(leg);
var lel = new LeatherLegs();
lel.Movable = false;
lel.LootType = LootType.Newbied;
lel.Crafter = this;
lel.Crafter = RawName;
lel.Quality = ArmorQuality.Regular;
AddItem(lel);
@ -514,28 +514,28 @@ namespace Server.Mobiles
var lea = new LeatherArms();
lea.Movable = false;
lea.LootType = LootType.Newbied;
lea.Crafter = this;
lea.Crafter = RawName;
lea.Quality = ArmorQuality.Regular;
AddItem(lea);
var lec = new LeatherChest();
lec.Movable = false;
lec.LootType = LootType.Newbied;
lec.Crafter = this;
lec.Crafter = RawName;
lec.Quality = ArmorQuality.Regular;
AddItem(lec);
var leg = new LeatherGorget();
leg.Movable = false;
leg.LootType = LootType.Newbied;
leg.Crafter = this;
leg.Crafter = RawName;
leg.Quality = ArmorQuality.Regular;
AddItem(leg);
var lel = new LeatherLegs();
lel.Movable = false;
lel.LootType = LootType.Newbied;
lel.Crafter = this;
lel.Crafter = RawName;
lel.Quality = ArmorQuality.Regular;
AddItem(lel);
@ -611,28 +611,28 @@ namespace Server.Mobiles
var lea = new LeatherArms();
lea.Movable = false;
lea.LootType = LootType.Newbied;
lea.Crafter = this;
lea.Crafter = RawName;
lea.Quality = ArmorQuality.Regular;
AddItem(lea);
var lec = new LeatherChest();
lec.Movable = false;
lec.LootType = LootType.Newbied;
lec.Crafter = this;
lec.Crafter = RawName;
lec.Quality = ArmorQuality.Regular;
AddItem(lec);
var leg = new LeatherGorget();
leg.Movable = false;
leg.LootType = LootType.Newbied;
leg.Crafter = this;
leg.Crafter = RawName;
leg.Quality = ArmorQuality.Regular;
AddItem(leg);
var lel = new LeatherLegs();
lel.Movable = false;
lel.LootType = LootType.Newbied;
lel.Crafter = this;
lel.Crafter = RawName;
lel.Quality = ArmorQuality.Regular;
AddItem(lel);
@ -719,28 +719,28 @@ namespace Server.Mobiles
var lea = new LeatherArms();
lea.Movable = false;
lea.LootType = LootType.Newbied;
lea.Crafter = this;
lea.Crafter = RawName;
lea.Quality = ArmorQuality.Regular;
AddItem(lea);
var lec = new LeatherChest();
lec.Movable = false;
lec.LootType = LootType.Newbied;
lec.Crafter = this;
lec.Crafter = RawName;
lec.Quality = ArmorQuality.Regular;
AddItem(lec);
var leg = new LeatherGorget();
leg.Movable = false;
leg.LootType = LootType.Newbied;
leg.Crafter = this;
leg.Crafter = RawName;
leg.Quality = ArmorQuality.Regular;
AddItem(leg);
var lel = new LeatherLegs();
lel.Movable = false;
lel.LootType = LootType.Newbied;
lel.Crafter = this;
lel.Crafter = RawName;
lel.Quality = ArmorQuality.Regular;
AddItem(lel);