public void AppliquerDegatsMagiques(Mobile def, double dmg) { def = ProtectionTechnique.GetOnHitEffect(def); double reducedDmg = Reduction(dmg, def.MagicResistance); MagicReflectSpell.GetOnHitEffect(def, ref reducedDmg); DurabilityHandler.OnMagicDamageReceive(def); def.Damage((int)reducedDmg); }
public virtual void OnHit(Mobile atk, Mobile def) { AttaqueAnimation(atk); DegatsAnimation(def); DurabilityHandler.OnPhysAttack(atk); DurabilityHandler.OnPhysDamageReceive(atk, def); CheckEquitation(def, EquitationType.BeingAttacked); atk.PlaySound(Weapon(atk).GetHitAttackSound(atk, def)); def.PlaySound(Weapon(def).GetHitDefendSound(atk, def)); double basedmg = (atk.Weapon as BaseWeapon).MinDamage + (Utility.RandomDouble() * ((atk.Weapon as BaseWeapon).MaxDamage - (atk.Weapon as BaseWeapon).MinDamage)); double degats = Degats(basedmg, atk, def); Assassinat.Instance.OnHit(atk, def, ref degats); if (DefStrategy(def).Parer(def)) { Effects.SendTargetEffect(def, 0x37B9, 10, 16); def.Mana -= ParerCoutMana; degats = 0; } else if (Critique(atk) && atk.Mana > CritiqueManaCost(basedmg)) { degats = CritiqueDegats(atk, degats); atk.Mana -= CritiqueManaCost(basedmg); atk.SendMessage("Vous effectuez un coup critique."); def.SendMessage("Vous recevez un coup critique."); } AppliquerPoison(atk, def); degats = Spell.OnHitEffects(atk, def, degats); atk.Stam -= (int)(basedmg * 0.60); def.Damage((int)degats, atk); atk.RevealingAction(); def.RevealingAction(); }