### Features:
- Trap Link
- When you receive a trap, you send a copy of it to every other player with Trap Link enabled
- Ring Link
- Any coin amounts gained and lost by a linked player will be instantly shared with all other active linked players
Co-authored-by: TheLX5 <luisyuregi@gmail.com>
FakeROM instances were being created with default arguments, which
included a mutable default argument data dictionary, so all FakeROM
instances would be writing to and reading the same dictionary, resulting
in broken patch data in multiworlds with more than one Super Metroid
world.
* CI: github attestation for manually started builds
* CI: include appimage zsync in build attestation
* CI: github attestation for Linux release builds
* CI: reorder steps in build.yml
* CI: add windows builds to release.yml
* CI: order jobs in release.yml
* CI: add missing permission to release.yml
* CI: enable windows build in release.yml
* CI: false is skip
* 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
* region.add_event function
* Make it return the location bc why not
* Actually item bc that seems more useful
* Update BaseClasses.py
Co-authored-by: Aaron Wagener <mmmcheese158@gmail.com>
* Update BaseClasses.py
Co-authored-by: Aaron Wagener <mmmcheese158@gmail.com>
* add all the requested features from code review
* oop
* roughly sort args in order of importance (imo)
* Fix typing
---------
Co-authored-by: Aaron Wagener <mmmcheese158@gmail.com>
* Core: deprecate old options API
* also deprecate assigning options via option_definitions
---------
Co-authored-by: alwaysintreble <mmmcheese158@gmail.com>
Basically, hints for itemlink worlds' locations get stored in ctx.hints under
1. the location's player
2. **every individual player** that is participating in the itemlink.
Right now, the updatehint code tries to replace and resend the hint under the itemlinked player, which doesn't work.