IEnumerator StartPlayerTurn()
    {
        state = GameState.PLAYERTURN;
        OnPlayerTurnStart?.Invoke(this, EventArgs.Empty);
        while (cardManager.GetCardsInHand().Length < 5)
        {
            yield return(StartCoroutine(cardManager.DrawToHand()));
        }
        yield return(StartCoroutine(player.RefreshMana()));

        SetWaitForPlayer(true);
        Card[] cards = hand.GetCards();
        foreach (Card card in cards)
        {
            card.GetComponentInChildren <UIHoverSize>().enabled = true;
        }
        yield return(new WaitUntil(() => !waitForPlayer));

        foreach (Card card in hand.GetCards())
        {
            card.GetComponent <UIHoverSize>().enabled = false;
        }
        OnPlayerTurnEnd?.Invoke(this, EventArgs.Empty);
        yield return(StartCoroutine(StartEnemyTurn()));
    }
    void Player_OnTurnStart(object sender, EventArgs e)
    {
        if (!ProcessEvents)
            return;

        OnPlayerTurnStart?.Invoke(sender, e);
        UpdateGUI();
    }
Exemple #3
0
    private void Update()
    {
        switch (nowState)
        {
        case BattleSceneState.BATTLE_START:
            OnBattleStart?.Invoke(this, EventArgs.Empty);
            nowState = BattleSceneState.PLAYER_TURN_START;
            OnPlayerTurnStart?.Invoke(this, EventArgs.Empty);
            break;

        case BattleSceneState.PLAYER_TURN_START:
            if (!BattleEventManager.Instance.Execute())
            {
                nowState = BattleSceneState.PLAYER_TURN_UPDATE;
            }
            break;

        case BattleSceneState.PLAYER_TURN_UPDATE:
            break;

        case BattleSceneState.PLAYER_TURN_END:
            if (!BattleEventManager.Instance.Execute())
            {
                nowState = BattleSceneState.ENEMY_TURN_START;
                OnEnemyTurnStart?.Invoke(this, EventArgs.Empty);
            }
            break;

        case BattleSceneState.ENEMY_TURN_START:
            if (!BattleEventManager.Instance.Execute())
            {
                nowState = BattleSceneState.ENEMY_TURN_UPDATE;
            }
            break;

        case BattleSceneState.ENEMY_TURN_UPDATE:
            if (!BattleEventManager.Instance.Execute())
            {
                nowState = BattleSceneState.ENEMY_TURN_END;
                OnEnemyTurnEnd?.Invoke(this, EventArgs.Empty);
            }
            break;

        case BattleSceneState.ENEMY_TURN_END:
            if (!BattleEventManager.Instance.Execute())
            {
                nowState = BattleSceneState.PLAYER_TURN_START;
                OnPlayerTurnStart?.Invoke(this, EventArgs.Empty);
            }
            break;

        case BattleSceneState.BATTLE_END:

            break;
        }
    }
Exemple #4
0
 private void StartPlayerTurn()
 {
     if (carBipTurn > 0)
     {
         carBipTurn--;
     }
     if (carBipTurn == 0)
     {
         OnBipAvailable?.Invoke();
     }
     OnPlayerTurnStart?.Invoke();
     StartCoroutine(PauseAtPlayerTurn());
 }