Files
Grinch-AP/worlds/bumpstik/Options.py
Felix R 36b5b1207c Add Bumper Stickers (#811)
* bumpstik: initial commit

* bumpstik: fix game name in location obj

* bumpstik: specified offset

* bumpstik: forgot to call create_regions

* bumpstik: fix entrance generation

* bumpstik: fix completion definition

* bumpstik: treasure bumper, LttP text

* bumpstik: add more score-based locations

* bumpstik: adjust regions

* bumpstik: fill with Treasure Bumpers

* bumpstik: force Treasure Bumper on last location

* bumpstik: don't require Hazard Bumpers for level 4

* bumpstik: treasure bumper locations

* bumpstik: formatting

* bumpstik: refactor to 0.3.5

* bumpstik: Treasure bumpers are now progression

* bumpstik: complete reimplementation of locations

* bumpstik: implement Nothing as item

* bumpstik: level 3 and 4 locations

* bumpstik: correct a goal value

* bumpstik: region defs need one extra treasure

* bumpstik: add more starting paint cans

* bumpstik: toned down final score goal

* bumpstik: changing items, Hazards no longer traps

* bumpstik: remove item groups

* bumpstik: update self.world to self.multiworld

* bumpstik: clean up item types and classes

* bumpstik: add options
also add traps to item pool

* bumpstik: update docs

* bumpstik: oops

* bumpstik: add to master game list on readme

* bumpstik: renaming Task Skip to Task Advance
because "Task Skip" is surprisingly hard to say

* bumpstik: fill with score on item gen
instead of nothing (nothing is still the default filler)

* bumpstik: add 18 checks

* bumpstik: bump ap ver

* bumpstik: add item groups

* bumpstik: make helper items and traps configurable

* bumpstik: make Hazard Bumper progression

* bumpstik: tone final score goal down to 50K

* bumpstik: 0.4.0 region update

* bumpstik: clean up docs
also final goal is now 50K or your score + 5000, whichever is higher

* bumpstik: take datapackage out of testing mode

* bumpstik: Apply suggestions from code review

code changes for .apworld support

Co-authored-by: Zach Parks <zach@alliware.com>

---------

Co-authored-by: Zach Parks <zach@alliware.com>
2023-06-27 15:37:17 -05:00

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
}