Commit Graph

260 Commits

Author SHA1 Message Date
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
type-two
6847a47fea SIDE B campaign: three Stream missions (m04 Onboarding quota race, m05 Engagement Metrics wave defence, m06 The Shuffle finale)
Adds tools/gen_sideb.py — one data-driven builder replacing the copy-pasted
gen_missionN.py pattern — and tools/smoketest.sh, which reports
PASS/FAIL/DISPLAY_UNAVAILABLE instead of the process-is-alive check that has
produced false passes twice now.

NOT verified in-game: the display went to sleep mid-session. Static checks all
pass (luac, check-yaml 0 errors, map refresh, check_assets, make) and the
already-verified m03 hangs identically, confirming it is environmental.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 23:35:15 +10:00
type-two
ef432e4182 Mission 03: THE DROP — campaign finale
Full base-building map against a live Stream bot holding The Algorithm behind a
defended base. Building the Mastering Studio triggers a scripted all-in
counterattack; silencing The Algorithm wins. Tick scan throttled to 1Hz.

SIDE A is now three missions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 23:19:43 +10:00
type-two
c09da56dbe Mission 02: CRATE DIGGERS — timed raid with no base building
Strike force + The Selector against a Stream transcoder outpost; 6-minute
countdown shown via SetMissionText, master lacquer is cut (killed) if the timer
beats you. Adds the lacquer prop (deliberately untargetable) and ScriptTriggers
on all actor templates, without which Trigger.OnKilled throws at map load.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 23:11:20 +10:00
type-two
e11ec402ff Terrain overhaul: 52-tile atlas from 5 generated surfaces, tone-harmonized so they read as one material family
Replaces the single flat grey tile. Adds tools/build_tiles.py (atlas builder
with edge-blending + tone matching), paint_terrain.py (surgical tile-plane
repaint: asphalt base, concrete pads, dirt blobs, groove patches near wax,
rubble clumps), jitter_wax.py, render_map.py (offline map preview), and
check_assets.py.

Also fixes the arena harness being rigged: both wax fields sat ~12 cells from
BotA and ~18 from BotB, so BotB starved for map reasons, not balance reasons.
Arena wax is now mirrored (7.1/18/18/19.8 from both starts). Seep interval
90 -> 20 after telemetry showed the slower rate still drained both economies.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 22:37:38 +10:00
type-two
bffe4e088a Fix two runtime-only bugs found on first live run: missing sidebar icons for the 4 facing-sheet units, and waxseed needing QuantizeFacingsFromSequence
Adds tools/check_assets.py — check-yaml does NOT resolve sprite file paths, so a
missing PNG only crashes at map load. This catches it statically.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 22:20:38 +10:00
type-two
f1984c16ea Document the display dependency: no display = silent hang at mod load, process-alive is not proof
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 19:13:31 +10:00
type-two
93ad888c32 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
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 19:12:35 +10:00
type-two
5255aeeb1f 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
Wax seeps fix the economy flatline the arena telemetry exposed: both bots hit
cash=0/stored=0 from tick 6250 with no way to recover.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 19:08:13 +10:00
type-two
1939f868b0 Fix AutoTarget null crash: add FrozenActorLayer to player, FrozenUnderFog on buildings
AttackMoveActivity scanned for frozen actors on a player with no
FrozenActorLayer -> NullReferenceException mid-match. Verified by a full
AI-vs-AI arena match running to completion (BotA won at tick ~10500).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 18:42:50 +10:00
type-two
975f305fa1 Round 4: balance-arena harness with lua telemetry, minimap radar, damage smoke, harvester-attack warning, Needle Drop + Compression maps
Fixes a critical bug: undeployed MCV vans now count for short-game survival —
previously every match ended at tick 1 (all players 'defeated', local player
'won'). The bot-vs-bot shellmap claim from earlier rounds was invalid for the
same reason: shellmaps stall with Bot: players and matches insta-ended. The
arena map + tools/balance_report.py is the real, verified harness.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 02:09:20 +10:00
type-two
4761245c61 Unit voices: MRP and Stream acknowledgment lines on all units
Some checks failed
Continuous Integration / Linux (.NET 6.0) (push) Has been cancelled
Continuous Integration / Linux (mono) (push) Has been cancelled
Continuous Integration / Windows (.NET 6.0) (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 17:24:09 +10:00
type-two
33826f0755 Weapon SFX (procedural synth), VINYLGOD README for the fresh repo
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 17:20:42 +10:00
type-two
20c83ee3f0 Round 3: superweapons — THE DROP (mastering) and THE SHUFFLE (Algorithm obelisk), support power palette, charge bars, announcer lines, AI fires them
Some checks are pending
Continuous Integration / Linux (.NET 6.0) (push) Waiting to run
Continuous Integration / Linux (mono) (push) Waiting to run
Continuous Integration / Windows (.NET 6.0) (push) Waiting to run
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 17:07:00 +10:00
type-two
a870c4a2a6 Defense turrets: Horn Pit (MRP) and Ad Tower (Stream), AI builds them
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 16:51:19 +10:00
type-two
7a02ca19fd Round 2: 16-facing rotating vehicles, projectile/explosion effects, death booms, real terrain + wax crystal art, Pressing District 4-player map
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 16:48:13 +10:00
type-two
2362a04605 Phase D+F: real MODELBEAST art for all 23 actors + icons, MC 8-TRACK announcer, 3-track ACE-Step soundtrack, emblem branding
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 04:51:31 +10:00
type-two
7bb6e649f7 Phase E: The Stream faction (9 actors), Wax AI bot for both factions, bot-vs-bot shellmap battle
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 04:40:06 +10:00
type-two
19fcb7c525 Phase C: weapons, combat units (spinner/stacktank/basscannon/roadie), mastering studio, conquest victory
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 04:34:17 +10:00
type-two
71879139c2 Phase B: production loop — MCV pop-up van, conyard, classic queues, sidebar palette, buildable roster
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 04:27:37 +10:00
type-two
86ca71b9a2 Phase A: Black Wax economy — resource layer, digger harvester, pressing plant, amp stack, vault, seeded maps, cash HUD, placeholder sprites
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 01:30:20 +10:00
type-two
030b3f2698 VINYLGOD baseline: rename SDK example mod to vinylgod, add lore, megaplan, MODELBEAST asset pipeline + first concepts
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 00:38:52 +10:00
dependabot[bot]
df103939c7 Bump actions/checkout from 5 to 6
Some checks failed
Continuous Integration / Linux (.NET 6.0) (push) Has been cancelled
Continuous Integration / Linux (mono) (push) Has been cancelled
Continuous Integration / Windows (.NET 6.0) (push) Has been cancelled
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-21 15:04:11 +01:00
Matthias Mailänder
49d7549bb5
Update to lowest supported Windows server image. 2025-09-15 23:14:09 +02:00
dependabot[bot]
1ac39db3f3 Bump actions/setup-dotnet from 4 to 5
Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet) from 4 to 5.
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](https://github.com/actions/setup-dotnet/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-dotnet
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 23:12:57 +02:00
dependabot[bot]
9275841524 Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 23:12:42 +02:00
TripleChecker
cf7f8c3e5c Fix: Correct typos in README.md 2025-07-24 17:34:59 +02:00
Matthias Mailänder
8d307d2c93
Enable Dependabot for GitHub Actions. 2025-06-28 20:37:55 +02:00
michaeldgg2
0653d7345b Fix comment for PACKAGING_COPY_ENGINE_FILES variable in mod.config
There's no longer a modcontent mod.
2025-05-06 11:25:04 +03:00
Pavel Penev
0059e22e0e Updated glyphs.png
OpenRA PRs 20226, 21317, 21318 and 21489.
2025-04-22 19:24:09 +02:00
Pavel Penev
12dbaa1248 HACK Remove FluentReferences lint check from the engine 2025-04-22 19:24:09 +02:00
Pavel Penev
68fbbef7da Update Dedicated-Server wiki page URL
OpenRA PR 20783.
2025-04-22 19:24:09 +02:00
Pavel Penev
652774e37c Avoid a third-party GH Actions
OpenRA PR 21805.
2025-04-22 19:24:09 +02:00
Pavel Penev
9d91f85dfa Fix .NET 6 CI false positives
OpenRA PR 21769.
2025-04-22 19:24:09 +02:00
Pavel Penev
6d86579a29 Adjusted Fluent files to 4-space indentation
OpenRA PR 21750.
2025-04-22 19:24:09 +02:00
Pavel Penev
47d98e5a53 Sweep unused translation key warnings under the rug 2025-04-22 19:24:09 +02:00
Pavel Penev
edc53225c6 Updated map editor - Part 2
OpenRA PRs 20226, 21317 and 21318, but only partially.
2025-04-22 19:24:09 +02:00
Pavel Penev
effdb94c25 Misc mod.yaml updates
These should be the final changes to mod.yaml.
2025-04-22 19:24:09 +02:00
Pavel Penev
d03f43b435 Ran the Utility's update-mod command
utility example --update-mod release-20231010 --detailed --apply
2025-04-22 19:24:09 +02:00
Pavel Penev
9f1ba7d7b1 Misc translation fixes 2025-04-22 19:24:09 +02:00
Pavel Penev
6090194745 Added mod metadata translations
OpenRA PR 21601.
2025-04-22 19:24:09 +02:00
Pavel Penev
65115cd013 Added faction dropdown translations
OpenRA PR 21484.
2025-04-22 19:24:09 +02:00
Pavel Penev
5969789ad3 Ran automatic extraction of chrome strings
OpenRA PR 21134.
Run utility command --extract-chrome-strings. NOTE: This expects that there is a /fluent folder with a /chrome.ftl file in your mod!
2025-04-22 19:24:09 +02:00
Pavel Penev
0909e4400a Updated map editor - Part 1
OpenRA PR 20226.
2025-04-22 19:24:09 +02:00
Pavel Penev
98dbe86780 Reworked Fluent file path and yaml references
OpenRA PR 21622.
2025-04-22 19:24:09 +02:00
Pavel Penev
b8814a6475 Turn ModelRenderer and VoxelCache into traits
OpenRA PR 21066.
2025-04-22 19:24:09 +02:00
Pavel Penev
e68a2cf79e Replace hardcoded mod.yaml Packages list with a mod-defined filesystem loader
OpenRA PR 21598.
2025-04-22 19:24:09 +02:00
Pavel Penev
80e8a5cac1 Updated targeted engine version 2025-04-22 19:24:09 +02:00
Pavel Penev
48bddbb5ac Fix using appimagetool for building for linux
OpenRA PR 21648.
2025-04-22 19:24:09 +02:00
Pavel Penev
87a4be4d2e Use appimagetool with non-glibc linux support
OpenRA PR 21635.
2025-04-22 19:24:09 +02:00