65 lines
1.6 KiB
C#
65 lines
1.6 KiB
C#
using System;
|
|
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);
|
|
|
|
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(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
}
|
|
}
|
|
} |