void Update()
    {
        if (agentComponent.IsDead())
        {
            if (bannerCarrier)
            {
                banner.SetActiveRecursively(false);
            }
            return;
        }

        UpdateAction();

        if (agentComponent.IsFighting() == false)
        {
            frameCnt++;
            UpdateAttractor();

            // if (affectComponent.emotion[(int)EType.Anger] > 0.6f)
            //   Instantiate(UnityEngine.Resources.Load("Explosion"), transform.position, new Quaternion());

            foreach (GameObject c in agentComponent.collidingAgents)
            {
                if (agentComponent.IsGoodToFight(c))
                {
                    agentComponent.StartFight(c);
                    c.GetComponent <AgentComponent>().StartFight(this.gameObject);
                    frameCnt = 0;
                    break;
                }
            }
        }
    }
Beispiel #2
0
    void LateUpdate()
    {
        if (agentComponent.IsFighting() == false)
        {
            UpdateAttractor();
        }
        else
        {
            if (currentObj != null)
            {
                currentObj.gameObject.SetActiveRecursively(false);
            }
        }

        //Fight with disapproved agents
        //Disapproved agents are the ones who achieve my desired object before me
        foreach (GameObject c in agentComponent.collidingAgents)
        {
            if (c.GetComponent <AgentComponent>().role == (int)RoleName.Shopper && agentComponent.IsGoodToFight(c))
            {
                agentComponent.StartFight(c);
                c.GetComponent <AgentComponent>().StartFight(this.gameObject);
            }
        }

        UpdateAction();
    }