Example #1
0
 // Wait State
 private void Wait()
 {
     if (TimeLeft())
     {
         m_State = StatesWolf.Idle;
     }
 }
Example #2
0
    // Decides the next state.
    private void DecideMovement()
    {
        float percentageToWait = Random.Range(0.0f, 100.0f);

        if (percentageToWait < m_PercentageToWait)
        {
            m_State = StatesWolf.Wait;
        }
        else
        {
            if (m_Wolf.Health < m_MinHealthToRun)
            {
                float percentageToRun = Random.Range(0.0f, 100.0f);

                if (percentageToRun < m_PercentageToRunAway && GameManager.m_Instance.PigList.Count > 0)
                {
                    m_State      = StatesWolf.AttackPig;
                    ObjectiveDir = GenerateDirection(GameManager.m_Instance.PigList[Random.Range(0, GameManager.m_Instance.PigList.Count)]);
                }
                else
                {
                    m_State      = StatesWolf.RunAway;
                    ObjectiveDir = GenerateDirection(GameManager.m_Instance.Chicken) * -1.0f;
                }
            }
            else
            {
                m_State      = StatesWolf.AttackChicken;
                ObjectiveDir = GenerateDirection(GameManager.m_Instance.Chicken);
            }

            IsMovingNormal = true;
        }
    }
Example #3
0
 protected override void Start()
 {
     base.Start();
     LastPosition = transform.position;
     m_State      = StatesWolf.Idle;
     m_TimeLeft   = m_Time;
 }
Example #4
0
 // Attack chicken state.
 private void AttackChicken()
 {
     if (!IsMovingNormal)
     {
         m_State = StatesWolf.Idle;
     }
     else
     {
         Movement();
     }
 }
Example #5
0
 // Run away state.
 private void RunAway()
 {
     if (!IsMovingNormal)
     {
         m_State = StatesWolf.Idle;
     }
     else
     {
         Movement();
     }
 }