Archipelago icon indicating copy to clipboard operation
Archipelago copied to clipboard

sc2: fix supreme logic hole

Open MatthewMarinets opened this issue 3 weeks ago • 2 comments

What is this fixing or adding?

Fixing a logic issue reported today where Kerrigan would not have her abilities granted for Supreme, but logic assumed she would, specifically if Kerrigan is enabled, HotS is the campaign, but zerg is not a selected race.

Also fixed an issue where Kinetic Blast wasn't listed as a vanilla ability/tier 1 ability (Crushing Grip was duplicated in its place instead).

How was this tested?

Did some local test gens and checked the spoiler to make sure there were no Kerrigan abilities in the pool. Options were:

  • Kerrigan enabled
  • HotS included
  • Zerg not in selected races
  • Grant story tech off
  • Tested with tactics level on advanced and on standard

Tested that under these conditions, starting Supreme properly granted story tech.

If this makes graphical changes, please attach screenshots.

None

MatthewMarinets avatar Dec 20 '25 01:12 MatthewMarinets

Changes look sensible, but the unit tests are failing. This seems to be related to a test that checks for disabling Epilogue when you disable the Zerg race.

Snarkie avatar Dec 20 '25 08:12 Snarkie

I had to do a bit of a refactor to handle the root cause of that test, as it was indicative of another issue. Specifically on vanilla-like mission orders, mission exclusions are a little more limited, and so excluding a race wasn't taking effect. I fixed this by automatically excluding campaigns associated with with an excluded race as a pre-processing step, if no race-swap would be available.

Tested by running some generations with vanilla mission order, including all campaigns, but excluding one race at a time. Confirmed campaigns were excluded if their race was excluded.

Example yaml:

name: phaneros
game: Starcraft 2
Starcraft 2:
  mission_order: vanilla
  enabled_campaigns:
    - 'Legacy of the Void'
    - 'Whispers of Oblivion (Legacy of the Void: Prologue)'
    - 'Heart of the Swarm'
    - 'Prophecy'
    - 'Wings of Liberty'
    - 'Nova Covert Ops'
    - 'Into the Void (Legacy of the Void: Epilogue)'
  selected_races: ['Terran', 'Zerg']

MatthewMarinets avatar Dec 20 '25 09:12 MatthewMarinets

Failed unit tests are from Link's Awakening DX, unrelated to this change.

MatthewMarinets avatar Dec 27 '25 05:12 MatthewMarinets