From df9a58dd49b707f0dd77fe40e4d51e46f2ff442d Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Wed, 23 Nov 2022 10:49:30 -0800 Subject: [PATCH] feat: Adds IAosItem for items with AosAttributes (#1268) --- Projects/UOContent/Items/Armor/BaseArmor.cs | 2 +- Projects/UOContent/Items/Clothing/BaseClothing.cs | 3 ++- Projects/UOContent/Items/Jewels/BaseJewel.cs | 2 +- Projects/UOContent/Items/Quivers/BaseQuiver.cs | 2 +- Projects/UOContent/Items/Skill Items/Magical/Spellbook.cs | 2 +- Projects/UOContent/Items/Talismans/BaseTalisman.cs | 2 +- Projects/UOContent/Items/Weapons/BaseWeapon.cs | 2 +- Projects/UOContent/Misc/AOS.cs | 5 +++++ 8 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Projects/UOContent/Items/Armor/BaseArmor.cs b/Projects/UOContent/Items/Armor/BaseArmor.cs index 26ccd0f57..9519f46fd 100644 --- a/Projects/UOContent/Items/Armor/BaseArmor.cs +++ b/Projects/UOContent/Items/Armor/BaseArmor.cs @@ -12,7 +12,7 @@ using AMT = Server.Items.ArmorMaterialType; namespace Server.Items { [SerializationGenerator(9, false)] - public abstract partial class BaseArmor : Item, IScissorable, IFactionItem, ICraftable, IWearableDurability + public abstract partial class BaseArmor : Item, IScissorable, IFactionItem, ICraftable, IWearableDurability, IAosItem { [SerializableField(0, setter: "private")] [SerializedCommandProperty(AccessLevel.GameMaster, canModify: true)] diff --git a/Projects/UOContent/Items/Clothing/BaseClothing.cs b/Projects/UOContent/Items/Clothing/BaseClothing.cs index 645825c3c..808fb2245 100644 --- a/Projects/UOContent/Items/Clothing/BaseClothing.cs +++ b/Projects/UOContent/Items/Clothing/BaseClothing.cs @@ -24,7 +24,8 @@ namespace Server.Items } [SerializationGenerator(7, false)] - public abstract partial class BaseClothing : Item, IDyable, IScissorable, IFactionItem, ICraftable, IWearableDurability + public abstract partial class BaseClothing + : Item, IDyable, IScissorable, IFactionItem, ICraftable, IWearableDurability, IAosItem { [SerializableFieldSaveFlag(0)] private bool ShouldSerializeResource() => _resource != DefaultResource; diff --git a/Projects/UOContent/Items/Jewels/BaseJewel.cs b/Projects/UOContent/Items/Jewels/BaseJewel.cs index 16fe04c72..6b8b9b172 100644 --- a/Projects/UOContent/Items/Jewels/BaseJewel.cs +++ b/Projects/UOContent/Items/Jewels/BaseJewel.cs @@ -19,7 +19,7 @@ public enum GemType } [SerializationGenerator(4, false)] -public abstract partial class BaseJewel : Item, ICraftable +public abstract partial class BaseJewel : Item, ICraftable, IAosItem { [EncodedInt] [InvalidateProperties] diff --git a/Projects/UOContent/Items/Quivers/BaseQuiver.cs b/Projects/UOContent/Items/Quivers/BaseQuiver.cs index 7acc0b426..02223f383 100644 --- a/Projects/UOContent/Items/Quivers/BaseQuiver.cs +++ b/Projects/UOContent/Items/Quivers/BaseQuiver.cs @@ -3,7 +3,7 @@ using Server.Engines.Craft; namespace Server.Items { - public class BaseQuiver : Container, ICraftable + public class BaseQuiver : Container, ICraftable, IAosItem { private static readonly Type[] m_Ammo = { diff --git a/Projects/UOContent/Items/Skill Items/Magical/Spellbook.cs b/Projects/UOContent/Items/Skill Items/Magical/Spellbook.cs index 56a6d11da..4715ad2de 100644 --- a/Projects/UOContent/Items/Skill Items/Magical/Spellbook.cs +++ b/Projects/UOContent/Items/Skill Items/Magical/Spellbook.cs @@ -28,7 +28,7 @@ namespace Server.Items Exceptional } - public class Spellbook : Item, ICraftable, ISlayer + public class Spellbook : Item, ICraftable, ISlayer, IAosItem { private static readonly Dictionary> m_Table = new(); diff --git a/Projects/UOContent/Items/Talismans/BaseTalisman.cs b/Projects/UOContent/Items/Talismans/BaseTalisman.cs index 1fbb11af1..a28f9e814 100644 --- a/Projects/UOContent/Items/Talismans/BaseTalisman.cs +++ b/Projects/UOContent/Items/Talismans/BaseTalisman.cs @@ -19,7 +19,7 @@ namespace Server.Items Wildfire = 2843 } - public class BaseTalisman : Item + public class BaseTalisman : Item, IAosItem { private static readonly int[] m_ItemIDs = { diff --git a/Projects/UOContent/Items/Weapons/BaseWeapon.cs b/Projects/UOContent/Items/Weapons/BaseWeapon.cs index 48a021857..4faff66f0 100644 --- a/Projects/UOContent/Items/Weapons/BaseWeapon.cs +++ b/Projects/UOContent/Items/Weapons/BaseWeapon.cs @@ -23,7 +23,7 @@ namespace Server.Items SlayerName Slayer2 { get; set; } } - public abstract class BaseWeapon : Item, IWeapon, IFactionItem, ICraftable, ISlayer, IDurability + public abstract class BaseWeapon : Item, IWeapon, IFactionItem, ICraftable, ISlayer, IDurability, IAosItem { private static bool _enableInstaHit; diff --git a/Projects/UOContent/Misc/AOS.cs b/Projects/UOContent/Misc/AOS.cs index e08c66c0c..381a9ea6f 100644 --- a/Projects/UOContent/Misc/AOS.cs +++ b/Projects/UOContent/Misc/AOS.cs @@ -304,6 +304,11 @@ namespace Server IncreasedKarmaLoss = 0x00800000 } + public interface IAosItem + { + public AosAttributes Attributes { get; } + } + public sealed class AosAttributes : BaseAttributes { public AosAttributes(Item owner) : base(owner)