示例#1
0
文件: Llamas.cs 项目: Adrachn/Random
    //Target from original player or building array
    protected virtual void Targetting(LLAMATYPE llamaType)
    {
        inFront = false;
        switch (llamaType)
        {
        case LLAMATYPE.PLAYERLLAMA:
            currentLlamaTarget = OverallManager.Instance.livePlayers[Random.Range(0, OverallManager.Instance.livePlayers.Count)];
            break;

        case LLAMATYPE.BUILDINGLLAMA:
            NextBuilding();
            agent.SetDestination(currentLlamaTarget.transform.position);
            break;
        }
    }
示例#2
0
文件: Llamas.cs 项目: Adrachn/Random
    protected virtual void Following(LLAMATYPE llamaType)
    {
        anim.SetBool("ATTACKING", false);
        anim.SetBool("FOLLOWING", true);

        if (anim.GetBool("DIZZY") == false) //stupid charge llamas Fix
        {
            UnFreezeAgent();
        }

        switch (llamaType)
        {
        case LLAMATYPE.PLAYERLLAMA:
            if (!agent.pathPending)
            {
                agent.SetDestination(currentLlamaTarget.transform.position);
            }
            if (currentLlamaTarget == null || currentLlamaTarget.GetComponent <DamageableObjects>().IsKnockedDown || currentLlamaTarget.activeSelf == false)
            {
                chaseTimer = false;
                stateSwap  = STATES.TARGETTING;
            }
            break;

        case LLAMATYPE.BUILDINGLLAMA:
            if (currentLlamaTarget.layer == LayerMask.NameToLayer("Player") && !agent.pathPending)
            {
                agent.SetDestination(currentLlamaTarget.transform.position);
            }
            if (currentLlamaTarget.GetComponent <DamageableObjects>().IsKnockedDown || currentLlamaTarget.activeSelf == false)
            {
                chaseTimer = false;
                stateSwap  = STATES.TARGETTING;
            }
            break;

        default:
            break;
        }

        if (agent.remainingDistance <= agent.stoppingDistance)
        {
            InStoppingDistance();
        }

        ChaseTimer();
    }