Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
PieceJailPlayback.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "PieceJailPlan.hpp"
5#include "RuleTypes.hpp"
7
8#include <cstdint>
9#include <expected>
10#include <optional>
11#include <string>
12
13namespace monopoly::pieces
14{
15 inline constexpr std::uint16_t JailPlaybackPriority = 77;
16
18 {
19 bool completed{};
20 bool playSiren{};
21 std::optional<BoardCameraView> camera;
22 };
23
25 {
26 public:
27 [[nodiscard]] std::expected<void, std::string> begin(
28 const PieceMoveSpecialRequest& request,
29 std::uint64_t tick, bool animationsEnabled,
30 std::uint8_t randomBit = 0);
31 [[nodiscard]] std::expected<PieceJailPlaybackUpdate, std::string> tick(
34
35 [[nodiscard]] bool active() const noexcept { return state_ != 0; }
36 [[nodiscard]] std::uint8_t state() const noexcept { return state_; }
37 [[nodiscard]] std::optional<rules::PlayerNumber> playerInPaddywagon() const noexcept
38 { return playerInPaddywagon_; }
40 { return tokenSequence_; }
41
42 private:
43 PieceMoveSpecialRequest request_{};
44 bool animationsEnabled_{true};
45 std::uint8_t randomBit_{};
46 std::uint8_t state_{};
47 std::optional<rules::PlayerNumber> playerInPaddywagon_;
48 std::optional<PieceJailRoutePlan> outbound_;
49 std::optional<PieceJailRoutePlan> inbound_;
50 data::DataId paddySequence_{data::EmptyDataId};
51 data::DataId tokenSequence_{data::EmptyDataId};
52 sequence::Matrix3D paddyMatrix_{sequence::identity3D()};
53 };
54}
unsigned index
std::expected< PieceJailPlaybackUpdate, std::string > tick(std::uint64_t tick, engine::SequencePlayback &playback, rules::GameState &uiState)
std::optional< rules::PlayerNumber > playerInPaddywagon() const noexcept
std::uint8_t state() const noexcept
std::expected< void, std::string > begin(const PieceMoveSpecialRequest &request, std::uint64_t tick, bool animationsEnabled, std::uint8_t randomBit=0)
data::DataId activeTokenSequence() const noexcept
std::uint32_t DataId
Definition DataBanks.hpp:10
constexpr DataId EmptyDataId
Definition DataBanks.hpp:13
constexpr std::uint16_t JailPlaybackPriority
Matrix3D identity3D() noexcept
std::optional< BoardCameraView > camera