Tree-layout upgrade shop with drill-in navigation #88

Merged
cammymoop merged 2 commits from feature/tree-upgrade-shop into master 2026-03-06 14:59:54 -06:00
Collaborator

Summary

  • Add "category" field to all upgrades in upgrades.json (mobility: move_speed, back_shield; ordnance: all bomb/blast upgrades)
  • FancyUpgradeNode: Line2D connector drawn to parent, animate_to/snap_to for position tweening, set_as_root to hide/show connector line
  • FancyUpgradeShop: fully reworked with radial angle-based tree layout; drill-in on non-leaf focus; Escape navigates back up the view stack; locked upgrades shown dimmed instead of hidden

Test plan

  • Top level shows two category nodes orbiting shop root, animate in on open
  • Drill into Ordnance: 4 upgrades fan out radially; split_bomb children visible further out
  • Navigate to split_bomb → auto-drills, split_bomb at center, 2 children animate out
  • Escape returns to Ordnance view, split_bomb re-focused
  • Escape again returns to top level
  • Locked upgrades shown dimmed, not absent from tree
  • Buy on a leaf upgrade works; count/currency update
  • Lines draw parent→child for all visible non-root nodes
## Summary - Add "category" field to all upgrades in upgrades.json (mobility: move_speed, back_shield; ordnance: all bomb/blast upgrades) - FancyUpgradeNode: Line2D connector drawn to parent, animate_to/snap_to for position tweening, set_as_root to hide/show connector line - FancyUpgradeShop: fully reworked with radial angle-based tree layout; drill-in on non-leaf focus; Escape navigates back up the view stack; locked upgrades shown dimmed instead of hidden ## Test plan - [ ] Top level shows two category nodes orbiting shop root, animate in on open - [ ] Drill into Ordnance: 4 upgrades fan out radially; split_bomb children visible further out - [ ] Navigate to split_bomb → auto-drills, split_bomb at center, 2 children animate out - [ ] Escape returns to Ordnance view, split_bomb re-focused - [ ] Escape again returns to top level - [ ] Locked upgrades shown dimmed, not absent from tree - [ ] Buy on a leaf upgrade works; count/currency update - [ ] Lines draw parent→child for all visible non-root nodes
- Add category field to all upgrades (mobility/ordnance)
- FancyUpgradeNode: Line2D parent connector, animate_to/snap_to, set_as_root
- FancyUpgradeShop: angle-based radial tree layout, drill-in on non-leaf focus,
  Escape to go back up, locked nodes shown dimmed instead of hidden

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Restructure from flat array to dict keyed by category name.
UpgradeManager flattens it back to an array at load time,
injecting the category field, so all downstream code is unchanged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
cammymoop merged commit 86955ed376 into master 2026-03-06 14:59:54 -06:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cammymoop/semi-vibed-game!88
No description provided.