Archipelago/worlds/bumpstik/Options.py

81 lines
2.0 KiB
Python

# Copyright (c) 2022 FelicitusNeko
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
import typing
from Options import Option, Range
class TaskAdvances(Range):
"""Task Advances allow you to skip one step of a level task. They do not restock, so use them sparingly."""
display_name = "Task Advances"
range_start = 0
range_end = 5
default = 4
class Turners(Range):
"""Turners allow you to change the direction of a Bumper. These restock when the board resets."""
display_name = "Turners"
range_start = 0
range_end = 5
default = 3
class PaintCans(Range):
"""
Paint Cans allow you to change the color of a Bumper.
The ones you get from the multiworld restock when the board resets; you also get one-time ones from score.
"""
display_name = "Paint Cans"
range_start = 0
range_end = 5
default = 3
class Traps(Range):
"""
Traps affect the board in various ways.
This number indicates how many total traps will be added to the item pool.
"""
display_name = "Trap Count"
range_start = 0
range_end = 15
default = 5
class RainbowTrapWeight(Range):
"""Rainbow Traps change the color of every bumper on the field."""
display_name = "Rainbow Trap weight"
range_start = 0
range_end = 100
default = 50
class SpinnerTrapWeight(Range):
"""Spinner Traps change the direction of every bumper on the field."""
display_name = "Spinner Trap weight"
range_start = 0
range_end = 100
default = 50
class KillerTrapWeight(Range):
"""Killer Traps end the current board immediately."""
display_name = "Killer Trap weight"
range_start = 0
range_end = 100
default = 0
bumpstik_options: typing.Dict[str, type(Option)] = {
"task_advances": TaskAdvances,
"turners": Turners,
"paint_cans": PaintCans,
"trap_count": Traps,
"rainbow_trap_weight": RainbowTrapWeight,
"spinner_trap_weight": SpinnerTrapWeight,
"killer_trap_weight": KillerTrapWeight
}