private void ChooseEnemyToAttack() { if (crabwormGroup.Count <= 0f) { return; } isAttacking = true; float shortestDist = 0; // Choosing closest enemy for (int i = 0; i < crabwormGroup.Count; i++) { float currentDist = Vector3.Distance(crabwormGroup[i].transform.position, pCon.transform.position); if (crabwormGroup[i] == crabwormGroup[0] || currentDist < shortestDist) { shortestDist = currentDist; attackingCrabworm = crabwormGroup[i]; } } attackingCrabworm.isUnitPaused = false; attackingCrabworm.currentState = Enemy_Base.State.Hunting; StartCoroutine(AttackAndCooldown()); }
private void OnTriggerExit2D(Collider2D collision) { if (collision.gameObject.GetComponent <CrabwormLarvaController>()) { CrabwormLarvaController crabCon = collision.GetComponent <CrabwormLarvaController>(); crabwormGroup.Remove(crabCon); } else if (collision.gameObject.GetComponent <PlayerController>()) { isPlayerInZone = false; print("why"); foreach (CrabwormLarvaController waitingcrabCon in crabwormGroup) { waitingcrabCon.isUnitPaused = false; waitingcrabCon.currentState = Enemy_Base.State.Patrolling; } } }
private void OnTriggerEnter2D(Collider2D collision) { CrabwormLarvaController crabCon = collision.gameObject.GetComponent <CrabwormLarvaController>(); if (crabCon != null) { if (!crabwormGroup.Contains(crabCon) && !crabCon.isDead) { crabwormGroup.Add(crabCon); } } if (collision.gameObject.GetComponent <PlayerController>()) { print("f**k"); isPlayerInZone = true; pCon = collision.gameObject.GetComponent <PlayerController>(); } }