Core: Add "OptionCounter", use it for generic "StartInventory" and Witness "TrapWeights" (#3756)

* 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
This commit is contained in:
NewSoupVi
2025-04-24 22:06:41 +02:00
committed by GitHub
parent 6ad042b349
commit 05c1751d29
11 changed files with 111 additions and 34 deletions

View File

@@ -40,6 +40,8 @@ witness_option_presets: Dict[str, Dict[str, Any]] = {
"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,
@@ -79,6 +81,8 @@ witness_option_presets: Dict[str, Dict[str, Any]] = {
"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,
@@ -118,6 +122,8 @@ witness_option_presets: Dict[str, Dict[str, Any]] = {
"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,