public void ResetFoe(bool hostileReset = false) { animator.SetBool("isDead", false); animator.SetBool("isPreparingAttack", false); animator.SetBool("isMoving", false); animator.SetBool("isAttacking", false); life = maxLife; morals = maxMorals; patrolPath = null; if (hostileReset) { target = playerTransform; state = State.POSITIONING; foesManager.RegisterToFightingList(this); } else { state = State.IDLE; // Check if inside a building if (patrolPathGenerator.isInOpenBuilding(transform.position)) { return; } // Try to get a patrol path patrolPath = patrolPathGenerator.GeneratePatrolPath(transform.position); // If no patrol path has been return, prepare to wander around the map if (patrolPath == null) { wanderingPoint.transform.position = patrolPathGenerator.GetRandomWalkableNode(); target = wanderingPoint.transform; pathFindingManager.RegisterToQueue(this); } else { wanderingPoint.transform.position = Vector3.zero; } } }