public static void CheckHit(Mobile attacker, Mobile defender) { BoneBreakerContext context = GetContext <BoneBreakerContext>(attacker, defender); if (IsImmune(defender) || context != null) { attacker.SendLocalizedMessage(1157316); // Your target is currently immune to bone breaking! } else if (20 > Utility.Random(100)) { AddEffects(new BoneBreakerContext(attacker, defender, null)); defender.SendLocalizedMessage(1157317); // The attack shatters your bones! BuffInfo.AddBuff(defender, new BuffInfo(BuffIcon.BoneBreaker, 1157318, 1157363)); BuffInfo.AddBuff(defender, new BuffInfo(BuffIcon.BoneBreakerImmune, 1157318, 1157364, _EffectsDuration + _ImmunityDuration, defender)); defender.PlaySound(0x204); defender.FixedEffect(0x376A, 9, 32); defender.FixedEffect(0x3779, 10, 20, 1365, 0); } else if (attacker.Skills[SkillName.Tactics].Value >= 60.0) { int mana = (int)(30.0 * (AosAttributes.GetValue(attacker, AosAttribute.LowerManaCost) / 100.0)); if (attacker.Mana >= mana) { attacker.Mana -= mana; AOS.Damage(defender, attacker, 100, 100, 0, 0, 0, 0); defender.SendLocalizedMessage(1157317); // The attack shatters your bones! } } }
public static int CheckHit(Mobile attacker, Mobile defender) { int mana = (int)(30.0 * ((double)(AosAttributes.GetValue(attacker, AosAttribute.LowerManaCost) + BaseArmor.GetInherentLowerManaCost(attacker)) / 100.0)); int damage = 0; if (attacker.Mana >= mana) { attacker.Mana -= mana; damage += 50; defender.SendLocalizedMessage(1157317); // The attack shatters your bones! } if (IsImmune(defender)) { attacker.SendLocalizedMessage(1157316); // Your target is currently immune to bone breaking! return(damage); } if (20 > Utility.Random(100)) { BoneBreakerContext context = PropertyEffect.GetContext <BoneBreakerContext>(attacker, defender, EffectsType.BoneBreaker); if (context == null) { new BoneBreakerContext(attacker, defender, null); defender.SendLocalizedMessage(1157363); // Your bones are broken! Stamina drain over time! defender.PlaySound(0x204); defender.FixedEffect(0x376A, 9, 32); defender.FixedEffect(0x3779, 10, 20, 1365, 0); } } return(damage); }