Commit Graph

52 Commits

Author SHA1 Message Date
AmazingAmpharos acc04e92ce
Custom Item Pool Update
This updates the custom item pool feature to support progressive bows and the 10 bomb item. Yes, the latter had existed for a long time and was just never put in properly. The default item pool with the custom item pool feature now matches v31's item distribution instead of whatever the last version with bomb/arrow capacity upgrades' default was. I'm unsure if anyone will actually use this feature even still, but it's now up to date!
2019-10-23 21:31:02 -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 ec865e67e6 Fix inverted retro take anys
Removed 'Dark Sanctuary Hint' from take any pool if mode is inverted
2019-09-14 10:02:38 -04:00
Kevin Cathcart 80217b269e Fix inverted triforce hunt 2019-08-28 21:38:36 -04:00
Kevin Cathcart ab99e8c223 Triforce Hunt turn-in logic 2019-08-28 21:12:44 -04:00
Kevin Cathcart 418568df60 Add Item functionality setting and progressive bow
Progressive bows still have issue for silvers hint
2019-08-10 19:37:26 -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
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 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 a89c01f917
Fix inconsistent gen and fix retro
This fixes two issues:

-The same seed number was producing (subtly) different seeds. This was caused by misplaced random calls in the changes to the entrance shuffle; these calls to the rng were happening before the random seed was decided. Re-arranging that function should solve this. Thanks to hycutype for both noticing this and providing a solution.

-Retro mode was broken with the addition of hints. This was caused by the retro exclusive regions not having defined hints (for reasons I truly question myself over, they are defined in ItemList.py...) and then further by an obscure function in copy_world that builds the playthrough and deals with the sword cave not being updated for the new three parameter regions (region objects used to only require two parameters). This has been fixed.
2019-02-22 05:59:46 -06: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
Kevin Cathcart 5d149cabc7 Fix bugs from recent playtest 2018-03-26 19:32:19 -04:00
Kevin Cathcart 9b6ad0369c Bomb price fixing - requested by the Hyrule explosives cartel 2018-03-23 23:02:51 -04:00
Kevin Cathcart 713aaf1e1f Fix a typo in take-any code 2018-03-23 18:27:01 -04:00
Kevin Cathcart 730cfcd706 fix double arrows in Red sheild shop. 2018-03-23 18:27:01 -04:00
Kevin Cathcart 18533fc77d Initial Take-Any implementation 2018-03-23 18:26:59 -04: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 a6ec622e7a
Final v29 tweaks
-Makes Retro Mode and Standard Mode compatible.
-Replaces a Bombs (3) with Bombs (10) in all modes.
-Introduces Silver Arrows to Expert Mode.
2018-03-16 12:26:14 -05:00
AmazingAmpharos f607cc2522
Custom item pool support for retro mode
Allows the placement of Universal Keys (which probably don't do much outside of retro mode) and handles total item counts properly.
2018-03-15 16:53:42 -05: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 7ebe4f9d93
High difficulty updates
Should implement the myriad changes v29 will have to Hard+. This assumes silvers do not exist in Expert which is ambiguous.
2018-03-14 13:30:11 -05:00
AmazingAmpharos 90ce999fd3
Easy Silver Arrows
Easy mode now has 2x Silver Arrows in the item pool by default.
2018-02-27 20:31:16 -06: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 e490a3e224 Add new insanity mode 2018-02-18 14:52:34 -05:00
AmazingAmpharos ed033a440a
Bug fix for custom item pools
Triforce Pieces will now be correctly considered when deciding on how much Nothing to pad the item pool with.
2018-02-11 03:50:24 -06:00
AmazingAmpharos ffe8df3304
Various fixes and QoL changes
Dam softlock fix, fake world fix, TT basement keylock, adjustments for disable music, shuffle Ganon on by default, custom missing certain progression items will fail less often.
2018-01-29 15:48:56 -06:00
AmazingAmpharos 60ff21bf4f
Triforce Hunt always 20/30
This adjusts the item pools to account for the fact that in v29 Triforce Hunt will be 20/30 in all difficulty settings.
2018-01-29 15:40:19 -06:00
Kevin Cathcart e19c0ada70 Retry Logic for Dungeon Prizes
Will help make avoid seed failure for custom pool seeds.

This won't help with a seed that has a layout that is not compatible
with the item pool though.
2018-01-27 16:21:32 -05:00
AmazingAmpharos 564495648d
Custom item pool feature
This is the starting point for the new custom item pool feature that will let users specify the item pool. It is functional, perhaps due for some minor tweaking and definitely needs more testing. The command line side is bad, just two parameters that hopefully don't do anything under any circumstance if the user tries to use them (don't really intend to support a command line version of this feature); maybe there's a better way to let the command line ER work in general without having any opportunity to activate this feature. The GUI should probably show the user the sum of the current item pool out of 153 so the user knows how to size the item pool more easily, but that's a todo.
2018-01-21 20:43:44 -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 79f1b0bbf3 Fix progressive requirements to respect overflow limits 2018-01-04 23:01:09 -05:00
Kevin Cathcart e3ac7ee4a6 VT28 update: Keysanity has dungeon items in normal item pool 2018-01-02 21:19:18 -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
AmazingAmpharos 0e6dc992a0
Easy mode Lamps
This updates the Easy mode item pool to correctly support three Lamps, just like vt does.
2017-12-14 15:05:10 -06:00
AmazingAmpharos 619ad5a716
Typo fix
Fix three typos, two in comments and one that broke triforce hunt mode.
2017-12-02 02:30:48 -06:00
Kevin Cathcart 8158f5793d Rename Bottles for better display in spoiler logs 2017-11-18 20:56:45 -05:00
Kevin Cathcart 3e31502fc0 Add untimed OHKO mode 2017-11-18 20:36:42 -05:00
Kevin Cathcart b15cd2072e Refactored ItemList
It now has much less duplicated code, and a useful difficulty
abstraction.
No changes to pool results were made, and this was verified with
automated testing.
2017-11-18 18:21:31 -05:00
AmazingAmpharos 1752196f7f
Removing debug code
oops, wouldn't have hurt anything but good to remove it anyway
2017-11-13 16:33:38 -06:00
AmazingAmpharos f9e7209a71
Bug fix for timed/triforce item pool
Apparently I don't know how to make subtraction commands. This has been rectified, and now the item pools should contain proper items instead of randomly selected "junk" items.
2017-11-13 16:11:35 -06: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 17b18eb630
Timer display mode
-Adds support for the timer display mode
-Fixes the name for Link's House for insanity mode shuffle
2017-11-11 18:06:05 -06:00