示例#1
0
        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);
        }