Beispiel #1
0
        private void walkingState()
        {
            if (isSearching)
            {
                do
                {
                    float xPos = UnityEngine.Random.Range(transform.position.x - LONGEST_RANDOM_WALK_DIRECTION, transform.position.x + LONGEST_RANDOM_WALK_DIRECTION);
                    float yPos = UnityEngine.Random.Range(transform.position.y - LONGEST_RANDOM_WALK_DIRECTION, transform.position.y + LONGEST_RANDOM_WALK_DIRECTION);
                    goalPosition = new Vector3(xPos, yPos, 0);
                    isSearching  = false;
                } while(World.Instance.IsInBounds(goalPosition));

                float dis = goalPosition.x - transform.position.x;
                transform.GetComponent <SpriteRenderer>().flipX = (dis > 0) ? true : false;
            }

            Vector3 direction = goalPosition - transform.position;

            transform.position += direction.normalized * SPEED * Time.deltaTime;

            if (Vector3.Distance(goalPosition, transform.position) <= 0.1f)
            {
                state            = TurkeyState.Idle;
                stateCounter     = 0;
                stateCounterGoal = UnityEngine.Random.Range(1, 3);
            }
        }
Beispiel #2
0
        private void hungryState()
        {
            //Find some food
            //Then switch to eating state
            if (isSearching)
            {
                plant = World.Instance.ClosestPlantToMe(transform.position);

                if (plant == null)
                {
                    state = TurkeyState.Angry;
                    Debug.Log("Turkey is Mad; time to go crazy!");
                }

                isSearching = false;
            }
            else
            {
                //Go to the food source
                goalPosition = plant.GetPosition();
                float dis = goalPosition.x - transform.position.x;
                transform.GetComponent <SpriteRenderer>().flipX = (dis > 0) ? true : false;


                Vector3 direction = goalPosition - transform.position;
                transform.position += direction.normalized * SPEED * Time.deltaTime;

                if (Vector3.Distance(goalPosition, transform.position) <= 0.25f)
                {
                    state = TurkeyState.Eating;
                }
            }
        }
Beispiel #3
0
 private void checkStats()
 {
     if (stats.Hunger < 50 && state != TurkeyState.Hungry && state != TurkeyState.Eating && state != TurkeyState.Angry)
     {
         state       = TurkeyState.Hungry;
         isSearching = true;
     }
 }
Beispiel #4
0
        private void Start()
        {
            stats            = new TurkeyStats();
            state            = TurkeyState.Idle;
            stateCounter     = 0;
            stateCounterGoal = 1;

            hungerCounter = 0;
        }
Beispiel #5
0
 private void idleState()
 {
     if (applyTime())
     {
         //TODO: Figure out best thing to do
         state        = TurkeyState.Walking;
         isSearching  = true;
         stateCounter = 0;
     }
 }