Skip to content

Commit c94b917

Browse files
N00byKingFlySniper
authored andcommitted
sm64ex: All Bowser Stages Goal (ArchipelagoMW#2112)
1 parent 8574234 commit c94b917

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

worlds/sm64ex/Options.py

+7
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,12 @@ class ExclamationBoxes(Choice):
8888
option_Off = 0
8989
option_1Ups_Only = 1
9090

91+
class CompletionType(Choice):
92+
"""Set goal for game completion"""
93+
display_name = "Completion Goal"
94+
option_Last_Bowser_Stage = 0
95+
option_All_Bowser_Stages = 1
96+
9197

9298
class ProgressiveKeys(DefaultOnToggle):
9399
"""Keys will first grant you access to the Basement, then to the Secound Floor"""
@@ -110,4 +116,5 @@ class ProgressiveKeys(DefaultOnToggle):
110116
"death_link": DeathLink,
111117
"BuddyChecks": BuddyChecks,
112118
"ExclamationBoxes": ExclamationBoxes,
119+
"CompletionType" : CompletionType,
113120
}

worlds/sm64ex/Rules.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -124,4 +124,9 @@ def set_rules(world, player: int, area_connections):
124124
add_rule(world.get_location("MIPS 1", player), lambda state: state.can_reach("Basement", 'Region', player) and state.has("Power Star", player, world.MIPS1Cost[player].value))
125125
add_rule(world.get_location("MIPS 2", player), lambda state: state.can_reach("Basement", 'Region', player) and state.has("Power Star", player, world.MIPS2Cost[player].value))
126126

127-
world.completion_condition[player] = lambda state: state.can_reach("Bowser in the Sky", 'Region', player)
127+
if world.CompletionType[player] == "last_bowser_stage":
128+
world.completion_condition[player] = lambda state: state.can_reach("Bowser in the Sky", 'Region', player)
129+
elif world.CompletionType[player] == "all_bowser_stages":
130+
world.completion_condition[player] = lambda state: state.can_reach("Bowser in the Dark World", 'Region', player) and \
131+
state.can_reach("Bowser in the Fire Sea", 'Region', player) and \
132+
state.can_reach("Bowser in the Sky", 'Region', player)

worlds/sm64ex/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ def fill_slot_data(self):
154154
"MIPS2Cost": self.multiworld.MIPS2Cost[self.player].value,
155155
"StarsToFinish": self.multiworld.StarsToFinish[self.player].value,
156156
"DeathLink": self.multiworld.death_link[self.player].value,
157+
"CompletionType" : self.multiworld.CompletionType[self.player].value,
157158
}
158159

159160
def generate_output(self, output_directory: str):

0 commit comments

Comments
 (0)