Beispiel #1
0
    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);
        }
    }