Example #1
0
    public void ConfirmSoldiers()
    {
        // Executa as movimentações de soldados supondo que o número é válido
        switch (currentSourceArrow.GetTipo())
        {
        case ArrowType.Battle:
        case ArrowType.Arrow:
            currentSourceArrow.Source.SetSoldiers(SoldierType.ToGetOut, numberOfSoldiers);
            currentSourceArrow.SetSoldiersToBeTransfered(numberOfSoldiers);
            currentSourceArrow.UpdateArrowText();
            break;

        case ArrowType.Abort:
            currentOpositeArrow.SetSoldiersToBeTransfered(currentOpositeArrow.GetSoldiersToBeTransfered() - numberOfSoldiers);
            currentOpositeArrow.Source.RemoveSoldiers(SoldierType.ToGetOut, numberOfSoldiers);
            currentOpositeArrow.UpdateArrowText();
            break;
        }

        canvasGroup.DOFade(0, fadeDuration);
        canvasGroup.interactable   = false;
        canvasGroup.blocksRaycasts = false;
        currentSourceArrow.Source.UpdateSoldierInfo();
        currentOpositeArrow.Source.UpdateSoldierInfo();
        currentSourceArrow  = null;
        currentOpositeArrow = null;
        numberOfSoldiers    = 0;
        UpdateText();
        isActivaded = false;
    }
Example #2
0
    public void OnClick()
    {
        if (OpositeArrow == null)
        {
            OpositeArrow = Destination.ArrowsComingOut.Find(x => x.Destination == this.Source);
        }

        SendTroopsBox.Instance.Activate(this, OpositeArrow);

        FMODPlayer.Instance.Play("arrow");

        // Cancelar transferência de soldados
        //if (OpositeArrow.SoldiersToBeTransfered > 0 && tipo != ArrowType.Battle)
        //{
        //OpositeArrow.SoldiersToBeTransfered--;
        //OpositeArrow.Source.RemoveSoldiers(SoldierType.ToGetOut, 1);
        //OpositeArrow.UpdateArrowText();
        //}

        // Transferir soldados
        //else if (Source.GetSoldiers(SoldierType.ToGetOut) < Source.GetSoldiers(SoldierType.InProperty)
        //          && tipo != ArrowType.Abort)
        //{
        //this.Source.AddSoldiers(SoldierType.ToGetOut, 1);
        //this.SoldiersToBeTransfered++;
        //this.UpdateArrowText();
        //}

        //Source.UpdateSoldierInfo();
        //Destination.UpdateSoldierInfo();
    }
Example #3
0
 public void CancelOperation()
 {
     canvasGroup.DOFade(0, fadeDuration);
     canvasGroup.interactable   = false;
     canvasGroup.blocksRaycasts = false;
     numberOfSoldiers           = 0;
     UpdateText();
     currentSourceArrow  = null;
     currentOpositeArrow = null;
     isActivaded         = false;
 }
Example #4
0
 private void Start()
 {
     canvasGroup                = GetComponent <CanvasGroup>();
     canvasGroup.alpha          = 0;
     canvasGroup.interactable   = false;
     canvasGroup.blocksRaycasts = false;
     numberOfSoldiers           = 0;
     currentSourceArrow         = null;
     currentOpositeArrow        = null;
     isActivaded                = false;
 }
Example #5
0
 public void Activate(BattleArrowController sourceArrow, BattleArrowController opositeArrow)
 {
     canvasGroup.DOFade(1, fadeDuration);
     canvasGroup.interactable   = true;
     canvasGroup.blocksRaycasts = true;
     currentSourceArrow         = sourceArrow;
     currentOpositeArrow        = opositeArrow;
     isActivaded = true;
     if (sourceArrow.GetSoldiersToBeTransfered() > 0)
     {
         numberOfSoldiers = sourceArrow.GetSoldiersToBeTransfered();
         UpdateText();
     }
 }
Example #6
0
    public void UpdateSoldierButton(int callNumber = 0)
    {
        CreateSoldierButton();

        if (OpositeArrow == null)
        {
            OpositeArrow = Destination.ArrowsComingOut.Find(x => x.Destination == this.Source);
        }
        if (callNumber > 0)
        {
            return;                 //AVOID STACKOVERFLOW
        }
        OpositeArrow.UpdateSoldierButton(1);
    }
Example #7
0
    private void Start()
    {
        TimerPanel.OnDayEnd      += OnDayEnd;
        TimerPanel.OnAfterDayEnd += OnAfterDayEnd;
        TimerPanel.OnBattleEnded += OnBattleEnd;

        sectionManager = GameManager.Instance.CanvasHUD.GetComponent <SectionManager>();
        EditButtons    = GameManager.Instance.EditButtons;

        if (dominated == false)
        {
            soldiers = Random.Range(10, 20);
        }

        NumSoldier = Instantiate(GameManager.Instance.NumSoldier, GameManager.Instance.CanvasBattle.transform);
        NumSoldier.GetComponent <Text>().text = soldiers.ToString();
        NumSoldier.GetComponent <NumSoldiersTextController>().Owner = this.transform;
        NumSoldier.transform.position = this.transform.position;

        foreach (Property neighbor in Neighbors)
        {
            GameObject NewArrow;
            NewArrow = Instantiate(GameManager.Instance.ArrowPrefab, EditButtons.transform);

            BattleArrowController newBAC = NewArrow.GetComponent <BattleArrowController>();
            newBAC.SetSourceAndDestination(this, destination: neighbor);
            newBAC.CreateSoldierButton();
            newBAC.NumSoldierFather = NumSoldier;

            newBAC.SetPosition();

            ArrowsComingOut.Add(newBAC);
            neighbor.ArrowsComingIn.Add(newBAC);
        }

        UpdateSoldierInfo();

        originalKingdom = kingdom;
    }