SC2: Fix Conviction logic for Grant Story Tech (#5419)

* Fix Conviction logic for Grant Story Tech

- Kinetic Blast and Crushing Grip is available for the mission if story tech is granted

* Review updates
This commit is contained in:
Ziktofel
2025-09-30 18:35:26 +02:00
committed by GitHub
parent 92ff0ddba8
commit 897d5ab089
4 changed files with 70 additions and 28 deletions

View File

@@ -2341,8 +2341,7 @@ def get_locations(world: Optional["SC2World"]) -> Tuple[LocationData, ...]:
SC2HOTS_LOC_ID_OFFSET + 200,
LocationType.VICTORY,
lambda state: logic.basic_kerrigan(state)
or kerriganless
or logic.grant_story_tech == GrantStoryTech.option_grant,
or kerriganless,
hard_rule=logic.zerg_any_units_back_in_the_saddle_requirement,
),
make_location_data(
@@ -2351,8 +2350,7 @@ def get_locations(world: Optional["SC2World"]) -> Tuple[LocationData, ...]:
SC2HOTS_LOC_ID_OFFSET + 201,
LocationType.EXTRA,
lambda state: logic.basic_kerrigan(state)
or kerriganless
or logic.grant_story_tech == GrantStoryTech.option_grant,
or kerriganless,
hard_rule=logic.zerg_any_units_back_in_the_saddle_requirement,
),
make_location_data(
@@ -2379,8 +2377,7 @@ def get_locations(world: Optional["SC2World"]) -> Tuple[LocationData, ...]:
SC2HOTS_LOC_ID_OFFSET + 205,
LocationType.EXTRA,
lambda state: logic.basic_kerrigan(state)
or kerriganless
or logic.grant_story_tech == GrantStoryTech.option_grant,
or kerriganless,
hard_rule=logic.zerg_any_units_back_in_the_saddle_requirement,
),
make_location_data(
@@ -2446,7 +2443,7 @@ def get_locations(world: Optional["SC2World"]) -> Tuple[LocationData, ...]:
lambda state: (
logic.zerg_competent_comp(state)
and logic.zerg_competent_anti_air(state)
and (logic.basic_kerrigan(state) or kerriganless)
and (logic.basic_kerrigan(state, False) or kerriganless)
and logic.zerg_defense_rating(state, False, False) >= 3
and logic.zerg_power_rating(state) >= 5
),
@@ -3530,7 +3527,7 @@ def get_locations(world: Optional["SC2World"]) -> Tuple[LocationData, ...]:
kerriganless
or (
logic.two_kerrigan_actives(state)
and (logic.basic_kerrigan(state) or logic.grant_story_tech == GrantStoryTech.option_grant)
and logic.basic_kerrigan(state)
and logic.kerrigan_levels(state, 25)
)
),
@@ -3554,7 +3551,7 @@ def get_locations(world: Optional["SC2World"]) -> Tuple[LocationData, ...]:
kerriganless
or (
logic.two_kerrigan_actives(state)
and (logic.basic_kerrigan(state) or logic.grant_story_tech == GrantStoryTech.option_grant)
and logic.basic_kerrigan(state)
and logic.kerrigan_levels(state, 25)
)
),