Archipelago/worlds/hylics2/Options.py

80 lines
2.0 KiB
Python
Raw Normal View History

from dataclasses import dataclass
from Options import Choice, Removed, Toggle, DefaultOnToggle, DeathLink, PerGameCommonOptions
2022-10-13 05:51:25 +00:00
2022-10-13 05:51:25 +00:00
class PartyShuffle(Toggle):
"""
Shuffles party members into the item pool.
Note that enabling this can significantly increase both the difficulty and length of a run.
"""
2022-10-13 05:51:25 +00:00
display_name = "Shuffle Party Members"
2022-10-13 05:51:25 +00:00
class GestureShuffle(Choice):
"""
Choose where gestures will appear in the item pool.
"""
2022-10-13 05:51:25 +00:00
display_name = "Shuffle Gestures"
option_anywhere = 0
option_tvs_only = 1
option_default_locations = 2
default = 0
2022-10-13 05:51:25 +00:00
class MedallionShuffle(Toggle):
"""
Shuffles red medallions into the item pool.
"""
2022-10-13 05:51:25 +00:00
display_name = "Shuffle Red Medallions"
class StartLocation(Choice):
"""
Select the starting location from 1 of 4 positions.
"""
display_name = "Start Location"
option_waynehouse = 0
option_viewaxs_edifice = 1
option_tv_island = 2
option_shield_facility = 3
default = 0
@classmethod
def get_option_name(cls, value: int) -> str:
if value == 1:
return "Viewax's Edifice"
if value == 2:
return "TV Island"
return super().get_option_name(value)
2022-10-13 05:51:25 +00:00
2022-10-13 05:51:25 +00:00
class ExtraLogic(DefaultOnToggle):
"""
Include some extra items in logic (CHARGE UP, 1x PAPER CUP) to prevent the game from becoming too difficult.
"""
2022-10-13 05:51:25 +00:00
display_name = "Extra Items in Logic"
2022-10-13 05:51:25 +00:00
class Hylics2DeathLink(DeathLink):
"""
When you die, everyone dies. The reverse is also true.
2022-10-13 05:51:25 +00:00
Note that this also includes death by using the PERISH gesture.
Can be toggled via in-game console command "/deathlink".
"""
2022-10-13 05:51:25 +00:00
@dataclass
class Hylics2Options(PerGameCommonOptions):
party_shuffle: PartyShuffle
gesture_shuffle: GestureShuffle
medallion_shuffle: MedallionShuffle
start_location: StartLocation
extra_items_in_logic: ExtraLogic
death_link: Hylics2DeathLink
# Removed options
random_start: Removed