2022-01-21 21:42:11 +00:00
|
|
|
import typing
|
2024-01-16 12:38:19 +00:00
|
|
|
from dataclasses import dataclass
|
|
|
|
from Options import Option, DeathLink, Range, Toggle, PerGameCommonOptions
|
2022-01-21 21:42:11 +00:00
|
|
|
|
|
|
|
class DoorCost(Range):
|
|
|
|
"""Amount of Trinkets required to enter Areas. Set to 0 to disable artificial locks."""
|
2024-01-16 12:38:19 +00:00
|
|
|
display_name = "Door Cost"
|
2022-01-21 21:42:11 +00:00
|
|
|
range_start = 0
|
2022-01-25 22:17:22 +00:00
|
|
|
range_end = 3
|
2022-01-21 21:42:11 +00:00
|
|
|
default = 3
|
|
|
|
|
2022-02-05 15:53:43 +00:00
|
|
|
class AreaCostRandomizer(Toggle):
|
|
|
|
"""Randomize which Area requires which set of DoorCost Trinkets"""
|
|
|
|
display_name = "Area Cost Randomizer"
|
|
|
|
|
2022-01-21 21:42:11 +00:00
|
|
|
class DeathLinkAmnesty(Range):
|
|
|
|
"""Amount of Deaths to take before sending a DeathLink signal, for balancing difficulty"""
|
2024-01-16 12:38:19 +00:00
|
|
|
display_name = "Death Link Amnesty"
|
2022-01-21 21:42:11 +00:00
|
|
|
range_start = 0
|
|
|
|
range_end = 30
|
|
|
|
default = 15
|
|
|
|
|
2022-02-04 20:22:26 +00:00
|
|
|
class AreaRandomizer(Toggle):
|
|
|
|
"""Randomize Entrances to Areas"""
|
2022-03-18 17:17:19 +00:00
|
|
|
display_name = "Area Randomizer"
|
2022-02-04 20:22:26 +00:00
|
|
|
|
2022-02-04 21:56:54 +00:00
|
|
|
class MusicRandomizer(Toggle):
|
|
|
|
"""Randomize Music"""
|
2022-03-18 17:17:19 +00:00
|
|
|
display_name = "Music Randomizer"
|
2022-02-04 21:56:54 +00:00
|
|
|
|
2024-01-16 12:38:19 +00:00
|
|
|
@dataclass
|
|
|
|
class V6Options(PerGameCommonOptions):
|
|
|
|
music_rando: MusicRandomizer
|
|
|
|
area_rando: AreaRandomizer
|
|
|
|
door_cost: DoorCost
|
|
|
|
area_cost: AreaCostRandomizer
|
|
|
|
death_link: DeathLink
|
|
|
|
death_link_amnesty: DeathLinkAmnesty
|