CardGame
Rogue-like card videogame
Loading...
Searching...
No Matches
cardmatch.h
Go to the documentation of this file.
1
2
3#ifndef CARDMATCH_H
4#define CARDMATCH_H
5
7#include "deck/deckCombat.h"
8#include "deck/drawData.h"
10#include "entities/player.h"
12#include "matchData.h"
13#include "ui/IMatchView.h"
14
15class Player;
16class Enemy;
17struct CombatResult;
18
35{
36
37 public:
46 CardMatch(IMatchView& matchView, Player& player, Enemy& enemy);
47
55 void drawMultipleCardsNoEffect(int amount);
56
57 void writeDrawnCardMessage(std::string& drawMessage, const DrawData& drawData);
58
70 void playCard(int handIndex, CombatContext& currentContext);
71
78 void gainArmor(int defense);
79
80 void spendAction(TurnData& turnData);
81 void reduceAction(TurnData& turnData, int amount);
82
83 bool updateMatchState();
84
85 void turnLoop();
86
87 void playerTurnSetup(const TurnData& currentTurnData);
88
89 void playerTurn(TurnData& currentTurnData);
90
91 bool canPlayerAct(TurnData& currentTurnData);
92
99 void enemyTurn(TurnData& currentTurnData);
100
101 void damagePhase();
102
103 void resetPhase();
104
105 private:
106 IMatchView& m_matchView;
107
108 Player& m_player;
109 Enemy& m_enemy;
110
111 CardFactory m_cardFactory;
112
113 DeckCombat m_deckCombat;
114
115 CombatSystem m_combatSystem;
116
117 MatchData m_matchData;
118};
119
120#endif
Factory responsible for creating runtime CardInstances.
Definition: cardFactory.h:24
Orchestrates a single combat encounter between one player and one enemy.
Definition: cardmatch.h:35
void playerTurn(TurnData &currentTurnData)
Definition: cardmatch.cpp:152
bool updateMatchState()
Definition: cardmatch.cpp:86
void damagePhase()
Definition: cardmatch.cpp:213
void spendAction(TurnData &turnData)
Definition: cardmatch.cpp:72
void turnLoop()
Definition: cardmatch.cpp:110
void enemyTurn(TurnData &currentTurnData)
Executes the enemy's next move and resolves its effects.
Definition: cardmatch.cpp:188
void gainArmor(int defense)
Legacy helper that directly increases the player's armor.
Definition: cardmatch.cpp:21
void drawMultipleCardsNoEffect(int amount)
Draws multiple cards into the player's hand.
Definition: cardmatch.cpp:23
bool canPlayerAct(TurnData &currentTurnData)
Definition: cardmatch.cpp:132
void writeDrawnCardMessage(std::string &drawMessage, const DrawData &drawData)
void resetPhase()
Definition: cardmatch.cpp:222
void playCard(int handIndex, CombatContext &currentContext)
Plays a card from the hand and resolves all of its effects.
Definition: cardmatch.cpp:32
void reduceAction(TurnData &turnData, int amount)
Definition: cardmatch.cpp:78
void playerTurnSetup(const TurnData &currentTurnData)
Definition: cardmatch.cpp:146
Execution context for resolving combat effects.
Definition: combatContext.h:30
Central authority for combat rules and state mutation.
Definition: combatSystem.h:18
Manages all card piles during a single combat.
Definition: deckCombat.h:38
Base class for enemies with a predefined move sequence.
Definition: enemy.h:22
Definition: IMatchView.h:17
Player-controlled entity with a persistent deck.
Definition: player.h:23
Definition: drawData.h:8
Definition: matchData.h:16
Definition: matchData.h:22