private AIState ChooseANewStateFromExploreState() { AIState nextState = AIState.None; nextState = HasBeenInjuredRelatedStateCheck(); if (nextState == AIState.None) { if (NeedToEscapeClosingDeathCircle()) { nextState = AIState.DeathCircle; } else if (brain.ExistVisibleOpponent()) { if (!brain.HasPrimaryWeaponEquipped) { nextState = AIState.Flee; } else if (brain.ExistShootableOpponent()) { nextState = AIState.Combat; } else { nextState = AIState.Hunt; } } else if (brain.FoundItemInPerceptionRange()) { nextState = AIState.Loot; } else { nextState = AIState.Explore; } } return(nextState); }