Skip to content

feat(probes): add P9 Set Slow Motion extreme factors - #144

Merged
e54-bot merged 1 commit into
mainfrom
probe/p9-slow-motion-extremes
Nov 3, 2026
Merged

e54-bot merged 1 commit into
mainfrom
probe/p9-slow-motion-extremes

Conversation

@e54-bot

@e54-bot e54-bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Adds probe P9 (probes/p9-slow-motion-extremes) for #143. This PR defines the probe only. The client capture is still owed, so the issue stays open (Refs #143). No simulator code changes.

Hypothesis (expect.json): Set Slow Motion has no effect on the script timeline at extreme factors. Total Time Elapsed advances 16 ms per tick and Wait rounds up to whole 16 ms ticks, as at 100%.

Factors: 10, 200, 0, -50, in that order. The catalog (setSlowMotion, one Number parameter, no domain) and the wiki text ("must not exceed 100%") document a maximum only. No minimum is documented, so 10 stands as a low positive probe, 0 and -50 test the clamp below it, and 200 tests above the maximum. P8 already measured 50, 90 and the 100 control. Factors 0 and -50 run last because the client may stop the simulation at them, and then the script cannot restore 100.

Output: per factor 4 P9m lines (t_ms 16, 32, 48, 64) and 3 P9w lines (wait 16, 100, 1000 giving elapsed 16, 112, 1008), then P9 done: 29 lines. Element count is 120 in both spellings.

Owner steps:

  1. In the client, create a custom Workshop game with Inspector and Inspector recording on. Clear all rules.
  2. Paste probes/p9-slow-motion-extremes/probe.zh-CN.ow as the only rule set and start the game. Do not touch the character.
  3. Wait for the P9 done line (about 20 s of game time), save the log to a file. Repeat for three runs under three file names.
  4. athena ingest probes/p9-slow-motion-extremes <log> for each run.
  5. If the client stops the simulation at a factor, leave the match and keep the partial log. Report which factor stopped it.

Checks: cargo test, cargo clippy --all-targets -- -D warnings, cargo fmt --check, wright check on both files. There is no fixture test: P8 has none on main, and a simulated run needs the P8 model from #139.

Measure Total Time Elapsed and Wait at factors 10, 200, 0 and -50 against the hypothesis that Set Slow Motion does not affect the script timeline. The probe has no capture yet (runs: 0).

Refs #143
@e54-bot

e54-bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor Author

Verdict: LGTM (head cb23b74)

Independent check; I did not write this PR.

  • Equivalence: wright check --kind workshop passes on probe.workshop (en) and probe.zh-CN.ow (--locale zh-CN), 2 rules, 7 globals. Both compile with --to en-US -o - to byte-identical 57-line output. zh-CN spellings (设置慢动作 etc.) match catalog aliases.
  • Measurement: per factor 10, 200, 0, -50 the probe logs 4 P9m tick lines and 3 P9w lines (16, 100, 1000 ms); each line carries f=, so lines are distinguishable. Structure is P8's (Set, Wait 0.5, mgo, Wait 0.5), so the first-tick handling matches P8. The metronome (64 ms) finishes and resets mgo long before the driver's first measured Wait; all waits end before the next Set, so no state leaks. 0 and -50 run last. There is no restore to 100 between factors; I found no leak from that, since only the clock carries over.
  • expect.json: 29 lines (4x7+1). Values equal P8's measured f=100 behavior (t_ms 16/32/48/64; waits 16->16, 100->112, 1000->1008), the hypothesis in Probe extreme Set Slow Motion factors (P8 follow-up) #143 ("no effect on the script timeline").
  • capture.json: runs 0, inconclusive, probe_sha256 33f9bad0...c33b5 equals sha256 of probe.zh-CN.ow (recomputed).
  • Docs: procedure.zh-CN.md rows (list, step 1, per-probe note, expected-log table) are consistent; no doc claims a P9 result.
  • Catalog: workshop-rs setSlowMotion param speedPercent; zh text says the value may not exceed 100, so 200 tests an invalid input; 10 is only an assumed minimum.
  • Ingest: I built a synthetic log from the 29 expected lines and ran athena ingest on a scratch copy three times: all match, final match at 3 runs. Scratch copy removed; real probe files unchanged.
  • Gates: cargo test all pass, cargo clippy --all-targets -- -D warnings clean, cargo fmt --check clean, git diff --check origin/main...HEAD clean. CI: Quality pass, WASM build pass, Detect changes pass, Workflow lint skipped.

Non-blocking notes: (1) the true client minimum is unknown, so 10 may not be "the smallest accepted" that #143 names. If the client clamps, the result shows it as a mismatch or no difference. (2) If factor 0 freezes the simulation, -50 is never measured; the notes already say what to do. The reverse order has the same risk.

@e54-bot
e54-bot merged commit 6d00454 into main Nov 3, 2026
4 checks passed
@e54-bot
e54-bot deleted the probe/p9-slow-motion-extremes branch November 3, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants