mirror of
https://github.com/prosolis/gogobee.git
synced 2026-07-15 00:32:40 +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.6 6.1 0 36 99 0 1
|
|
bard 12 dragons_lair 100 4 0 5 7.6 0 80 100 0 0
|
|
cleric 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
cleric 7 dragons_lair 100 4 0 3.5 5.1 0 13 100 0 0
|
|
cleric 12 dragons_lair 100 4 0 4 7.2 0 58 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.7 6 0 36 99 0 1
|
|
druid 12 dragons_lair 100 3 0 3.8 7.5 0 77 99 0 1
|
|
fighter 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
fighter 7 dragons_lair 100 4 0 4.3 7.2 0 72 99 0 1
|
|
fighter 12 dragons_lair 100 4 0 4.4 8 0 100 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.4 5.6 0 28 100 0 0
|
|
mage 12 dragons_lair 100 6 0 6.3 7.3 0 66 99 0 1
|
|
paladin 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
paladin 7 dragons_lair 100 3 0 3.9 7 0 59 93 0 7
|
|
paladin 12 dragons_lair 100 4 0 4.2 7.9 0 96 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.9 7.7 0 87 97 0 3
|
|
ranger 12 dragons_lair 100 7 0 9.2 8 0 100 100 0 0
|
|
rogue 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
rogue 7 dragons_lair 100 5 0 5.9 6.5 0 52 95 0 5
|
|
rogue 12 dragons_lair 100 6 0 6.5 7.9 0 96 99 0 1
|
|
sorcerer 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
sorcerer 7 dragons_lair 100 3 0 4.1 5.4 0 18 98 0 2
|
|
sorcerer 12 dragons_lair 100 5 0 5.3 7.2 0 60 100 0 0
|
|
warlock 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
|
|
warlock 7 dragons_lair 100 3 0 3.4 5.8 0 28 100 0 0
|
|
warlock 12 dragons_lair 100 3 0 4.3 7.4 0 70 100 0 0
|
|
bard 3 forest_shadows 100 4 0 5.1 4.3 0 1 100 0 0
|
|
bard 7 forest_shadows 100 7 0 7.6 6 0 99 100 0 0
|
|
bard 12 forest_shadows 100 6 6 6.6 7 100 100 0 0 0
|
|
cleric 3 forest_shadows 100 4 0 5.1 4.6 0 1 100 0 0
|
|
cleric 7 forest_shadows 100 6 0 7.5 5.8 0 73 100 0 0
|
|
cleric 12 forest_shadows 100 9 9 8.1 6.8 90 90 10 0 0
|
|
druid 3 forest_shadows 100 5 0 6 5.2 0 11 100 0 0
|
|
druid 7 forest_shadows 100 7 7 7.9 6.8 84 99 16 0 0
|
|
druid 12 forest_shadows 100 7 7 7.4 7 100 100 0 0 0
|
|
fighter 3 forest_shadows 100 4 0 5.2 5.3 0 28 100 0 0
|
|
fighter 7 forest_shadows 100 6 6 6.7 7 100 100 0 0 0
|
|
fighter 12 forest_shadows 100 5 5 6.2 7 100 100 0 0 0
|
|
mage 3 forest_shadows 100 3 0 4.6 3.9 0 1 100 0 0
|
|
mage 7 forest_shadows 100 6 6 6.7 6.8 86 96 14 0 0
|
|
mage 12 forest_shadows 100 6 6 7 7 99 99 1 0 0
|
|
paladin 3 forest_shadows 100 6 0 7.8 5.9 0 86 100 0 0
|
|
paladin 7 forest_shadows 100 7 7 7.7 7 100 100 0 0 0
|
|
paladin 12 forest_shadows 100 6 6 6.6 7 100 100 0 0 0
|
|
ranger 3 forest_shadows 100 11 0 11.7 5.2 0 23 100 0 0
|
|
ranger 7 forest_shadows 100 13 13 14.8 7 100 100 0 0 0
|
|
ranger 12 forest_shadows 100 13 13 15.1 7 100 100 0 0 0
|
|
rogue 3 forest_shadows 100 5 0 6.4 5.8 0 80 100 0 0
|
|
rogue 7 forest_shadows 100 8 8 8.6 6.9 85 100 15 0 0
|
|
rogue 12 forest_shadows 100 6 6 6.7 7 100 100 0 0 0
|
|
sorcerer 3 forest_shadows 100 4 0 5.3 3.5 0 0 100 0 0
|
|
sorcerer 7 forest_shadows 100 6 6 6.4 6.5 63 86 37 0 0
|
|
sorcerer 12 forest_shadows 100 7 7 7.5 7 98 98 2 0 0
|
|
warlock 3 forest_shadows 100 4 0 5.1 4.2 0 1 100 0 0
|
|
warlock 7 forest_shadows 100 5 7 6.4 6.3 34 96 66 0 0
|
|
warlock 12 forest_shadows 100 7 7 7.8 7 100 100 0 0 0
|
|
bard 3 goblin_warrens 100 4 0 4.4 4.8 0 80 100 0 0
|
|
bard 7 goblin_warrens 100 5 5 5.7 6 100 100 0 0 0
|
|
bard 12 goblin_warrens 100 4 4 5 6 100 100 0 0 0
|
|
cleric 3 goblin_warrens 100 4 5 4.6 5 15 85 85 0 0
|
|
cleric 7 goblin_warrens 100 4 4 4.6 5.8 91 91 9 0 0
|
|
cleric 12 goblin_warrens 100 4 4 4.9 5.9 96 96 4 0 0
|
|
druid 3 goblin_warrens 100 3 3 4 5.6 67 93 33 0 0
|
|
druid 7 goblin_warrens 100 5 5 5.4 6 100 100 0 0 0
|
|
druid 12 goblin_warrens 100 4 4 4.6 6 100 100 0 0 0
|
|
fighter 3 goblin_warrens 100 5 5 5.2 5.5 54 92 46 0 0
|
|
fighter 7 goblin_warrens 100 5 5 6.1 6 100 100 0 0 0
|
|
fighter 12 goblin_warrens 100 4 4 5.7 6 100 100 0 0 0
|
|
mage 3 goblin_warrens 100 6 8 6.9 5.5 67 78 33 0 0
|
|
mage 7 goblin_warrens 100 6 6 7 5.9 97 97 3 0 0
|
|
mage 12 goblin_warrens 100 7 7 7.7 6 100 100 0 0 0
|
|
paladin 3 goblin_warrens 100 5 5 5.1 5.9 88 98 12 0 0
|
|
paladin 7 goblin_warrens 100 5 5 5.6 6 100 100 0 0 0
|
|
paladin 12 goblin_warrens 100 4 4 5.3 6 100 100 0 0 0
|
|
ranger 3 goblin_warrens 100 5 6 5.9 5.5 64 90 36 0 0
|
|
ranger 7 goblin_warrens 100 6 6 6.3 6 100 100 0 0 0
|
|
ranger 12 goblin_warrens 100 5 5 5.5 6 100 100 0 0 0
|
|
rogue 3 goblin_warrens 100 7 7 6.9 5.8 81 95 19 0 0
|
|
rogue 7 goblin_warrens 100 6 6 6.9 6 100 100 0 0 0
|
|
rogue 12 goblin_warrens 100 7 7 7.2 6 100 100 0 0 0
|
|
sorcerer 3 goblin_warrens 100 6 6 6.5 5.5 66 79 34 0 0
|
|
sorcerer 7 goblin_warrens 100 7 7 6.9 5.9 95 95 5 0 0
|
|
sorcerer 12 goblin_warrens 100 6 6 7.1 6 100 100 0 0 0
|
|
warlock 3 goblin_warrens 100 4 5 4.9 5.4 56 83 44 0 0
|
|
warlock 7 goblin_warrens 100 4 4 5 6 100 100 0 0 0
|
|
warlock 12 goblin_warrens 100 5 5 5.2 6 100 100 0 0 0
|
|
bard 3 manor_blackspire 100 3 0 4.5 4.6 0 1 100 0 0
|
|
bard 7 manor_blackspire 100 4 0 4.8 6 0 58 100 0 0
|
|
bard 12 manor_blackspire 100 5 11 4.8 6 2 76 98 0 0
|
|
cleric 3 manor_blackspire 100 3 0 3.3 4.1 0 1 100 0 0
|
|
cleric 7 manor_blackspire 100 4 0 4.3 5.7 0 24 100 0 0
|
|
cleric 12 manor_blackspire 100 3 4 3.8 6 9 55 91 0 0
|
|
druid 3 manor_blackspire 100 4 0 4.3 5.4 0 10 100 0 0
|
|
druid 7 manor_blackspire 100 4 0 4.5 6 0 57 100 0 0
|
|
druid 12 manor_blackspire 100 4 4 4.8 6.7 74 79 26 0 0
|
|
fighter 3 manor_blackspire 100 4 0 3.9 5.4 0 21 100 0 0
|
|
fighter 7 manor_blackspire 100 4 5 4.1 6.1 14 100 86 0 0
|
|
fighter 12 manor_blackspire 100 4 4 4.4 7 100 100 0 0 0
|
|
mage 3 manor_blackspire 100 4 0 4.7 3.8 0 0 100 0 0
|
|
mage 7 manor_blackspire 100 5 22 6.4 5.9 1 49 99 0 0
|
|
mage 12 manor_blackspire 100 5 5 5.8 6.5 49 63 51 0 0
|
|
paladin 3 manor_blackspire 100 3 0 3.6 5.8 0 47 100 0 0
|
|
paladin 7 manor_blackspire 100 5 4 5 6.2 17 98 83 0 0
|
|
paladin 12 manor_blackspire 100 4 4 4.9 7 96 100 4 0 0
|
|
ranger 3 manor_blackspire 100 4 0 5 5.3 0 15 100 0 0
|
|
ranger 7 manor_blackspire 100 5 5 5.9 6.3 30 100 70 0 0
|
|
ranger 12 manor_blackspire 100 4 4 5.3 7 100 100 0 0 0
|
|
rogue 3 manor_blackspire 100 5 0 6.4 5.6 0 34 100 0 0
|
|
rogue 7 manor_blackspire 100 6 7 6.6 6 4 99 96 0 0
|
|
rogue 12 manor_blackspire 100 6 6 6.9 6.9 90 100 10 0 0
|
|
sorcerer 3 manor_blackspire 100 4 0 5 3.9 0 0 100 0 0
|
|
sorcerer 7 manor_blackspire 100 7 6 7.4 5.9 1 36 99 0 0
|
|
sorcerer 12 manor_blackspire 100 6 7 7 6.5 47 60 53 0 0
|
|
warlock 3 manor_blackspire 100 4 0 4.5 4.3 0 0 100 0 0
|
|
warlock 7 manor_blackspire 100 4 0 4.9 6 0 65 100 0 0
|
|
warlock 12 manor_blackspire 100 4 5 5.3 6.3 34 69 66 0 0
|
|
bard 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
bard 7 underdark 100 3 0 3.7 3.8 0 3 100 0 0
|
|
bard 12 underdark 100 4 0 4 5.7 0 66 100 0 0
|
|
cleric 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
cleric 7 underdark 100 2 0 3 3.1 0 1 100 0 0
|
|
cleric 12 underdark 100 4 0 5.1 4.8 0 13 100 0 0
|
|
druid 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
druid 7 underdark 100 3 0 4.3 3.7 0 7 100 0 0
|
|
druid 12 underdark 100 5 5 5.3 6.3 34 84 66 0 0
|
|
fighter 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
fighter 7 underdark 100 5 6 4.9 6.1 10 96 90 0 0
|
|
fighter 12 underdark 100 4 4 4.8 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 3 3.1 0 0 100 0 0
|
|
mage 12 underdark 100 4 4 4.6 5.8 19 60 81 0 0
|
|
paladin 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
paladin 7 underdark 100 3 2 4.3 5.9 2 80 98 0 0
|
|
paladin 12 underdark 100 4 4 4.8 7 96 100 4 0 0
|
|
ranger 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
ranger 7 underdark 100 9 10 9.3 6.3 30 98 70 0 0
|
|
ranger 12 underdark 100 9 9 9.7 7 100 100 0 0 0
|
|
rogue 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
rogue 7 underdark 100 5 4 4.7 5.8 5 80 95 0 0
|
|
rogue 12 underdark 100 5 5 5.5 6.9 94 99 6 0 0
|
|
sorcerer 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
sorcerer 7 underdark 100 2 0 2.7 2.9 0 1 100 0 0
|
|
sorcerer 12 underdark 100 3 8 3.7 5.1 8 32 92 0 0
|
|
warlock 3 underdark 100 0 0 0 0 0 0 0 0 0
|
|
warlock 7 underdark 100 2 0 3.5 3.6 0 3 100 0 0
|
|
warlock 12 underdark 100 4 2 4.1 5.6 7 69 93 0 0
|