mirror of
https://github.com/prosolis/gogobee.git
synced 2026-07-15 00:32:40 +00:00
Phase 4 doc updates
Folds the 4-A diagnostic + 4-B roster pass into the plan doc with before/after numbers, and notes the partial Phase 4 exit (per-zone outliers fixed, tier-wide gap remains for T2/T3/T5). Adds the Phase 5 jumping-off list (per-tier elite threshold, gear-tier mapping review, or shipping burn=75 as the live global). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -310,9 +310,9 @@ the burn=75 global if Phase 4 outlier fixes leave T4 still stuck.
|
||||
|
||||
### Phase 4 — per-zone outlier pass
|
||||
|
||||
After globals settle, the matrix will name outlier zones — tiers
|
||||
where one zone reads dramatically off-band while sibling zones are
|
||||
fine. Per-zone tools:
|
||||
After globals settle, the matrix names outlier zones — tiers where
|
||||
one zone reads dramatically off-band while sibling zones are fine.
|
||||
Per-zone tools:
|
||||
|
||||
- `SpawnWeight` / `IsElite` flags in zone rosters (`dnd_zone.go:100`).
|
||||
- Boss stat tuning in zone definitions.
|
||||
@@ -324,7 +324,74 @@ Constraint: do not touch monster stat blocks (those belong to the
|
||||
bestiary, shared across systems). Tune the roster + zone-level knobs,
|
||||
not the monsters themselves.
|
||||
|
||||
**Exit:** all per-zone cells within band; commit.
|
||||
#### Phase 4-A — outlier diagnostic (shipped)
|
||||
|
||||
Added a structured per-fight trace hook (`traceFightStruct` +
|
||||
`harnessFightTrace`) alongside the existing string `traceFight`;
|
||||
both fire from the same `runHarnessFight` site so the human log and
|
||||
the structured aggregate stay in sync. Test:
|
||||
`TestExpeditionBalance_Phase4A_OutlierDiagnostic`. For each of the
|
||||
four outlier zones it pairs against the healthy sibling at the same
|
||||
tier (goblin_warrens, sunken_temple, underforge, dragons_lair),
|
||||
running 200 trials each on the Phase 3-B best cell (e=23, d=1,
|
||||
burn=50) and reporting per-monster appearances / win-rate / avg HP
|
||||
loss / kill attribution + day-of-end histogram.
|
||||
|
||||
Findings — each outlier had one or two miscategorised entries that
|
||||
Phase 2c's single-boss-elite dilution sweep had skipped:
|
||||
|
||||
- **crypt_valdris**: dual-killer elite pool (Wight 99k, Flameskull
|
||||
68k); Phase 2c had skipped this zone as "already dual-elite," but
|
||||
both elites are over-tier for T1.
|
||||
- **forest_shadows**: standard pool too lethal — Displacer Beast
|
||||
(38% win, 53k) + Bandit Captain (57% win, 48k).
|
||||
- **manor_blackspire**: Wraith on standard slot (45hp loss per win,
|
||||
85k).
|
||||
- **abyss_portal**: Nalfeshnee mis-classified standard (CR-13, 2.8%
|
||||
win, 86k) + Vrock standard at 43hp loss per win.
|
||||
|
||||
#### Phase 4-B — roster re-classification (shipped)
|
||||
|
||||
Per-zone roster tweaks based on Phase 4-A's attribution. No monster
|
||||
stat-block touches.
|
||||
|
||||
- crypt_valdris: dropped flameskull (lives in underforge T3);
|
||||
promoted specter to IsElite SW=3 as the soft dilutor.
|
||||
- forest_shadows: promoted Displacer Beast + Bandit Captain to
|
||||
IsElite; Owlbear SW 4→2 so the 4-elite pool dilutes evenly.
|
||||
- manor_blackspire: promoted Wraith to IsElite (joins
|
||||
Spawn+Revenant).
|
||||
- abyss_portal: promoted Nalfeshnee + Vrock to IsElite (collapses
|
||||
standard pool to Quasit alone, ≥99% win).
|
||||
|
||||
Outlier-vs-sibling completion (Phase 3-B best cell, 200 trials):
|
||||
|
||||
| Zone | Before | After | Sibling |
|
||||
|------|-------:|------:|--------:|
|
||||
| crypt_valdris T1 | 8.5% | **46.0%** | 45.0% |
|
||||
| forest_shadows T2 | 0.0% | **7.5%** | 13.0% |
|
||||
| manor_blackspire T3| 0.5% | **14.5%** | 3.0% |
|
||||
| abyss_portal T5 | 0.0% | **25.0%** | 57.5% |
|
||||
|
||||
Phase 3-B tier mean (b=50, f=tier) before → after:
|
||||
T1 26.8% → 44.0% (+17pp), T2 6.2% → 10.0% (+4),
|
||||
T3 2.5% → 8.5% (+6), T4 unchanged, T5 27.5% → 41.0% (+14).
|
||||
|
||||
**Exit (partial):** the four off-band outliers are no longer
|
||||
outliers — every per-zone cell is within the spread of its tier
|
||||
siblings. The Phase 4 plan's stricter exit ("all per-zone cells
|
||||
within target band") is **not** met: T2/T3/T5 sibling pairs still
|
||||
sit below band (T2 7-13% vs 62-82%; T3 3-14% vs 54-74%; T5 25-57%
|
||||
vs 36-56%). That gap is tier-wide, not zone-specific — both zones at
|
||||
each problem tier underperform together — so no further per-zone
|
||||
tool will close it. Phase 5 (or a follow-up tier-wide pass) needs to
|
||||
take over.
|
||||
|
||||
**Next:** Phase 5. Candidate moves are tier-wide: revisit player
|
||||
gear-tier mapping at T2/T3 (the centerline level vs gear ladder, see
|
||||
`phase1TierCenterline`), reconsider the elite-bracket threshold
|
||||
per-tier instead of global, or ship `burn=75` as the new live global
|
||||
since Phase 4-B already converted T4 to playable at b=50.
|
||||
|
||||
### Phase 5 — optional MAD / second-order
|
||||
|
||||
|
||||
Reference in New Issue
Block a user