//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; } }
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(); }