Commit Graph

200 Commits

Author SHA1 Message Date
AmazingAmpharos 91bee4f1b9
The rest of the helpful hint system
This should now work fairly completely. I've added the IR's junk hint text, updated the base ROM to v30, added a checkbox to the GUI/option to the command line to control the hint system, and fixed a bug in the previous upload that listed Skull Woods final erroneously in two arrays. I also now shuffle the Silver Arrow locations before hinting at the first one (so if multiple Silver Arrows are in a seed, all of them are equally likely to be the one Ganon hints at) and now call out "Castle Tower" in hints as a unique location and not as "Hyrule Castle" (what was I thinking on that?).
2019-01-23 03:04:42 -06:00
AmazingAmpharos b2defa664d
Hint system prototype
The junk hints still need filled in. For now, they're just clones of the Tavern Man hints. Also I haven't really tested this at all beyond verifying it runs and the ROM it makes boots. That needs to be addressed of course.
2019-01-20 01:01:02 -06:00
Kevin Cathcart 0f914e47ed Fix captialization of bosses spoiler section 2018-09-26 20:23:20 -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 b259c10d27 Minor bug fixes and other updates 2018-09-16 12:55:49 -04:00
Kevin Cathcart 4c6a140af9 Fix json spoiler serialization
Correct shop spoiler
Adjust cases for main spoiler sections
2018-03-27 00:42:16 -04:00
Kevin Cathcart a57918cf05 Update dungeon order 2018-03-24 13:45:47 -04:00
Kevin Cathcart 360287f0fb Fix spoiler issue from take anys 2018-03-24 13:45:47 -04:00
Kevin Cathcart cb70174508 Add shops to spoiler
Also fix breakage from last spoiler change
2018-03-24 13:45:47 -04:00
Kevin Cathcart 71280762df Better VT site spoilers 2018-03-23 22:42:39 -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
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 28d4ce0997
Beginnings of Retro Mode
This just adds a GUI/command line option to set the variable into world for retro mode and puts the universal key item into the list of defined items. None of the functionality is yet present.
2018-03-14 13:31:36 -05:00
AmazingAmpharos caffd7e34c
GT filler and smith locations fixes
GT now pre-fills with junk if it's in the vanilla location regardless of the state of the shuffleganon flag.

The smith is now allowed to be in multi-entrance cave locations in the appropriate shuffles. A duplicate Old Man Cave (West) from bomb shop multis was also removed.
2018-02-24 22:42:18 -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
AmazingAmpharos deccff249b
New restricted shuffle
This implements the new restricted shuffle that does not respect the difference between single and multi-entrance caves. Restricted_legacy is present for the old restricted behavior. Full_cross_worlds is renamed to Crossed, and all listing of shuffles is given a consistent order that pushes all the _legacy variants to the back.
2018-02-20 14:34:39 -06:00
Kevin Cathcart e490a3e224 Add new insanity mode 2018-02-18 14:52:34 -05:00
AmazingAmpharos 5e743e1c33
Powder patch fixes
Last quick and dirty fix push was a little too quick and dirty. My bad.
2018-02-11 22:35:02 -06:00
AmazingAmpharos abedfd4d1e
Quick Mushroom turn-in fix
This is a quick and dirty (will be replaced later) fix for having to screen transition after turning in the Mushroom, not applied in shuffles that don't move the potion shop. Also a minor fix is in place so the list of entrances that don't invoke the Skull Final etc. exit offset is expanded to include the bottom of Superbunny Cave and TR Big Chest.
2018-02-11 22:25:19 -06:00
Kevin Cathcart e090692c15 style/whitespace tweaks 2018-02-10 18:12:48 -05:00
Kevin Cathcart cd18be71d9 Add new full_cross_worlds shuffle
Untested, seed generates, but might be horrifically broken.
2018-02-06 19:18:14 -05:00
Kevin Cathcart 124e3b69de Change how option_identifier is calculated
This will provide more headroom before running out of space in the 32
bits of the title where this data goes.
2018-02-06 19:18:13 -05:00
Kevin Cathcart f39886579a Add cross world bunny logic 2018-02-06 19:18:13 -05:00
Kevin Cathcart c8f1ed28ef Updates to Region tag
Modify Region taging to include a Dungeon Tag
Refactor to use helper methods to make it easier to see the types.
Add an underlying enum for storage on the region class
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 d29d298d1f Implement Fake World fix
Fixes the issues caused by a light world escape with dark world hyrule
castle
2018-01-25 22:04:12 -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 f3bdc230a7 Misc minor improvements
Open dialogs now filter by correct file extensions

Sort sprites by name (instead of disk order)

Better handle blank author names in zspr files.

Sort paths by name. (Otherwise the Bomb shop entry if present looks
wrong)
2018-01-07 01:31:56 -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
AmazingAmpharos 193b3323b7
Merge pull request #8 from KevinCathcart/Dev
Update through Bomb Shop in paths
2018-01-06 18:58:19 -06:00
Kevin Cathcart a155d455bb Add Bomb Shop to paths output if Pyramid Fairy Entrance is needed
Tweak internal handling of paths
2018-01-06 16:25:14 -05:00
Kevin Cathcart 9846f924d2 Add new 4 heart logic for spike cave and misery mire 2018-01-06 13:39:22 -05:00
AmazingAmpharos 398de826f8
Fastmenu update
Fastmenu is now a variable menu speed setting instead of an on/off toggle. This update reflects that and gives the player a lot of options for the particular setting (normal, instant, double, triple, quadruple, half). A smaller change in this update is removing quickswap and fastmenu from the output file name of the randomizer (reflective of how the adjuster allows them to be shifted freely anyway) and shortening the verbiage for when progressive settings are changed (quality of life change there).
2018-01-05 16:53:29 -06:00
Kevin Cathcart 79f1b0bbf3 Fix progressive requirements to respect overflow limits 2018-01-04 23:01:09 -05:00
Kevin Cathcart c3bdef5c6c Add a paths section to spoiler log
This section will contain the first path found to each location listed
in the spoiler log's walkthrough.

Also implemented is a performance enhancement that more than cancels out
any slowdown caused by the above code.
2018-01-04 22:58:56 -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
Kevin Cathcart b36723f2dd Fix get_all_state to correctly indicate mirror shield is is available if three progessive shields are in pool. 2017-12-16 15:38:48 -05:00
Kevin Cathcart 6bd0664b7f Preliminary bunny logic 2017-12-14 20:09:02 -05:00
AmazingAmpharos 572cffc264
Add disable music feature
This is a feature the vt rando has that we haven't had until now. It was a fairly basic feature... though I confess I tested it minimally.
2017-11-28 04:54:14 -06:00
Kevin Cathcart 8158f5793d Rename Bottles for better display in spoiler logs 2017-11-18 20:56:45 -05:00
Kevin Cathcart 9d4d3b8456 Whitespace fixes
Removing trailing whitepace.
2017-11-18 20:43:37 -05:00
Kevin Cathcart 3e31502fc0 Add untimed OHKO mode 2017-11-18 20:36:42 -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 ff3420cab7
Timer display and balanced algorithm
-Makes this file support these too
2017-11-11 18:07:13 -06:00
AmazingAmpharos 2bbba29497
Typo fix
A misplaced parenthesis is fixes, solving an old bug where spoiler logs couldn't be generated if Maps and Compasses weren't placed in dungeons (thanks KevinCathcart)
2017-11-10 04:11:40 -06:00
Kevin Cathcart 17cd963665 Simplify the only-beatable mode.
This also makes it faster.
2017-11-05 22:08:36 -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 f2ea4b6442 Implement Key-sanity
Still need to add documentation for this mode.
2017-11-04 23:52:57 -04:00
Kevin Cathcart 51a892e869 Enable fast menu
Fast menu is an instant-open menu. It is an alternative to quickswap.
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
Kevin Cathcart d78a3ce7a5 Add VT26 style shuffling of dungeon items
Also adds new VT26 algorithm type that uses this, and makes it the default.
the new type also includes the GT junk items randomization.
2017-11-04 23:52:53 -04:00
Kevin Cathcart 2e9814882e Refactor dungeon and item classes to support VT26 style dungeon item shuffling 2017-11-04 14:28:48 -04:00
LLCoolDave 1d8f17de6f Improve crystal placement algorithm. 2017-08-05 17:52:18 +02:00
LLCoolDave b7a8cedf42 Improve information on selected options in spoiler. 2017-08-01 19:43:46 +02:00
LLCoolDave 7187d63108 Add config option that can disable respawning at pyramid after death to ganon if he happens to be shuffled to elsewhere. Slightly untested, but should cause no harm. 2017-08-01 19:08:46 +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 c6e51f4cf0 Enable Aga Blueballs and Ganon Teleports. 2017-08-01 18:58:42 +02:00
LLCoolDave 51943b17ef Update Rom. 2017-07-18 13:42:33 +02:00
LLCoolDave b6c4bf6bd6 Refactor spoiler generation for VT integration. 2017-07-18 12:44:13 +02:00
LLCoolDave c8fb0582b2 all_state now only considers unplaced itempool items and sweeps. This gives an accurate depiction of what would be possible from this point on. 2017-07-17 23:14:31 +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
LLCoolDave 1e644836bb Add --shuffleganon option to include Ganon's Tower and Pyramid in shuffle pool. 2017-07-17 22:28:29 +02:00
LLCoolDave 4b44a796df All state does not contain crystals or pendants precollected. Key placement needs to collect crystals to consider them available for placing things. If a dungeon is shuffled behind Ganon's Tower entrance, its keys are placed last to ensure that all crystals are collectable before this point. 2017-07-17 22:26:15 +02:00
LLCoolDave e9b752fbed Add fix for gtower exit point to enable it for dungeon shuffling. 2017-07-14 16:11:07 +02:00
LLCoolDave a76be32429 VT25 adaptions: Use new more colorblind suitable green pendant map graphic, disable bonk prize shuffling. 2017-07-14 14:38:13 +02:00
LLCoolDave 83c448f14d Introduce classes for Rom patching to enable json patch output for VT integration. Remove halfassed door frame overlay fixes (solved in randomizer rom now), make bonk prize shuffle optional. 2017-07-14 14:37:34 +02:00
LLCoolDave dcef154609 Move exit points of PoD, SW and TR down so you cannot get stuck in them when exiting through them before opening them. 2017-06-24 19:11:00 +02:00
LLCoolDave 7bef9f6aaa Add support for swordless mode. 2017-06-24 18:48:03 +02:00
LLCoolDave acd54cbbff Turn preplaced items into events to avoid double dipping on them when checking if game is beatable. 2017-06-24 11:11:56 +02:00
LLCoolDave 8f2e8505d1 Set restrictive algorithm to default and add flag for beatable only setting to seed hash. 2017-06-23 22:32:29 +02:00
LLCoolDave 28a2e3cf2d Add flag to only check for beatable, not fully clearable configurations (only works with restrictive algorithm for now). 2017-06-23 22:15:29 +02:00
LLCoolDave 350c688d93 vt23 updates 2017-06-23 21:33:04 +02:00
LLCoolDave 4ec20fa997 Fix up TRock key rules. Should be good enough, may still prevent some valid fire rod/cane of somaria placements with shuffled entrances, but not a big deal I hope. 2017-06-23 21:32:31 +02:00
LLCoolDave 2308a96884 Add restrictive filling algorithm, which only restricts an item from being placed in a location if it would not be possible to beat the game if done. 2017-06-19 21:42:03 +02:00
LLCoolDave a73dba985f Make keys, pendants, crystals and agahnim fights "events", which we sweep for everytime we have new unlock potential. Simplifies searching for items significantly. 2017-06-17 14:40:37 +02:00
LLCoolDave 57a6ba73c1 Zero out more door frame tables, prepare structure for proper fix once understood. 2017-06-17 13:16:13 +02:00
LLCoolDave e8cf884b7e Set correct cutoff threshold for vt22 algorithm. Collect required location names for statistical analysis from playthrough calculation. 2017-06-04 16:15:59 +02:00
LLCoolDave c3482bbd67 Adjust Rom name and identifier (for main screen hash). 2017-06-04 15:02:27 +02:00
LLCoolDave a20eaae13f Add support for starhunt and treasurehunt goals. Add timed difficulties. 2017-06-04 14:44:23 +02:00
LLCoolDave 4ed2a5b510 Add priority attribute to items. They are placed after advancement items, but before the rest. Ensures they are available even in seeds that overfill the itempool. 2017-06-04 14:43:13 +02:00
LLCoolDave fd158e332f Update to latest Rom and add writing support for timed modes and treasure hunt. 2017-06-04 13:10:22 +02:00
LLCoolDave 30f2c1746b Implement new filling algorithms to hopefully avoid ice rod in trock biases. 2017-06-03 21:28:02 +02:00
LLCoolDave 2ef977b386 Update to v22 rom and logic. 2017-06-03 21:27:34 +02:00
LLCoolDave 52e172b8fa Rename default entrance shuffle to vanilla. 2017-06-03 16:02:42 +02:00
LLCoolDave d817f5972c Improve light cone handling. 2017-06-03 15:46:05 +02:00
LLCoolDave 5bb8277ade Improve handling of entrance addresses. 2017-06-03 15:33:11 +02:00
LLCoolDave 1011618de3 Seeds should now get unique in game identifiers based on seed # and settings. 2017-05-30 07:33:23 +02:00
LLCoolDave 5207ccd8fd Significant performance upgrades in convoluted seeds. 2017-05-26 09:55:49 +02:00
LLCoolDave e4e0304b40 Refactored Locations, added heart beep setting. 2017-05-25 17:47:15 +02:00
LLCoolDave bbd52c780d Refactored Items to one concise table and factory. Added credits texts. 2017-05-25 15:58:35 +02:00
LLCoolDave 0a23b5c1de Fix Typo in Agahnim's Name. 2017-05-21 16:32:34 +02:00
LLCoolDave 0b0f43f5bf Minor bug fixes, added text to all NPCs. 2017-05-20 20:03:13 +02:00
LLCoolDave 145809ef4a Runtime Improvements 2017-05-20 14:03:15 +02:00
LLCoolDave f374c637c3 Fixed remaining key logic, correctly implemented sewers. Added support for other game modes, create playthrough. 2017-05-16 21:23:47 +02:00
LLCoolDave abcacd36eb First Iteration (can handle no glitches open/standard logic), WIP 2017-05-15 20:28:04 +02:00