Scale up to 9 items on a wall of gear #17

Merged
scruffydude merged 1 commit from task/16-nine-items into main 2026-10-02 11:01:07 -04:00
Owner

Adds 6 new items/stands (Axe, Dagger, Bow, Chestplate, Boots, Gauntlets) alongside the existing sword/shield/helmet — 9 total. Widens the playfield from 1152 to 1600px to fit them in one row (wall-of-gear theme), including explicitly setting window size in project.godot for the first time.

No changes to armory.gd/item.gd/stand.gd — they already count items/stands dynamically via group membership, which is the actual point: proving the architecture holds up at 9 items without a rework.

Verified headlessly: clean boot/import, all 9 items snap only onto their matching stand (mismatches rejected), win fires exactly at 9/9 (checked at every count 1-8 first), and all 9 fall/settle simultaneously under gravity without instability.

Closes #16

Adds 6 new items/stands (Axe, Dagger, Bow, Chestplate, Boots, Gauntlets) alongside the existing sword/shield/helmet — 9 total. Widens the playfield from 1152 to 1600px to fit them in one row (wall-of-gear theme), including explicitly setting window size in `project.godot` for the first time. No changes to `armory.gd`/`item.gd`/`stand.gd` — they already count items/stands dynamically via group membership, which is the actual point: proving the architecture holds up at 9 items without a rework. Verified headlessly: clean boot/import, all 9 items snap only onto their matching stand (mismatches rejected), win fires exactly at 9/9 (checked at every count 1-8 first), and all 9 fall/settle simultaneously under gravity without instability. Closes #16
Adds 6 new items/stands alongside the existing sword/shield/helmet:
Axe, Dagger, Bow (weapons) and Chestplate, Boots, Gauntlets (armor).
Each gets a distinguishable placeholder size/color in the same flat
ColorRect style as the existing three - no new art, just more boxes.

Widens the playfield from 1152 to 1600px to fit all 9 stands in a
single row (wall-of-gear theme, rather than a cramped multi-row
grid). This also meant explicitly setting
display/window/size/viewport_width|height in project.godot for the
first time - previously relying on an assumed engine default that
happened to match 1152x648. Floor, WinOverlay, Camera2D, and the
Ground floor collider are all updated to match the new width.

No changes to armory.gd/item.gd/stand.gd - they already count
items/stands dynamically via scene group membership
(get_tree().get_nodes_in_group), not a hardcoded count. That's the
actual point of this change: proving the existing architecture holds
up at 9 items without needing a rework.

Kept the flat/explicit per-item node declarations in armory.tscn
rather than switching to scene-instancing with per-instance property
overrides - Godot's text-format override syntax for that is fiddly
to hand-write correctly without the editor GUI, and there's no way
to visually verify it in this sandbox. The flat pattern is more
boilerplate (~300 lines now) but has been reliable across many
rounds of hand-edits this session and is fully verifiable headlessly.

Verified headlessly:
- Clean boot and import (exit 0).
- All 9 items individually snap only onto their own matching stand;
  a mismatched item/stand pair correctly does not snap.
- Win condition fires exactly at 9/9 placed, not before (checked at
  every intermediate count from 1/9 through 8/9).
- All 9 items fall and settle simultaneously under gravity without
  instability, NaN drift, or sinking through the floor - each settles
  at exactly floor_surface - half_height, confirming the physics from
  #14 holds at this scale too.

Closes #16

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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
scruffydude/project-awry!17
No description provided.