Archipelago/worlds/spire/Options.py

75 lines
2.0 KiB
Python

import typing
from dataclasses import dataclass
from Options import TextChoice, Range, Toggle, PerGameCommonOptions
class Character(TextChoice):
"""Enter the internal ID of the character to use.
if you don't know the exact ID to enter with the mod installed go to
`Mods -> Archipelago Multi-world -> config` to view a list of installed modded character IDs.
the downfall characters will only work if you have downfall installed.
Spire Take the Wheel will have your client pick a random character from the list of all your installed characters
including custom ones.
if the chosen character mod is not installed it will default back to 'The Ironclad'
"""
display_name = "Character"
option_The_Ironclad = 0
option_The_Silent = 1
option_The_Defect = 2
option_The_Watcher = 3
option_The_Hermit = 4
option_The_Slime_Boss = 5
option_The_Guardian = 6
option_The_Hexaghost = 7
option_The_Champ = 8
option_The_Gremlins = 9
option_The_Automaton = 10
option_The_Snecko = 11
option_spire_take_the_wheel = 12
class Ascension(Range):
"""What Ascension do you wish to play with."""
display_name = "Ascension"
range_start = 0
range_end = 20
default = 0
class FinalAct(Toggle):
"""Whether you will need to collect the 3 keys and beat the final act to complete the game."""
display_name = "Final Act"
option_true = 1
option_false = 0
default = 0
class Downfall(Toggle):
"""When Downfall is Installed this will switch the played mode to Downfall"""
display_name = "Downfall"
option_true = 1
option_false = 0
default = 0
class DeathLink(Range):
"""Percentage of health to lose when a death link is received."""
display_name = "Death Link %"
range_start = 0
range_end = 100
default = 0
@dataclass
class SpireOptions(PerGameCommonOptions):
character: Character
ascension: Ascension
final_act: FinalAct
downfall: Downfall
death_link: DeathLink