public void SetBattleStage(EBattleStage nextStage, RythmMove move = null) { _currentBattleStage = nextStage; if (move != null) { currentMove = move; } switch (_currentBattleStage) { case EBattleStage.Intro: SetCharacterValues(); pauseController.CanPause = false; OnIntro?.Invoke(); break; case EBattleStage.PlayerTurn: SetEnemyAnimation(enemy.IdleAnimation); pauseController.CanPause = true; OnPlayerTurn?.Invoke(); break; case EBattleStage.PlayerMove: _lastToMoveIsPlayer = true; OnPlayerMove?.Invoke(); break; case EBattleStage.EnemyTurn: SetPlayerAnimation(player.IdleAnimation); pauseController.CanPause = true; OnEnemyTurn?.Invoke(); StartCoroutine(WaitToEnemyMove()); break; case EBattleStage.EnemyMove: _lastToMoveIsPlayer = false; OnEnemyMove?.Invoke(); break; case EBattleStage.DamageStep: OnDamage?.Invoke(); StartCoroutine(DelayedDamage()); break; case EBattleStage.Conclusion: pauseController.CanPause = false; OnConclusion?.Invoke(); break; } }
public void EndPlayerTurn() { isPlayerTurn = false; playerCharacterObject.ReduceBuffLifetime(); if (OnTurnComplete != null) { OnTurnComplete.Invoke(playerCharacterObject); } if (OnEnemyTurn != null) { OnEnemyTurn.Invoke(); } }