Beispiel #1
0
    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;
        }
    }
Beispiel #2
0
    public void EndPlayerTurn()
    {
        isPlayerTurn = false;

        playerCharacterObject.ReduceBuffLifetime();

        if (OnTurnComplete != null)
        {
            OnTurnComplete.Invoke(playerCharacterObject);
        }

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