Commit Graph

17 Commits

Author SHA1 Message Date
Steven Wroblewski 09033b9401 fix(test): use get_node_or_null in detach position test per project convention 2026-05-09 00:09:53 +02:00
Steven Wroblewski ca1d20781e feat(items): add HoldableItem with hand slot detection, fix detach_item position
- Character registers in "characters" group on _ready for group scanning
- detach_item saves/restores global_position after reparenting
- New HoldableItem base class: scans "characters" group on drag_released,
  attaches to nearest free hand within 60px radius, detaches on pickup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 00:03:25 +02:00
Steven Wroblewski 0d3788246a feat(snap-points): add SnapPoints to all 2.OG and Garten rooms (Ultrasound, DeliveryRoom, Nursery, GardenParty)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 22:40:45 +02:00
Steven Wroblewski 8cae50bc11 feat(snap-points): add SnapPoints to all 1.OG rooms (XRay, Pharmacy, Lab, PatientRoom) 2026-05-08 22:32:57 +02:00
Steven Wroblewski 7848b7a979 feat(snap-points): add SnapPoints to all EG rooms (Reception, GiftShop, Restaurant, EmergencyRoom) 2026-05-08 22:30:12 +02:00
Steven Wroblewski 2f5e9d99a6 feat(snap-receiver): implement snap detection, position snapping, and pose animation trigger
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 22:12:18 +02:00
Steven Wroblewski 60fba44316 feat(character): add hand slot API (attach/detach/get_held_item/is_hand_free) 2026-05-08 22:09:56 +02:00
Steven Wroblewski 1a9d916293 feat(character): add outfit layer API (set/clear/get_outfit per layer 1-3) 2026-05-08 22:07:53 +02:00
Steven Wroblewski 9be67c8dfe feat(character): add animation state API (set/get_animation_state) 2026-05-08 22:02:59 +02:00
Steven Wroblewski 15ac8666f8 feat(character-data): add outfit array field for three outfit layer slots 2026-05-08 22:01:18 +02:00
Steven Wroblewski 2c576ad419 feat(character): add AnimatedSprite2D, OutfitLayers, HandSlots, SnapReceiver to Character scene
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 21:59:30 +02:00
Steven Wroblewski cc5f205a7e feat(snap-point): add SnapPoint node with pose, baby_only filter, and occupant tracking
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 21:56:50 +02:00
Steven Wroblewski 1e445263a7 test(gift-box): add unit tests for CLOSED/OPENING/OPEN state machine 2026-04-17 22:45:26 +02:00
Steven Wroblewski 286498804d test(room-navigator): add missing is_at_home and go_to_hospital tests
Adds 7 new test cases covering home/hospital navigation state:
- is_at_home() initial state and transitions
- go_to_home() with idempotence check
- go_to_hospital() state restoration and guards
- is_at_home flag cleanup on room navigation

Implements corresponding methods in RoomNavigator:
- is_at_home(): Returns home state
- go_to_home(): Navigates to home (0,0) and saves hospital position
- go_to_hospital(): Returns to previously saved hospital location
- _go_to_room_internal(): Helper to avoid flag interference

All 34 tests passing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 22:41:59 +02:00
Steven Wroblewski 297b57a3c1 test(room-navigator): add unit tests for floor/room state and camera navigation 2026-04-17 22:39:09 +02:00
Steven Wroblewski e3a93d3c52 test(game-state): add unit tests for character positions, object states, and save round-trip 2026-04-17 22:36:53 +02:00
Steven Wroblewski 978c8a5c80 chore(tooling): add GUT test infrastructure and smoke test
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 22:35:08 +02:00