Add hero runtime
This commit is contained in:
50
SLICE4.md
50
SLICE4.md
@@ -17,12 +17,13 @@ This slice does not implement weapon firing, collectibles as physical pickup act
|
||||
- [x] (2026-04-21 20:22Z) Read repository rules, `PLANS.md`, `DESIGN.md`, `CODE.md`, `SLICE1.MD`, `SLICE2.MD`, `SLICE3.MD`, current debug command files, current sample content, current root boot wiring, and current project file list.
|
||||
- [x] (2026-04-21 20:22Z) Verified that Slice 3 has committed a debug command foundation, a debug sandbox boot mode, content validation tests, and a clean worktree.
|
||||
- [x] (2026-04-21 20:22Z) Created this Slice 4 ExecPlan.
|
||||
- [ ] Implement pure hero runtime state and rules.
|
||||
- [ ] Add unit tests for hero movement-independent rules.
|
||||
- [ ] Add Godot hero actor, hero HUD, and hero sandbox.
|
||||
- [ ] Add hero sandbox debug commands, keyboard shortcuts, and headless smoke script.
|
||||
- [ ] Wire `HeroSandbox` into debug boot and validate existing boot modes still work.
|
||||
- [ ] Run formatting, tests, Godot smokes, update this plan, and commit the completed slice.
|
||||
- [x] (2026-04-21 20:53Z) Implemented pure hero runtime state and rules.
|
||||
- [x] (2026-04-21 20:53Z) Added unit tests for hero movement-independent rules.
|
||||
- [x] (2026-04-21 20:53Z) Added Godot hero actor, hero HUD, and hero sandbox.
|
||||
- [x] (2026-04-21 20:53Z) Added hero sandbox debug commands, keyboard shortcuts, and headless smoke script.
|
||||
- [x] (2026-04-21 20:53Z) Wired `HeroSandbox` into debug boot and validated existing boot modes still work.
|
||||
- [x] (2026-04-21 20:53Z) Ran formatting, tests, Godot smokes, and updated this plan.
|
||||
- [ ] Commit the completed slice.
|
||||
|
||||
## Surprises & Discoveries
|
||||
|
||||
@@ -38,6 +39,12 @@ This slice does not implement weapon firing, collectibles as physical pickup act
|
||||
- Observation: There is no hero runtime code yet.
|
||||
Evidence: `rg --files godot\scripts godot\scenes tests` lists bootstrap, content, debug, and menu files only; there are no `hero` scene or script folders.
|
||||
|
||||
- Observation: Running `dotnet test SideScrollerGame.sln` and `dotnet build SideScrollerGame.sln` in parallel can still race on Godot's generated temp files.
|
||||
Evidence: the baseline parallel validation reported `MSB3713` because `SideScrollerGame.Godot.AssemblyInfo.cs` was being used by another process. Running `dotnet test` and `dotnet build` serially succeeded.
|
||||
|
||||
- Observation: Godot generated `.cs.uid` files for every new C# hero script during the headless project scan.
|
||||
Evidence: after `.\godot --headless --path godot --build-solutions --quit`, files such as `godot/scripts/hero/HeroActor.cs.uid`, `godot/scripts/hero/rules/HeroRuntimeService.cs.uid`, and `godot/scripts/debug/HeroSandboxController.cs.uid` appeared.
|
||||
|
||||
## Decision Log
|
||||
|
||||
- Decision: Implement hero gameplay rules as plain C# before Godot node behavior.
|
||||
@@ -62,7 +69,34 @@ This slice does not implement weapon firing, collectibles as physical pickup act
|
||||
|
||||
## Outcomes & Retrospective
|
||||
|
||||
No implementation has been performed yet. This plan defines the target result for Slice 4 and must be updated as code, tests, validation, and any course corrections happen.
|
||||
Completed. Slice 4 added pure hero runtime rules under `godot/scripts/hero/rules/`, a controllable Godot hero actor, a hero state HUD, a dedicated hero sandbox scene, hero debug command ids and scene command handler support, hero-specific keyboard actions, `HeroSandbox` debug boot wiring, and a deterministic headless hero smoke script.
|
||||
|
||||
Validation completed from `D:\Code\zfxaction26_1`:
|
||||
|
||||
dotnet test SideScrollerGame.sln
|
||||
Passed! - Failed: 0, Passed: 36, Skipped: 0, Total: 36
|
||||
|
||||
dotnet build SideScrollerGame.sln
|
||||
Build succeeded.
|
||||
0 Warning(s)
|
||||
0 Error(s)
|
||||
|
||||
.\godot --headless --path godot --build-solutions --quit
|
||||
Exited successfully after project scan, .NET build, and script class registration.
|
||||
|
||||
.\godot --headless --path godot -- --debug-boot=hero-sandbox --debug-script=hero-smoke --seed=444
|
||||
Hero sandbox smoke succeeded
|
||||
|
||||
.\godot --headless --path godot -- --debug-boot=debug-sandbox --debug-script=foundation-smoke --seed=333
|
||||
Debug foundation smoke succeeded
|
||||
|
||||
.\godot --headless --path godot -- --debug-boot=content-browser --content-validate-only
|
||||
Content validation succeeded
|
||||
|
||||
.\godot --headless --path godot -- --debug-boot=smoke --seed=12345
|
||||
Smoke scene loaded
|
||||
|
||||
Remaining risk: hero movement bounds were validated through the implemented actor logic and scene smoke compilation, but were not manually inspected in an editor window during this headless iteration.
|
||||
|
||||
## Context and Orientation
|
||||
|
||||
@@ -496,3 +530,5 @@ In `godot/scripts/bootstrap/GameRoot.cs`, extend boot loading so:
|
||||
loads `res://scenes/debug/HeroSandbox.tscn`.
|
||||
|
||||
Revision note 2026-04-21: Created this ExecPlan from the current Slice 3 project state. The plan scopes Slice 4 to hero runtime rules, a controllable hero actor, a hero sandbox, hero debug commands, and headless smoke validation while leaving weapons, pickups as actors, squadron actors, enemies, and mission flow to later slices.
|
||||
|
||||
Revision note 2026-04-21: Updated this ExecPlan after implementation. Progress, discoveries, and outcomes now reflect the completed hero runtime, sandbox, smoke validation, serial build requirement, and remaining editor-inspection risk.
|
||||
|
||||
Reference in New Issue
Block a user