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(); }
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; } }
private void StartPlayerTurn() { if (carBipTurn > 0) { carBipTurn--; } if (carBipTurn == 0) { OnBipAvailable?.Invoke(); } OnPlayerTurnStart?.Invoke(); StartCoroutine(PauseAtPlayerTurn()); }