Files
dockipelago/worlds/SonicFrontiers/options.py
Jonathan Tinney 7971961166
Some checks failed
Analyze modified files / flake8 (push) Failing after 2m28s
Build / build-win (push) Has been cancelled
Build / build-ubuntu2204 (push) Has been cancelled
ctest / Test C++ ubuntu-latest (push) Has been cancelled
ctest / Test C++ windows-latest (push) Has been cancelled
Analyze modified files / mypy (push) Has been cancelled
Build and Publish Docker Images / Push Docker image to Docker Hub (push) Successful in 5m4s
Native Code Static Analysis / scan-build (push) Failing after 5m2s
type check / pyright (push) Successful in 1m7s
unittests / Test Python 3.11.2 ubuntu-latest (push) Failing after 16m23s
unittests / Test Python 3.12 ubuntu-latest (push) Failing after 28m19s
unittests / Test Python 3.13 ubuntu-latest (push) Failing after 14m49s
unittests / Test hosting with 3.13 on ubuntu-latest (push) Successful in 5m0s
unittests / Test Python 3.13 macos-latest (push) Has been cancelled
unittests / Test Python 3.11 windows-latest (push) Has been cancelled
unittests / Test Python 3.13 windows-latest (push) Has been cancelled
add schedule I, sonic 1/frontiers/heroes, spirit island
2026-04-02 23:46:36 -07:00

72 lines
2.0 KiB
Python

from dataclasses import dataclass
from Options import Toggle, DefaultOnToggle, DeathLink, Range, Choice, PerGameCommonOptions, ExcludeLocations # , OptionGroup
class Goal(Choice):
"""
Which Titan to defeat in order to complete the randomizer
Note: Only Giganto/Kronos Island for this release
"""
display_name = "Goal"
option_defeat_giganto = 0
#option_defeat_wyvern = 1
#option_defeat_knight = 2
#option_defeat_supreme = 3
default = 0
class MemoryTokenSanity(Toggle):
"""
Set whether All Memory Tokens should be locations
"""
display_name = "Memory Token Sanity"
default = 0
class MapChallenges(DefaultOnToggle):
display_name = "Map Challenge Sanity"
class HarderCyberspaceTimes(Toggle):
"""
This makes all Cyberspace stages have a harder S-Rank requirement.
Note: This is meant for speedrunners, do not enable this unless you're up for a challenge.
"""
display_name = "Harder Cyberspace Challenge Times"
default = 0
class MusicNotes(Toggle):
"""
Set whether Music Notes should be locations
"""
display_name = "Music Notes"
default = 0
class ChallengeKocos(Toggle):
"""
Set whether Challenge Kocos should be locations
"""
display_name = "Challenge Kocos"
default = 0
class CyberspaceStages(Toggle):
display_name = "Cyberspace Stages Missions"
default = 0
class PurpleCoinSanity(Toggle):
"""
Set whether All Purple Coins should be locations
"""
display_name = "Purple Coin Sanity"
default = 0
class KocoSanity(Toggle):
"""
Set whether All Kocos should be locations
"""
display_name = "Koco Sanity"
default = 0
@dataclass
class SonicFrontiersOptions(PerGameCommonOptions):
goal: Goal
death_link: DeathLink
memory_token_sanity: MemoryTokenSanity
cyberspace_times: HarderCyberspaceTimes
music_notes: MusicNotes
challenge_kocos: ChallengeKocos
purple_coin_sanity: PurpleCoinSanity
koco_sanity: KocoSanity