/// <summary> /// Handle imposed damage /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="args"> An DamageEventArgs that contains damage event data.</param> public void RaiseDamage(object sender, DamageEventArgs args) { if (Damage != null) { Damage(sender, args); } }
/// <summary> /// Handle imposed damage /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="args"> An DamageEventArgs that contains damage event data.</param> protected virtual void Events_Damage(object sender, DamageEventArgs args) { if (Damage && Health != null) { Health.RaiseDamage(sender, args); } }
/// <summary> /// Handle imposed damage /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="args"> An DamageEventArgs that contains damage event data.</param> protected virtual void Events_Damage(object sender, DamageEventArgs args) { if (IsDead || _CurrentHealth <= 0) { return; } if (SingleDamageTag) { if (LastCausedDamageTag != string.Empty) { SingleDamageTag = LastCausedDamageTag == args.Tag; } } LastCausedDamage = sender; LastCausedDamageTag = args.Tag; LastDamage = args.Damage; LastDamageType = args.DamageType; // Take no damage if invincible, dead, or if the damage is zero if (Invincible) { return; } if (args.Damage <= 0) { return; } // Decrease health by damage and send damage signals CurrentHealth -= args.Damage; _RegenerateDelayTW.Begin(RegenerateDelay); }