103 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
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 StartingArea(Choice):
 | 
						|
    """Which area to start with access to."""
 | 
						|
    display_name = "Starting Area"
 | 
						|
    option_ruins = 0
 | 
						|
    option_snowdin = 1
 | 
						|
    option_waterfall = 2
 | 
						|
    option_hotland = 3
 | 
						|
    option_core = 4
 | 
						|
    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,
 | 
						|
    "starting_area":                            StartingArea,
 | 
						|
    "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,
 | 
						|
}
 |