8#include <unordered_map>
39 std::unique_ptr<CardDefinition> uniqueCardDefinition);
57 std::unique_ptr<CardInstance>
makeSingleCard(
const std::string& cardId)
const override;
64 std::unordered_map<std::string, std::unique_ptr<CardDefinition>> m_cardMap;
Immutable static data representing a card type.
Definition: cardDefinition.h:27
Factory responsible for creating runtime CardInstances.
Definition: cardFactory.h:24
void registerCards()
Populates the factory with all static card definitions.
Definition: cardFactory.cpp:36
CardFactory()
Constructs and registers all cards at startup.
Definition: cardFactory.cpp:18
~CardFactory()
Destructor.
Definition: cardFactory.cpp:20
std::unique_ptr< CardInstance > makeSingleCard(const std::string &cardId) const override
Creates a new CardInstance based on the registered definition.
Definition: cardFactory.cpp:64
void registerDefinition(std::string_view cardId, std::unique_ptr< CardDefinition > uniqueCardDefinition)
Registers a new card definition.
Definition: cardFactory.cpp:22
Represents a runtime instance of a card during combat.
Definition: cardInstance.h:21
Definition: cardsLoader.h:10
Interface for card instance creation.
Definition: ICardFactory.h:17