 05c1751d29
			
		
	
	05c1751d29
	
	
	
		
			
			* CounterOption * bring back the negative exception for ItemDict * Backwards compatibility * ruff on witness * fix in calls * move the contains * comment * comment * Add option min and max values for CounterOption * Use min 0 for TrapWeights * This is safe now * ruff * This fits on one line again now * OptionCounter * Update Options.py * Couple more typing things * Update Options.py * Make StartInventory work again, also make LocationCounter theoretically work * Docs * more forceful wording * forced line break * Fix unit test (that wasn't breaking?) * Add trapweights to witness option presets to 'prove' that the unit test passes * Make it so you can order stuff * Update macros.html
		
			
				
	
	
		
			136 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from typing import Any, Dict
 | |
| 
 | |
| from .options import *
 | |
| 
 | |
| witness_option_presets: Dict[str, Dict[str, Any]] = {
 | |
|     # Best for beginners. This is just default options, but with a much easier goal that skips the Mountain puzzles.
 | |
|     "Beginner Mode": {
 | |
|         "victory_condition": VictoryCondition.option_mountain_box_short,
 | |
| 
 | |
|         "puzzle_skip_amount": 15,
 | |
|     },
 | |
| 
 | |
|     # Great for short syncs & scratching that "speedrun with light routing elements" itch.
 | |
|     "Short & Dense": {
 | |
|         "progression_balancing": 30,
 | |
| 
 | |
|         "puzzle_randomization": PuzzleRandomization.option_sigma_normal,
 | |
| 
 | |
|         "shuffle_symbols": False,
 | |
|         "shuffle_doors": ShuffleDoors.option_panels,
 | |
|         "door_groupings": DoorGroupings.option_off,
 | |
|         "shuffle_boat": True,
 | |
|         "shuffle_lasers": ShuffleLasers.option_local,
 | |
|         "obelisk_keys": ObeliskKeys.option_false,
 | |
| 
 | |
|         "disable_non_randomized_puzzles": True,
 | |
|         "shuffle_discarded_panels": False,
 | |
|         "shuffle_vault_boxes": False,
 | |
|         "shuffle_EPs": ShuffleEnvironmentalPuzzles.option_off,
 | |
|         "EP_difficulty": EnvironmentalPuzzlesDifficulty.option_normal,
 | |
|         "shuffle_postgame": False,
 | |
| 
 | |
|         "victory_condition": VictoryCondition.option_mountain_box_short,
 | |
|         "mountain_lasers": 7,
 | |
|         "challenge_lasers": 11,
 | |
| 
 | |
|         "early_caves": EarlyCaves.option_off,
 | |
| 
 | |
|         "elevators_come_to_you": ElevatorsComeToYou.default,
 | |
| 
 | |
|         "trap_percentage": TrapPercentage.default,
 | |
|         "puzzle_skip_amount": PuzzleSkipAmount.default,
 | |
|         "trap_weights": TrapWeights.default,
 | |
| 
 | |
|         "hint_amount": HintAmount.default,
 | |
|         "area_hint_percentage": AreaHintPercentage.default,
 | |
|         "laser_hints": LaserHints.default,
 | |
|         "death_link": DeathLink.default,
 | |
|         "death_link_amnesty": DeathLinkAmnesty.default,
 | |
| 
 | |
|         "shuffle_dog": ShuffleDog.default,
 | |
|     },
 | |
| 
 | |
|     # For relative beginners who want to move to the next step.
 | |
|     "Advanced, But Chill": {
 | |
|         "progression_balancing": 30,
 | |
| 
 | |
|         "puzzle_randomization": PuzzleRandomization.option_sigma_normal,
 | |
| 
 | |
|         "shuffle_symbols": True,
 | |
|         "shuffle_doors": ShuffleDoors.option_doors,
 | |
|         "door_groupings": DoorGroupings.option_regional,
 | |
|         "shuffle_boat": True,
 | |
|         "shuffle_lasers": ShuffleLasers.option_off,
 | |
|         "obelisk_keys": ObeliskKeys.option_false,
 | |
| 
 | |
|         "disable_non_randomized_puzzles": False,
 | |
|         "shuffle_discarded_panels": True,
 | |
|         "shuffle_vault_boxes": True,
 | |
|         "shuffle_EPs": ShuffleEnvironmentalPuzzles.option_obelisk_sides,
 | |
|         "EP_difficulty": EnvironmentalPuzzlesDifficulty.option_normal,
 | |
|         "shuffle_postgame": False,
 | |
| 
 | |
|         "victory_condition": VictoryCondition.option_mountain_box_long,
 | |
|         "mountain_lasers": 6,
 | |
|         "challenge_lasers": 9,
 | |
| 
 | |
|         "early_caves": EarlyCaves.option_off,
 | |
| 
 | |
|         "elevators_come_to_you": ElevatorsComeToYou.default,
 | |
| 
 | |
|         "trap_percentage": TrapPercentage.default,
 | |
|         "puzzle_skip_amount": 15,
 | |
|         "trap_weights": TrapWeights.default,
 | |
| 
 | |
|         "hint_amount": HintAmount.default,
 | |
|         "area_hint_percentage": AreaHintPercentage.default,
 | |
|         "laser_hints": LaserHints.default,
 | |
|         "death_link": DeathLink.default,
 | |
|         "death_link_amnesty": DeathLinkAmnesty.default,
 | |
| 
 | |
|         "shuffle_dog": ShuffleDog.default,
 | |
|     },
 | |
| 
 | |
|     # Allsanity but without the BS (no expert, no tedious EPs).
 | |
|     "Nice Allsanity": {
 | |
|         "progression_balancing": 50,
 | |
| 
 | |
|         "puzzle_randomization": PuzzleRandomization.option_sigma_normal,
 | |
| 
 | |
|         "shuffle_symbols": True,
 | |
|         "shuffle_doors": ShuffleDoors.option_mixed,
 | |
|         "door_groupings": DoorGroupings.option_off,
 | |
|         "shuffle_boat": True,
 | |
|         "shuffle_lasers": ShuffleLasers.option_anywhere,
 | |
|         "obelisk_keys": ObeliskKeys.option_true,
 | |
| 
 | |
|         "disable_non_randomized_puzzles": False,
 | |
|         "shuffle_discarded_panels": True,
 | |
|         "shuffle_vault_boxes": True,
 | |
|         "shuffle_EPs": ShuffleEnvironmentalPuzzles.option_individual,
 | |
|         "EP_difficulty": EnvironmentalPuzzlesDifficulty.option_normal,
 | |
|         "shuffle_postgame": False,
 | |
| 
 | |
|         "victory_condition": VictoryCondition.option_challenge,
 | |
|         "mountain_lasers": 6,
 | |
|         "challenge_lasers": 9,
 | |
| 
 | |
|         "early_caves": EarlyCaves.option_off,
 | |
| 
 | |
|         "elevators_come_to_you": ElevatorsComeToYou.valid_keys,
 | |
| 
 | |
|         "trap_percentage": TrapPercentage.default,
 | |
|         "puzzle_skip_amount": 15,
 | |
|         "trap_weights": TrapWeights.default,
 | |
|         
 | |
|         "hint_amount": HintAmount.default,
 | |
|         "area_hint_percentage": AreaHintPercentage.default,
 | |
|         "laser_hints": LaserHints.default,
 | |
|         "death_link": DeathLink.default,
 | |
|         "death_link_amnesty": DeathLinkAmnesty.default,
 | |
| 
 | |
|         "shuffle_dog": ShuffleDog.option_random_item,
 | |
|     },
 | |
| }
 |