public override AIState doTransition( ) { if (health && playerHealth) { if (health.CurrentHealth <= 0.0f) { return(AIState.death); } if (playerHealth.CurrentHealth <= 0.0f) { return(AIState.win); } if (health.CurrentHealth < nextPhaseHealthLevel && health.CurrentHealth > 0.0f) { anim.swimAnim(); movement.EndOnTopRow(); return(AIState.phase3); } else { return(AIState.phase2); } } else { health = this.gameObject.GetComponent <Health>(); GameObject obj = GameObject.FindGameObjectWithTag("Player"); if (obj) { playerHealth = obj.GetComponent <Health>(); } return(AIState.phase2); // return to self } }