public void NewTurn() { foreach (AI_Follower_Script af in allList) { af.NewTurn(); } aiScript.aiEntity.GetComponent <AI_Follower_Script>().weaponRange.SetActive(false); aiScript.aiEntity = GetNextUnit().gameObject; if (currentTeam == 0) { CheckVisibleEnemies(); aiScript.DistanceTemplate(); aiScript.cameraTrolley.transform.position = aiScript.aiEntity.transform.position; aiScript.aiEntity.GetComponent <AI_Follower_Script>().weaponRange.SetActive(true); } else { aiScript.behaviourScript.TakeAction(aiScript.aiEntity.GetComponent <AI_Follower_Script>()); } }
// Update is called once per frame void Update() { if (currentHealth < maxHealth) { healthBar.SetActive(true); } if (currentHealth > maxHealth) { currentHealth = maxHealth; } if (targetChunk != null) { if (currentChunk != endChunk) { if (this.transform.position.x <= targetChunk.positionX + 0.1f && this.transform.position.x > targetChunk.positionX - 0.1f && this.transform.position.z <= targetChunk.positionZ + 0.1f && this.transform.position.z > targetChunk.positionZ - 0.1f) { // Change target chunk to next chunk in path list int currentIndex = path.IndexOf(targetChunk); if (currentIndex + 1 < path.Count) { targetChunk = path[currentIndex + 1]; } } else if (this.transform.position.x <= targetChunk.positionX + 0.1f && this.transform.position.x > targetChunk.positionX - 0.1f) { // Move towards z centre of target chunk transform.position = Vector3.MoveTowards(this.transform.position, targetChunk.transform.position, speed * Time.deltaTime); Vector3 direction = (targetChunk.transform.position - transform.position).normalized; Quaternion lookRotation = Quaternion.LookRotation(direction); transform.rotation = Quaternion.Slerp(transform.rotation, lookRotation, speed * Time.deltaTime); } else if (this.transform.position.z <= targetChunk.positionZ + 0.1f && this.transform.position.z > targetChunk.positionZ - 0.1f) { // Move towards x centre of target chunk transform.position = Vector3.MoveTowards(this.transform.position, targetChunk.transform.position, speed * Time.deltaTime); Vector3 direction = (targetChunk.transform.position - transform.position).normalized; Quaternion lookRotation = Quaternion.LookRotation(direction); transform.rotation = Quaternion.Slerp(transform.rotation, lookRotation, speed * Time.deltaTime); } else { // Move towards centre of target chunk transform.position = Vector3.MoveTowards(this.transform.position, targetChunk.transform.position, speed * Time.deltaTime); Vector3 direction = (targetChunk.transform.position - transform.position).normalized; Quaternion lookRotation = Quaternion.LookRotation(direction); transform.rotation = Quaternion.Slerp(transform.rotation, lookRotation, speed * Time.deltaTime); } } else if (this.transform.position.x != endChunk.positionX || this.transform.position.z != endChunk.positionZ) { //Move towards endChunk centre transform.position = Vector3.MoveTowards(this.transform.position, targetChunk.transform.position, speed * Time.deltaTime); Vector3 direction = (targetChunk.transform.position - transform.position).normalized; Quaternion lookRotation = Quaternion.LookRotation(direction); transform.rotation = Quaternion.Slerp(transform.rotation, lookRotation, speed * Time.deltaTime); } //Do Nothing - turn off calculations? else { targetChunk = null; if (animManager.anim.GetBool("Running") == true) { animManager.Run(false); GetComponent <AudioSource>().Stop(); } if (actions > 0 && turnScript.currentTeam == 0) { aiScript.DistanceTemplate(); turnScript.CheckVisibleEnemies(); } else if (actions > 0 && turnScript.currentTeam == 1) { aiScript.behaviourScript.TakeAction(aiScript.aiEntity.GetComponent <AI_Follower_Script>()); } else if (GetActions() == 0) { turnScript.currentTeam = team; aiScript.aiEntity.GetComponent <AI_Follower_Script>().weaponRange.SetActive(false); aiScript.aiEntity = turnScript.GetNextUnit().gameObject; if (turnScript.currentTeam == 0) { turnScript.CheckVisibleEnemies(); aiScript.DistanceTemplate(); turnScript.aiScript.cameraTrolley.transform.position = turnScript.aiScript.aiEntity.transform.position; aiScript.aiEntity.GetComponent <AI_Follower_Script>().weaponRange.SetActive(true); } else { aiScript.behaviourScript.TakeAction(aiScript.aiEntity.GetComponent <AI_Follower_Script>()); } } } } }