
LIST OF THINGS TO DO:  But time is short and we are not going to get everything we want done!  We may need to ruthlessly prioritize this.



Notes from first test with macro loop (single floor)

BUGS (let's fix these first)

[FIXED] 1. "Play Again" button does not work from victory screen.

[FIXED] 2. Med-kit is very broken: when I select it, it asks me to target a robot.  Then when I do, it heals me but is not consumed.  So with this item I can now full-heal every turn the whole game.
   - SOLUTION: Removed buttons from cards. All cards now clickable directly like weapons.
   - Self-target consumables (medkit, speed booster) activate immediately when clicked
   - Single-target consumables (grenades) enter targeting mode when clicked
   - Consumables are properly deleted after use in combat
   - ALSO FIXED: Duplicate items (two medkits) crash when clicked in loot phase
     - Was trying to lookup definition with suffixed key (medkit_1) instead of base id (medkit)
     - Now uses equipment.id instead of equipmentId in UpgradeWorkspace

[FIXED] Other consumable problems:
- speed boost and even toolkit still ask me to target an enemy
  - SOLUTION: Updated SpeedBoosterCard to match new clickable system (no buttons)
  - SOLUTION: Added validation to prevent items with no effect (toolkit) from being used in combat
  - SOLUTION: ConsumableCard now checks if item has effect before allowing combat use
  - SOLUTION: Fixed all moves (useConsumable, upgradeEquipment, useEquipment) to use equipment.id for definition lookup
- medkit still asks to target in combat (even though it's self-target)
  - SOLUTION: CombatBoard now only passes onSelect handler for items that need targeting
  - Self-target items (medkit, speed booster) only get onUse handler
  - Single-target items (blaster, grenades) get both onSelect and onUse for targeting flow

[FIXED] Speed Booster Problem:  Speed booster gives a PERMANENT +1 action, not until end-of-fight like it should.
  - SOLUTION: Combat phase onBegin now resets actionsPerTurn to base value (2) at start of each fight
  - SOLUTION: Also clears usedThisFight array so speed booster can be used again in new fights

[FIXED] 3. REVIEW UPGRADE CODE: I upgraded my charger to max, expecting it to charge for 3, but then it didn't actually charge my wide beam by more than 1 (the basic charger behavior before upgrades), I think I also upgraded the wide beam to deal 3 damage, but then it only dealt 2?


[FIXED] 4. We move new items into the inventory before the combat phase.  That shouldn't be.  We need to hold them back until the player earns them through victory.  (If this would introduce a great deal of implementation complexity, we maybe can reconsider, please call out if that is the case and we can discuss)

[FIXED] 5. When I scrapped my blaster it also scrapped my charger

Macro-transitional usability items:

The feeling of acquiring new equipment cards is underwhelming right now.  They simply appear into my inventory.  I think we need to introduce some flair around three aspects things: 
[PARKED FOR NOW] 1/ dealing out the cards one by one into the room with an animation where we have the cards flow out one by one with a very brief (.15s) delay between them, then a .35s delay, then we move to the combat display.   (PARKED BECAUSE ANIMATIONS ARE A POTENTIAL RAT HOLE AND IT'S TOO LATE IN THE JAM TO GET STUCK ON ANY ONE OPTIONAL TASK LIKE THIS)
[PARKED FOR NOW] 2/ the user actually acquiring the "pending" equpment through eg a button click.. 
[DONE] 3/ It would also be good to show the pending equipment just as titles on a stack on the far right during the combat, so the user can kind of see what they're about to get, which may influence decisions.


Combat usability items:


[DONE] - Bot cards are not great in their presentation of information.  Rearrange their display as follows:  Attack number is red and on the bottom-left of the card.  Current health is greeen and on the bottom right.  Both of these shoulud be big bold numbers, and replace all of the current stat texts: HP: 3/3, ATK:1, and "1 dmg / 3 hp".  Still keep the robot title at the top, though.

Loot phase usability items:  

[DONE] Note, I ruined a run by accidentally scrapping my weapon when I intended to ugprade it.  That's a crushing problem.  Hopefully the small tweaks I have propsed below will blunt this.  But maybe we need even more safety here.

[DONE]- In the upgrade/scrap modal the X (to cancel) at the top-right is cut off, and not that noticeable.  Instead, put it just left of the scrap button.  Change it from a graphical circle to a simple square box with a text X and a red theme.

[DONE]- In the upgrade/scrap modal, get rid of the existing "1 Upgrade Point" text display.  Instead, move the "Upgrade" button into that position.  This will break up the UPGRADE action and associate it with the right-arrow showing the upgrade path.  It will also move it away from the scrap button.  Then the cancel/scrap pair will move to the center of the bottom.

[DONE]- Show the full upgrade path as a checklist, with achieved levels  as a filled-X box, and the unachived levels as un-Xed boxes.  The to-be-gained upgrade can be bolded.  They can take the place of the existing stuff on the right of the upgrade screen in the place of eg "Damage: 1->2" and "+1 dmg."  I think a vertical list with a row per upgrade level?

[DONE]- I do not see the effect of upgrades in the text, even if they are affecting behaviors.  for example the charger still says "+1" and the wide beam still says 1 damage, etc.  Things must say what they'll do.

[DONE]- Show upgrade count on cards by displaying thye upgrade-count as a number after name on card, eg Blaster 2 is a blaster with two upgrades.



Other small changes:

- Show active buffs/boons more clearly in combat UI (e.g., Speed Booster active status)
  - Could be a small "Active Effects" list in the player tableau area
  - Show icons or text for buffs like "+1 action/turn" when speed booster is active

[DONE] - The next room button was available even when the deck was empty.  It did have a popup that explained the situation, but better to simply disable the button when there's no further to go.

[DONE] - Rename action label to "Actions: n/m" not "Primary: n/m"

[DONE] - Get rid of the pop-up saying that we scrapped an item.  Same with the one that says we used a med kit.

[DONE] - In the loot phase, show "Upgrades: " instead of "Upgrade Points" in the top-left.

[DONE] - Add floor indicator on top-right of screen, exactly opposite the "upgrades" display.  It should mirror the style as well.  It should say "Floor: " and then the floor number (1-5) that we are currently on.  Remove the "Level" text on the top-right of tableau during loot phase (replaced by this floor indicator)

[DONE] - Add 5 circles that represent the orbs, just under the "Floor" display.  There are three states:  Orb is for a floor we have not yet completed: empty gold circle (outline only), orb is for a completed floor and we did get that orb: filled gold, orb is for a completed floor but we did not get that orb: empty dark gray circle.

- The UI feels jump when transitioning between phases because the combat phase gives less space to the battle area, so the whole tableau jumps around.  Can we lock the relative division of vertical space between tableau and "other"?  I like the idea of locking because it means it feels more like a baord game where I have these cards sitting on the table.  Illuision wrecked when the whole pile lurches up/down.

- When the player destroys the final robot, we instantly go into the loot phase.  Can we put a small animation/delay there?  It feels especially abrupt when I use the wide beam and kill a whole room of bots.  I want to enjoy that moment a bit more!

[DONE] - Scrap button says +1 but some items are +2, let's remove that text from that button, and just say "Scrap"


MAYBES:

-[PARKED FOR RECSONIDERATION] Auto-recharge between combats: I think we need to introduce the concept of whether a piece of equipment that uses charge starts the battle fully charged or not.  I noticed the charge level of the blaster persisted across battles, which I didn't like the feel of.  So most weapons should start fully charged entering a new combat.  However, the Wide Beam is an exception - "Starts battle with empty charge" is a special property of that one item.  (Design Notes:  ACtually I was kind of rethinking this Auto-recharge feature as I played, and I have mixed feelings.  Let's expand the game further and get some reps in before we change this.  Carrying over the charge between fights is creating a few interesting decisions, like "maybe i should eat one more attack so that I don't leave my weapons empty going into the next fight".  This is likely going to balance off against the overwhelm of a new room of fresh bots, but it's going to also create more varied starting conditions for fights so that you don't just hammer the same pattern out.)


is it good to have a battle log?
do we want a settings screen where player can control eg animation speed?
should there be a way to abandon run?  (can already multi-pass to die pretty easily)
