Archipelago/worlds/undertale/Options.py

91 lines
2.6 KiB
Python
Raw Normal View History

import typing
from Options import Choice, Option, Toggle, Range
class RouteRequired(Choice):
"""Main route of the game required to win."""
display_name = "Required Route"
option_neutral = 0
option_pacifist = 1
option_genocide = 2
option_all_routes = 3
default = 0
class IncludeTemy(Toggle):
"""Adds Temmy Armor to the item pool."""
display_name = "Include Temy Armor"
default = 1
class KeyPieces(Range):
"""How many Key Pieces are added to the pool, only matters with Key Piece Hunt enabled."""
display_name = "Key Piece Amount"
default = 5
range_start = 1
range_end = 10
class KeyHunt(Toggle):
"""Adds Key Pieces to the item pool, you need all of them to enter the last corridor."""
display_name = "Key Piece Hunt"
default = 0
class ProgressiveArmor(Toggle):
"""Makes the armor progressive."""
display_name = "Progressive Armor"
default = 0
class ProgressiveWeapons(Toggle):
"""Makes the weapons progressive."""
display_name = "Progressive Weapons"
default = 0
class OnlyFlakes(Toggle):
"""Replaces all non-required items, except equipment, with Temmie Flakes."""
display_name = "Only Temmie Flakes"
default = 0
class NoEquips(Toggle):
"""Removes all equippable items."""
display_name = "No Equippables"
default = 0
class RandomizeLove(Toggle):
"""Adds LOVE to the pool. Only matters if your goal includes Genocide route"""
display_name = "Randomize LOVE"
default = 0
class RandomizeStats(Toggle):
"""Makes each stat increase from LV a separate item. Only matters if your goal includes Genocide route
Warning: This tends to spam chat with sending out checks."""
display_name = "Randomize Stats"
default = 0
class RandoBattleOptions(Toggle):
"""Turns the ITEM button in battle into an item you have to receive."""
display_name = "Randomize Item Button"
default = 0
undertale_options: typing.Dict[str, type(Option)] = {
"route_required": RouteRequired,
"key_hunt": KeyHunt,
"key_pieces": KeyPieces,
"rando_love": RandomizeLove,
"rando_stats": RandomizeStats,
"temy_include": IncludeTemy,
"no_equips": NoEquips,
"only_flakes": OnlyFlakes,
"prog_armor": ProgressiveArmor,
"prog_weapons": ProgressiveWeapons,
"rando_item_button": RandoBattleOptions,
}