Пример #1
0
    private void OnTriggerEnter(Collider other)
    {
        //Trigger the attack
        //Debug.Log("detected " + other.transform.root.name);

        if (freezeDamage)
        {
            return;
        }

        if (other.isTrigger)
        {
            return;
        }

        if (other.transform.root.tag == "Player" || friendlyFire)
        {
            LivingThing l = other.GetComponentInParent <LivingThing>();
            if (l != null)
            {
                l.takeDamage(damage);
                //Debug.Log("hit " + other.transform.root.name);
            }
        }
    }
Пример #2
0
    public bool dealDamage(LivingThing target, int damageAmount)
    {
        if (target != null)
        {
            int finalDamage = (int)(damageAmount * Mathf.Pow(levelDamageCoef, level - 1) * manager.bonusDamageCoef) + manager.bonusDamage;

            totalDamage += Mathf.Max(0, Mathf.Min(finalDamage, target.getCurrentLife()));
            target.takeDamage(finalDamage);
            if (target.getCurrentLife() <= 0)
            {
                totalKills++;
            }
        }

        return(target != null);
    }