CardGame
Rogue-like card videogame
Loading...
Searching...
No Matches
cardDefinition.h
Go to the documentation of this file.
1#ifndef CARDDEFINITION_H
2#define CARDDEFINITION_H
3
4#include "cardParams.h"
5
6#include <memory>
7#include <string>
8#include <string_view>
9#include <vector>
10
11class Effect;
12
27{
28
29 public:
40 CardDefinition(std::string_view cardId, std::string_view cardName,
41 std::string_view cardDescription, const CardParams& cardParams = {},
42 std::vector<std::unique_ptr<Effect>> effectList = {}, int baseCost = 1);
43
45 std::string_view getName() const { return m_cardName; }
46
48 std::string_view getID() const { return m_cardId; }
49
50 std::string_view getDescription() const { return m_cardDescription; }
51
53 int getBaseDamage() const { return m_cardParams.damage; }
55 int getBaseArmor() const { return m_cardParams.armor; }
57 int getBaseCost() const { return m_baseCost; }
58
60 const CardParams& getCardParams() const { return m_cardParams; }
61
68 const std::vector<std::unique_ptr<Effect>>& getEffectList() const { return m_effectList; }
69
72
73 private:
74 std::string m_cardId{};
75 std::string m_cardName{};
76 std::string m_cardDescription{};
77
78 CardParams m_cardParams{};
79 int m_baseCost{1};
80
81 std::vector<std::unique_ptr<Effect>> m_effectList{};
82};
83
84#endif // CARDDEFINITION_H
Immutable static data representing a card type.
Definition: cardDefinition.h:27
int getBaseArmor() const
Returns the base armor value defined for the card.
Definition: cardDefinition.h:55
std::string_view getName() const
Returns the display name of the card.
Definition: cardDefinition.h:45
int getBaseCost() const
Returns the base energy cost to play the card.
Definition: cardDefinition.h:57
int getBaseDamage() const
Returns the base damage value defined for the card.
Definition: cardDefinition.h:53
const CardParams & getCardParams() const
Returns the parameters of the card.
Definition: cardDefinition.h:60
const std::vector< std::unique_ptr< Effect > > & getEffectList() const
Returns a const reference to the list of effects.
Definition: cardDefinition.h:68
~CardDefinition()
Destructor (default).
std::string_view getDescription() const
Definition: cardDefinition.h:50
std::string_view getID() const
Returns the internal ID of the card.
Definition: cardDefinition.h:48
Abstract base class for all card effects.
Definition: effect.h:19
Numeric parameters used to resolve gameplay effects.
Definition: cardParams.h:16
int damage
Definition: cardParams.h:18
int armor
Definition: cardParams.h:19