mirror of
https://github.com/ArchipelagoMW/Archipelago.git
synced 2026-08-22 16:16:37 -07:00
* More control over progressive symbols! * Cleanup crew * lol * Make it configurable how second stage items act on their own * only let independent symbols work if they're not progressive * revert defaults * Better description * comment for reviewers * A complicated docstring for a complicated function * More accurate * This probably works more generically * Actually, this would cause other issues anyway, so no need to make this generic yet * :/ * oops * Change the system to use collect/remove override so that plando and start inventory work correctly * Vi stop doing that thing challenge * Make SecondStateSymbolsActIndependently an OptionSet * jank * oop * this is why we make unit tests I guess * More unit tests * More unit tests * Add note about the absence of Rotated Shapers from the independent symbols optionset * More verbose description * More verbose description * slight reword * Ruff ruff :3 I am a good puppy <3 * Remove invis dots * oops * Remove some unused symbols * display name * linecounting -> discard * Make all progressive chains always work * Unfortunately, this optimisation is now unsafe with plando :( * oops * This is now a possible optimisation * optimise optimise optimise * optimise optimise optimise * fix * ruff * oh * fixed frfr * mypy * Clean up the tests a bit * oop * I actually like this better now, so I'm doing it as default * Put stuff on the actual item class for faster collect/remove * giga oops * Make proguseful work * None item left beef * unnecessary change * formatting * add proguseful test to progressive symbols tests * add proguseful test to progressive symbols tests * clean up collect/remove a bit more * giga lmfao * Put stuff in option groups * Add the new symbol items to hint system * bump req client version * fix soft conflict in unit tests * fix more merge errors
136 lines
4.9 KiB
Python
136 lines
4.9 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,
|
|
"early_good_items": {"Door / Door Panel"},
|
|
"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,
|
|
"early_good_items": {"Symbol", "Door / Door Panel"}, # Not Obelisk Key bc I want EPs to open slowly in this one
|
|
"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,
|
|
"early_good_items": {"Symbol", "Door / Door Panel", "Obelisk Key"},
|
|
"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,
|
|
},
|
|
}
|