SC2: Content update (#5312)

Feature highlights:
- Adds many content to the SC2 game
- Allows custom mission order
- Adds race-swapped missions for build missions (except Epilogue and NCO)
- Allows War Council Nerfs (Protoss units can get pre - War Council State, alternative units get another custom nerf to match the power level of base units)
- Revamps Predator's upgrade tree (never was considered strategically important)
- Adds some units and upgrades
- Locked and excluded items can specify quantity
- Key mode (if opt-in, missions require keys to be unlocked on top of their regular regular requirements
- Victory caches - Victory locations can grant multiple items to the multiworld instead of one 
- The generator is more resilient for generator failures as it validates logic for item excludes
- Fixes the following issues:
  - https://github.com/ArchipelagoMW/Archipelago/issues/3531 
  - https://github.com/ArchipelagoMW/Archipelago/issues/3548
This commit is contained in:
Ziktofel
2025-09-02 17:40:58 +02:00
committed by GitHub
parent 2359cceb64
commit 5f1835c546
73 changed files with 46368 additions and 13655 deletions

61
worlds/sc2/starcraft2.kv Normal file
View File

@@ -0,0 +1,61 @@
<CampaignScroll>
scroll_type: ["content", "bars"]
bar_width: dp(12)
effect_cls: "ScrollEffect"
canvas.after:
Color:
rgba: (0.82, 0.2, 0, root.border_on)
Line:
width: 1.5
rectangle: self.x+1, self.y+1, self.width-1, self.height-1
<DownloadDataWarningMessage>
color: (1, 1, 1, 1)
canvas.before:
Color:
rgba: (0xd2/0xff, 0x33/0xff, 0, 1)
Rectangle:
pos: (self.x - 8, self.y - 8)
size: (self.width + 30, self.height + 16)
<MultiCampaignLayout>
cols: 1
size_hint_y: None
height: self.minimum_height + 15
padding: [5,0,dp(12),0]
<CampaignLayout>:
cols: 1
<MissionLayout>:
rows: 1
<RegionLayout>:
cols: 1
<ColumnLayout>:
rows: 1
<MissionCategory>:
cols: 1
spacing: [0,5]
<MissionButton>:
text_size: self.size
markup: True
halign: 'center'
valign: 'middle'
padding: [5,0,5,0]
outline_width: 1
canvas.before:
Color:
rgba: (1, 193/255, 86/255, root.is_goal)
Line:
width: 1
rectangle: (self.x, self.y + 0.5, self.width, self.height)
canvas.after:
Color:
rgba: (0.8, 0.8, 0.8, root.is_exit)
Line:
width: 1
rectangle: (self.x + 2, self.y + 3, self.width - 4, self.height - 4)