Ejemplo n.º 1
0
 public SecurityAI_Control(int?p_num, AgentManager manager) : base(p_num)
 {
     movement_timer = new global::Timer(1, true);
     heal_timer     = new Timer(GLOBAL_VALUES.SECURITY_HEAL_DELAY, true);
     m_Path_Manager = GameObject.FindGameObjectWithTag(GLOBAL_VALUES.TAG_AI_MANAGER).GetComponent <Pathing_Manager>();
     m_Manager      = manager;
     m_ItemVision   = m_Manager.Get_Object().transform.Find("Item_Vision").GetComponent <SecurityItemVision>();
     m_PickupBox    = m_Manager.Get_Object().GetComponentInChildren <PickupBox>();
     m_State        = Security_State.Patrol;
     m_Alert_Object = m_Manager.Get_Object().transform.Find("Security_Alert").gameObject;
     m_ChaseEffect  = m_Manager.Get_Object().transform.Find("Angry").gameObject.GetComponent <ParticleSystem>();
     m_Alert_Object.SetActive(false);
 }
Ejemplo n.º 2
0
    private void Set_State(Security_State new_state)
    {
        Leave_State();
        m_State = new_state;
        switch (m_State)
        {
        // code transitions out of current state
        case Security_State.Patrol:
        {
            m_Enemy_Agent    = null;
            m_Enemy_Position = null;
            m_Alert_Object.SetActive(false);
            m_ChaseEffect.Stop();
            break;
        }

        case Security_State.Catch:
        {
            m_Enemy_Agent    = null;
            m_Enemy_Position = null;
            m_Alert_Object.SetActive(false);
            m_ChaseEffect.Stop();
            break;
        }

        case Security_State.Chase:
        {
            m_Alert_Object.SetActive(true);
            m_Alert_Object.transform.Find("Security_Alert_Background").GetComponent <SpriteRenderer>().color = GLOBAL_VALUES.COLOR_NUMBERS[m_Enemy_Agent.Get_Color()];
            m_ChaseEffect.Play();
            break;
        }

        case Security_State.Attack:
        {
            m_Alert_Object.SetActive(true);
            m_Alert_Object.transform.Find("Security_Alert_Background").GetComponent <SpriteRenderer>().color = GLOBAL_VALUES.COLOR_NUMBERS[m_Enemy_Agent.Get_Color()];
            break;
        }
        }
    }