ModernUO/Projects/Scripts/Items/Weapons/BaseMeleeWeapon.cs
2019-12-30 12:16:35 -08:00

64 lines
No EOL
1.4 KiB
C#

using Server.Spells.Spellweaving;
namespace Server.Items
{
public abstract class BaseMeleeWeapon : BaseWeapon
{
public BaseMeleeWeapon(int itemID) : base(itemID)
{
}
public BaseMeleeWeapon(Serial serial) : base(serial)
{
}
public override int AbsorbDamage(Mobile attacker, Mobile defender, int damage)
{
damage = base.AbsorbDamage(attacker, defender, damage);
AttuneWeaponSpell.TryAbsorb(defender, ref damage);
if (Core.AOS)
return damage;
int absorb = defender.MeleeDamageAbsorb;
if (absorb > 0)
{
if (absorb > damage)
{
int react = damage / 5;
if (react <= 0)
react = 1;
defender.MeleeDamageAbsorb -= damage;
damage = 0;
attacker.Damage(react, defender);
attacker.PlaySound(0x1F1);
attacker.FixedEffect(0x374A, 10, 16);
}
else
{
defender.MeleeDamageAbsorb = 0;
defender.SendLocalizedMessage(1005556); // Your reactive armor spell has been nullified.
DefensiveSpell.Nullify(defender);
}
}
return damage;
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
}
}
}