Commit Graph

249 Commits

Author SHA1 Message Date
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 a86573d529 Add an extra pass to get correct spheres after culling
For an example of a circumstance in which the existing code produces
incorrect spheres, consider the following item locations in the vanilla
entrance layout:

* byrna in sphere 0
* hammer in sphere 0
* gloves in sphere 0
* bottle in sphere 0
* bow in spike cave (sphere 1)
* cape in hype cave (sphere 1)
* flippers on bumper cave Ledge (sphere 2)
* lastly both Swamp and PoD are pendants.

Well the culling phase will remove Byrna, because cape is good enough to
still get the bow. But now the bow in sphere 1 depends on the cape also
from sphere 1.
2018-01-06 14:55:30 -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 73ad4e5fbb Fix balanced algorithm to actually use restrrictive fill for dungeon items 2018-01-02 21:19:18 -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 8b20e39588 Merge branch 'Dev' into sprites 2017-12-16 19:13:21 -05:00
Kevin Cathcart 6bd0664b7f Preliminary bunny logic 2017-12-14 20:09:02 -05:00
Kevin Cathcart 073ab728c1 Rework how the main form handles sprites
makes the presence of a Sprite Picker screen more obvious
2017-12-08 19:29:39 -05:00
Kevin Cathcart d31a7d6791 Preliminary implementation of new sprite screen 2017-12-08 10:36:44 -05:00
AmazingAmpharos d9182a4adb
Updated version number and logic hash
Pretty self explanatory
2017-12-02 16:15:25 -06:00
Kevin Cathcart 793eaeed65 Create a utils file for low level helpers like path utilities 2017-12-02 16:38:35 -05:00
Kevin Cathcart 0de4a5857c Preliminary msi support
Added a proper icon

Fix output directory for packaged builds

Added a button to open the ouput directory, and a button to open
documentation for packaged builds.
2017-12-02 16:38:35 -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 9d4d3b8456 Whitespace fixes
Removing trailing whitepace.
2017-11-18 20:43:37 -05:00
AmazingAmpharos cde90cbc84
Update version number
Update the version number and logic hash for 0.5.0 release
2017-11-11 20:19:29 -06:00
AmazingAmpharos a64fb33f4b
A little more polishing up
-Support for balanced algorithm
-Handle output file naming for new parameters
2017-11-11 18:05:06 -06:00
AmazingAmpharos 3b495dde1f
Maintenance
The itempool definition is moved to the new ItemList file to keep the main clean. Several function calls were adjusted to account for world having two new parameters.
2017-11-10 04:17:28 -06:00
AmazingAmpharos 3d60d3ab50
Keysanity in older algorithms
This just makes older algorithms use v26's dungeon item distribution if keysanity is enabled.
2017-11-09 04:45:13 -06:00
Kevin Cathcart 24b0c4a132 Rename forgotten location 2017-11-08 19:23:21 -05: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 fcc97cef81 Tweak fill algorithm to more closely match VT26 2017-11-04 23:52:56 -04:00
Kevin Cathcart dcc34bd39f Move item fill and distribution functions to new file 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 963ce00657 Fix typo in logic_hash. 2017-08-05 20:53:21 +02:00
LLCoolDave 1717511e76 Update version. 2017-08-05 17:52:30 +02:00
LLCoolDave 1d8f17de6f Improve crystal placement algorithm. 2017-08-05 17:52:18 +02:00
LLCoolDave 8fbb6ba04e Normalize filenames to better resemble the VT naming scheme. 2017-08-01 19:47:57 +02:00
LLCoolDave b7a8cedf42 Improve information on selected options in spoiler. 2017-08-01 19:43:46 +02:00
LLCoolDave 9e05284df9 Update Rom and Version. 2017-08-01 19:26:06 +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 91bee83de1 Add Chests in Waterfall of Wishing. 2017-08-01 17:25:08 +02:00
LLCoolDave b6e0956fdb Fix using wrong object type when placing crystals in dungeons behind ganons tower entrance. 2017-07-20 19:12:55 +02:00
LLCoolDave 037c643aab Remove pre-filling of gtower with trash items to match vt25 implementation. 2017-07-20 11:22:35 +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 9105bd1a34 Specially placed Crystals need to be marked as events for sweep pickup. 2017-07-18 00:05:46 +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 1af6edf793 Update crystal placing logic to consider implications of --shuffleganon option. 2017-07-17 22:29:32 +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 132a264d8a jsonout parameter now dumps to stdout instead of file. 2017-07-16 23:20:54 +02:00
LLCoolDave 33e166fb8c Update version number. 2017-07-14 18:25:51 +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 c3854f4d2d Move cmd entry point to EntranceRandomizer.py. Add very barebones tkinter Gui. 2017-07-14 14:34:33 +02:00
LLCoolDave 6b0a506b65 Update version number to 0.4.1-dev. 2017-06-24 19:11:59 +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 30bec2d7db Update Readme to incorporate latest settings. 2017-06-23 22:57:40 +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 197b341940 Some fixups to restrictive algo 2017-06-23 19:07:34 +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 d853db308e Fix flood algorithm not checking if item is valid for selected location. 2017-06-04 18:32:10 +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 b87eb3891d Allow option to suppress writing an output rom (for instance, for batch spoiler creation for statistical analysis) 2017-06-04 13:09:47 +02:00
LLCoolDave 94030f469e Ensure we place all "nice" items first before placing the trash, making the filling better in cases where we exceed the itempool limit. 2017-06-04 13:09:11 +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 52e172b8fa Rename default entrance shuffle to vanilla. 2017-06-03 16:02:42 +02:00
LLCoolDave 7949da8d07 Patch from base J1.0 rom now. 2017-06-03 14:20:39 +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 c58e63b695 Add support for custom Link sprites. 2017-05-26 18:39:32 +02:00
LLCoolDave 2f10495248 Improve debug logging. 2017-05-26 09:55:24 +02:00
LLCoolDave f99d63b257 Ensure that playthroughs for Pedestal goal never lead to Ganon, even if it is the shorter goal. This only affects the spoiler playthrough output. 2017-05-26 09:53:34 +02:00
LLCoolDave 7076666dfc Fix swamp palace fix not being copied when cloning world, leading to potential endless recursion on creating a playthrough if mirror is inside swamp palace. 2017-05-26 09:52:38 +02:00
LLCoolDave 8e7a8d7a8d Use unique hashtable for entrance randomizer. 2017-05-25 21:41:37 +02:00
LLCoolDave 6ef621fe66 Shuffle the bottles you receive from a fairy exchange. 2017-05-25 17:52:31 +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 7af2425c9f Add option to enable item quickswap with L/R 2017-05-25 12:50:42 +02:00
LLCoolDave 1630215a24 Add Prize Pack shuffling and standard/open mode rom switches. Can now work off one base rom. 2017-05-25 12:09:50 +02:00
LLCoolDave 4e6484dd1d Experimental: Disable open door sprite overlays when exiting caves, which get totally misplaced with shuffled caves. 2017-05-22 23:21:37 +02:00
LLCoolDave 034715c4e1 Ensure that remaining items get placed if we run into a dead end while creating a seed. 2017-05-22 21:34:38 +02:00
LLCoolDave 090ea5282b Add experimental insanity mode that shuffles crossworld. Mirror and Pearl are provided so fake LW/DW and bunny issues in filling logic can be prevented. Should work for now, but would be much more interesting with Pearl and Mirror in pool. 2017-05-22 19:52:50 +02:00
LLCoolDave 316ffc2117 Fix issue with rom writing when agahnim fix is applied in simple dungeon shuffle rules, where we swap trock ledge east with mimic cave to put agahnim in LW. 2017-05-22 19:51:57 +02:00
LLCoolDave 8a33bf9be1 Fix Hera Basement Item 2017-05-22 00:06:09 +02:00
LLCoolDave 3cab83f074 Improve Command Line Interface. 2017-05-21 16:30:21 +02:00
LLCoolDave 5c0a192eac Update command line arguments to include new shuffle algorithms restricted and madness 2017-05-21 16:06:12 +02:00
LLCoolDave 0b0f43f5bf Minor bug fixes, added text to all NPCs. 2017-05-20 20:03:13 +02:00
LLCoolDave 72947fa32f Added Rom Patching and Command Line Interface. 2017-05-20 14:07:40 +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