mirror of
https://github.com/prosolis/gogobee.git
synced 2026-07-15 08:32:41 +00:00
The post-J1 sweep had the casters clustered at 19–22% L12 clear, vs martials at 70–80%. A per-round trace across 240 boss-room fights showed why: autoResolveCombat dispatched !attack only — zero spell_casts, zero mid-fight consumable uses across every caster class. The entire "caster cliff" was the sim measuring a strawman where casters couldn't cast. J2a teaches the sim's autoResolveCombat to mirror a competent prod player: heal at low HP if an inventory consumable is available, otherwise cast the highest-EV damage spell (slot or cantrip), otherwise swing. BuildCharacter now seeds the known-spell list via ensureSpellsForCharacter so the synthetic spellbook is populated. A -trace flag on the cmd attaches the raw CombatEvent stream to the last combat of each run for post-hoc diagnostics. A first re-baseline (n=100, all 10 classes) showed Ranger regressed -35.8pp — the picker was burning L3 slots on lightning_arrow when Ranger's weapon chassis (Hunter's Mark + Extra Attack) was the better play. Added simMartialFirstClass to gate the picker off for Ranger and Paladin (whose default kit is also weapon-first / no damage spells). J2c experimented with widening the picker to control + heal spells; heal-spell preempt cost druid 10pp (slot heals are 10HP vs 40HP consumables) and control-spell scoring at 22 cost warlock 6.6pp. Both reverted. Corpora retained under baseline_j2c*.jsonl for the post-mortem in sim_results/j2b_findings.md. Post-J2 L12 leaderboard (baseline_j2a_v2_all10.jsonl, n=100): fighter 80.0, ranger 80.0, paladin 78.4, rogue 76.8, druid 61.6, mage 53.4, sorcerer 50.6, warlock 48.2, bard 40.4, cleric 39.0. The caster cluster is dissolved; martials are within ±5pp of J1 (sweep noise). Bard/cleric still trail, but it's no longer a sim artifact — their defaultKnownSpells damage rosters cap at L2 and the picker can't pick spells they don't have. That's a prod-level fix, deferred. J3 trace (sim_results/j3_findings.md): T5 dragons_lair walls every solo class at 0% (Infernax 546 HP vs solo player HP 110–175; ~25% boss HP eaten before TPK across all classes). Per the J3 plan menu, this is party-shaped content the engine doesn't yet have parties for. Surface a TwinBee-voiced heads-up in handleDnDExpeditionCmd's start path and a matching tag in !expedition list — players see "raid-shaped — solo runs not yet survivable" before they spend outfitting coin. No combat or class balance changes. Files: cmd/expedition-sim/main.go +trace flag; expedition_sim.go picker + SimCombatSummary.Events + spellbook seed; dnd_expedition_cmd.go raidContentWarning + list tag. All baselines + traces + findings checked in under sim_results/.
152 lines
16 KiB
Plaintext
152 lines
16 KiB
Plaintext
class level zone n p50_yld p50_yld_clr mean_yld mean_rms %clr %boss %tpk %fled %ext
|
|
bard 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
bard 7 dragons_lair 100 3 0 3.7 5.7 0 24 98 0 2
|
|
bard 12 dragons_lair 100 3 0 4.2 7.5 0 77 100 0 0
|
|
cleric 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
cleric 7 dragons_lair 100 3 0 3.4 5.4 0 7 100 0 0
|
|
cleric 12 dragons_lair 100 3 0 3.6 7.1 0 60 100 0 0
|
|
druid 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
druid 7 dragons_lair 100 3 0 3.5 5.8 0 29 99 0 1
|
|
druid 12 dragons_lair 100 4 0 4.1 7.4 0 72 97 0 3
|
|
fighter 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
fighter 7 dragons_lair 100 3 0 3.9 6.8 0 56 97 0 3
|
|
fighter 12 dragons_lair 100 3 0 3.6 8 0 99 100 0 0
|
|
mage 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
mage 7 dragons_lair 100 4 0 4.9 5.6 0 25 99 0 1
|
|
mage 12 dragons_lair 100 5 0 5.5 7.3 0 68 100 0 0
|
|
paladin 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
paladin 7 dragons_lair 100 2 0 3.1 6.9 0 65 99 0 1
|
|
paladin 12 dragons_lair 100 4 0 4.5 7.9 0 95 100 0 0
|
|
ranger 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
ranger 7 dragons_lair 100 8 0 8.5 7.8 0 91 98 0 2
|
|
ranger 12 dragons_lair 100 8 0 8.8 8 0 99 100 0 0
|
|
rogue 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
rogue 7 dragons_lair 100 5 0 4.8 6.5 0 53 94 0 6
|
|
rogue 12 dragons_lair 100 5 0 6.6 7.9 0 97 100 0 0
|
|
sorcerer 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
sorcerer 7 dragons_lair 100 5 0 5.1 5.2 0 18 100 0 0
|
|
sorcerer 12 dragons_lair 100 5 0 5.4 7.2 0 62 100 0 0
|
|
warlock 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
warlock 7 dragons_lair 100 4 0 4.1 6 0 34 99 0 1
|
|
warlock 12 dragons_lair 100 4 0 4.4 7.5 0 76 98 0 2
|
|
bard 3 forest_shadows 100 3 0 4.1 4.2 0 1 100 0 0
|
|
bard 7 forest_shadows 100 6 0 7.1 6 0 99 100 0 0
|
|
bard 12 forest_shadows 100 7 7 7.8 7 100 100 0 0 0
|
|
cleric 3 forest_shadows 100 5 0 5.6 4.7 0 3 100 0 0
|
|
cleric 7 forest_shadows 100 6 1 6.7 5.7 5 68 95 0 0
|
|
cleric 12 forest_shadows 100 7 8 8.6 6.6 81 81 19 0 0
|
|
druid 3 forest_shadows 100 5 0 5.1 5.1 0 13 100 0 0
|
|
druid 7 forest_shadows 100 6 5 7.6 6.9 91 100 9 0 0
|
|
druid 12 forest_shadows 100 7 7 7.7 7 100 100 0 0 0
|
|
fighter 3 forest_shadows 100 5 0 5.8 5.3 0 25 100 0 0
|
|
fighter 7 forest_shadows 100 6 6 6.5 7 100 100 0 0 0
|
|
fighter 12 forest_shadows 100 6 6 7.4 7 100 100 0 0 0
|
|
mage 3 forest_shadows 100 4 0 4.4 3.8 0 0 100 0 0
|
|
mage 7 forest_shadows 100 6 7 7 6.9 89 98 11 0 0
|
|
mage 12 forest_shadows 100 7 7 7.4 7 100 100 0 0 0
|
|
paladin 3 forest_shadows 100 6 0 6.9 5.8 0 77 100 0 0
|
|
paladin 7 forest_shadows 100 6 6 6.6 7 100 100 0 0 0
|
|
paladin 12 forest_shadows 100 6 6 6.4 7 100 100 0 0 0
|
|
ranger 3 forest_shadows 100 12 0 11.8 5.3 0 33 100 0 0
|
|
ranger 7 forest_shadows 100 16 16 17.5 6 3 100 97 0 0
|
|
ranger 12 forest_shadows 100 14 14 16 7 100 100 0 0 0
|
|
rogue 3 forest_shadows 100 5 0 6.3 5.7 0 69 100 0 0
|
|
rogue 7 forest_shadows 100 6 7 6.9 6.8 80 100 20 0 0
|
|
rogue 12 forest_shadows 100 7 7 6.9 7 100 100 0 0 0
|
|
sorcerer 3 forest_shadows 100 3 0 4.1 3.6 0 0 100 0 0
|
|
sorcerer 7 forest_shadows 100 6 6 7.5 6.5 62 85 38 0 0
|
|
sorcerer 12 forest_shadows 100 6 6 7.2 7 100 100 0 0 0
|
|
warlock 3 forest_shadows 100 4 0 4.6 4.1 0 0 100 0 0
|
|
warlock 7 forest_shadows 100 6 6 6.6 6.4 45 96 55 0 0
|
|
warlock 12 forest_shadows 100 5 5 6.5 7 100 100 0 0 0
|
|
bard 3 goblin_warrens 100 5 0 4.8 4.9 0 93 100 0 0
|
|
bard 7 goblin_warrens 100 4 4 5.4 6 99 99 1 0 0
|
|
bard 12 goblin_warrens 100 4 4 4.5 6 100 100 0 0 0
|
|
cleric 3 goblin_warrens 100 4 3 4.3 5 9 86 91 0 0
|
|
cleric 7 goblin_warrens 100 4 4 5.2 5.9 96 96 4 0 0
|
|
cleric 12 goblin_warrens 100 4 4 4.9 5.9 96 96 4 0 0
|
|
druid 3 goblin_warrens 100 5 5 5.1 5.6 67 92 33 0 0
|
|
druid 7 goblin_warrens 100 3 3 4.1 6 100 100 0 0 0
|
|
druid 12 goblin_warrens 100 4 4 4.8 6 100 100 0 0 0
|
|
fighter 3 goblin_warrens 100 4 5 5.1 5.6 66 94 34 0 0
|
|
fighter 7 goblin_warrens 100 4 4 5.2 6 100 100 0 0 0
|
|
fighter 12 goblin_warrens 100 4 4 5 6 100 100 0 0 0
|
|
mage 3 goblin_warrens 100 7 7 6.8 5.6 68 87 32 0 0
|
|
mage 7 goblin_warrens 100 5 5 6.3 6 100 100 0 0 0
|
|
mage 12 goblin_warrens 100 7 7 7.5 6 100 100 0 0 0
|
|
paladin 3 goblin_warrens 100 4 5 5.4 5.8 80 97 20 0 0
|
|
paladin 7 goblin_warrens 100 5 5 5.5 6 100 100 0 0 0
|
|
paladin 12 goblin_warrens 100 5 5 6.1 6 100 100 0 0 0
|
|
ranger 3 goblin_warrens 100 5 0 5.6 4.9 0 89 100 0 0
|
|
ranger 7 goblin_warrens 100 4 4 5.2 6 100 100 0 0 0
|
|
ranger 12 goblin_warrens 100 4 4 5.4 6 100 100 0 0 0
|
|
rogue 3 goblin_warrens 100 8 8 7.7 5.9 86 100 14 0 0
|
|
rogue 7 goblin_warrens 100 7 7 7.6 6 100 100 0 0 0
|
|
rogue 12 goblin_warrens 100 7 7 8 6 100 100 0 0 0
|
|
sorcerer 3 goblin_warrens 100 7 7 7.1 5.5 67 82 33 0 0
|
|
sorcerer 7 goblin_warrens 100 5 5 6.7 5.9 95 95 5 0 0
|
|
sorcerer 12 goblin_warrens 100 7 7 7 6 100 100 0 0 0
|
|
warlock 3 goblin_warrens 100 4 5 4.8 5.3 56 78 44 0 0
|
|
warlock 7 goblin_warrens 100 5 5 5.3 6 100 100 0 0 0
|
|
warlock 12 goblin_warrens 100 5 5 5.4 6 100 100 0 0 0
|
|
bard 3 manor_blackspire 100 4 0 4.5 4.6 0 2 100 0 0
|
|
bard 7 manor_blackspire 100 4 0 5.3 6 0 54 100 0 0
|
|
bard 12 manor_blackspire 100 4 3 4.5 6 1 68 99 0 0
|
|
cleric 3 manor_blackspire 100 3 0 3.9 4.4 0 0 100 0 0
|
|
cleric 7 manor_blackspire 100 4 0 4.8 5.7 0 32 100 0 0
|
|
cleric 12 manor_blackspire 100 5 5 5 6 6 58 94 0 0
|
|
druid 3 manor_blackspire 100 4 0 3.8 5 0 13 100 0 0
|
|
druid 7 manor_blackspire 100 4 0 4.9 6 0 58 100 0 0
|
|
druid 12 manor_blackspire 100 4 4 4.4 6.7 71 82 29 0 0
|
|
fighter 3 manor_blackspire 100 4 0 4.4 5.6 0 15 100 0 0
|
|
fighter 7 manor_blackspire 100 3 4 3.5 6.2 17 100 83 0 0
|
|
fighter 12 manor_blackspire 100 5 5 5.2 7 100 100 0 0 0
|
|
mage 3 manor_blackspire 100 4 0 5.6 3.9 0 0 100 0 0
|
|
mage 7 manor_blackspire 100 6 12 6.6 6 2 50 98 0 0
|
|
mage 12 manor_blackspire 100 5 6 6.1 6.5 46 68 54 0 0
|
|
paladin 3 manor_blackspire 100 3 0 4 5.7 0 42 100 0 0
|
|
paladin 7 manor_blackspire 100 3 3 4.3 6.1 5 99 95 0 0
|
|
paladin 12 manor_blackspire 100 4 4 4.3 6.9 91 100 9 0 0
|
|
ranger 3 manor_blackspire 100 4 0 5 5.4 0 17 100 0 0
|
|
ranger 7 manor_blackspire 100 5 0 5.8 6 0 100 100 0 0
|
|
ranger 12 manor_blackspire 100 5 5 5.1 6.1 10 100 90 0 0
|
|
rogue 3 manor_blackspire 100 6 0 6.6 5.6 0 42 100 0 0
|
|
rogue 7 manor_blackspire 100 6 0 7.1 6 0 98 100 0 0
|
|
rogue 12 manor_blackspire 100 6 6 6.6 6.8 82 100 18 0 0
|
|
sorcerer 3 manor_blackspire 100 5 0 5.2 3.6 0 0 100 0 0
|
|
sorcerer 7 manor_blackspire 100 7 0 8 5.9 0 40 100 0 0
|
|
sorcerer 12 manor_blackspire 100 5 5 7 6.5 47 69 53 0 0
|
|
warlock 3 manor_blackspire 100 4 0 4.8 4.4 0 0 100 0 0
|
|
warlock 7 manor_blackspire 100 4 0 5.4 6 0 49 100 0 0
|
|
warlock 12 manor_blackspire 100 5 4 5.5 6.3 27 80 73 0 0
|
|
bard 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
bard 7 underdark 100 2 0 3 3.7 0 5 100 0 0
|
|
bard 12 underdark 100 4 0 4.4 5.7 0 64 100 0 0
|
|
cleric 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
cleric 7 underdark 100 2 0 3.5 3.1 0 1 100 0 0
|
|
cleric 12 underdark 100 3 0 4.3 4.8 1 10 99 0 0
|
|
druid 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
druid 7 underdark 100 4 0 3.9 3.7 0 4 100 0 0
|
|
druid 12 underdark 100 5 5 5.7 6.2 33 77 67 0 0
|
|
fighter 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
fighter 7 underdark 100 4 6 5.5 6.1 10 90 90 0 0
|
|
fighter 12 underdark 100 4 4 4.7 7 100 100 0 0 0
|
|
mage 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
mage 7 underdark 100 2 0 2.9 3.4 0 1 100 0 0
|
|
mage 12 underdark 100 3 4 4.2 5.6 17 44 83 0 0
|
|
paladin 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
paladin 7 underdark 100 5 0 5.5 5.9 0 89 100 0 0
|
|
paladin 12 underdark 100 4 4 4.7 6.9 87 100 13 0 0
|
|
ranger 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
ranger 7 underdark 100 10 0 11.8 6 0 98 100 0 0
|
|
ranger 12 underdark 100 10 16 10.1 6 4 100 96 0 0
|
|
rogue 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
rogue 7 underdark 100 5 3 5.3 5.9 1 78 99 0 0
|
|
rogue 12 underdark 100 4 4 5 7 99 100 1 0 0
|
|
sorcerer 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
sorcerer 7 underdark 100 2 0 3.1 3.1 0 1 100 0 0
|
|
sorcerer 12 underdark 100 3 3 3.6 5.1 10 29 90 0 0
|
|
warlock 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
warlock 7 underdark 100 3 0 4 3.6 0 5 100 0 0
|
|
warlock 12 underdark 100 5 7 5.3 5.8 9 64 91 0 0
|