private void OnTriggerEnter(Collider other) { if (other.CompareTag("Enemy")) { hitEnemy = other.GetComponent <EnemyHitHandler>(); if (additionalMotion) { Debug.Log(motionNumber); hitEnemy.ApplyMotionEffect(motionNumber, PlayerManager.instance.Player.transform); additionalMotion = false; motionNumber = 0; } if (weap != null && weap.damageType != Weapon.WeaponDamageType.Normal) { hitEnemy.ApplyStatusEffect(weap.damageType); } hitEnemy.applyDamage(damage); AudioManager.instance.PlaySFX(hitSound); } else if (other.CompareTag("AttackableItem")) { other.GetComponent <AttackableItem>().dropItem(); AudioManager.instance.PlaySFX(hitSound); } }
void Start() { hitHandler = FindObjectOfType <EnemyHitHandler>(); PathFinder pathfinder = FindObjectOfType <PathFinder>(); var path = pathfinder.GetPath(); StartCoroutine(FollowPath(path)); }
private void explode() { Collider[] enems = Physics.OverlapSphere(trans.position, 3, mask); Collider[] destroyableWalls = Physics.OverlapSphere(trans.position, 3, wallMask); foreach (Collider enem in enems) { Vector3 dir = (enem.transform.position - trans.position).normalized; dir.y = 0; Enemy enemScript = enem.GetComponent <Enemy>(); EnemyHitHandler enemDamageHandler = enem.GetComponent <EnemyHitHandler>(); enemScript.applyForce(2, dir, .3f, true); enemDamageHandler.ApplyStatusEffect(Weapon.WeaponDamageType.Poison); } foreach (Collider wall in destroyableWalls) { wall.GetComponent <DestroyableWall>().takeDamage(); } ObjectPooling.instance.addToPool("Grenade", thrownPrefab); }