protected override void OnDamage(Mobile m) { base.OnDamage(m); var dmg = Utility.Random(2, 3); if (m is PlayerMobile) { dmg = (int)BalmOfProtection.HandleDamage((PlayerMobile)m, dmg); } AOS.Damage(m, dmg, 0, 0, 100, 0, 0); }
public virtual void Damage(Mobile m) { if (!m.Alive) { StopTimer(m); } if (m_Corrosive) { for (int i = 0; i < m.Items.Count; i++) { IDurability item = m.Items[i] as IDurability; if (item != null && Utility.RandomDouble() < 0.25) { if (item.HitPoints > 10) { item.HitPoints -= 10; } else { item.HitPoints -= 1; } } } } else { int dmg = m_Damage; if (m is PlayerMobile) { PlayerMobile pm = m as PlayerMobile; dmg = (int)BalmOfProtection.HandleDamage(pm, dmg); AOS.Damage(m, dmg, 0, 0, 0, 100, 0); } else { AOS.Damage(m, dmg, 0, 0, 0, 100, 0); } } }
public virtual void Damage(Mobile m) { if (!m.Alive || m.IsDeadBondedPet) { StopTimer(m); } if (m_Corrosive) { // TODO /*for ( int i = 0; i < m.Items.Count; i ++ ) * { * IDurability item = m.Items[ i ] as IDurability; * * if ( item != null && Utility.RandomDouble() < 0.25 ) * { * if ( item.HitPoints > 10 ) * item.HitPoints -= 10; * else * item.HitPoints -= 1; * } * }*/ } else { int toDamage = 40; if (BalmOfProtection.UnderEffect(m)) { double scale = Utility.RandomMinMax(50, 100) / 100.0; toDamage = (int)(toDamage * scale); } AOS.Damage(m, toDamage, 0, 0, 0, 100, 0); } }