This adds the requirement of a void mayo for the Goblin Problem quest. There are also some small adjustments to related rules
- Fishing a void mayo is only considered an option during the Goblin Problem quest, as the odds of finding one after the quest drops drastically.
- Entrance to the witch hut now requires the goblin problem quest, not just a void mayo.
- Fishing rules are all moved to `fishing_logic.py`.
- `can_fish_at` no longer check that you have any of the fishing regions and the region you actually want to fish in.
- created `can_fish_anywhere` and `can_crab_pot_anywhere` to better illustrate when any fish satisfies the rule.
### 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.
* 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
* Core: deprecate old options API
* also deprecate assigning options via option_definitions
---------
Co-authored-by: alwaysintreble <mmmcheese158@gmail.com>
#4239 refactored buildings, but introduced iteration of a set when precollecting the building items into start inventory.
The iteration order of sets varies between separate Python processes due to set order being partially based on the hashes of the objects in the set and because Python processes each have a random hash seed by default.
* Terraria integration
* Precollected items for debugging
* Fix item classification
* Golem requires Plantera's Bulb
* Pumpkin Moon requires Dungeon
* Progressive Dungeon
* Reorg, Options.py work
* Items are boss flags
* Removed unused option
* Removed nothing
* Wall, Plantera, and Zenith goals
* Achievements and items
* Fixed The Cavalry and Completely Awesome achievements
* Made "Dead Men Tell No Tales" a grindy achievement
* Some docs, Python 3.8 compat
* docs
* Fix extra item and "Head in the Clouds" being included when achievements are disabled
* Requested changes
* Fix potential thread unsafety, replace Nothing with 50 Silver
* Remove a log
* Corrected heading
* Added incompatible mods list
* In-progress calamity integration
* Terraria events progress
* Rules use events
* Removed an intentional crash I accidentally left in
* Fixed infinite loop
* Moved rules to data file
* Moved item rewards to data file
* Generating from data file
* Fixed broken Mech Boss goal
* Changes Calamity makes to vanilla rules, Calamity final bosses goal
* Added Deerclops, fixed Zenith goal
* Final detailed vanilla pass
* Disable calamity goals
* Typo
* Fixed some reward items not adding to item pool
* In-progress unit test fixes
* Unit test fixes
* `.apworld` compat
* Organized rewards file, made Frog Leg and Fllpper available in vanilla
* Water Walking Boots and Titan Glove rewards
* Add goals to slot data
* Fixed Hammush logic in Post-Mech goal
* Fixed coin rewards
* Updated Terraria docs
* Formatted
* Deathlink in-progress
* Boots of the Hero is grindy
* Fixed zenith goal not placing an item
* Address review
* Gelatin World Tour is grindy
* Difficulty notice
* Switched some achievements' grindiness
* Added "Hey! Listen!" achievement
* Terarria Python 3.8 compat
* Fixed Terraria You and What Army logic
* Calamity minion accessories
* Typo
* Calamity integration
* `deathlink` -> `death_link`
Co-authored-by: Zach Parks <zach@alliware.com>
* Missing `.`
Co-authored-by: Zach Parks <zach@alliware.com>
* Incorrect type annotation
Co-authored-by: Zach Parks <zach@alliware.com>
* `deathlink` -> `death_link` 2
Co-authored-by: Zach Parks <zach@alliware.com>
* Style
Co-authored-by: Zach Parks <zach@alliware.com>
* Markdown style
Co-authored-by: Zach Parks <zach@alliware.com>
* Markdown style 2
Co-authored-by: Zach Parks <zach@alliware.com>
* Address review
* Fix bad merge
* Terraria utility mod recommendations
* Calamity minion armor logic
* ArmorMinions -> Armor Minions, boss rush goal, fixed unplaced item
* Fixed unplaced item
* Started on Terraria 1.4.4
* Crate logic
* getfixedboi, 1.4.4 achievements, shimmer, town slimes, `Rule`, `Condition`, etc
* More clam getfixedboi logic, bar decraft logic, `NotGetfixedboi` -> `Not Getfixedboi`
* Calamity fixes
* Calamity crate ore logic
* Fixed item accessibility not generating in getfixedboi, fixed not generating with incompatible options, fixed grindy function
* Early achievements, separate achievement category options
* Infinity +1 Sword achievement can be location in later goals
* The Frequent Flyer is impossible in Calamity getfixedboi
* Add Enchanted Sword and Starfury for starting inventories
* Don't Dread on Me is redundant in Calamity
* In Calamity getfixedboi, Queen Bee summons enemies who drop Plague Cell Canisters
* Can't use Gelatin Crystal outside Hallow
* You can't get the Terminus without flags
* Typo
* Options difficult warnings
* Robbing the Grave is Hardmode
* Don't reserve an ID for unused Victory item
* Plantera is accessible early in Calamity via Giant Plantera's Bulbs
* Unshuffled Life Crystal and Defender Medal items
* Comment about Midas' Blessing
* Update worlds/terraria/Options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Remove stray expression
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Review suggestions
* Option naming caps consistency, add Laser Drill, Lunatic Cultist alt reqs, fix Eldritch Soul Artifact, Ceaseless Void reqs Dungeon
* Cal Clone doesn't drop Broken Hero Sword anymore, Laser Drill is weaker in Calamity
Co-authored-by: Seatori <92278897+Seatori@users.noreply.github.com>
* Fix Acid Rain logic
* Fix XB-∞ Hekate failing accessibility checks (by commenting it out bc it doesn't affect logic)
* Hardmode ores being fishable early in Calamity is not a bug anymore
* Mecha Mayhem is inaccessible in getfixedboi
* Update worlds/terraria/Rules.dsv
Co-authored-by: Seafo <92278897+Seatori@users.noreply.github.com>
---------
Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Seatori <92278897+Seatori@users.noreply.github.com>
* Unroll tests for better parallelization
* fix ut test
* self review
* bro it's the second time today I have to commit some garbage to have a github action rerun because messenger fails what is this
* my god can the tests plz pass
* code reviews
* code reviews
* move TestRandomWorlds out of long module