Implement table-driven F.O.S. lesson completion - #28
Conversation
|
Reviewed against The project builds, The actual runtime change in The client consumes the server's chapter Please provide authoritative source or a controlled retail transition establishing the rule, and align the description/tests with that evidence. Alternatively, this needs explicit maintainer approval as a documented local policy rather than a claim of established parity. To be clear: I have not established that a zero-star result must be rejected or that lessons require full stars. The blocker is the missing authority for the formerly unsupported chapter-clear rule, not a proven score-threshold defect. No changes were pushed during review. |
|
Thanks — your review is correct. The original PR description overstated the available table data: the inspected course schemas do not contain a I also performed a controlled check against the official 4.7.0 server:
This confirms that lesson chapter completion does not require full stars or the maximum lesson-point total. That retail observation is consistent with the authoritative tables and client behavior:
I pushed follow-up commit Validation after the update:
Both pass. Production code remains table-driven and does not use captured response values or player-state fixtures. |
Problem
F.O.S. lessons and assessments can be entered and played, but valid lesson-result submissions are rejected because the server has no supported lesson chapter-clear rule. This prevents progress from being persisted and can leave later assessments and rewards unavailable.
Summary
ClearPointthreshold for exams.Evidence and data sources
A controlled check on the official 4.7.0 server confirmed that a lesson chapter becomes clear when its configured stages are complete even when the final Vol is not full-star. This establishes that lesson chapter clear is distinct from full-star/max-point completion.
The authoritative
CourseChaptertable identifies lessons withStageType=1and lists their stage IDs; lesson rows have noClearPoint. Exams useStageType=2andClearPoint=9. The inspected course schemas contain noFinishConditionfield. The 4.7.0 client consumes the server's chapterIsClearflag while calculating stage-record completion and full-star completion separately.No captured response, stage-specific value, or player state is used by production code. Captured/observed transitions are test oracles only.
Testing
dotnet build AscNet/AscNet.csprojdotnet run --project AscNet.Test/AscNet.Test.csproj -- --course-only