diff --git a/Projects/UOContent/Items/Weapons/Abilities/WeaponAbility.cs b/Projects/UOContent/Items/Weapons/Abilities/WeaponAbility.cs index d05a0766b..668fe3198 100644 --- a/Projects/UOContent/Items/Weapons/Abilities/WeaponAbility.cs +++ b/Projects/UOContent/Items/Weapons/Abilities/WeaponAbility.cs @@ -12,6 +12,42 @@ namespace Server.Items { public abstract class WeaponAbility { + public static WeaponAbility[] Abilities { get; } = + { + null, + new ArmorIgnore(), + new BleedAttack(), + new ConcussionBlow(), + new CrushingBlow(), + new Disarm(), + new Dismount(), + new DoubleStrike(), + new InfectiousStrike(), + new MortalStrike(), + new MovingShot(), + new ParalyzingBlow(), + new ShadowStrike(), + new WhirlwindAttack(), + + new RidingSwipe(), + new FrenziedWhirlwind(), + new Block(), + new DefenseMastery(), + new NerveStrike(), + new TalonStrike(), + new Feint(), + new DualWield(), + new DoubleShot(), + new ArmorPierce(), + null, + null, + null, + null, + null, + null, + new Disrobe() + }; + public static readonly WeaponAbility ArmorIgnore = Abilities[1]; public static readonly WeaponAbility BleedAttack = Abilities[2]; public static readonly WeaponAbility ConcussionBlow = Abilities[3]; @@ -49,42 +85,6 @@ namespace Server.Items private static readonly Dictionary m_PlayersTable = new Dictionary(); - public static WeaponAbility[] Abilities { get; } = - { - null, - new ArmorIgnore(), - new BleedAttack(), - new ConcussionBlow(), - new CrushingBlow(), - new Disarm(), - new Dismount(), - new DoubleStrike(), - new InfectiousStrike(), - new MortalStrike(), - new MovingShot(), - new ParalyzingBlow(), - new ShadowStrike(), - new WhirlwindAttack(), - - new RidingSwipe(), - new FrenziedWhirlwind(), - new Block(), - new DefenseMastery(), - new NerveStrike(), - new TalonStrike(), - new Feint(), - new DualWield(), - new DoubleShot(), - new ArmorPierce(), - null, - null, - null, - null, - null, - null, - new Disrobe() - }; - public virtual int BaseMana => 0; public virtual int AccuracyBonus => 0; diff --git a/Projects/UOContent/Spells/Base/SpellRegistry.cs b/Projects/UOContent/Spells/Base/SpellRegistry.cs index a8345029a..64b0a6834 100644 --- a/Projects/UOContent/Spells/Base/SpellRegistry.cs +++ b/Projects/UOContent/Spells/Base/SpellRegistry.cs @@ -126,7 +126,7 @@ namespace Server.Spells { return (Spell)ActivatorUtil.CreateInstance(t, m_Params); } - catch + catch (Exception e) { // ignored } @@ -137,9 +137,13 @@ namespace Server.Spells public static Spell NewSpell(string name, Mobile caster, Item scroll) { + name = name.Replace(" ", ""); + for (var i = 0; i < m_CircleNames.Length; ++i) { - var t = AssemblyHandler.FindFirstTypeForName($"Server.Spells.{m_CircleNames[i]}.{name}"); + var t = + AssemblyHandler.FindFirstTypeForName($"Server.Spells.{m_CircleNames[i]}.{name}", true) ?? + AssemblyHandler.FindFirstTypeForName($"Server.Spells.{m_CircleNames[i]}.{name}Spell", true); if (t?.IsSubclassOf(typeof(SpecialMove)) == false) {