2024-04-18 16:40:53 +00:00
|
|
|
from dataclasses import dataclass
|
2024-05-14 18:35:32 +00:00
|
|
|
from Options import Choice, Removed, Toggle, DefaultOnToggle, DeathLink, PerGameCommonOptions
|
2022-10-13 05:51:25 +00:00
|
|
|
|
2024-05-21 21:53:00 +00:00
|
|
|
|
2022-10-13 05:51:25 +00:00
|
|
|
class PartyShuffle(Toggle):
|
2024-05-21 21:53:00 +00:00
|
|
|
"""
|
|
|
|
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"
|
|
|
|
|
2024-05-21 21:53:00 +00:00
|
|
|
|
2022-10-13 05:51:25 +00:00
|
|
|
class GestureShuffle(Choice):
|
2024-05-21 21:53:00 +00:00
|
|
|
"""
|
|
|
|
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
|
|
|
|
|
2024-05-21 21:53:00 +00:00
|
|
|
|
2022-10-13 05:51:25 +00:00
|
|
|
class MedallionShuffle(Toggle):
|
2024-05-21 21:53:00 +00:00
|
|
|
"""
|
|
|
|
Shuffles red medallions into the item pool.
|
|
|
|
"""
|
2022-10-13 05:51:25 +00:00
|
|
|
display_name = "Shuffle Red Medallions"
|
|
|
|
|
2024-05-21 21:53:00 +00:00
|
|
|
|
2024-05-14 18:35:32 +00:00
|
|
|
class StartLocation(Choice):
|
2024-05-21 21:53:00 +00:00
|
|
|
"""
|
|
|
|
Select the starting location from 1 of 4 positions.
|
|
|
|
"""
|
2024-05-14 18:35:32 +00:00
|
|
|
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
|
|
|
|
2024-05-21 21:53:00 +00:00
|
|
|
|
2022-10-13 05:51:25 +00:00
|
|
|
class ExtraLogic(DefaultOnToggle):
|
2024-05-21 21:53:00 +00:00
|
|
|
"""
|
|
|
|
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"
|
|
|
|
|
2024-05-21 21:53:00 +00:00
|
|
|
|
2022-10-13 05:51:25 +00:00
|
|
|
class Hylics2DeathLink(DeathLink):
|
2024-05-21 21:53:00 +00:00
|
|
|
"""
|
|
|
|
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.
|
2024-05-21 21:53:00 +00:00
|
|
|
|
|
|
|
Can be toggled via in-game console command "/deathlink".
|
|
|
|
"""
|
|
|
|
|
2022-10-13 05:51:25 +00:00
|
|
|
|
2024-04-18 16:40:53 +00:00
|
|
|
@dataclass
|
|
|
|
class Hylics2Options(PerGameCommonOptions):
|
|
|
|
party_shuffle: PartyShuffle
|
|
|
|
gesture_shuffle: GestureShuffle
|
|
|
|
medallion_shuffle: MedallionShuffle
|
2024-05-14 18:35:32 +00:00
|
|
|
start_location: StartLocation
|
2024-04-18 16:40:53 +00:00
|
|
|
extra_items_in_logic: ExtraLogic
|
2024-05-14 18:35:32 +00:00
|
|
|
death_link: Hylics2DeathLink
|
|
|
|
|
|
|
|
# Removed options
|
|
|
|
random_start: Removed
|