diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index bbcb8ec4c..a488b9e93 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"modernuoschemagenerator": {
- "version": "2.5.3",
+ "version": "2.6.0",
"commands": [
"ModernUOSchemaGenerator"
]
diff --git a/Projects/Server/Attributes.cs b/Projects/Server/Attributes.cs
index 8751f3cd6..09b4520c3 100644
--- a/Projects/Server/Attributes.cs
+++ b/Projects/Server/Attributes.cs
@@ -1,6 +1,22 @@
+/*************************************************************************
+ * ModernUO *
+ * Copyright 2019-2022 - ModernUO Development Team *
+ * Email: hi@modernuo.com *
+ * File: Attributes.cs *
+ * *
+ * This program is free software: you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation, either version 3 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see . *
+ *************************************************************************/
+
using System;
using System.Collections.Generic;
using System.Reflection;
+using ModernUO.Serialization;
namespace Server;
@@ -133,3 +149,28 @@ public class CommandPropertyAttribute : Attribute
public bool ReadOnly { get; }
public bool CanModify { get; }
}
+
+[AttributeUsage(AttributeTargets.Field)]
+public class SerializedCommandPropertyAttribute : SerializedPropertyAttrAttribute
+{
+ public SerializedCommandPropertyAttribute(
+ AccessLevel level,
+ bool readOnly = false,
+ bool canModify = false
+ ) : this(level, level)
+ {
+ ReadOnly = readOnly;
+ CanModify = canModify;
+ }
+
+ public SerializedCommandPropertyAttribute(AccessLevel readLevel, AccessLevel writeLevel)
+ {
+ ReadLevel = readLevel;
+ WriteLevel = writeLevel;
+ }
+
+ public AccessLevel ReadLevel { get; }
+ public AccessLevel WriteLevel { get; }
+ public bool ReadOnly { get; }
+ public bool CanModify { get; }
+}
diff --git a/Projects/Server/Server.csproj b/Projects/Server/Server.csproj
index 9391b947e..aedf820b8 100755
--- a/Projects/Server/Server.csproj
+++ b/Projects/Server/Server.csproj
@@ -36,8 +36,8 @@
-
-
+
+
diff --git a/Projects/UOContent/Accounting/Account.cs b/Projects/UOContent/Accounting/Account.cs
index 61791b71d..2308b1aac 100644
--- a/Projects/UOContent/Accounting/Account.cs
+++ b/Projects/UOContent/Accounting/Account.cs
@@ -43,7 +43,7 @@ namespace Server.Accounting
/// 0 to 999,999,999 by default.
///
[SerializableField(6, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.Administrator)]")]
+ [SerializedCommandProperty(AccessLevel.Administrator)]
public int _totalGold;
///
@@ -53,7 +53,7 @@ namespace Server.Accounting
/// One Platinum represents the value of CurrencyThreshold in Gold.
///
[SerializableField(7, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.Administrator)]")]
+ [SerializedCommandProperty(AccessLevel.Administrator)]
public int _totalPlat;
private Mobile[] _mobiles;
@@ -117,7 +117,7 @@ namespace Server.Accounting
}
[SerializableField(14)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.Administrator)]")]
+ [SerializedCommandProperty(AccessLevel.Administrator)]
private string _email;
private Timer m_YoungTimer;
diff --git a/Projects/UOContent/Engines/Bulk Orders/BaseBOD.cs b/Projects/UOContent/Engines/Bulk Orders/BaseBOD.cs
index 42777a342..cf34d9060 100644
--- a/Projects/UOContent/Engines/Bulk Orders/BaseBOD.cs
+++ b/Projects/UOContent/Engines/Bulk Orders/BaseBOD.cs
@@ -24,17 +24,17 @@ namespace Server.Engines.BulkOrders
[SerializableField(0)]
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _amountMax;
[SerializableField(1)]
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _requireExceptional;
[SerializableField(2)]
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private BulkMaterialType _material;
public static BulkMaterialType GetRandomMaterial(BulkMaterialType start, double[] chances)
diff --git a/Projects/UOContent/Holiday Stuff/Valentine/2011/Items/StValentinesBears.cs b/Projects/UOContent/Holiday Stuff/Valentine/2011/Items/StValentinesBears.cs
index ad60231bd..de1ed105c 100644
--- a/Projects/UOContent/Holiday Stuff/Valentine/2011/Items/StValentinesBears.cs
+++ b/Projects/UOContent/Holiday Stuff/Valentine/2011/Items/StValentinesBears.cs
@@ -11,25 +11,25 @@ namespace Server.Items
[InternString]
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _owner;
[InternString]
[InvalidateProperties]
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _line1;
[InternString]
[InvalidateProperties]
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _line2;
[InternString]
[InvalidateProperties]
[SerializableField(3)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _line3;
public StValentinesBear(int itemid, string name) : base(itemid)
diff --git a/Projects/UOContent/Holiday Stuff/Valentine/2012/Items/CupidsArrow.cs b/Projects/UOContent/Holiday Stuff/Valentine/2012/Items/CupidsArrow.cs
index 3c292ceda..d6b1b5025 100644
--- a/Projects/UOContent/Holiday Stuff/Valentine/2012/Items/CupidsArrow.cs
+++ b/Projects/UOContent/Holiday Stuff/Valentine/2012/Items/CupidsArrow.cs
@@ -9,13 +9,13 @@ namespace Server.Items
[InternString]
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _from;
[InternString]
[InvalidateProperties]
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _to;
[Constructible]
diff --git a/Projects/UOContent/Items/Addons/AddonComponent.cs b/Projects/UOContent/Items/Addons/AddonComponent.cs
index 5ab1f1ac6..3cc8d0706 100644
--- a/Projects/UOContent/Items/Addons/AddonComponent.cs
+++ b/Projects/UOContent/Items/Addons/AddonComponent.cs
@@ -28,7 +28,7 @@ namespace Server.Items
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _number;
[Constructible]
@@ -104,11 +104,11 @@ namespace Server.Items
}
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
public BaseAddon _addon;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
public Point3D _offset;
[Hue]
diff --git a/Projects/UOContent/Items/Addons/AddonContainerComponent.cs b/Projects/UOContent/Items/Addons/AddonContainerComponent.cs
index 6e7bf4b08..81b1813ef 100644
--- a/Projects/UOContent/Items/Addons/AddonContainerComponent.cs
+++ b/Projects/UOContent/Items/Addons/AddonContainerComponent.cs
@@ -22,11 +22,11 @@ namespace Server.Items
public virtual Point3D WallPosition => Point3D.Zero;
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private BaseAddonContainer _addon;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Point3D _offset;
[Hue]
diff --git a/Projects/UOContent/Items/Addons/ArcheryButteAddon.cs b/Projects/UOContent/Items/Addons/ArcheryButteAddon.cs
index 5834f8bb7..bfce42cb2 100644
--- a/Projects/UOContent/Items/Addons/ArcheryButteAddon.cs
+++ b/Projects/UOContent/Items/Addons/ArcheryButteAddon.cs
@@ -21,11 +21,11 @@ namespace Server.Items
}
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private double _minSkill;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private double _maxSkill;
[CommandProperty(AccessLevel.GameMaster)]
@@ -39,11 +39,11 @@ namespace Server.Items
}
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _arrows;
[SerializableField(3)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _bolts;
public override void OnDoubleClick(Mobile from)
diff --git a/Projects/UOContent/Items/Addons/PickpocketDips.cs b/Projects/UOContent/Items/Addons/PickpocketDips.cs
index 4a103a273..27c9439e4 100644
--- a/Projects/UOContent/Items/Addons/PickpocketDips.cs
+++ b/Projects/UOContent/Items/Addons/PickpocketDips.cs
@@ -10,11 +10,11 @@ namespace Server.Items
private Timer m_Timer;
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private double _minSkill;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private double _maxSkill;
public PickpocketDip(int itemID) : base(itemID)
diff --git a/Projects/UOContent/Items/Addons/SHTeleporter.cs b/Projects/UOContent/Items/Addons/SHTeleporter.cs
index 28ec63ddc..f8f12083b 100644
--- a/Projects/UOContent/Items/Addons/SHTeleporter.cs
+++ b/Projects/UOContent/Items/Addons/SHTeleporter.cs
@@ -8,7 +8,7 @@ namespace Server.Items
public partial class SHTeleComponent : AddonComponent
{
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Point3D _teleOffset;
[Constructible]
@@ -101,23 +101,23 @@ namespace Server.Items
private bool m_Changing;
[SerializableField(0, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _external;
[SerializableField(1, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private SHTeleComponent _upTele;
[SerializableField(2, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private SHTeleComponent _rightTele;
[SerializableField(3, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private SHTeleComponent _downTele;
[SerializableField(4, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private SHTeleComponent _leftTele;
[Constructible]
diff --git a/Projects/UOContent/Items/Addons/TrainingDummies.cs b/Projects/UOContent/Items/Addons/TrainingDummies.cs
index 61f81dc1a..85f78d661 100644
--- a/Projects/UOContent/Items/Addons/TrainingDummies.cs
+++ b/Projects/UOContent/Items/Addons/TrainingDummies.cs
@@ -10,11 +10,11 @@ namespace Server.Items
private Timer m_Timer;
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private double _minSkill;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private double _maxSkill;
[Constructible]
diff --git a/Projects/UOContent/Items/Aquarium/Aquarium.cs b/Projects/UOContent/Items/Aquarium/Aquarium.cs
index e86aac949..acfe7bbb1 100644
--- a/Projects/UOContent/Items/Aquarium/Aquarium.cs
+++ b/Projects/UOContent/Items/Aquarium/Aquarium.cs
@@ -38,22 +38,22 @@ namespace Server.Items
}
[SerializableField(1, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _liveCreatures;
[InvalidateProperties]
[SerializableField(2, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _vacationLeft;
[InvalidateProperties]
[SerializableField(3, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private AquariumState _food;
[InvalidateProperties]
[SerializableField(4, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private AquariumState _water;
[SerializableField(5, setter: "private")]
@@ -61,7 +61,7 @@ namespace Server.Items
[InvalidateProperties]
[SerializableField(6)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _rewardAvailable;
public Aquarium(int itemID) : base(itemID)
diff --git a/Projects/UOContent/Items/Aquarium/AquariumState.cs b/Projects/UOContent/Items/Aquarium/AquariumState.cs
index 47dc21a98..432f5d618 100644
--- a/Projects/UOContent/Items/Aquarium/AquariumState.cs
+++ b/Projects/UOContent/Items/Aquarium/AquariumState.cs
@@ -46,15 +46,15 @@ namespace Server.Items
}
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _maintain;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _improve;
[SerializableField(3)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _added;
public override string ToString() => "...";
diff --git a/Projects/UOContent/Items/Armor/BaseArmor.cs b/Projects/UOContent/Items/Armor/BaseArmor.cs
index f45004387..26ccd0f57 100644
--- a/Projects/UOContent/Items/Armor/BaseArmor.cs
+++ b/Projects/UOContent/Items/Armor/BaseArmor.cs
@@ -15,7 +15,7 @@ namespace Server.Items
public abstract partial class BaseArmor : Item, IScissorable, IFactionItem, ICraftable, IWearableDurability
{
[SerializableField(0, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster, canModify: true)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster, canModify: true)]
private AosAttributes _attributes;
[SerializableFieldSaveFlag(0)]
@@ -25,7 +25,7 @@ namespace Server.Items
private AosAttributes AttributesDefaultValue() => new(this);
[SerializableField(1, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster, canModify: true)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster, canModify: true)]
private AosArmorAttributes _armorAttributes;
[SerializableFieldSaveFlag(1)]
@@ -37,7 +37,7 @@ namespace Server.Items
[EncodedInt]
[InvalidateProperties]
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _physicalBonus;
[SerializableFieldSaveFlag(2)]
@@ -46,7 +46,7 @@ namespace Server.Items
[EncodedInt]
[InvalidateProperties]
[SerializableField(3)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _fireBonus;
[SerializableFieldSaveFlag(3)]
@@ -55,7 +55,7 @@ namespace Server.Items
[EncodedInt]
[InvalidateProperties]
[SerializableField(4)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _coldBonus;
[SerializableFieldSaveFlag(4)]
@@ -64,7 +64,7 @@ namespace Server.Items
[EncodedInt]
[InvalidateProperties]
[SerializableField(5)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _poisonBonus;
[SerializableFieldSaveFlag(5)]
@@ -73,14 +73,14 @@ namespace Server.Items
[EncodedInt]
[InvalidateProperties]
[SerializableField(6)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _energyBonus;
[SerializableFieldSaveFlag(6)]
private bool ShouldSerializeEnergyBonus() => _energyBonus != 0;
[SerializableField(7)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _identified;
[SerializableFieldSaveFlag(7)]
@@ -88,7 +88,7 @@ namespace Server.Items
[EncodedInt]
[SerializableField(8)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _maxHitPoints;
[SerializableFieldSaveFlag(8)]
@@ -96,7 +96,7 @@ namespace Server.Items
[InvalidateProperties]
[SerializableField(10)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _crafter;
[SerializableFieldSaveFlag(10)]
@@ -133,7 +133,7 @@ namespace Server.Items
private AMA _meditate = (AMA)(-1);
[SerializableField(23, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster, canModify: true)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster, canModify: true)]
public AosSkillBonuses _skillBonuses;
[SerializableFieldSaveFlag(23)]
@@ -143,7 +143,7 @@ namespace Server.Items
private AosSkillBonuses SkillBonusesDefaultValue() => new(this);
[SerializableField(24)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
public bool _playerConstructed;
[SerializableFieldSaveFlag(24)]
diff --git a/Projects/UOContent/Items/Armor/Glasses/ElvenGlasses.cs b/Projects/UOContent/Items/Armor/Glasses/ElvenGlasses.cs
index 05c81c3c7..583f22713 100644
--- a/Projects/UOContent/Items/Armor/Glasses/ElvenGlasses.cs
+++ b/Projects/UOContent/Items/Armor/Glasses/ElvenGlasses.cs
@@ -33,7 +33,7 @@ namespace Server.Items
public override ArmorMeditationAllowance DefMedAllowance => ArmorMeditationAllowance.All;
[SerializableField(0, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster, canModify: true)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster, canModify: true)]
public AosWeaponAttributes _weaponAttributes;
[SerializableFieldSaveFlag(0)]
diff --git a/Projects/UOContent/Items/Body Parts/Head.cs b/Projects/UOContent/Items/Body Parts/Head.cs
index 4bcf2cdae..f797cdd83 100644
--- a/Projects/UOContent/Items/Body Parts/Head.cs
+++ b/Projects/UOContent/Items/Body Parts/Head.cs
@@ -14,12 +14,12 @@ namespace Server.Items
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _playerName;
[InvalidateProperties]
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private HeadType _headType;
[Constructible]
diff --git a/Projects/UOContent/Items/Books/BaseBook.cs b/Projects/UOContent/Items/Books/BaseBook.cs
index ffd4ddd0b..7f9e40a57 100644
--- a/Projects/UOContent/Items/Books/BaseBook.cs
+++ b/Projects/UOContent/Items/Books/BaseBook.cs
@@ -12,13 +12,13 @@ namespace Server.Items
public partial class BaseBook : Item, ISecurable
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private SecureLevel _level;
[InternString]
[InvalidateProperties]
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _title;
[SerializableFieldSaveFlag(1)]
@@ -29,7 +29,7 @@ namespace Server.Items
[InvalidateProperties]
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _author;
[SerializableFieldSaveFlag(2)]
@@ -39,7 +39,7 @@ namespace Server.Items
private string AuthorDefaultValue() => DefaultContent?.Author;
[SerializableField(3)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _writable;
[SerializableFieldSaveFlag(3)]
diff --git a/Projects/UOContent/Items/Bulletin Boards/BulletinBoard.cs b/Projects/UOContent/Items/Bulletin Boards/BulletinBoard.cs
index 17d3670af..db23d67ba 100644
--- a/Projects/UOContent/Items/Bulletin Boards/BulletinBoard.cs
+++ b/Projects/UOContent/Items/Bulletin Boards/BulletinBoard.cs
@@ -48,7 +48,7 @@ namespace Server.Items
public abstract partial class BaseBulletinBoard : Item
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _boardName;
public BaseBulletinBoard(int itemID) : base(itemID)
diff --git a/Projects/UOContent/Items/Clothing/BaseClothing.cs b/Projects/UOContent/Items/Clothing/BaseClothing.cs
index a6a785871..645825c3c 100644
--- a/Projects/UOContent/Items/Clothing/BaseClothing.cs
+++ b/Projects/UOContent/Items/Clothing/BaseClothing.cs
@@ -30,7 +30,7 @@ namespace Server.Items
private bool ShouldSerializeResource() => _resource != DefaultResource;
[SerializableField(1, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster, canModify: true)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster, canModify: true)]
private AosAttributes _attributes;
[SerializableFieldSaveFlag(1)]
@@ -40,7 +40,7 @@ namespace Server.Items
private AosAttributes AttributesDefaultValue() => new(this);
[SerializableField(2, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster, canModify: true)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster, canModify: true)]
private AosArmorAttributes _clothingAttributes;
[SerializableFieldSaveFlag(2)]
@@ -50,7 +50,7 @@ namespace Server.Items
private AosArmorAttributes ClothingAttributesDefaultValue() => new(this);
[SerializableField(3, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster, canModify: true)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster, canModify: true)]
private AosSkillBonuses _skillBonuses;
[SerializableFieldSaveFlag(3)]
@@ -60,7 +60,7 @@ namespace Server.Items
private AosSkillBonuses SkillBonusesDefaultValue() => new(this);
[SerializableField(4, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster, canModify: true)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster, canModify: true)]
private AosElementAttributes _resistances;
[SerializableFieldSaveFlag(4)]
@@ -72,14 +72,14 @@ namespace Server.Items
[EncodedInt]
[InvalidateProperties]
[SerializableField(5)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _maxHitPoints;
[SerializableFieldSaveFlag(5)]
private bool ShouldSerializeMaxHitPoints() => _maxHitPoints != 0;
[SerializableField(7)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _playerConstructed;
[SerializableFieldSaveFlag(7)]
@@ -87,7 +87,7 @@ namespace Server.Items
[InvalidateProperties]
[SerializableField(8)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _crafter;
[SerializableFieldSaveFlag(8)]
@@ -95,7 +95,7 @@ namespace Server.Items
[InvalidateProperties]
[SerializableField(9)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private ClothingQuality _quality = ClothingQuality.Regular;
[SerializableFieldSaveFlag(9)]
diff --git a/Projects/UOContent/Items/Clothing/Cloaks.cs b/Projects/UOContent/Items/Clothing/Cloaks.cs
index cf9753120..e18e5a510 100644
--- a/Projects/UOContent/Items/Clothing/Cloaks.cs
+++ b/Projects/UOContent/Items/Clothing/Cloaks.cs
@@ -114,11 +114,11 @@ namespace Server.Items
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _number;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _isRewardItem;
[Constructible]
diff --git a/Projects/UOContent/Items/Clothing/Hats.cs b/Projects/UOContent/Items/Clothing/Hats.cs
index d6a9167d7..d6bec6723 100644
--- a/Projects/UOContent/Items/Clothing/Hats.cs
+++ b/Projects/UOContent/Items/Clothing/Hats.cs
@@ -11,7 +11,7 @@ namespace Server.Items
public abstract partial class BaseHat : BaseClothing, IShipwreckedItem
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _isShipwreckedItem;
public BaseHat(int itemID, int hue = 0) : base(itemID, Layer.Helm, hue)
diff --git a/Projects/UOContent/Items/Clothing/OuterTorso.cs b/Projects/UOContent/Items/Clothing/OuterTorso.cs
index 15aec7f89..5f147fcb2 100644
--- a/Projects/UOContent/Items/Clothing/OuterTorso.cs
+++ b/Projects/UOContent/Items/Clothing/OuterTorso.cs
@@ -147,11 +147,11 @@ namespace Server.Items
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _number;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _isRewardItem;
[Constructible]
@@ -229,11 +229,11 @@ namespace Server.Items
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _number;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _isRewardItem;
[Constructible]
diff --git a/Projects/UOContent/Items/Containers/BaseTreasureChest.cs b/Projects/UOContent/Items/Containers/BaseTreasureChest.cs
index 8e0294f09..421ee0c26 100644
--- a/Projects/UOContent/Items/Containers/BaseTreasureChest.cs
+++ b/Projects/UOContent/Items/Containers/BaseTreasureChest.cs
@@ -32,15 +32,15 @@ public partial class BaseTreasureChest : LockableContainer
}
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TreasureLevel _level;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TimeSpan _minSpawnTime;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TimeSpan _maxSpawnTime;
[CommandProperty(AccessLevel.GameMaster)]
diff --git a/Projects/UOContent/Items/Containers/LockableContainer.cs b/Projects/UOContent/Items/Containers/LockableContainer.cs
index c878a7f13..eae0e25da 100644
--- a/Projects/UOContent/Items/Containers/LockableContainer.cs
+++ b/Projects/UOContent/Items/Containers/LockableContainer.cs
@@ -49,27 +49,27 @@ public abstract partial class LockableContainer : TrappableContainer, ILockable,
public Mobile Picker { get; set; }
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _isShipwreckedItem;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _trapOnLockpick;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _requiredSkill;
[SerializableField(3)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _maxLockLevel;
[SerializableField(4)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private uint _keyValue;
[SerializableField(5)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _lockLevel;
[SerializableProperty(6)]
diff --git a/Projects/UOContent/Items/Containers/MarkContainer.cs b/Projects/UOContent/Items/Containers/MarkContainer.cs
index 67d9a3f89..30cc8a128 100644
--- a/Projects/UOContent/Items/Containers/MarkContainer.cs
+++ b/Projects/UOContent/Items/Containers/MarkContainer.cs
@@ -20,15 +20,15 @@ public partial class MarkContainer : LockableContainer
}
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Map _targetMap;
[SerializableField(3)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Point3D _target;
[SerializableField(4)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _description;
[Constructible]
diff --git a/Projects/UOContent/Items/Containers/Strongbox.cs b/Projects/UOContent/Items/Containers/Strongbox.cs
index e6e1eec3e..905bf855d 100644
--- a/Projects/UOContent/Items/Containers/Strongbox.cs
+++ b/Projects/UOContent/Items/Containers/Strongbox.cs
@@ -11,12 +11,12 @@ public partial class StrongBox : BaseContainer, IChoppable
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Mobile _owner;
[InvalidateProperties]
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private BaseHouse _house;
public StrongBox(Mobile owner, BaseHouse house) : base(0xE80)
diff --git a/Projects/UOContent/Items/Containers/TrappableContainer.cs b/Projects/UOContent/Items/Containers/TrappableContainer.cs
index ebe9cfc8b..0ea878309 100644
--- a/Projects/UOContent/Items/Containers/TrappableContainer.cs
+++ b/Projects/UOContent/Items/Containers/TrappableContainer.cs
@@ -16,15 +16,15 @@ public enum TrapType
public abstract partial class TrappableContainer : BaseContainer, ITelekinesisable
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _trapLevel;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _trapPower;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TrapType _trapType;
public TrappableContainer(int itemID) : base(itemID)
diff --git a/Projects/UOContent/Items/Containers/TreasureMapChest.cs b/Projects/UOContent/Items/Containers/TreasureMapChest.cs
index a584a0579..bcf71721a 100644
--- a/Projects/UOContent/Items/Containers/TreasureMapChest.cs
+++ b/Projects/UOContent/Items/Containers/TreasureMapChest.cs
@@ -16,20 +16,20 @@ public partial class TreasureMapChest : LockableContainer
private List _guardians;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _temporary;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Mobile _owner;
[SerializableField(3)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _level;
[TimerDrift]
[SerializableField(4)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Timer _expireTimer;
[DeserializeTimerField(4)]
@@ -43,7 +43,7 @@ public partial class TreasureMapChest : LockableContainer
[Tidy]
[SerializableField(5, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private HashSet- _lifted;
[Constructible]
diff --git a/Projects/UOContent/Items/Deeds/CommodityDeed.cs b/Projects/UOContent/Items/Deeds/CommodityDeed.cs
index 459a45b93..d073bf90b 100644
--- a/Projects/UOContent/Items/Deeds/CommodityDeed.cs
+++ b/Projects/UOContent/Items/Deeds/CommodityDeed.cs
@@ -13,7 +13,7 @@ public interface ICommodity /* added IsDeedable prop so expansion-based deedable
public partial class CommodityDeed : Item
{
[SerializableField(0, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
public Item _commodity;
[Constructible]
diff --git a/Projects/UOContent/Items/Deeds/DragonBardingDeed.cs b/Projects/UOContent/Items/Deeds/DragonBardingDeed.cs
index 4b70f57c5..3ccc1b2f7 100644
--- a/Projects/UOContent/Items/Deeds/DragonBardingDeed.cs
+++ b/Projects/UOContent/Items/Deeds/DragonBardingDeed.cs
@@ -12,12 +12,12 @@ public partial class DragonBardingDeed : Item, ICraftable
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _craftedBy;
[InvalidateProperties]
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _exceptional;
public DragonBardingDeed() : base(0x14F0) => Weight = 1.0;
diff --git a/Projects/UOContent/Items/Deeds/NewPlayerTicket.cs b/Projects/UOContent/Items/Deeds/NewPlayerTicket.cs
index 36c2eea7a..3cd83c624 100644
--- a/Projects/UOContent/Items/Deeds/NewPlayerTicket.cs
+++ b/Projects/UOContent/Items/Deeds/NewPlayerTicket.cs
@@ -9,7 +9,7 @@ namespace Server.Items;
public partial class NewPlayerTicket : Item
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.Owner)]")]
+ [SerializedCommandProperty(AccessLevel.Owner)]
private Mobile _owner;
[Constructible]
diff --git a/Projects/UOContent/Items/Deeds/VendorRentalContract.cs b/Projects/UOContent/Items/Deeds/VendorRentalContract.cs
index 8a1134014..203c0b415 100644
--- a/Projects/UOContent/Items/Deeds/VendorRentalContract.cs
+++ b/Projects/UOContent/Items/Deeds/VendorRentalContract.cs
@@ -21,11 +21,11 @@ public partial class VendorRentalContract : Item
private Timer _offerExpireTimer;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _price;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _landlordRenew;
[Constructible]
diff --git a/Projects/UOContent/Items/Food/Beverage.cs b/Projects/UOContent/Items/Food/Beverage.cs
index e74eb03b4..1b8bef4f6 100644
--- a/Projects/UOContent/Items/Food/Beverage.cs
+++ b/Projects/UOContent/Items/Food/Beverage.cs
@@ -220,11 +220,11 @@ public abstract partial class BaseBeverage : Item, IHasQuantity
private static readonly Dictionary m_Table = new();
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Poison _poison;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Mobile _poisoner;
public BaseBeverage() => ItemID = ComputeItemID();
diff --git a/Projects/UOContent/Items/Food/CookableFood.cs b/Projects/UOContent/Items/Food/CookableFood.cs
index d7711abfb..a1515173c 100644
--- a/Projects/UOContent/Items/Food/CookableFood.cs
+++ b/Projects/UOContent/Items/Food/CookableFood.cs
@@ -7,7 +7,7 @@ namespace Server.Items;
public abstract partial class CookableFood : Item
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _cookingLevel;
public CookableFood(int itemID, int cookingLevel) : base(itemID) => _cookingLevel = cookingLevel;
diff --git a/Projects/UOContent/Items/Food/Food.cs b/Projects/UOContent/Items/Food/Food.cs
index 42afe10e4..abfd05b3c 100644
--- a/Projects/UOContent/Items/Food/Food.cs
+++ b/Projects/UOContent/Items/Food/Food.cs
@@ -8,15 +8,15 @@ namespace Server.Items;
public abstract partial class Food : Item
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Mobile _poisoner;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Poison _poison;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _fillFactor;
public Food(int itemID, int amount = 1) : base(itemID)
diff --git a/Projects/UOContent/Items/Games/BaseBoard.cs b/Projects/UOContent/Items/Games/BaseBoard.cs
index be9194b7a..0d71c0a8f 100644
--- a/Projects/UOContent/Items/Games/BaseBoard.cs
+++ b/Projects/UOContent/Items/Games/BaseBoard.cs
@@ -12,7 +12,7 @@ namespace Server.Items;
public abstract partial class BaseBoard : Container, ISecurable
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private SecureLevel _level;
public BaseBoard(int itemID) : base(itemID)
diff --git a/Projects/UOContent/Items/Games/Mahjong/MahjongGame.cs b/Projects/UOContent/Items/Games/Mahjong/MahjongGame.cs
index be72fe621..34292774c 100644
--- a/Projects/UOContent/Items/Games/Mahjong/MahjongGame.cs
+++ b/Projects/UOContent/Items/Games/Mahjong/MahjongGame.cs
@@ -14,7 +14,7 @@ public partial class MahjongGame : Item, ISecurable
public const int BaseScore = 30000;
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private SecureLevel _level;
[SerializableField(1, setter: "private")]
diff --git a/Projects/UOContent/Items/Guilds/Guildstone.cs b/Projects/UOContent/Items/Guilds/Guildstone.cs
index 767d02c58..d808e4066 100644
--- a/Projects/UOContent/Items/Guilds/Guildstone.cs
+++ b/Projects/UOContent/Items/Guilds/Guildstone.cs
@@ -13,17 +13,17 @@ public partial class Guildstone : Item, IAddon, IChoppable
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _guildName;
[InvalidateProperties]
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _guildAbbrev;
[InvalidateProperties]
[SerializableField(2, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Guild _guild;
public Guildstone(Guild g) : this(g, g.Name, g.Abbreviation)
@@ -209,17 +209,17 @@ public partial class GuildstoneDeed : Item
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _guildName;
[InvalidateProperties]
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _guildAbbrev;
[InvalidateProperties]
[SerializableField(2, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Guild _guild;
[Constructible]
diff --git a/Projects/UOContent/Items/Jewels/BaseJewel.cs b/Projects/UOContent/Items/Jewels/BaseJewel.cs
index fdda15757..16fe04c72 100644
--- a/Projects/UOContent/Items/Jewels/BaseJewel.cs
+++ b/Projects/UOContent/Items/Jewels/BaseJewel.cs
@@ -24,24 +24,24 @@ public abstract partial class BaseJewel : Item, ICraftable
[EncodedInt]
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _maxHitPoints;
[SerializableField(3)]
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private GemType _gemType;
[SerializableField(4, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster, canModify: true)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster, canModify: true)]
private AosAttributes _attributes;
[SerializableField(5, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster, canModify: true)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster, canModify: true)]
private AosElementAttributes _resistances;
[SerializableField(6, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster, canModify: true)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster, canModify: true)]
private AosSkillBonuses _skillBonuses;
public BaseJewel(int itemID, Layer layer) : base(itemID)
diff --git a/Projects/UOContent/Items/Lights/BaseLight.cs b/Projects/UOContent/Items/Lights/BaseLight.cs
index 3e8ec5c56..d3bff4af5 100644
--- a/Projects/UOContent/Items/Lights/BaseLight.cs
+++ b/Projects/UOContent/Items/Lights/BaseLight.cs
@@ -9,11 +9,11 @@ public abstract partial class BaseLight : Item
public static readonly bool Burnout = false;
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _burntOut;
[SerializableField(3)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _protected;
[TimerDrift]
diff --git a/Projects/UOContent/Items/Lights/Candelabra.cs b/Projects/UOContent/Items/Lights/Candelabra.cs
index 823313f2d..1558417bd 100644
--- a/Projects/UOContent/Items/Lights/Candelabra.cs
+++ b/Projects/UOContent/Items/Lights/Candelabra.cs
@@ -7,7 +7,7 @@ namespace Server.Items;
public partial class Candelabra : BaseLight, IShipwreckedItem
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _isShipwreckedItem;
[Constructible]
diff --git a/Projects/UOContent/Items/Maps/MapItem.cs b/Projects/UOContent/Items/Maps/MapItem.cs
index ddabca698..8aba38219 100644
--- a/Projects/UOContent/Items/Maps/MapItem.cs
+++ b/Projects/UOContent/Items/Maps/MapItem.cs
@@ -13,27 +13,27 @@ public partial class MapItem : Item, ICraftable
private const int MaxUserPins = 50;
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Rectangle2D _bounds;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _width;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _height;
[SerializableField(3)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _protected;
[SerializableField(4, setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private List _pins;
[SerializableField(5)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Map _facet;
[SerializableField(6)]
diff --git a/Projects/UOContent/Items/Maps/TreasureMap.cs b/Projects/UOContent/Items/Maps/TreasureMap.cs
index 189c7bb60..445bb26fb 100644
--- a/Projects/UOContent/Items/Maps/TreasureMap.cs
+++ b/Projects/UOContent/Items/Maps/TreasureMap.cs
@@ -32,31 +32,31 @@ public partial class TreasureMap : MapItem
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Mobile _completedBy;
[InvalidateProperties]
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _level;
[InvalidateProperties]
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _completed;
[InvalidateProperties]
[SerializableField(3)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Mobile _decoder;
[InvalidateProperties]
[SerializableField(4)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Map _chestMap;
[SerializableField(5)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Point2D _chestLocation;
[Constructible]
diff --git a/Projects/UOContent/Items/Misc/BankCheck.cs b/Projects/UOContent/Items/Misc/BankCheck.cs
index 844307633..58a3b9d07 100644
--- a/Projects/UOContent/Items/Misc/BankCheck.cs
+++ b/Projects/UOContent/Items/Misc/BankCheck.cs
@@ -15,7 +15,7 @@ public partial class BankCheck : Item
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _worth;
[Constructible]
diff --git a/Projects/UOContent/Items/Misc/CommunicationCrystals.cs b/Projects/UOContent/Items/Misc/CommunicationCrystals.cs
index fdda8cb40..0271fcacb 100644
--- a/Projects/UOContent/Items/Misc/CommunicationCrystals.cs
+++ b/Projects/UOContent/Items/Misc/CommunicationCrystals.cs
@@ -51,12 +51,12 @@ public partial class BroadcastCrystal : Item
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _charges;
[InvalidateProperties]
[SerializableField(1, getter: "private", setter: "private")]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private List _receivers;
[Constructible]
diff --git a/Projects/UOContent/Items/Misc/DeceitBrazier.cs b/Projects/UOContent/Items/Misc/DeceitBrazier.cs
index 322507161..d16d6f85d 100644
--- a/Projects/UOContent/Items/Misc/DeceitBrazier.cs
+++ b/Projects/UOContent/Items/Misc/DeceitBrazier.cs
@@ -12,11 +12,11 @@ public partial class DeceitBrazier : Item
private TimerExecutionToken _timerToken;
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _spawnRange;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TimeSpan _nextSpawnDelay;
[Constructible]
diff --git a/Projects/UOContent/Items/Misc/EffectController.cs b/Projects/UOContent/Items/Misc/EffectController.cs
index 0573ebec9..b5ef68b7e 100644
--- a/Projects/UOContent/Items/Misc/EffectController.cs
+++ b/Projects/UOContent/Items/Misc/EffectController.cs
@@ -24,15 +24,15 @@ public enum EffectTriggerType
public partial class EffectController : Item
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TimeSpan _effectDelay;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TimeSpan _triggerDelay;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TimeSpan _soundDelay;
[SerializableField(3)]
@@ -42,75 +42,75 @@ public partial class EffectController : Item
private IEntity _target;
[SerializableField(5)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private EffectController _sequence;
[SerializableField(6)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _fixedDirection;
[SerializableField(7)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _explodes;
[SerializableField(8)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _playSoundAtTrigger;
[SerializableField(9)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private ECEffectType _effectType;
[SerializableField(10)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private EffectLayer _effectLayer;
[SerializableField(11)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private EffectTriggerType _triggerType;
[SerializableField(12)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _effectItemId;
[SerializableField(13)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _effectHue;
[SerializableField(14)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _renderMode;
[SerializableField(15)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _speed;
[SerializableField(16)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _duration;
[SerializableField(17)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _particleEffect;
[SerializableField(18)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _explodeParticleEffect;
[SerializableField(19)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _explodeSound;
[SerializableField(20)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _unknown;
[SerializableField(21)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _soundId;
[SerializableField(22)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _triggerRange;
[Constructible]
diff --git a/Projects/UOContent/Items/Misc/Key.cs b/Projects/UOContent/Items/Misc/Key.cs
index 2713678ad..e3168e27f 100644
--- a/Projects/UOContent/Items/Misc/Key.cs
+++ b/Projects/UOContent/Items/Misc/Key.cs
@@ -23,21 +23,21 @@ public interface ILockable
public partial class Key : Item
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _maxRange;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Item _link;
[SerializableField(2)]
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _description;
[SerializableField(3)]
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private uint _keyValue;
[Constructible]
diff --git a/Projects/UOContent/Items/Misc/Moonstone.cs b/Projects/UOContent/Items/Misc/Moonstone.cs
index 55090df75..8c7d25a48 100644
--- a/Projects/UOContent/Items/Misc/Moonstone.cs
+++ b/Projects/UOContent/Items/Misc/Moonstone.cs
@@ -17,7 +17,7 @@ public partial class Moonstone : Item
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private MoonstoneType _type;
[Constructible]
diff --git a/Projects/UOContent/Items/Misc/MorphItem.cs b/Projects/UOContent/Items/Misc/MorphItem.cs
index 84587e658..57bef974a 100644
--- a/Projects/UOContent/Items/Misc/MorphItem.cs
+++ b/Projects/UOContent/Items/Misc/MorphItem.cs
@@ -7,11 +7,11 @@ namespace Server.Items;
public partial class MorphItem : Item
{
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _inactiveItemId;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _activeItemId;
[Constructible]
diff --git a/Projects/UOContent/Items/Misc/PlayerBulletinBoards.cs b/Projects/UOContent/Items/Misc/PlayerBulletinBoards.cs
index d1548a790..cb45f246a 100644
--- a/Projects/UOContent/Items/Misc/PlayerBulletinBoards.cs
+++ b/Projects/UOContent/Items/Misc/PlayerBulletinBoards.cs
@@ -32,16 +32,16 @@ public partial class PlayerBBEast : BasePlayerBB
public abstract partial class BasePlayerBB : Item, ISecurable
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private SecureLevel _level;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _title;
[CanBeNull]
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private PlayerBBMessage _greeting;
[SerializableField(3)]
@@ -235,15 +235,15 @@ public abstract partial class BasePlayerBB : Item, ISecurable
public partial class PlayerBBMessage
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private DateTime _time;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Mobile _poster;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _message;
public PlayerBBMessage()
diff --git a/Projects/UOContent/Items/Misc/SerpentPillar.cs b/Projects/UOContent/Items/Misc/SerpentPillar.cs
index 4f990ba48..29d3f8e4c 100644
--- a/Projects/UOContent/Items/Misc/SerpentPillar.cs
+++ b/Projects/UOContent/Items/Misc/SerpentPillar.cs
@@ -7,15 +7,15 @@ namespace Server.Items;
public partial class SerpentPillar : Item
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _active;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _word;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Rectangle2D _destination;
[Constructible]
diff --git a/Projects/UOContent/Items/Misc/Static.cs b/Projects/UOContent/Items/Misc/Static.cs
index 01d747f5e..211af73b3 100644
--- a/Projects/UOContent/Items/Misc/Static.cs
+++ b/Projects/UOContent/Items/Misc/Static.cs
@@ -22,7 +22,7 @@ public partial class LocalizedStatic : Static
[EncodedInt]
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _number;
[Constructible]
diff --git a/Projects/UOContent/Items/Misc/Teleporter.cs b/Projects/UOContent/Items/Misc/Teleporter.cs
index 14d344cde..67f583709 100644
--- a/Projects/UOContent/Items/Misc/Teleporter.cs
+++ b/Projects/UOContent/Items/Misc/Teleporter.cs
@@ -25,28 +25,28 @@ public partial class Teleporter : Item
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TeleporterFlags _flags;
[InvalidateProperties]
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TimeSpan _delay;
[EncodedInt]
[InvalidateProperties]
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _soundID;
[InvalidateProperties]
[SerializableField(3)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Point3D _pointDest;
[InvalidateProperties]
[SerializableField(4)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private Map _mapDest;
[Constructible]
@@ -307,18 +307,18 @@ public partial class SkillTeleporter : Teleporter
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private SkillName _skill;
[InvalidateProperties]
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private double _required;
[CanBeNull]
[InvalidateProperties]
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TextDefinition _message;
[Constructible]
@@ -423,15 +423,15 @@ public partial class SkillTeleporter : Teleporter
public partial class KeywordTeleporter : Teleporter
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private string _substring;
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _keyword;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _range;
[Constructible]
@@ -513,18 +513,18 @@ public partial class WaitTeleporter : KeywordTeleporter
[CanBeNull]
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TextDefinition _startMessage;
[CanBeNull]
[InvalidateProperties]
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TextDefinition _progressMessage;
[InvalidateProperties]
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _showTimeRemaining;
[Constructible]
diff --git a/Projects/UOContent/Items/Misc/WarningItem.cs b/Projects/UOContent/Items/Misc/WarningItem.cs
index 85cd73954..de957f244 100644
--- a/Projects/UOContent/Items/Misc/WarningItem.cs
+++ b/Projects/UOContent/Items/Misc/WarningItem.cs
@@ -11,7 +11,7 @@ public partial class WarningItem : Item
private bool m_Broadcasting;
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TextDefinition _warningMessage;
// Field 1
@@ -134,7 +134,7 @@ public partial class WarningItem : Item
public partial class HintItem : WarningItem
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private TextDefinition _hintMessage;
[Constructible]
diff --git a/Projects/UOContent/Items/Misc/WayPoint.cs b/Projects/UOContent/Items/Misc/WayPoint.cs
index b00c8f1a5..171231865 100644
--- a/Projects/UOContent/Items/Misc/WayPoint.cs
+++ b/Projects/UOContent/Items/Misc/WayPoint.cs
@@ -8,7 +8,7 @@ namespace Server.Items;
public partial class WayPoint : Item
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private WayPoint _nextPoint;
[Constructible]
diff --git a/Projects/UOContent/Items/Misc/WindChimes.cs b/Projects/UOContent/Items/Misc/WindChimes.cs
index 88471997d..d0d774be4 100644
--- a/Projects/UOContent/Items/Misc/WindChimes.cs
+++ b/Projects/UOContent/Items/Misc/WindChimes.cs
@@ -10,7 +10,7 @@ public abstract partial class BaseWindChimes : Item
{
[InvalidateProperties]
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _turnedOn;
public BaseWindChimes(int itemID) : base(itemID)
diff --git a/Projects/UOContent/Items/Resources/Blacksmithing/Ingots.cs b/Projects/UOContent/Items/Resources/Blacksmithing/Ingots.cs
index 3b6fcec7e..b8206e8bd 100644
--- a/Projects/UOContent/Items/Resources/Blacksmithing/Ingots.cs
+++ b/Projects/UOContent/Items/Resources/Blacksmithing/Ingots.cs
@@ -6,7 +6,7 @@ namespace Server.Items
public abstract partial class BaseIngot : Item, ICommodity
{
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
[SerializableField(0)]
private CraftResource _resource;
diff --git a/Projects/UOContent/Items/Resources/Blacksmithing/Ore.cs b/Projects/UOContent/Items/Resources/Blacksmithing/Ore.cs
index 1f076db1e..59999eab7 100644
--- a/Projects/UOContent/Items/Resources/Blacksmithing/Ore.cs
+++ b/Projects/UOContent/Items/Resources/Blacksmithing/Ore.cs
@@ -18,7 +18,7 @@ namespace Server.Items
}
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
[SerializableField(0)]
private CraftResource _resource;
diff --git a/Projects/UOContent/Items/Resources/Fishing/BigFish.cs b/Projects/UOContent/Items/Resources/Fishing/BigFish.cs
index 49dc2bc76..e6c488b45 100644
--- a/Projects/UOContent/Items/Resources/Fishing/BigFish.cs
+++ b/Projects/UOContent/Items/Resources/Fishing/BigFish.cs
@@ -7,7 +7,7 @@ namespace Server.Items
public partial class BigFish : Item, ICarvable
{
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
[SerializableField(0)]
private Mobile _fisher;
diff --git a/Projects/UOContent/Items/Resources/Tailor/Hides.cs b/Projects/UOContent/Items/Resources/Tailor/Hides.cs
index 4e4b1f6e4..a026322ef 100644
--- a/Projects/UOContent/Items/Resources/Tailor/Hides.cs
+++ b/Projects/UOContent/Items/Resources/Tailor/Hides.cs
@@ -6,7 +6,7 @@ namespace Server.Items
public abstract partial class BaseHides : Item, ICommodity
{
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
[SerializableField(0)]
private CraftResource _resource;
diff --git a/Projects/UOContent/Items/Resources/Tailor/Leathers.cs b/Projects/UOContent/Items/Resources/Tailor/Leathers.cs
index 9af30b92e..bc4f46291 100644
--- a/Projects/UOContent/Items/Resources/Tailor/Leathers.cs
+++ b/Projects/UOContent/Items/Resources/Tailor/Leathers.cs
@@ -6,7 +6,7 @@ namespace Server.Items
public abstract partial class BaseLeather : Item, ICommodity
{
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
[SerializableField(0)]
private CraftResource _resource;
diff --git a/Projects/UOContent/Items/Skill Items/Lumberjack/Log.cs b/Projects/UOContent/Items/Skill Items/Lumberjack/Log.cs
index e3a37d000..82772546f 100644
--- a/Projects/UOContent/Items/Skill Items/Lumberjack/Log.cs
+++ b/Projects/UOContent/Items/Skill Items/Lumberjack/Log.cs
@@ -7,7 +7,7 @@ namespace Server.Items
public partial class Log : Item, ICommodity, IAxe
{
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
[SerializableField(0)]
private CraftResource _resource;
diff --git a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/DyeTub.cs b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/DyeTub.cs
index f81879b89..25d7c9882 100644
--- a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/DyeTub.cs
+++ b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/DyeTub.cs
@@ -16,11 +16,11 @@ namespace Server.Items
public partial class DyeTub : Item, ISecurable
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private SecureLevel _level;
[SerializableField(1, isVirtual: true)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _redyable;
[Constructible]
diff --git a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/FurnitureDyeTub.cs b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/FurnitureDyeTub.cs
index 8b403c3f7..599a43d2b 100644
--- a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/FurnitureDyeTub.cs
+++ b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/FurnitureDyeTub.cs
@@ -7,7 +7,7 @@ namespace Server.Items
public partial class FurnitureDyeTub : DyeTub, IRewardItem
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _isRewardItem;
[Constructible]
diff --git a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/LeatherDyeTub.cs b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/LeatherDyeTub.cs
index 2e94d43e7..c429a7b5d 100644
--- a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/LeatherDyeTub.cs
+++ b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/LeatherDyeTub.cs
@@ -7,7 +7,7 @@ namespace Server.Items
public partial class LeatherDyeTub : DyeTub, IRewardItem
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _isRewardItem;
[Constructible]
diff --git a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/RewardBlackDyeTub.cs b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/RewardBlackDyeTub.cs
index c8c0ef7c1..23fc7adf1 100644
--- a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/RewardBlackDyeTub.cs
+++ b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/RewardBlackDyeTub.cs
@@ -7,7 +7,7 @@ namespace Server.Items
public partial class RewardBlackDyeTub : DyeTub, IRewardItem
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _isRewardItem;
[Constructible]
diff --git a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/RunebookDyeTub.cs b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/RunebookDyeTub.cs
index 6d202d49a..439491a78 100644
--- a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/RunebookDyeTub.cs
+++ b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/RunebookDyeTub.cs
@@ -7,7 +7,7 @@ namespace Server.Items
public partial class RunebookDyeTub : DyeTub, IRewardItem
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _isRewardItem;
[Constructible]
diff --git a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/SpecialDyeTub.cs b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/SpecialDyeTub.cs
index 34630ac87..c0ebbd0e2 100644
--- a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/SpecialDyeTub.cs
+++ b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/SpecialDyeTub.cs
@@ -7,7 +7,7 @@ namespace Server.Items
public partial class SpecialDyeTub : DyeTub, IRewardItem
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _isRewardItem;
[Constructible]
diff --git a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/StatuetteDyeTub.cs b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/StatuetteDyeTub.cs
index 9fa04835a..5118941dd 100644
--- a/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/StatuetteDyeTub.cs
+++ b/Projects/UOContent/Items/Skill Items/Tailor Items/Dyetubs/StatuetteDyeTub.cs
@@ -7,7 +7,7 @@ namespace Server.Items
public partial class StatuetteDyeTub : DyeTub, IRewardItem
{
[SerializableField(0)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _isRewardItem;
[Constructible]
diff --git a/Projects/UOContent/Items/Wands/BaseWand.cs b/Projects/UOContent/Items/Wands/BaseWand.cs
index 0549b7a6c..4dc29a241 100644
--- a/Projects/UOContent/Items/Wands/BaseWand.cs
+++ b/Projects/UOContent/Items/Wands/BaseWand.cs
@@ -26,12 +26,12 @@ namespace Server.Items
public abstract partial class BaseWand : BaseBashing
{
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
[SerializableField(0)]
private WandEffect _wandEffect;
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
[SerializableField(1)]
private int _charges;
diff --git a/Projects/UOContent/Items/Weapons/Axes/BaseAxe.cs b/Projects/UOContent/Items/Weapons/Axes/BaseAxe.cs
index 1051e22c7..ef004d641 100644
--- a/Projects/UOContent/Items/Weapons/Axes/BaseAxe.cs
+++ b/Projects/UOContent/Items/Weapons/Axes/BaseAxe.cs
@@ -18,12 +18,12 @@ namespace Server.Items
{
[SerializableField(0)]
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _showUsesRemaining;
[SerializableField(1)]
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _usesRemaining;
public BaseAxe(int itemID) : base(itemID) => _usesRemaining = 150;
diff --git a/Projects/UOContent/Items/Weapons/Maces/FireworksWand.cs b/Projects/UOContent/Items/Weapons/Maces/FireworksWand.cs
index c28b20f8f..a755d8426 100644
--- a/Projects/UOContent/Items/Weapons/Maces/FireworksWand.cs
+++ b/Projects/UOContent/Items/Weapons/Maces/FireworksWand.cs
@@ -8,7 +8,7 @@ namespace Server.Items
{
[SerializableField(0)]
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _charges;
[Constructible]
diff --git a/Projects/UOContent/Items/Weapons/PoleArms/BasePoleArm.cs b/Projects/UOContent/Items/Weapons/PoleArms/BasePoleArm.cs
index ea56669ff..cc535befd 100644
--- a/Projects/UOContent/Items/Weapons/PoleArms/BasePoleArm.cs
+++ b/Projects/UOContent/Items/Weapons/PoleArms/BasePoleArm.cs
@@ -12,12 +12,12 @@ namespace Server.Items
{
[SerializableField(0)]
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _showUsesRemaining;
[SerializableField(1)]
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _usesRemaining;
public BasePoleArm(int itemID) : base(itemID) => _usesRemaining = 150;
diff --git a/Projects/UOContent/Items/Weapons/Ranged/BaseRanged.cs b/Projects/UOContent/Items/Weapons/Ranged/BaseRanged.cs
index b17429a7a..884cd0657 100644
--- a/Projects/UOContent/Items/Weapons/Ranged/BaseRanged.cs
+++ b/Projects/UOContent/Items/Weapons/Ranged/BaseRanged.cs
@@ -11,12 +11,12 @@ namespace Server.Items
{
[SerializableField(0)]
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _balanced;
[SerializableField(1)]
[InvalidateProperties]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _velocity;
private TimerExecutionToken _recoveryTimerToken;
diff --git a/Projects/UOContent/Mobiles/Vendors/RentedVendor.cs b/Projects/UOContent/Mobiles/Vendors/RentedVendor.cs
index d2192f64e..8dec4fad0 100644
--- a/Projects/UOContent/Mobiles/Vendors/RentedVendor.cs
+++ b/Projects/UOContent/Mobiles/Vendors/RentedVendor.cs
@@ -74,28 +74,28 @@ public partial class RentedVendor : PlayerVendor
private int _rentalDurationId; // TODO: Replace this with something more robust
[SerializableField(1)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _rentalPrice;
[SerializableField(2)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _landlordRenew;
[SerializableField(3)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private bool _renterRenew;
[SerializableField(4)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _renewalPrice;
[SerializableField(5)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _rentalGold;
[DeltaDateTime]
[SerializableField(6)]
- [SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
+ [SerializedCommandProperty(AccessLevel.GameMaster)]
private DateTime _rentalExpireTime;
[CommandProperty(AccessLevel.GameMaster)]
diff --git a/Projects/UOContent/UOContent.csproj b/Projects/UOContent/UOContent.csproj
index 3a211b083..65c9aa1ae 100755
--- a/Projects/UOContent/UOContent.csproj
+++ b/Projects/UOContent/UOContent.csproj
@@ -37,8 +37,8 @@
-
-
+
+