Commit Graph

147 Commits

Author SHA1 Message Date
Fabian Dill 25b43e8357 Add Singularity and Duality Boss Shuffles 2020-07-31 00:07:55 +02:00
Fabian Dill 445852d3fa Gui: Make spritelist "responsive" 2020-07-29 04:31:16 +02:00
Fabian Dill f0d86e4b28 Gui: update title bar 2020-07-14 16:53:57 +02:00
Daniel Parker 0157f348cd Adjuster can modify from patch files 2020-07-10 14:39:32 -05:00
Fabian Dill 252f9600fe restore unkillable thieves in chaosthieves option 2020-07-05 03:12:28 +02:00
Fabian Dill 36db420120 significantly increase the amount of seed numbers, reducing capability to infer source seed 2020-06-28 00:24:45 +02:00
CaitSith2 545bb8023c
Add ganon triforce hunt (#117)
* Add ganon triforce hunt

* Add self to license

* Correction of help message for Local Ganon Triforce Hunt.

* if 'triforcehunt in world.goal[player]:
2020-06-26 16:18:53 +02:00
Fabian Dill 8d3961b6fb update sprites and double the width for sprites 2020-06-23 05:58:27 +02:00
Fabian Dill 573478ae71 set default ER to vanilla
People downloaded ER for ER, so it made sense to make it non-vanilla.
But now people download multiworld for multiworld and full ER is not what is the expected default.
2020-06-21 03:52:19 +02:00
Fabian Dill 9d067b6f00 improve gui 2020-06-10 19:57:01 +02:00
caitsith2 73d1f56ffb base rom changes
* V32 MSU
* All items from chests/received in dark rooms now visible.
* Regular bunny can read signs
* Players up to Player 255 supported on send/received.
2020-06-06 20:49:53 -07:00
Fabian Dill 3864eb5071 fix /snes <snes_interface> if interface contains spaces (which it shouldn't, but meh) 2020-06-03 02:19:16 +02:00
CaitSith2 c8343df81e
Added Extended msu option to gui (#95)
* Added Extended msu option to gui
2020-05-18 05:45:09 +02:00
Fabian Dill cb7d4d43e1 implement progression balancing as an option in CLI, gui and MultiMystery 2020-05-11 02:17:18 +02:00
Fabian Dill 56e57de574 store last used adjuster settings and use them for patching
might use them as gui defaults later
2020-04-26 15:14:30 +02:00
Fabian Dill e7073153e1 log gui exceptions 2020-04-14 18:57:39 +02:00
Fabian Dill c6a61e9008 Merge branch 'master' into owg_test 2020-04-14 03:49:33 +02:00
CaitSith2 34df144f8c
Changes (#64)
* Fix bug where collected maps show on item menu if compass shuffle is on, (and collected compasses if map shuffle is on.)

* Add Dungeon Counter Options
2020-04-13 00:46:32 +02:00
Fabian Dill 95d51d48bf Merge branch 'pull/23'
# Conflicts:
#	BaseClasses.py
#	EntranceShuffle.py
#	ItemList.py
#	Mystery.py
#	Rules.py
2020-04-08 15:07:19 +02:00
Fabian Dill 993d69cebc improve gui checking 2020-03-30 07:46:40 +02:00
Fabian Dill 9f27a60d90 some gui checking 2020-03-28 21:55:41 +01:00
Fabian Dill e3beb702f8 fix clock mode, again 2020-03-04 13:55:03 +01:00
Fabian Dill 6ffaad0afe move gui module install to before project submodules 2020-02-02 22:09:10 +01:00
Fabian Dill 8ec43d722f add ModuleUpdate/Install to gui 2020-02-02 22:03:03 +01:00
qadan 348887ce92 merge conflicts 2020-01-15 19:37:39 -04:00
Bonta-kun ad278f91d6 Multiworld: clients will now be automatically be identified from the rom name and have their names and teams set by the host, meaning those need to be configured during seed gen
Player names will show up in spoiler log and hint tiles instead of player id
MultiClient: autoreconnect to mw server
2020-01-14 10:42:27 +01:00
Bonta-kun 28011cf675 Built-in palette shuffle (including blackout) 2020-01-08 03:43:48 +01:00
Bonta-kun 71b4f6e94b Set default value for --enemizercli 2020-01-06 19:13:53 +01:00
qadan 0547606207 close to first pass 2020-01-02 23:59:28 -04:00
Bonta-kun 2bce64778d Gui: fix default arguments for multiworld 2019-12-31 01:16:41 +01:00
Bonta-kun 1dfc750020 Gui: only take arguments for p1 when opening 2019-12-18 21:34:57 +01:00
Bonta-kun 3d4142bee4 Gui: properly instantiate the Namespace object and fix default player settings 2019-12-17 21:14:20 +01:00
Bonta-kun fcde1e9cdc Added more enemy shuffle options to be consistent with what's on the website 2019-12-16 01:35:10 +01:00
Bonta-kun feb8bfeced Gui: get default values for missing parameters 2019-12-15 18:10:12 +01:00
Bonta-kun e56ea410c6 Gui: set default base rom name 2019-12-15 11:15:00 +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 0dcb5ba73b gui: print exception when gen fails 2019-12-10 02:15:03 +01:00
Bonta-kun 55a30aa91f multiworld 2019-12-09 19:27:56 +01:00
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
AmazingAmpharos 948901c51a
Update GUI
The GUI was dysfunctional after the latest round of updates as it failed to address several new v31 features. The GUI should work again with this update and should allow proper interaction with all relevant options. Some aesthetic rework was necessary to account for the new large number of dropdowns.
2019-10-23 20:46:09 -05: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 16abf033c3 Enemizer support 2019-07-11 20:39:08 -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 ab69ee4188 Random heart colors, typo fix
This fixes a typo in which a helpful hint referring to Thieves' Town would erroneously refer to it as Thieves' Tower. Additionally, the heart color selection now supports random which will randomly choose between the other four presented options. This random feature is also supported by the adjuster.
2019-04-15 14:28:14 -05:00
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 54926a17f4 Additional v30 updates 2018-09-26 17:34:15 -04:00
Kevin Cathcart d477559b2d Update sprites 2018-09-26 13:19:41 -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
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 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 8af56fb586
Heart color changing
A new dropdown option is added to allow the player to choose heart color between four options: red, blue, green, and yellow. The adjuster supports this feature as well.
2018-02-27 20:26:33 -06: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 d48f7803ee Include new insanity mode in Gui 2018-02-18 15:01:21 -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 570ee24fc0 Make Shuffle Ganon the Default 2018-01-27 17:11:53 -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
AmazingAmpharos 7f2a89f5f4
Fastmenu Adjuster Fix 2018-01-09 21:18:37 -06:00
Kevin Cathcart 4262cdb88b Add random sprite option
Fix accidental breakage of Adjuster
2018-01-07 20:19:39 -05: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 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 6007aed5d7 Add a button to return to default link sprite 2018-01-05 00:42:35 -05:00
Kevin Cathcart b604179e51 Mark entry point files as executable for unix systems and add shebang lines 2018-01-01 13:11:11 -05:00
Kevin Cathcart d8a26fce53 Add link to open unofficial sprite folder 2018-01-01 12:59:20 -05:00
Kevin Cathcart 23ea19017f Fix json decoding
Fix minor tooltip issue
2018-01-01 12:13:39 -05:00
Kevin Cathcart ce30913121 Get sprite json from vt.alttp.run
Fix plando's sprite support

Always write both sprite and pallet (using the default if a sprite does
not include a pallet)
so that the adjuster still works.
2017-12-17 17:31:52 -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 2286adf289 Adjuster gui tweaks
Make the help button and output directory button available regardless of
selected tab.

Make controls on both tabs share underlying state where it makes sense
to do so.
2017-12-16 17:53:32 -05: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
Kevin Cathcart f44d78d82f Made sprite updating a background task
Also make it use the correct folders for bundled builds
2017-12-10 11:10:04 -05:00
Kevin Cathcart 0372896bc6 fixup for initial updater code 2017-12-09 12:26:23 -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 911737b84f Add Tooltips for sprites 2017-12-08 19:29:39 -05:00
Kevin Cathcart 5dbc21ce3a Improve performance by creating in-memory gifs 2017-12-08 19:29:39 -05:00
Kevin Cathcart 1528489201 Partial implementation of sprite updating 2017-12-08 10:37:01 -05:00
Kevin Cathcart d31a7d6791 Preliminary implementation of new sprite screen 2017-12-08 10:36:44 -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 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 3e31502fc0 Add untimed OHKO mode 2017-11-18 20:36:42 -05: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 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 cbb36fc5b3
New parameter support
Add support for new parameters
2017-11-10 04:18:39 -06:00
Kevin Cathcart 5b3d4449c1 Whitespace fixes 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 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
Mike A. Trethewey e12d5fb4b0 Set default Mode to Open
Default Mode in the .py is Open, make the GUI parallel.
2017-08-03 11:15:07 -07: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 1e644836bb Add --shuffleganon option to include Ganon's Tower and Pyramid in shuffle pool. 2017-07-17 22:28:29 +02:00
LLCoolDave e717d454b9 Gui needs to provide (unused) jsonout args parameter 2017-07-14 17:04:55 +02:00
LLCoolDave c3854f4d2d Move cmd entry point to EntranceRandomizer.py. Add very barebones tkinter Gui. 2017-07-14 14:34:33 +02:00