prosolis
53d1608490
Phase 0: expedition-difficulty sim harness spike
...
New file internal/plugin/expedition_balance.go — sibling to
dnd_class_balance.go, no dnd_ prefix per feedback_avoid_dnd_naming.
Plan doc: gogobee_expedition_difficulty.md.
Critical de-risk settled: clock-injection seam. The harness does not
run the wall-clock tickers (expeditionBriefingTicker @ 06:00,
expeditionRecapTicker @ 21:00, expedition_ambient @ 3h) and does not
inject a virtual time.Now. Instead, advanceExpeditionOneDay
reimplements the morning→day→night pipeline by calling the math-pure
helpers directly: applyDailyBurn, dailyThreatDrift,
resolveCombatInterrupt, resolveWanderingCheck, simulateCombatWithRNG.
No DB, no goroutines, no clock.
Phase 0 trade-offs (documented in the file header):
- Boss completion deferred; survive-N-days is the proxy.
- Per-region zones, loot/XP, pardon/Sovereign, babysit, temporal
stack effects all skipped — Phase 1+ scope.
- Encounter cadence (harnessHarvestRollsPerDay=4) is a placeholder
to be calibrated against live traces in Phase 1.
Tests:
- TestExpeditionBalance_Phase0_Spike — T2 Crypt Valdris × L5 Fighter,
100 trials, asserts only degenerate sentinels (no 0%/100%, days>0,
days<=cap). Runs in <3s.
- TestExpeditionBalance_Phase0_SeedSpread — confirms the RNG seam is
actually wired by showing two distinct seeds produce different
trials. Full byte-for-byte reproducibility under same seed is not
asserted at Phase 0; surpriseRoundNick + pickWanderingMonster
draw from package-global rand (same caveat as class balance).
Spike numbers (calibration baseline, NOT a target): 1% completion,
99% deaths, median 4 days, ~6 encounters. The headline death rate is
loud but expected — Phase 1's full matrix will diagnose whether it's
HP-carryover punishment, bestiary-vs-abstract-monster delta, or kit
ladder mismatch. Phase 2 is where the centerline gets tuned.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-15 08:37:23 -07:00
..
2026-05-13 23:00:35 -07:00
2026-05-09 14:25:23 -07:00
2026-05-12 21:59:19 -07:00
2026-05-09 14:25:22 -07:00
2026-05-13 22:53:58 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-15 08:03:42 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:23 -07:00
2026-04-26 07:57:31 -07:00
2026-05-09 14:25:23 -07:00
2026-04-08 15:50:28 -07:00
2026-05-12 21:59:19 -07:00
2026-05-14 18:38:57 -07:00
2026-05-14 08:01:10 -07:00
2026-05-09 14:25:21 -07:00
2026-04-05 17:04:03 -07:00
2026-04-05 17:04:03 -07:00
2026-03-27 21:26:19 -07:00
2026-04-28 22:37:04 -07:00
2026-04-10 16:50:49 -07:00
2026-05-09 21:32:47 -07:00
2026-04-24 22:23:58 -07:00
2026-04-08 23:01:39 -07:00
2026-04-10 16:50:49 -07:00
2026-04-05 17:04:03 -07:00
2026-04-05 17:04:03 -07:00
2026-04-05 17:04:03 -07:00
2026-05-12 21:59:19 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-03-27 21:26:19 -07:00
2026-05-09 21:32:47 -07:00
2026-04-10 16:50:49 -07:00
2026-05-09 14:25:23 -07:00
2026-05-09 14:25:23 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:23 -07:00
2026-05-09 14:25:22 -07:00
2026-05-13 22:53:58 -07:00
2026-05-12 21:59:19 -07:00
2026-05-09 14:25:23 -07:00
2026-05-09 14:25:22 -07:00
2026-05-14 08:01:10 -07:00
2026-05-14 21:19:31 -07:00
2026-04-08 15:50:28 -07:00
2026-05-14 22:37:47 -07:00
2026-04-08 22:41:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:22 -07:00
2026-05-15 07:11:40 -07:00
2026-04-08 17:04:40 -07:00
2026-03-31 18:47:49 -07:00
2026-05-09 14:25:22 -07:00
2026-05-14 15:28:42 -07:00
2026-05-14 15:28:42 -07:00
2026-05-14 15:28:42 -07:00
2026-05-14 08:59:51 -07:00
2026-05-14 07:44:01 -07:00
2026-05-14 22:06:31 -07:00
2026-05-14 18:00:29 -07:00
2026-05-14 18:00:29 -07:00
2026-03-27 21:26:19 -07:00
2026-03-26 09:22:02 -07:00
2026-04-18 01:07:25 -07:00
2026-05-09 14:25:23 -07:00
2026-05-12 21:54:40 -07:00
2026-04-18 01:07:25 -07:00
2026-05-09 17:23:08 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:23 -07:00
2026-05-09 14:25:22 -07:00
2026-05-15 08:03:42 -07:00
2026-05-14 07:53:17 -07:00
2026-05-14 22:37:47 -07:00
2026-05-12 21:59:19 -07:00
2026-05-13 23:00:35 -07:00
2026-04-18 01:05:22 -07:00
2026-05-14 23:17:12 -07:00
2026-05-09 14:25:22 -07:00
2026-05-14 08:59:51 -07:00
2026-05-13 23:05:33 -07:00
2026-05-14 06:30:52 -07:00
2026-05-14 18:38:57 -07:00
2026-05-14 08:08:26 -07:00
2026-05-14 08:59:51 -07:00
2026-05-12 21:59:19 -07:00
2026-05-12 21:59:19 -07:00
2026-05-14 08:59:51 -07:00
2026-04-08 17:04:40 -07:00
2026-03-26 09:22:02 -07:00
2026-04-08 17:04:40 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-12 21:59:19 -07:00
2026-05-09 14:25:22 -07:00
2026-05-12 21:59:19 -07:00
2026-05-14 22:06:31 -07:00
2026-05-12 21:59:19 -07:00
2026-05-14 22:17:03 -07:00
2026-05-14 20:32:41 -07:00
2026-05-14 20:00:00 -07:00
2026-05-12 21:59:19 -07:00
2026-05-14 14:43:05 -07:00
2026-05-12 21:59:19 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-13 22:53:06 -07:00
2026-05-13 22:53:06 -07:00
2026-05-14 22:37:47 -07:00
2026-05-14 22:37:47 -07:00
2026-05-14 23:13:01 -07:00
2026-05-14 23:13:01 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 17:21:33 -07:00
2026-05-09 14:25:22 -07:00
2026-05-14 23:02:53 -07:00
2026-05-14 23:13:01 -07:00
2026-05-09 14:25:22 -07:00
2026-05-12 21:59:19 -07:00
2026-05-09 14:25:22 -07:00
2026-05-14 08:01:10 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-13 22:53:58 -07:00
2026-05-13 22:53:58 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 17:17:19 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 15:17:30 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-14 22:17:03 -07:00
2026-05-12 21:59:19 -07:00
2026-05-14 21:30:15 -07:00
2026-05-12 21:59:19 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-14 19:47:01 -07:00
2026-05-09 14:25:22 -07:00
2026-05-12 21:59:19 -07:00
2026-05-12 21:59:19 -07:00
2026-05-14 22:06:31 -07:00
2026-05-14 22:17:03 -07:00
2026-05-14 22:37:47 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-14 07:12:37 -07:00
2026-05-09 14:25:21 -07:00
2026-05-15 07:18:16 -07:00
2026-05-14 21:30:15 -07:00
2026-05-09 14:25:21 -07:00
2026-05-15 07:18:16 -07:00
2026-05-14 21:53:06 -07:00
2026-05-14 15:18:18 -07:00
2026-05-14 22:17:03 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-14 22:17:03 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:22 -07:00
2026-05-14 18:38:57 -07:00
2026-05-14 15:18:29 -07:00
2026-05-14 19:47:01 -07:00
2026-05-14 20:32:41 -07:00
2026-05-12 21:59:19 -07:00
2026-05-14 06:16:45 -07:00
2026-05-09 14:25:22 -07:00
2026-05-15 08:03:42 -07:00
2026-05-09 14:25:22 -07:00
2026-05-14 22:06:31 -07:00
2026-05-09 15:17:30 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-12 21:59:19 -07:00
2026-05-09 15:17:30 -07:00
2026-05-09 14:25:22 -07:00
2026-05-14 22:37:47 -07:00
2026-05-12 21:59:19 -07:00
2026-05-12 21:59:19 -07:00
2026-05-12 21:59:19 -07:00
2026-05-09 17:21:33 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-09 14:25:22 -07:00
2026-05-14 22:06:31 -07:00
2026-04-08 17:04:40 -07:00
2026-05-09 21:37:29 -07:00
2026-05-14 23:28:54 -07:00
2026-05-14 23:28:54 -07:00
2026-05-15 08:37:23 -07:00
2026-05-15 08:37:23 -07:00
2026-03-26 09:22:02 -07:00
2026-03-26 23:38:06 -07:00
2026-03-26 23:38:06 -07:00
2026-03-26 23:38:06 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-03-26 09:22:02 -07:00
2026-05-09 14:25:21 -07:00
2026-03-26 09:22:02 -07:00
2026-04-08 17:04:40 -07:00
2026-04-18 01:07:25 -07:00
2026-04-08 17:04:40 -07:00
2026-03-26 09:22:02 -07:00
2026-03-22 10:09:57 -07:00
2026-04-18 01:06:50 -07:00
2026-03-26 09:22:02 -07:00
2026-03-26 09:22:02 -07:00
2026-05-09 14:25:21 -07:00
2026-03-26 09:22:02 -07:00
2026-03-26 09:22:02 -07:00
2026-04-18 14:11:59 -07:00
2026-04-18 01:06:50 -07:00
2026-04-18 14:11:59 -07:00
2026-04-18 14:11:59 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-03-10 16:58:15 -07:00
2026-04-26 10:09:32 -07:00
2026-04-08 17:04:40 -07:00
2026-04-08 17:04:40 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-09 14:25:21 -07:00
2026-05-14 22:37:47 -07:00
2026-05-14 22:37:47 -07:00
2026-05-14 22:37:47 -07:00
2026-05-14 18:00:29 -07:00
2026-05-14 18:00:29 -07:00
2026-03-27 21:26:19 -07:00
2026-03-27 11:55:47 -07:00
2026-03-30 17:11:45 -07:00
2026-04-08 17:04:40 -07:00
2026-03-26 09:22:02 -07:00
2026-04-08 17:04:40 -07:00
2026-05-09 14:25:23 -07:00
2026-05-09 14:25:23 -07:00
2026-05-09 14:25:21 -07:00
2026-05-15 08:03:42 -07:00
2026-05-09 14:25:23 -07:00
2026-05-09 14:25:23 -07:00
2026-03-11 00:45:25 -07:00
2026-03-08 18:25:18 -07:00
2026-03-27 11:55:47 -07:00
2026-03-26 09:22:02 -07:00
2026-03-10 18:08:05 -07:00
2026-04-08 17:04:40 -07:00
2026-03-08 18:25:18 -07:00
2026-05-09 20:20:56 -07:00
2026-05-12 21:59:19 -07:00
2026-04-08 17:04:40 -07:00
2026-03-26 09:22:02 -07:00
2026-03-11 00:45:25 -07:00
2026-04-10 16:50:49 -07:00
2026-03-08 18:25:18 -07:00
2026-04-08 17:04:40 -07:00
2026-04-18 01:07:25 -07:00
2026-03-29 20:51:28 -07:00
2026-03-29 09:27:00 -07:00
2026-04-18 01:07:25 -07:00
2026-04-08 17:04:40 -07:00
2026-04-08 17:04:40 -07:00
2026-04-26 10:09:32 -07:00
2026-03-11 00:45:25 -07:00
2026-03-29 16:24:59 -07:00
2026-03-26 09:22:02 -07:00
2026-04-01 18:58:33 -07:00
2026-04-10 16:50:49 -07:00
2026-03-29 16:24:59 -07:00
2026-04-18 01:07:25 -07:00
2026-04-08 17:04:40 -07:00
2026-04-08 15:24:49 -07:00
2026-05-09 17:00:57 -07:00
2026-05-09 17:00:57 -07:00
2026-05-09 17:17:19 -07:00
2026-05-09 17:17:19 -07:00
2026-05-09 16:59:32 -07:00
2026-05-09 16:59:32 -07:00
2026-05-09 16:57:48 -07:00
2026-05-09 16:57:48 -07:00
2026-05-09 16:51:19 -07:00
2026-05-09 16:51:19 -07:00
2026-05-09 16:48:48 -07:00
2026-05-09 16:48:48 -07:00
2026-05-09 16:54:45 -07:00
2026-05-09 16:54:45 -07:00
2026-05-09 16:41:46 -07:00
2026-05-09 17:17:19 -07:00
2026-05-09 17:17:19 -07:00
2026-05-09 17:21:33 -07:00
2026-05-09 16:52:52 -07:00
2026-05-09 16:52:52 -07:00
2026-05-09 14:34:05 -07:00
2026-05-09 17:03:21 -07:00
2026-05-09 17:03:21 -07:00
2026-05-09 16:56:07 -07:00
2026-05-09 16:56:07 -07:00
2026-05-09 14:34:05 -07:00