Example #1
0
 public void DealDamage(DamageActor damageActor)
 {
     if (onDamageDealt != null)
     {
         onDamageDealt(damageActor);
     }
     damageActor.Target.TakeDamage(damageActor);
 }
Example #2
0
    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);
        }
    }
Example #4
0
    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);
        }
    }