Exemple #1
0
        private void GetClosestThreat()
        {
            float closest          = -1;
            var   previousTarget   = m_target;
            bool  isNewTargetFound = false;

            for (int i = 0; i < m_threatList.Count; i++)
            {
                float currentDist = StaticUtil.FastDistance(this.transform.position, m_threatList[i].transform.position);
                if (currentDist > closest)
                {
                    closest = currentDist;
                    if (m_target != m_threatList[i] && !m_threatList[i].isDead)
                    {
                        m_target = m_threatList[i];

                        if (m_target != previousTarget)
                        {
                            m_attackRangeModifier = m_target.GetComponent <AgentAttackRangeModifier>();
                        }

                        isNewTargetFound = true;
                    }
                }
            }

            if (m_target.isDead && !isNewTargetFound)
            {
                m_target = m_treeOfLife;
            }
        }
Exemple #2
0
        private void StartChase()
        {
            GetClosestThreat();

            if (m_target)
            {
                m_mood = Mood.Chase;

                m_attackRangeModifier = m_target.GetComponent <AgentAttackRangeModifier>();
            }
        }