public void DealDamage(DamageActor damageActor) { if (onDamageDealt != null) { onDamageDealt(damageActor); } damageActor.Target.TakeDamage(damageActor); }
void Start() { damageActor = GetComponent <DamageActor> (); entities = Physics2D.OverlapCircleAll(transform.position, radius); foreach (var item in entities) { if (item.GetComponent <Health> ()) { damageActor.DealDamageThrougInvul(damage, item.gameObject, DamageActor.DamageTypes.standard); if (item.GetComponent <Rigidbody2D>()) { } } } Destroy(this.gameObject, 1); }
public override void DeductHp(float amt, GameObject actor) { DamageActor da = actor.GetComponent <DamageActor>(); if (ds.takesHitsToDestroy && ds.type == da.type) { hitsToDestroy--; if (hitsToDestroy <= 0) { EventOnHealthDepleted.Invoke(); } return; } if (!ds.takesHitsToDestroy) { base.DeductHp(amt, actor); } }
public void TakeDamage(DamageActor damageActor) { if (CurrentHp - damageActor.DamageAmount < 0) { if (onOverkillDamageTaken != null) { onOverkillDamageTaken(damageActor.DamageAmount - CurrentHp, damageActor); } this._currentHp = 0; } else { this._currentHp = this._currentHp - damageActor.DamageAmount; } if (onDamageTaken != null) { onDamageTaken(damageActor); } }