//
// Created by sebastian on 05.08.26.
//

#ifndef COLORRACE_PRESENTATIONGAMESTATE_H
#define COLORRACE_PRESENTATIONGAMESTATE_H
#include "LudoGameState.h"
#include "LudoGameMode.h"

namespace ludo {
    class PresentationGameState {
    public:
        explicit PresentationGameState(const LudoGameMode& gameMode, const LudoGameState& originalGameState);
        void commitGameState(engine::PlayerID currentPlayer, ludo::PlayerColor color, int diceValue, bool enableDiceRoll);

        [[nodiscard]] engine::PlayerID getCurrentPlayer() const { return m_currentPlayer; }
        [[nodiscard]] int getDiceValue() const { return m_diceValue; }
        [[nodiscard]] bool isDiceRollEnabled() const { return m_enableDiceRoll; }
        [[nodiscard]] ludo::PlayerColor getCurrentPlayerColor() const { return m_currentPlayerColor; }
    private:
        engine::PlayerID m_currentPlayer;
        ludo::PlayerColor m_currentPlayerColor;
        int m_diceValue;
        bool m_enableDiceRoll;
    };
}


#endif //COLORRACE_PRESENTATIONGAMESTATE_H
