public override void MutateDamageEvent(object sender, ref Damage.DamageEventArgs args) { foreach (var tm in TypeValues) { if (args.DamageType == tm.DamageType) { args.DamageValue *= tm.Value; } } }
/// <summary> /// How will we handle the damage being dealt to us? /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void ReactToDamage(object sender, Damage.DamageEventArgs args) { //Debug.Log("Damaged with severity: " + args.DamageValue); //when struck, speed up the animation of the dragon by X amount for some seconds Audio.PlayOneShot(hurtRoar); if (_nodesKilled == 1 && startedRot) { StartCoroutine(CoRotateUp(rotTime)); } }
protected abstract void DoOnDealDamage(object sender, Damage.DamageEventArgs args);
protected override void DoOnTakeDamage(object sender, Damage.DamageEventArgs damageEventArgs) { // Nothing }
private void ModifyDamage(object sender, ref Damage.DamageEventArgs args) { args.DamageValue = (args.DamageValue * multiplier) + flatModifier; }
protected override void DoOnDealDamage(object sender, Damage.DamageEventArgs e) { Destroy(gameObject, DestroyDelay); }
protected override void DoOnTakeDamage(object sender, Damage.DamageEventArgs damageEventArgs) { //throw new System.NotImplementedException(); }
protected abstract void OnDealDamageEvent(object sender, Damage.DamageEventArgs e);