Commit Graph

240 Commits

Author SHA1 Message Date
AmazingAmpharos a11ef66935
Timed mode rebalance
This increases the starting time for timed-countdown and timed-ohko modes. It's +15 minutes for keysanity, +20 minutes for most varieties of entrance shuffle, and only +10 minutes for dungeonssimple and dungeonsfull. The bonus time is cut in half for hard difficulty or above with timed-ohko. Before this, it was extremely unrealistic to be able to complete these modes without a time over.
2017-12-14 15:04:28 -06: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
AmazingAmpharos 704d9eb6c8
Adjuster support
These are the basic adjuster files setting up for a new feature in the next release.  Already randomized ROMs can be adjusted after the fact and have quickswap, fast menu, disable music, heartbeep rate, or a custom sprite applied or removed at the user's discretion with the checksum being properly updated. For now, the validity check for a randomized ROM is simply that it is exactly 2 MiB long and has a file name that ends in .sfc (while .smc is a valid SNES ROM file extension, no existing randomizer programs use it for output). This feature will need more updating with the new v28 features before it's ready for primetime; KevinCathcart's sprite selector will be an important part of this feature, and I believe variable speed fastmenu will be supported by the v28 base ROM so I'd want to make that selectable as well. For now, this should work as building blocks.
2017-12-12 08:17:52 -06:00
AmazingAmpharos d9182a4adb
Updated version number and logic hash
Pretty self explanatory
2017-12-02 16:15:25 -06:00
AmazingAmpharos e7f7ebd2d1
Merge pull request #3 from KevinCathcart/pyinstaller
Windows Bundle and Installer
2017-12-02 16:00:13 -06:00
Kevin Cathcart c760ac1766 Add versioning to MSI installer.
Also close console window when not using CLI.

Remove deployment section of appveyor.yml for the time being.
2017-12-02 16:38:35 -05: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 7b7dcc12c6 Restructure README.md
Make the readme less command-line focused, since non-technical users are
encouraged to use the GUI.
2017-12-02 16:38:35 -05:00
Kevin Cathcart 2a4f0c58a8 Update Appveyer to use better naming for msi and zip. 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
Kevin Cathcart 91c7fdaf2d Update Spec File 2017-12-02 16:38:34 -05:00
Kevin Cathcart 06dbbce2be Add Appveyor integration 2017-12-02 16:38:34 -05:00
Kevin Cathcart 4271b4430a Add pyinstaller bundle support
Will allow creating generating pre-made builds for windows that do not
require python to be already installed.
2017-12-02 16:38:34 -05: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
AmazingAmpharos 97c7fdaf59
PoD mislabel/softlock fix
Two addresses for PoD item locations were reversed, causing items to be placed with incorrect assumptions. This fixes that problem.
2017-12-02 00:18:38 -06: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
AmazingAmpharos 595e2a20b0
Merge pull request #2 from KevinCathcart/Dev
Dev
2017-11-24 18:42:58 -06:00
Kevin Cathcart 424fc3e6c6 Create data subfolder in preperation for new features
Move base2current.json to this new subfolder
2017-11-23 12:38:28 -05:00
Kevin Cathcart d4052ab60a Use sys.exit instead of exit
The global exit function is designed only for the interpreter, so use
the correct one.

Also fix the plandomizer so it does not immediately error when run.
2017-11-19 16:00:26 -05: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
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 2b6d11bef3
Credits fix
The "Flute Boy plays again" text is supposed to refer to the item buried by the shovel, not the item given in the Dark World. Easy fix.
2017-11-14 04:25:12 -06: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 cd803ffb53
Ganon flag fix
The correct address has been put in for this flag. Previously this conflicted with the 1/4 magic byrna spike cave damage.
2017-11-13 16:12:28 -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 7e5edf87c2
Keysanity clarification
Clarifies how pendant and crystal dungeons are discerned in the keysanity mode.
2017-11-12 04:39:16 -06:00
AmazingAmpharos 399b83e6fe
Keysanity bug fix
This fixes the broken item menu in keysanity.
2017-11-12 04:38:41 -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 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 6c13056781
New parameter support
A one line change to make this file work with the existence of new parameters.
2017-11-11 18:43:02 -06:00
AmazingAmpharos 1f4470600c
Updating readme
The readme will not contain information about all the new stuff.
2017-11-11 18:37:58 -06:00
AmazingAmpharos 4bde13105e
Hard and above difficulty
Remove fairies from being pre-stocked in bottles on high difficulties
2017-11-11 18:10:34 -06:00
AmazingAmpharos 13197e4ffe
Timer display
Makes these two files support that setting. Also fixes a bug in the command line display for the timer settings.
2017-11-11 18:08:41 -06:00
AmazingAmpharos ff3420cab7
Timer display and balanced algorithm
-Makes this file support these too
2017-11-11 18:07:13 -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
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 ad047e6c9c
The last of the renaming
Courtesy of KevinCathcart
2017-11-11 18:03:42 -06:00
AmazingAmpharos 6644863007
Support overflow on hard and above
Added back in the normal number of progressive swords and bottles (and in the case of hard armor and shields) to the higher difficulties which will make it easier on average for players to find their earlier pieces of this equipment. Non-progressive alternatives were supported and set not to disrupt the average value of equipment. Hard still ignores progressive setting for armor since it doesn't change when players get armor upgrades (find one, get blue mail) but does allow non-progressive players to get the overflow item from the second armor discovery.
2017-11-11 15:47:44 -06:00
AmazingAmpharos a3ccc051f6
Ganon at Uncle softlock fix
-From KevinCathcart, this adds a new region to the world for the castle courtyard reachable from the exit to the uncle tunnel and from the upper ledge of Hyrule Castle but not the main gate. In effect, this changes nothing if Ganon is not at the uncle passage, and if Ganon is at the uncle passage, either Mirror + pyramid access, Master Sword, or a connecting cave to the upper ledge of Hyrule Castle will be required to access the main gate. This is necessary to fix a very rare softlock in which the player could defeat Agahnim, lose access to the Hyrule Castle main gate, and make the seed impossible.
2017-11-11 15:31:37 -06:00
AmazingAmpharos 9af7052e5f
Add balanced algorithm
-From KevinCathcart, adds a "balanced" algorithm that, in theory, fixes the dungeon bias of the v26/v27 algorithm while maintaining the desirable amount of randomness it provides.
2017-11-11 15:28:34 -06:00
AmazingAmpharos fe3bcd52a2
More difficulty features
-Properly set overflow counts and items for progressive equipment and bottles.
-Fairy fountains can no longer give free fairies on hard or above
-Shields now have hiked prices on hard and above consistent with vt rando
-KevinCathcart's new integer based writebytes functions are added for future backend use.
2017-11-11 15:25:56 -06:00
AmazingAmpharos 260a7072e0
Timed-OHKO and easy
-Dungeon item counts always displayed in easy mode if not also timed mode
-Timed-OHKO timer amounts updated to modern values (didn't actually measure out the red clock, set it to "large negative number" which should be functionally identical to the -32400 seconds that vt uses)
2017-11-10 04:50:50 -06:00
AmazingAmpharos cbb36fc5b3
New parameter support
Add support for new parameters
2017-11-10 04:18:39 -06:00
AmazingAmpharos a72097a52f
New parameter support
Add support for newly implemented parameters
2017-11-10 04:18:09 -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 0c0cd240ad
New File
This file contains the definition for the item pool generation function. I'm not going to sugarcoat this; what I wrote is a total mess. This considers all possible combinations between timed modes (two distinct sets of timers), triforce hunt, progressives on/off/random, and all five of the difficulty settings from the vt randomizer. Maybe it would have been better to just hardcode every combination as its own array instead of build smaller arrays and use some semblance of logic to piece them together, but this is what I did. I'm not satisfied at all with the ugly, ugly form of this code and hope to revisit later, but for now, it adds significant improved functionality.
2017-11-10 04:15:45 -06:00
AmazingAmpharos 168fd83c97
Fix for not placing Maps and Compasses
It turns out the previous rewrite actually disabled that flag completely in the v26 algorithm. This makes it work again (per KevinCathcart)
2017-11-10 04:12:49 -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