RECORDANDRONCO/tools
type-two 39ca9c78a5 AI balance pass driven by arena telemetry
Two fair-map matches showed MRP annihilating Stream by ~5min. Build-order
telemetry (new BALTYPES histogram in balance.lua) found the cause: Stream's
podfarm arrived at 5.8min vs MRP's merchtable at 1.7min, so the cheap-swarm
faction fielded 1 bufferbot against 17 djgrunts, and Stream spent 1500cr on the
Algorithm superweapon before it had an army.

Fixes:
 * BuildingFractions: barracks 1 -> 10, factories 1 -> 6 so army buildings come
   before tech. Result: podfarm 5.8min -> 2.5min, algorithm 3.3min -> 5.8min,
   and Stream survived to 9.5min with 13 buildings instead of being wiped at 5.2.
 * BuildingDelays on mastering/algorithm (4500) — no superweapon before an army.
 * UnitsToBuild shares normalised. Reading UnitBuilderBotModule showed these are
   PERCENTAGES of army composition, and mine summed to 233% per faction, which
   made unit selection collapse to iteration order and starved Stream of infantry.

balance_report.py now emits a verdict (flatline / runaway / stalled production)
and refuses to judge matches under 5 minutes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 10:48:13 +10:00
..
__pycache__ Round 2: 16-facing rotating vehicles, projectile/explosion effects, death booms, real terrain + wax crystal art, Pressing District 4-player map 2026-07-20 16:48:13 +10:00
balance_report.py AI balance pass driven by arena telemetry 2026-07-26 10:48:13 +10:00
build_tiles.py Terrain overhaul: 52-tile atlas from 5 generated surfaces, tone-harmonized so they read as one material family 2026-07-25 22:37:38 +10:00
check_assets.py Fix two runtime-only bugs found on first live run: missing sidebar icons for the 4 facing-sheet units, and waxseed needing QuantizeFacingsFromSequence 2026-07-25 22:20:38 +10:00
gen_map.py Round 2: 16-facing rotating vehicles, projectile/explosion effects, death booms, real terrain + wax crystal art, Pressing District 4-player map 2026-07-20 16:48:13 +10:00
gen_mission2.py Mission 02: CRATE DIGGERS — timed raid with no base building 2026-07-25 23:11:20 +10:00
gen_mission3.py Mission 03: THE DROP — campaign finale 2026-07-25 23:19:43 +10:00
gen_mission.py Round 5b: SIDE A campaign — mission 01 FIRST PRESSING with scripted objectives, briefing, timed Stream probe; shared campaign.lua, campaign rules, objectives panel, missions registry 2026-07-25 19:12:35 +10:00
gen_placeholders.py Phase D+F: real MODELBEAST art for all 23 actors + icons, MC 8-TRACK announcer, 3-track ACE-Step soundtrack, emblem branding 2026-07-20 04:51:31 +10:00
gen_sideb.py SIDE B campaign: three Stream missions (m04 Onboarding quota race, m05 Engagement Metrics wave defence, m06 The Shuffle finale) 2026-07-25 23:35:15 +10:00
jitter_wax.py Terrain overhaul: 52-tile atlas from 5 generated surfaces, tone-harmonized so they read as one material family 2026-07-25 22:37:38 +10:00
mbfacings.py Round 5a: heroes (The Selector, The Curator), air (45 Flyer, Compression Drone) with pads + Aircraft queue/tab, scouts (Boom Bike, Crawler), 5 weapons, wax seep regrowth on all maps 2026-07-25 19:08:13 +10:00
mbgen.py Phase D+F: real MODELBEAST art for all 23 actors + icons, MC 8-TRACK announcer, 3-track ACE-Step soundtrack, emblem branding 2026-07-20 04:51:31 +10:00
mbsprites.py Round 5a: heroes (The Selector, The Curator), air (45 Flyer, Compression Drone) with pads + Aircraft queue/tab, scouts (Boom Bike, Crawler), 5 weapons, wax seep regrowth on all maps 2026-07-25 19:08:13 +10:00
paint_terrain.py Terrain overhaul: 52-tile atlas from 5 generated surfaces, tone-harmonized so they read as one material family 2026-07-25 22:37:38 +10:00
place_seeds.py Round 5a: heroes (The Selector, The Curator), air (45 Flyer, Compression Drone) with pads + Aircraft queue/tab, scouts (Boom Bike, Crawler), 5 weapons, wax seep regrowth on all maps 2026-07-25 19:08:13 +10:00
render_map.py Terrain overhaul: 52-tile atlas from 5 generated surfaces, tone-harmonized so they read as one material family 2026-07-25 22:37:38 +10:00
seed_wax.py Phase A: Black Wax economy — resource layer, digger harvester, pressing plant, amp stack, vault, seeded maps, cash HUD, placeholder sprites 2026-07-20 01:30:20 +10:00
smoketest.sh SIDE B campaign: three Stream missions (m04 Onboarding quota race, m05 Engagement Metrics wave defence, m06 The Shuffle finale) 2026-07-25 23:35:15 +10:00