/// <summary>Strikes the target</summary> public void DoStrike() { if (this.Damage > 0) { this.ResistPct = DamageAction.CalcResistPrc(this.Victim.Asda2Defence, this.Damage, 0.0f); if ((double)this.ResistPct > 95.0) { this.ResistPct = 95f; } if ((double)this.ResistPct < 0.0) { this.ResistPct = 0.0f; } ++this.Victim.DeathPrevention; ++this.Attacker.DeathPrevention; try { this.AddDamageMods(); this.Victim.OnDefend(this); this.Attacker.OnAttack(this); this.Resisted = MathUtil.RoundInt((float)((double)this.ResistPct * (double)this.Damage / 100.0)); this.Victim.DoRawDamage((IDamageAction)this); } finally { --this.Victim.DeathPrevention; --this.Attacker.DeathPrevention; } } if (this.SpellEffect == null) { Asda2CombatHandler.SendAttackerStateUpdate(this); } this.TriggerProcOnStrike(); }