Commit Graph

185 Commits

Author SHA1 Message Date
qadan c09fab64f8 first pass at owg logic support 2020-01-03 04:02:15 -04:00
qadan 4d631adf7b getting there ... somethings up, needs testing 2020-01-03 03:49:56 -04:00
qadan 0547606207 close to first pass 2020-01-02 23:59:28 -04:00
qadan 901b25952d owg start 2020-01-02 13:08:01 -04:00
Bonta-kun 0de0467b5c Inverted: connect lake hylia island to lw 2020-01-01 18:12:23 +01:00
Bonta-kun 41009c85c7 nologic inverted: reachable castle ledge 2019-12-28 01:12:45 +01:00
Bonta-kun 80d9fda10f Rules: allow triforce pieces to be in other players world 2019-12-18 20:56:58 +01:00
Bonta-kun 2b184d072b Rules: fix trock key logic for the big key chest "always allow" rule 2019-12-18 20:51:38 +01:00
Bonta-kun 8721310cf7 World: include can_access_trock_eyebridge can_access_trock_front can_access_trock_big_chest can_access_trock_middle and fix_fake_world in the player specific attributes 2019-12-18 20:45:51 +01:00
Bonta-kun d9281adc07 Individual settings: accessibility 2019-12-17 12:14:29 +01:00
Bonta-kun 642bf65843 Skip the sewers door key check in standard retro since we cannot access the shop yet 2019-12-17 00:19:47 +01:00
Bonta-kun 1315eb55cf Individual settings: map/compass/key/bk shuffle 2019-12-16 21:46:47 +01:00
Bonta-kun dc26dfce77 Individual settings: crystals_ganon crystals_gt openpyramid 2019-12-16 19:09:15 +01:00
Bonta-kun ec1b9eca43 Individual settings: shuffle 2019-12-16 18:24:34 +01:00
Bonta-kun c1788c070d Individual settings: goal 2019-12-16 16:55:00 +01:00
Bonta-kun 9ca755d5b2 Individual settings: swords 2019-12-16 16:54:57 +01:00
Bonta-kun ab28858a8f Individual settings: mode 2019-12-16 16:54:46 +01:00
Bonta-kun 79786c7c9e Individual settings: logic 2019-12-16 13:26:07 +01:00
Bonta-kun fc9d1b501b Replace keysanity with map/compass/key/bk shuffle 2019-12-13 22:37:52 +01:00
Bonta-kun 25068bcfdd Added an option to pre-open the pyramid hole (aka "fast ganon") 2019-12-12 09:20:32 +01:00
Bonta-kun 4ca063be54 Reimplement random weapon standard start, the previous one did not make sense in a multiworld context and rework castle chests logic, bombs start is now possible 2019-12-11 11:41:05 +01:00
cassidoxa 7a6c22c452 Add flippers rule to East Dark World Pier in inverted 2019-12-05 19:20:29 -05:00
AmazingAmpharos e6793e36f2
Inverted logic improvements
This reformats the Rules.py file to no longer have quite so many totally redundant rules between inverted and non-inverted. In the process, it fixes an insanity only issue wherein the magic bat in inverted was set to always require Pearl (only in insanity can this not be true). Additionally, the inverted super bomb rules are completely reworked to be a lot more accurate (including preventing Desert Palace (East) from having the bomb shop at all in inverted insanity) and an obscure case involving non-inverted insanity super bomb return has a logic fix.
2019-10-01 03:17:40 -05:00
cassidoxa 2859acef7d Swordless rom writes and inverted fixes
* Update Swordless rom writes

* Remove swordless as possible mode in ItemList.py

* Fix inverted HC Ledge access
Added collection state helper methods for determining lw/dw access
Restricted locations where Link's House can be in inverted
Dark Sanc and Link's House can no longer be at the back of Skull Woods
Fixed minor error in inverted bunny rules

* Update Link's House Shuffling in inverted insanity

* More isolated entrances not to put Link's House at

* Fix Link's House in dungeons shuffles

* More dungeons shuffle stuff I forgot
2019-09-21 21:59:16 -04:00
cassidoxa 99a4ea17b0 Fix swordless vanilla shuffle TR keys issue 2019-09-14 10:02:38 -04:00
Kevin Cathcart 2bd2ae80de Remove obsolete comment 2019-08-25 22:35:03 -04:00
cassidoxa fd1074d58a Adjust swordless rules for inverted 2019-08-25 22:31:51 -04:00
Kevin Cathcart 996bf8495c Implement new weapons modes
This also includes some partial additional cleanup of the item pool.
2019-08-10 16:10:54 -04:00
Kevin Cathcart b8ea2eb4b1 Fix random weapons for Standard Mode
Now works roughly like VT, except that swords are somwhat more common
and bombs-only escape is not supported (because I don't want to make
'Bombs (10)' an advancement item)

Swordless Standard Mode should also work now

Assured and Vanilla weapons still need to be implemented.
2019-08-10 16:10:54 -04:00
Kevin Cathcart ef7c3d4f06 New Item/Location accessibility options
Replaces existing check_only_beatable, which became the "none" option.

TR can run out of key placement options, with the 100% locations
option, but I really don't care enough. It exists mostly for people who
want to 100% a seed, or to point to if they ask about keys locked behind
themselves.
2019-08-10 16:10:54 -04:00
Kevin Cathcart b0f4fa8cec Partial implementation of many V31 features
Partial support for Progressive bow
  - Still needs to be added to item pool
  - Silver hint handling remains TBD even for VT

Added weapons selection.
  - Vanilla needs to be implemented
  - Assured needs to be implemented
  - Inverted swordless is almost certainly messed up.
  - Swordless standard mode will likely softlock
  - Random weapon standard mode is currently treated as uncle assured

Deleted removed difficulties
  - Remaining difficulties still need to be adjusted

Added locked property to locations:
  - This is used for preplaced items etc so that multiworld balancing
    knows they cannot be moved.

Made a few of the difficulty changes from V31, but not all.

Added required text changes to handle crystals requirements
  - More changes will likely me made in future
  - Currently there is is no way to tell ganon requirement in
    Inverted mode
2019-08-10 16:10:47 -04:00
Kevin Cathcart 90e5f522d8 Partially implement variable crystal requirements 2019-08-03 16:48:31 -04:00
cassidoxa 18f1275050 Inverted Mode (#5)
Merging in Cassidoxa's inverted mode.

I've still not fully reviewed the logic used in this mode, so it should be considered experimental, pending an in depth review by either myself or AA.
2019-07-27 09:13:13 -04:00
Bonta-kun 1a62b1da28 Multiworld core implementation By Bonta0
Does not include the server/client code or the rom writes
specific to it. Indeed it cannot write multiworld roms at
all right now, pending addition future updates to support
the official ALTTPR Multiworld client.

Includes some GUI changes by Alaszun

Co-authored-by: Alaszun <koelze@google.com>
2019-07-11 20:39:08 -04:00
AmazingAmpharos d6babfe222 Fix Fairy Ascension as bunny
A longstanding issue is that Fairy Ascension Cave has been treated as a simple two way connector, but in reality bunny cannot "logically" go through the cave in reverse as it requires lifting some pots with super bunny. This super bunny state is effectively unavoidable and can really only be lost if you have Boots and foolishly bonk before lifting a pot, but for logical consistency fixing this is the right thing to do. The logic should now correctly see that the cave is a two way connection with no particular item requirements in general but that the reverse direction isn't bunny transversable.
2019-04-22 16:41:33 -05:00
AmazingAmpharos 262e0e43c3 Fix GT Map Chest requirement
Forever in ER, erroneously, the Map Chest in Ganon's Tower erroneously required Hookshot instead of correctly accepting Hookshot or Boots like the item randomizer. The root cause involved how regional connections were strung together with the assumption Map Chest would have the same requirements as the four DMs Room chests. This fixes that and allows that chest to be accessed by logic with Boots.
2019-04-18 16:30:08 -05:00
AmazingAmpharos 4d16559fae TR Logic Fix
This update should fully fix the key logic for Turtle Rock. This involved fixing several longstanding bugs in the program we didn't realize we had until trying to really fix this issue. Notable inclusions are that now seeds generated with a count will be identical to similarly numbered seeds generated individually and that now the always allows actually work (key for key apparently actually never happened in ER before and we didn't notice!). This also required refactoring the item pool generation before rule setting and individually moving pendant/crystal placement out of item pool generation (it's not a separate step between rule setting and normal item fill). A few exotic seed generation fails are still possible involving multi-entrance dungeons being really, really inaccessible in non-keysanity, but they're now appropriately super rare instead of being as common as they were before.
2019-04-18 16:11:11 -05:00
AmazingAmpharos 7b56932e31 TR Key Logic Update
This is just for review and isn't tested beyond seeing that it runs. In theory, this should fix the TR based seed generation failures and make TR Small Key requirements as precise as possible.
2019-04-15 19:17:44 -05:00
Kevin Cathcart 54926a17f4 Additional v30 updates 2018-09-26 17:34:15 -04:00
Kevin Cathcart b90a381e9b Basic impl. of boss shuffle for VT site enemizer integration 2018-09-26 13:12:20 -04:00
Kevin Cathcart 5539143f00 v30 updates 2018-09-22 22:51:54 -04:00
AmazingAmpharos 7c9c3db74d
Hopefully final 0.6.1 changes
-Add no logic mode.
-Fix swordless requirement for Mothula to be less strict.
-New version number and logic hash.
-Significantly updated readme.
2018-03-25 17:21:36 -05:00
Kevin Cathcart 9bd9bb4f93 Shop implementation
Also a few retro mode fixes
2018-03-18 21:01:45 -04:00
Kevin Cathcart 3592d12bfd Convert several locations to using events
Event locations automatically get Moon Perarl requirements added, and
ensure the other referenced location is listed in the spoiler log's path
section
2018-03-18 01:39:48 -04:00
AmazingAmpharos f701aefa28
More of Retro Mode
Implement correct Retro Mode item pools.
Set up most of the key logic to handle retro mode (still needs shop access)
Set ROM flags appropriately.
TODO: Support Retro Mode with custom item pools, deal with shops in general, deal with Bow paired with arrow requirements, correct Expert item pool for silvers, test older fill algorithms with retro mode, deal with the new Sahas/Bomb Shop reveal map info ROM flags.
2018-03-15 16:23:02 -05:00
AmazingAmpharos 4c33bf72ff
Smith softlock fix
Now correctly requires Moon Pearl.
2018-03-14 13:28:52 -05:00
Kevin Cathcart e100b5cd93 Rename Very misleading entrance/region 2018-03-02 19:07:55 -05:00
Kevin Cathcart 5989718586 Easy mode lamp update
You can find all 3 lamps before dark rooms for easy mode.
2018-02-24 16:16:50 -05:00
Kevin Cathcart cc270ca44d Misc fixes
Fix offsets for madness+ modes.

Bunny cannot reach back skull woods second section hole.
2018-02-20 01:15:45 -05:00
AmazingAmpharos 9c9636316e
Regionalize King's Grave
This is necessary to account for exiting here without otherwise having access to the area behind the rocks. Will mostly come up in insanity but has some extreme niches where it could matter in full.
2018-02-19 20:30:56 -06:00
Kevin Cathcart ac1c875341 Fix bug in big bomb logic 2018-02-18 14:53:39 -05:00
Kevin Cathcart 4a2078db26 Fix logic for standard mode 2018-02-18 12:22:50 -05:00
AmazingAmpharos 3471a9394a
Regionalize some West Dark World stuff
The Dark World Hammer Pegs area and the Dark World shop in VoO are both regionalized to handle the possibility of connectors leading to them. Also an oversight in regionalizing Desert Palace that had broken the vanilla shuffle is corrected.
2018-02-11 22:04:58 -06:00
Kevin Cathcart 6b7e2d86f1 Regionized Northeast Dark World 2018-02-09 01:12:11 -05:00
AmazingAmpharos bded86957d
Desert bunny fix and super bomb logic updates
Desert Palace's main section is now broken into outer and inner regions separated by the pots, and the inner region is flagged as bunny impassable which should prevent the use of the central portion of Desert Main as a bunny by the logic while still permitting the outer two doors to be used as a connection.

Super Bomb logic was supposed to just be a small tweak to take care of the TODO on adding those three insanity only bomb shop locations to the logic, but then I realized that the rules for most of Death Mountain could be liberalized somewhat since that Flute to take the bomb away is also a direct access method and took care of all that. Hopefully Super Bomb logic won't need further tweaks for a good long while.
2018-02-08 04:40:16 -06:00
Kevin Cathcart 39f177dfa3 Fix incorrect rules for death mountain entrance cave
also some related fixes to super bomb logic
2018-02-06 23:21:04 -05:00
Kevin Cathcart f39886579a Add cross world bunny logic 2018-02-06 19:18:13 -05:00
Kevin Cathcart c6b67aa088 Update rules for bomb shop to account for mixed caves 2018-02-06 19:18:12 -05:00
Kevin Cathcart bb6fa66dbe Refactor bomb rules 2018-02-06 19:18:12 -05:00
AmazingAmpharos b8778385ad
Spike Cave v29 adjustment
This makes spike cave correctly understand that potions in v29 will refill full magic independent of difficulty setting.
2018-01-29 18:56:15 -06:00
Kevin Cathcart 95bc7c954b Fix TT basement keylock
This is fixed by requiring that hammer be accessible before the always
allow logic will permit key in the big chest.
2018-01-27 14:16:47 -05:00
Kevin Cathcart f90653f1b8 Fix Dam Softlocks
Also remove obsolete comments
2018-01-25 22:03:46 -05:00
Kevin Cathcart e002672503 Critical fixes for bunny logic 2018-01-18 01:38:28 -05:00
Kevin Cathcart 513ded2b18 Fix aga1 keysanity softlock 2018-01-08 02:06:03 -05:00
Kevin Cathcart 07275316ed Fix and reformat spike cave logic 2018-01-06 23:08:20 -05:00
Kevin Cathcart 52c194822d Add logic support for new swordless Bombos pads 2018-01-06 22:20:08 -05:00
AmazingAmpharos 902097d728
Magic and Agahnim fix
Makes can_extend_magic take an argument for how much magic is needed in total. Fixes rule issues with Trinexx, spike cave, and swordless Agahnim's Tower.
2018-01-06 21:07:46 -06:00
Kevin Cathcart 9846f924d2 Add new 4 heart logic for spike cave and misery mire 2018-01-06 13:39:22 -05:00
Kevin Cathcart a0c892ab98 Make location item checks less verbose, and always access world via the state variable 2018-01-05 22:46:00 -05:00
Kevin Cathcart 95f672a842 POD key for Key Logic 2018-01-05 20:21:24 -05:00
Kevin Cathcart ee61f7b3ac Handle turtle rock big key chest key-for-a-key 2018-01-05 02:02:58 -05:00
Kevin Cathcart 596ba13781 Fix Ice Palace softlock 2018-01-05 01:12:50 -05:00
Kevin Cathcart 79f1b0bbf3 Fix progressive requirements to respect overflow limits 2018-01-04 23:01:09 -05:00
Kevin Cathcart 9c7a07a1d4 More VT28 logic updates 2018-01-02 21:41:28 -05:00
Kevin Cathcart 3adf4fadd1 Partial vt28 logic update 2018-01-02 21:19:17 -05:00
Kevin Cathcart 823657bc26 Style fixes
A bunch of style fixes. Mostly white space and style import order
tweaks, but a few other stylistic changes are present too.
2017-12-17 17:05:39 -05:00
Kevin Cathcart 6bd0664b7f Preliminary bunny logic 2017-12-14 20:09:02 -05:00
AmazingAmpharos d2612342d8
A new mirror connection
This is a simple tweak adding a mirror connection between the main Light World and the Hyrule Castle Courtyard. This will very rarely come into play; it only matters in circumstances where the uncle tunnel does not instantly connect to the courtyard (some madness/insanity situations and when Ganon's tunnel is there in full and below), when the player does not have access to the upper levels of Hyrule Castle or to the pyramid, but the player does have the Mirror. This correctly acknowledges that entering the castle main gate is fully and permanently softlock proof in this situation.
2017-12-12 08:20:42 -06:00
Kevin Cathcart 9d4d3b8456 Whitespace fixes
Removing trailing whitepace.
2017-11-18 20:43:37 -05:00
AmazingAmpharos 10d96bfa6c
Refactor bottle randomization
Bottle randomization refactored to be done on generation of itempool, not with the ItemFactory function. This allows difficulty settings to use different bottle pools more easily as well as allows the pedestal, credits, and spoiler logs to report bottle contents. Expert and insane difficulties deliberately set the same bottle content to all four bottles since the bottle limit is one in those modes so this only guarantees that all racers regardless of play sequence will get the same one free bottle content.
2017-11-11 20:22:44 -06:00
AmazingAmpharos ad047e6c9c
The last of the renaming
Courtesy of KevinCathcart
2017-11-11 18:03:42 -06:00
AmazingAmpharos 1b5ec76c8d
A few softlock preventions
-KevinCathcart's PoD small key fix for the back
-Per KevinCathcart, swordless mode now inherits open mode specific restrictions (per me, fixes a rare Hyrule Castle softlock scenario)
2017-11-10 04:10:30 -06:00
AmazingAmpharos 90f9046bda
Fix keysanity and older algorithms
-Fixes a wrong function call that made keysanity fail.
-Restores some logic in "key for key" situations that older algorithms relied upon, should slightly improve neutrality of key distribution even in v26 algorithm.
2017-11-09 04:34:29 -06:00
Kevin Cathcart 7de6948ceb Prevent Hyrule Castle key-lock in key-sanity 2017-11-08 22:45:43 -05:00
Kevin Cathcart 4817a85bcb Key-lock fixes
Update with key-lock fixes for GT. and Keysanity keyokick fixes for PoD,
GT, and TR.
2017-11-08 22:13:36 -05:00
Kevin Cathcart 24b0c4a132 Rename forgotten location 2017-11-08 19:23:21 -05:00
Kevin Cathcart 5b3d4449c1 Whitespace fixes 2017-11-04 23:54:35 -04:00
Kevin Cathcart cdf04b8a45 The Great Renaming
This is the Great renaming. Renaming to match V27. I've renamed pretty
much all Item locations to match, with a small number kept deliberatly
deferent for clarity.

There is probably more renaming that should be done at the Enterance and
Region levels, but that can be done later.
2017-11-04 23:54:35 -04:00
Kevin Cathcart 623e6637ff Update logic for Skull Woods and Agahnim's Tower to support key-sanity
Skull Wood's various chests have been split into real locations that
reflect key requirements.
2017-11-04 23:52:56 -04:00
Kevin Cathcart 8a981b5140 Fix Aga Lamp in swordless mode
Apply mode related rule changes before the no-glitches add-on rules.
2017-11-04 23:52:56 -04:00
Kevin Cathcart 9c6d649996 Updating logic and features to better match VT26
Updates include:

* Allow acticating tablets with hammer
* Remove 1/4 magic from the normal mode pool
* Incorporate OHKO compatible cape/cane-of-byrna requirements
* Upgrade Mirror Shield, Progressive Shield, and Bug Catching Net to
qualify as advancement items
* Allow Mirror shield as alternative to cape/byrna for Laser Bridge
* Prevent Waterfall Fairy from upgrading Boomerang or Shield
* Change PoD key logic to match VT26.
* Add restrictions on small key placement (to match VT26). I think these
restrictions may be redundant, but I'm adding them just in case any of
them are not.
2017-11-04 23:52:56 -04:00
LLCoolDave 52835bba5c Fix up some key rules. 2017-08-05 17:50:47 +02:00
LLCoolDave 6eff675ae7 Fix issue where logic assumed you could pass through hyrule castle sewers without lamp if there is no free light cone. 2017-08-04 20:17:33 +02:00
LLCoolDave 4a3e7ce851 Add missing fire rod requirement to gtower compass room. 2017-08-04 08:50:47 +02:00
LLCoolDave abff299f25 Remove starhunt, replaced by triforce hunt. Change to match VT normal settings (collect 20 out of 30 pieces). Rename restrictive algorithm to vt25. Add crystals goal, which removes aga2 requirement for hurting ganon. No noticeable difference without --shuffleganon enabled. 2017-08-01 19:07:44 +02:00
LLCoolDave 4758ea6402 Promote Cane of Byrna to progression item. Add cane as weapon that can damage Blind. Add Byrna || Cape requirements to Spike Cave, Eye Bridge Chests and Spike Room Chest in Misery Mire. 2017-08-01 17:28:13 +02:00
LLCoolDave 1fae8d4a1b Add Moon Pearl requirements to Pyramid Entrances. 2017-08-01 17:25:42 +02:00
LLCoolDave b6c4bf6bd6 Refactor spoiler generation for VT integration. 2017-07-18 12:44:13 +02:00
LLCoolDave 3b7b65cf56 Add crystal and aga 2 requirement to beating Ganon. 2017-07-18 00:10:00 +02:00
LLCoolDave 0514ade3b3 Store Trock Back Entrance state so it can properly be copied between worlds for the playthrough. 2017-07-17 23:13:39 +02:00