Overview
Today’s work focused on turning the core combat loop into something much closer to a playable game. Wave progression was pushed forward with proper spawning, completion flow, and debug controls, while a first pass of the energy, card, deck, and reward systems was implemented and connected together. On top of that, I added the supporting UI needed to actually interact with these systems, including card hand widgets, reward selection, enemy health feedback, and a debug HUD. By the end of the day, the project had moved beyond isolated prototypes into an early functional gameplay loop where waves, cards, energy use, and between-wave rewards all work together.
Major Accomplishments
- Implemented functional wave progression with enemy spawning, wave completion, wave count display, and debug controls.
- Added a working energy system with regeneration and bonus energy granted on enemy kills.
- Created the first three starter cards and made them playable through a functional hand UI.
- Implemented a deck loop with draw pile, hand, discard pile, draw timing, hand limit, and discard reshuffling.
- Built the reward system flow, including reward data setup, reward selection UI, and reward application logic.
- Expanded the reward pool to 16 rewards and completed the full between-wave reward flow.
- Added a debug HUD and enemy health bar to verify combat, card effects, rewards, and stat changes more easily.
Systems Developed or Updated
Wave Spawn Manager
- Handles wave progression by spawning a defined number of enemies, tracking when all spawned enemies are destroyed, and ending the wave correctly.
- Added a debug key to advance to the next wave, confirmed wave count display, and increased enemy counts as waves progress.
- Current state: Functional

Energy System
- Manages the resource used to play cards.
- Added current and maximum energy values, regeneration over time, a replenish rate variable, a debug input for testing energy loss, bonus energy on enemy kills, and a reset to full energy at wave end.
- Current state: Functional / Needs Polish
Card Data and Effects System
- Defines card behavior and supports gameplay effects tied to combat and tower maintenance.
- Created starter card types using an enum, built a card struct with name, type, cost, value, and description, and used data assets / primary data assets for setup. Implemented three starter cards: damage, slow, and repair.
- Current state: Functional
Card UI and Hand System
- Displays cards to the player and allows them to be played through the interface.
- Built a card slot widget and hand widget, made cards appear on screen, enabled mouse-click card play, validated energy cost checks, and removed cards from hand after use.
- Current state: Functional / Needs Polish

Deck / Draw / Discard System
- Controls how cards are drawn, held, discarded, and recycled during play.
- Implemented deck setup, draw pile, hand, discard pile arrays, draw on game start, timed drawing, max hand cap, and reshuffling discard back into the draw pile when empty.
- Current state: Functional / Needs Polish
Combat Feedback and Debug Tools
- Provides visual and debug feedback to validate gameplay systems.
- Added a rudimentary enemy health bar to verify damage application and a debug HUD to display important gameplay variables and stat changes.
- Current state: Functional

Reward System
- Presents between-wave rewards and applies selected bonuses to the tower or deck.
- Added reward enums, reward data structures, reward data assets, a reward pool on the wave manager, reward slot cards, and a reward screen populated with three choices. Implemented logic for card rewards, tower stat upgrades, and tower healing. Expanded the system to a full set of 16 rewards.
- Current state: Functional

Stat Organization
- Improves how tower-related values are grouped and managed.
- Began separating variables more deliberately and added stat-specific grouping, including a stat enum used for tower upgrades.
- Current state: In Progress
Problems Encountered and Solutions
Problem:
Playing one card type could trigger all cards of that type at once.
Cause:
The exact root cause was not fully isolated, but it appeared to be related to Blueprint wiring and possibly the remove-from-array setup.
Solution:
Cleaned up the Blueprint logic and rewired parts of the setup until the issue stopped occurring and card play behaved correctly.
Current Project State
The project is now in a solid early gameplay systems phase. Wave progression, energy use, card play, card draw, combat feedback, and reward selection are all connected closely enough to support a rough but functional playthrough loop. The game is no longer just a collection of separate prototype features; it now has the foundation of a repeatable wave-based structure with deckbuilding and reward progression in place. The main remaining work at this stage is tuning, polish, and continued expansion of content and systems.

Next Day Plan
- Rebalance energy regeneration and overall card balance based on playtesting.
- Continue improving system stability as more cards and rewards are added.
- Build on the new stat grouping approach to support future save functionality.
- Expand and refine the reward and card content using the now-functional framework.

