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); } } }
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); }