예제 #1
0
    public static void Show(PlayerBoardObject boardObject)
    {
        Open();

        Instance._healthText.text  = boardObject.GetComponent <BoardHealth>().CurrentHealth.ToString();
        Instance._staminaText.text = boardObject.GetComponent <BoardStamina>().CurrentStamina.ToString();
    }
예제 #2
0
    private IEnumerator PlayLevelRoutine()
    {
        _isGamePlaying = true;
        yield return(new WaitForSeconds(_delayTime));

        _cursorManager.gameObject.SetActive(true);

        if (PlayLevelEvent != null)
        {
            PlayLevelEvent.Invoke();
        }

        _player.CanReceiveCommand = true;
        while (!_isGameOver)
        {
            if (_turnChanged)
            {
                _isPlayerTurn = !_isPlayerTurn;
                _turnChanged  = false;
                if (_isPlayerTurn)
                {
                    EventManager.Instance.TriggerEvent(new Events.PlayerTurnEvent());
                }
                else
                {
                    EventManager.Instance.TriggerEvent(new Events.EnemyTurnEvent());
                }
            }

            //check for game over condition
            //win
            //reach the end
            if (_levelFinished)
            {
                break;
            }

            //lose
            //player dies
            if (!_player.GetComponent <BoardHealth>().Alive)
            {
                break;
            }

            //_isGameOver = true
            yield return(null);
        }

        _isGamePlaying = false;
        _isGameOver    = false;
    }