Data

Overview

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

Enums

Name Description
ECBoard Board identifiers (PALACE, ARRAKIS, HIGH_COUNCIL, EMPEROR, SPACING_GUILD, BENE_GESSERIT, FREMEN)
ECCluster Cluster identifiers grouping multiple environments on screen
ECRoom Room identifiers within clusters, connected by paths
ECAgentIco Agent icon types (color-coded factions)
ECResourceIco Resource icon types (SOLARI, EPICE, WATER, influences, TROOP, INTRIGUE, etc.)