Files
dockipelago/worlds/dc1/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

88 lines
2.7 KiB
Python

from dataclasses import dataclass
from Options import Choice, Toggle, PerGameCommonOptions, Range, DeathLink
class Goal(Range):
"""Select Dungeon from 2-6 to be the goal."""
display_name = "Boss Goal"
default = 6
range_start = 2
range_end = 6
class AllBosses(Toggle):
"""Requires defeating every boss up to the goal boss in order to finish the game."""
display_name = "All Bosses"
default = 0
class OpenDungeon(Choice):
"""Open all dungeon floors as they become logically available."""
display_name = "Open Dungeon"
default = 1
option_closed = 0
option_open = 1
class BetterStartingWeapons(Toggle):
"""Give each character a Tier 1 weapon in addition to their unbreakable starter."""
display_name = "Better Starting Weapons"
default = 1
class MiracleSanity(Toggle):
"""Add miracle chests to the item pool."""
display_name = "Chest Sanity"
default = 0
class AbsMultiplier(Choice):
"""Adjust the ABS gained from enemies."""
display_name = "ABS Multiplier"
option_half = 0
option_normal = 1
option_one_and_half = 2
option_double = 3
option_double_and_half = 4
option_triple = 5
default = 3
class AttachmentMultiplierConfig(Choice):
"""Enable attachment multiplier for all attachments, only those from MW, or no attachments."""
display_name = "Attachment Multiplier Config"
option_none = 1
option_mw_only = 2
option_all = 3
default = 3
class AttachmentMultiplierValue(Choice):
"""Adjust the value of attachments. Does not affect attack/speed/magic/endurance received normally in game."""
display_name = "Attachment Multiplier"
option_normal = 1
option_one_and_half = 2
option_double = 3
default = 2
class AutoBuild(Choice):
"""Automatically places building pieces as received.
Hundo places buildings for 100% town completion.
Any percent places only buildings with chests clustered similar to how speed runs place them.
Muska only auto builds only Muska Lacka for 100%, robot only the sun giant and muska/robot builds both."""
display_name = "Auto Build Buildings"
option_off = 0
option_any_percent = 1
option_hundo = 2
option_muska_only = 3
option_robot_only = 4
option_muska_robot_only = 5
default = 2
@dataclass
class DarkCloudOptions(PerGameCommonOptions):
boss_goal: Goal
all_bosses: AllBosses
open_dungeon: OpenDungeon
starter_weapons: BetterStartingWeapons
miracle_sanity: MiracleSanity
abs_multiplier: AbsMultiplier
attach_multiplier: AttachmentMultiplierValue
attach_mult_config: AttachmentMultiplierConfig
auto_build: AutoBuild
death_link: DeathLink