예제 #1
0
    public void NextTurn()
    {
        TBC_CanvasManager.instance.ClearSelectionButtons();
        TBC_CanvasManager.instance.descriptionText.text = "";

        TBC_GameManager.instance.SetNextEntityTurn();
        TBC_GameManager.instance.ActiveTurnEntity.startTurnEvent.Invoke();

        if (TBC_GameManager.instance.ActiveTurnEntity != null)
        {
            foreach (TBC_Attack attack in TBC_GameManager.instance.ActiveTurnEntity.attackList)
            {
                attack.cooldownCount--;
            }

            if (ActiveTurnEntity.GetType() == typeof(TBC_EnemyEntity))
            {
                TBC_Attack enemyAttack = null;

                while (enemyAttack == null)
                {
                    enemyAttack = ActiveTurnEntity.attackList[Random.Range(0, ActiveTurnEntity.attackList.Length)];

                    if (enemyAttack.cooldownCount > 0)
                    {
                        enemyAttack = null;
                    }
                }
                enemyAttack.ResetTargets();

                if (enemyAttack.maxTargets < TBC_GameManager.instance.playerEntities.Count)
                {
                    bool finishedAttack = false;
                    while (!finishedAttack)
                    {
                        finishedAttack = enemyAttack.TryAddTarget(TBC_GameManager.instance.playerEntities[Random.Range(0, TBC_GameManager.instance.playerEntities.Count)]);
                    }
                }
                else
                {
                    foreach (TBC_PlayerEntity playerEntity in TBC_GameManager.instance.playerEntities)
                    {
                        enemyAttack.TryAddTarget(playerEntity);
                    }
                }

                NextTurn();
            }
        }
    }
    public void SetNextEntityTurn()
    {
        if (playerSelectedAttack != null)
        {
            playerSelectedAttack.ResetTargets();
            playerSelectedAttack = null;
        }

        ActiveTurnEntity.spriteUI.SetTurnUI(false);
        activeTurnEntityIndex =
            activeTurnEntityIndex + 1 >= playerEntities.Count + enemyEntities.Count ?
            0 :
            activeTurnEntityIndex + 1;
        ActiveTurnEntity.spriteUI.SetTurnUI(true);
    }
    public void SetupUI(TBC_Attack attack)
    {
        selectionButtonText.text = attack.name;

        if (attack.cooldownCount > 0)
        {
            cooldownUI.SetActive(true);
            cooldownText.text            = attack.cooldownCount.ToString();
            selectionButton.interactable = false;
        }
        else
        {
            cooldownUI.SetActive(false);
            selectionButton.interactable = true;
        }

        selectAttack = attack;
    }