void Start() { startScale = transform.localScale; m_Agent = GetComponent <NavMeshAgent>(); m_animator = GetComponentInChildren <Animator>(); m_spriteRenderer = GetComponentInChildren <SpriteRenderer>(); m_lineRenderer = GetComponentInChildren <LineRenderer>(); m_soldierBehaviour = GetComponentInChildren <SoldierBehaviour>(); m_animator.speed = 0; queen = m_soldierBehaviour.soldierData.owner.behaviour; m_spriteRenderer.color = queen.playerColor; lineColor = queen.playerColor; var gameManager = Core.Get <GameManager>(); gameManager.onSoldierChangeState += AcquireTarget; gameManager.onSoldierDestroy += DieEffect; gameManager.onAddFoodInLair += DropFoodInLair; }
public void DispararA(SoldierBehaviour enemigo) { if (balasEnCargador > 0 && !estoyRecargando) { soldadoPortador.DecirMensaje("Disparando a " + enemigo.name + " con " + this.name); soldadoPortador.DecirMensaje("Me quedan " + balasEnCargador + " balas"); balasEnCargador -= 1; bool disparoAcierta = Random.value < precision; if (disparoAcierta) { enemigo.RecibirAtaque(danyo); } else { soldadoPortador.DecirMensaje("Jarl, he fallado"); } } else if (balasEnCargador == 0 && !estoyRecargando) { Recargar(); } }
/// <summary> /// This method is designed to find the closest danish soldier in the list of local danes and then send him into the pointer funtion /// and then call the other methods that have to do with the arrow function /// </summary> private void ClosestDane() { for (int i = 0; i < localDanes.Count; i++) { SoldierBehaviour soldier = localDanes[i].GetComponent <SoldierBehaviour>(); soldier.MyDistance = localDanes[i].transform.position - GameManager.managerWasa.Player.transform.position; } localDanes = localDanes.OrderBy(x => x.GetComponent <SoldierBehaviour>().MyDistance.z).ToList(); GameObject closestDane = localDanes[0]; // function that controls the visibility of the arrow icon shut down for float distancetoWasa = closestDane.transform.position.z - GameManager.managerWasa.Player.transform.position.z; if (distancetoWasa > -6 && distancetoWasa < 15) { DisplayArrow(closestDane); FillArrow(closestDane); } else { EraseArrow(closestDane, 0f); UiElemements[0].SetActive(false); } }