Data structures used by CRESOURCEUMODULE for resource definitions and the card deck mechanic. All structs are BlueprintType and derive from FTableRowBase for DataTable integration.
Resource Structures
Name
Description
FCResourceStruct
DataTable row holding a TSubclassOf<UObject> resourceClass reference for a named resource
FCResourceMetadataStruct
DataTable row holding display metadata: FText label and UTexture2D* icon
// FCResourceStruct — maps a resource name to a UClass
// Used by consume/supply to resolve the resource class from a DataTable row
FCResourceStruct row;
row.resourceClass = AMyResourceActor::StaticClass();
// FCResourceMetadataStruct — display metadata for UI
FCResourceMetadataStruct meta;
meta.label = FText::FromString("Water");
meta.icon = myTexture;
Deck Structures
Name
Description
FCCardRowBase
DataTable row for a card: cardTag, cost, agentIcoArray, influence, force, whereToSpawn
UCCard
UObject wrapper around FCCardRowBase for runtime card instances
FCPlayerCardArea
Player card zones: playerDeck, playerHand (up to 5), playerAgent (up to 2), playerDiscard
UCGameCardArea
Game-level card area: gameDeck, gameRiver, gameDiscard, plus a playerCardArea and roomExchange array
FCResourceRoom
Pairs an ECResourceIco resource icon with a float quantity
FCRoomExchange
DataTable row defining a room’s requirements (room, agentRequired, resourceRequired) and rewards (troopDeploymentAllowed, resourceReward)
// FCCardRowBase — card definition in a DataTable
// Fields: cardTag (FName), cost (uint8), agentIcoArray (TArray<ECAgentIco>),
// influence (uint8), force (uint8), whereToSpawn (TArray<ECRoom>)
// UCCard — runtime wrapper
UCCard* card = NewObject<UCCard>();
card->cardRowBase = myCardRow;
// FCPlayerCardArea — player's card zones
FCPlayerCardArea area;
area.playerDeck; // draw pile
area.playerHand; // current hand (max 5)
area.playerAgent; // cards played as agents (max 2)
area.playerDiscard; // discard pile
// UCGameCardArea — full game card state
UCGameCardArea* gca;
gca->gameDeck; // game draw pile
gca->gameRiver; // visible market cards
gca->gameDiscard; // game discard
gca->playerCardArea; // player zones
gca->roomExchange; // room exchange rules