CardGame
Rogue-like card videogame
Loading...
Searching...
No Matches
terminalMatchView.h
Go to the documentation of this file.
1#ifndef TERMINALMATCHVIEW_H
2#define TERMINALMATCHVIEW_H
3
4#include "IMatchView.h"
5#include "handRenderer.h"
6#include "iotext.h"
7
8enum class AnsiColor
9{
10 None,
11 Green,
12 Red,
13 Yellow
14};
15
17{
18 public:
20
21 void showCurrentHand(const std::vector<const CardInstance*>& handToRender) const override;
22 void showMessage() override;
23 void showTurnState(const TurnData& turnData) const override;
24 void showMatchState(const MatchData& matchData) const override;
25 void showRecurringMatchStatus(const MatchData& matchData, const TurnData& turnData,
26 const Entity& player, const Entity& enemy) const override;
27
28 PlayCardDecision askPlayerAction(int limit) override;
29 void showPassingTurn() override;
30 void showDamageResult(const DamageResult result) const override;
31 void showEffectMessage(const std::vector<std::string>& message) const override;
32 void showPlayedCardName(std::string_view name) const override;
33 void showEnemyMove(std::string_view enemyName, std::string_view moveName,
34 std::string_view moveDescr) const override;
35 void showPlayerTurnStart(const MatchData& matchData) const override;
36
37 void showEndOfTurn(const MatchData& matchData) const override;
38 void showEndOfMatch(const MatchData& matchData) const override;
39 void showStartOfMatch(std::string_view enemyName) const override;
40 void showDrawCards(const DrawData& drawData) const override;
41
42 private:
43 IOText& m_io;
44 HandRenderer m_handRenderer;
45
46 static constexpr int m_mainWidth{126};
47 static constexpr int m_singleBoxWidth{40};
48 static constexpr int m_boxes{3};
49 static constexpr int m_singleEffectMessage{20};
50
51 void showDivisor() const;
52 void showFancyDivisor() const;
53 void showMatchDivisor() const;
54
55 static std::string color(AnsiColor color, const std::string& text);
56 static constexpr const char* colorCode(AnsiColor color);
57};
58
59#endif // TERMINALMATCHVIEW_H
Base class representing a combat-capable entity.
Definition: entity.h:18
Renders a hand of cards as one or two rows of ASCII cards.
Definition: handRenderer.h:31
Definition: IMatchView.h:17
Text-based input/output interface for terminal interaction.
Definition: iotext.h:20
Definition: terminalMatchView.h:17
PlayCardDecision askPlayerAction(int limit) override
Definition: terminalMatchView.cpp:70
void showEnemyMove(std::string_view enemyName, std::string_view moveName, std::string_view moveDescr) const override
Definition: terminalMatchView.cpp:199
void showDrawCards(const DrawData &drawData) const override
Definition: terminalMatchView.cpp:226
void showTurnState(const TurnData &turnData) const override
Definition: terminalMatchView.cpp:93
void showEndOfTurn(const MatchData &matchData) const override
Definition: terminalMatchView.cpp:29
void showRecurringMatchStatus(const MatchData &matchData, const TurnData &turnData, const Entity &player, const Entity &enemy) const override
Definition: terminalMatchView.cpp:99
void showEffectMessage(const std::vector< std::string > &message) const override
Definition: terminalMatchView.cpp:209
void showPlayedCardName(std::string_view name) const override
Definition: terminalMatchView.cpp:193
void showStartOfMatch(std::string_view enemyName) const override
Definition: terminalMatchView.cpp:9
void showCurrentHand(const std::vector< const CardInstance * > &handToRender) const override
Definition: terminalMatchView.cpp:17
void showMessage() override
Definition: terminalMatchView.cpp:253
void showPassingTurn() override
Definition: terminalMatchView.cpp:86
void showMatchState(const MatchData &matchData) const override
Definition: terminalMatchView.cpp:177
void showPlayerTurnStart(const MatchData &matchData) const override
Definition: terminalMatchView.cpp:22
void showDamageResult(const DamageResult result) const override
Definition: terminalMatchView.cpp:182
void showEndOfMatch(const MatchData &matchData) const override
Definition: terminalMatchView.cpp:36
Definition: combatEvents.h:22
Definition: drawData.h:8
Definition: matchData.h:16
Definition: matchData.h:39
Definition: matchData.h:22
AnsiColor
Definition: terminalMatchView.h:9