Commit Graph

446 Commits

Author SHA1 Message Date
Fabian Dill e7beb80219 Allow Mystery setting Misery Mire and Turtle Rock medallions 2021-01-02 23:00:14 +01:00
Fabian Dill be162f5b8d Connections Plando Support 2021-01-02 22:41:03 +01:00
Fabian Dill 07df9b9e80 Text Plando Support 2021-01-02 16:44:58 +01:00
Fabian Dill f3b6be2b20 Item Plando Support 2021-01-02 12:49:43 +01:00
Fabian Dill e25a03173b Implement "minimum version" checks into server and clients 2020-12-29 19:23:14 +01:00
pepperpow 62cfa8813f Merge branch 'shop-fill' into multishop-all 2020-12-23 20:50:41 -06:00
pepperpow f72d93f6f6 Fix divide by zero 2020-12-23 20:50:13 -06:00
pepperpow 0debc3289b Merge branch 'shop-fill' into multishop-all 2020-12-23 16:36:45 -06:00
pepperpow 6f0511c047 Move shop table adjustments outside of Rom.py 2020-12-23 16:36:06 -06:00
pepperpow a5a09ec4eb Merge branch 'shop-fill' into multishop-all 2020-12-23 15:31:23 -06:00
pepperpow 4c5cf78939 Fixes to logic, doesn't make unwinnable games 2020-12-23 15:30:21 -06:00
pepperpow c66e97faf6 Merge branch 'shop-fill' into multishop-all 2020-12-23 11:29:20 -06:00
pepperpow 83304fd314 Rotate rupees out of shop and equalize prices 2020-12-23 11:28:42 -06:00
CaitSith2 d090a02d81 Implement tile shuffle 2020-12-22 01:05:48 -08:00
CaitSith2 2fccb3751c Disallow non-local pendants and crystals 2020-12-19 16:23:21 -08:00
CaitSith2 35c00588ba Make sure dungeon items aren't in non-local pool if the appropriate shuffle isn't set. 2020-12-19 15:36:29 -08:00
pepperpow 767c84a581 Merge branch 'shop-fill' into multishop-all 2020-12-15 02:36:48 -06:00
pepperpow ffe5b4b1a1 Fixes to clients/servers for shop checks 2020-12-15 02:34:22 -06:00
pepperpow 7b5bd016b9 Merge branch 'potion-shop' of github.com:pepperpow/MultiWorld-Utilities into multishop-all 2020-12-02 20:35:59 -06:00
pepperpow 608d96329f Shop Item Pool fill feature + multiworld player compatability 2020-11-23 20:05:04 -06:00
pepperpow fe218fffa6 Potion Shop Changes
(reduced)
2020-11-23 19:00:11 -06:00
CaitSith2 4370447adc More fixes to non_local_items 2020-11-22 14:29:11 -08:00
Fabian Dill fc2f1dfd29 implement "non_local_items" 2020-11-22 22:53:31 +01:00
CaitSith2 d95a16a09e Fix issue with inverted dungeon names on entrance data table. 2020-10-30 23:41:56 -07:00
Fabian Dill 99d596540f
Merge pull request #147 from KScl/ohko_weights
Options for amount of time given in timer modes
2020-10-30 03:51:13 +01:00
CaitSith2 5f535012f3 Remove debug info 2020-10-29 15:32:23 -07:00
CaitSith2 d79147fc58 Remove doors specific argument. 2020-10-29 15:32:05 -07:00
CaitSith2 008e84c9a0 Add Location to area data to multidata 2020-10-29 15:28:18 -07:00
Kaito Sinclaire 41a58084f1 Options for amount of time given in timer modes
(Primarily to make Timed OHKO a viable multiworld and/or mystery option,
but also works with other timer modes as well)
2020-10-28 16:20:59 -07:00
Fabian Dill 1d58f54101 move ALTTP to its own world folder 2020-10-24 05:38:56 +02:00
Edos512 b91a627b32
Added options from Maseya Palette Randomizer (#145)
Add remaining palette shuffle options
2020-10-24 02:44:27 +02:00
CaitSith2 651e1a1901 Changes
* Fix chests always being for yourself AND intended recipient for Race Rom seeds.
* Fix MultiMystery not being able to correctly pack Race Rom seeds into a zip file.
* Add tags to multidata for Race rom, Spoiler log, and Playthrough if spoiler log was generated.
2020-10-21 02:02:13 -07:00
CaitSith2 ad765659dd Add Race rom encryption. 2020-10-20 01:16:20 -07:00
Fabian Dill 4f8c737eec squashed commit of many breaking changes
Dropping Support for Python 3.7; adding support for Python 3.9
2020-10-19 08:26:31 +02:00
Fabian Dill b5d91af752 New Logic:
Enemy Shuffle awareness
Easy Item Functionality awareness
Dark Room Logic option
Boss Item Shuffle option
Silverless Ganon is a Minor Glitch

Faster Dungeon Item Fill
2020-10-07 19:51:46 +02:00
CaitSith2 9812e2cca5 Add sprite_pool for limiting sprites used in randomonevent. 2020-10-06 13:22:03 -07:00
CaitSith2 38ac943a9c Random sprite on hit now part of basepatch. Other events possible too. 2020-10-04 10:57:30 -07:00
Fabian Dill a668aa3b23 Make "Prize" shuffling an option 2020-09-20 04:35:45 +02:00
Fabian Dill da01325abd Only pre-open pyramid if ER falls within vanilla/dungeonssimple/dungeonsfull 2020-09-11 03:23:00 +02:00
CaitSith2 9d9a13dd1d Show universal keys in non-mystery filename when rolled from gui or command line. 2020-09-02 15:45:09 -07:00
Fabian Dill 112868b751 remove duplicate shop setting in gui and make entrance/location cache renew slightly faster 2020-08-27 04:05:11 +02:00
Fabian Dill d86eb69b4c Remove old fill algorithms that I have no intention to optimize or support in the future 2020-08-25 17:44:03 +02:00
Fabian Dill 6d38e87527 Refactor some shop code 2020-08-25 14:31:20 +02:00
Fabian Dill 26ab3dd69a Shop Shuffle
- more can be done here, but this works fine as a sometimes fun proof of concept
2020-08-23 15:03:06 +02:00
Fabian Dill 4cf1923c98 integrate maseya-z3pr palette shuffle 2020-08-23 12:06:00 +02:00
Kippi00 cac5795e01
Apply fake world fix to minor glitches (#135)
* Restore pre-aga1 dark world dungeon behavior in glitched logics

In any logic that does not patch out fake worlds, dying in a Dark World dungeon before defeating Aghanim 1 will now put you in Fake Dark World. (vanilla behavior)

* Apply fake world fix to minor glitches

Minor glitches players don't really need to make use of fake worlds - eventually want to add a "fake_worlds" yaml option so players can choose whether or not to have the fix applied
2020-08-22 15:28:24 +02:00
Fabian Dill 45268b18f3 another round of optimizations and cleanup including some I/O multithreading
also alias sprite names with their file names as that's an often done mistake
2020-08-21 18:35:48 +02:00
Fabian Dill 8852ec9a18 make all output paths host.yaml settable
rename itemlist to itempool, as the actual item listing is in items.py
change pedestal text of book of mudora from paradox to hylian for dingusses
2020-08-20 15:43:22 +02:00
Fabian Dill cb4fa6dd33 Split enemy shuffle into its components 2020-08-19 23:24:17 +02:00
Fabian Dill b0284c9fe2 Make all final roms 4 MiB to hide enemizer 2020-08-16 11:13:50 +02:00
Fabian Dill df6ee1a08b Fill Algorithm optimisations (somewhat minor, but easy pickings) 2020-08-14 00:34:41 +02:00
Fabian Dill 22abd09087 WebHost: On-Server rolling 2020-08-02 22:11:52 +02:00
Fabian Dill 615192f65b remove lamps_needed_for_dark_rooms variable 2020-08-01 06:26:30 +02:00
Fabian Dill 788f0e9af9 Add Tags to multidata 2020-07-19 20:16:45 +02:00
caitsith2 075092b154 Make random_on_hit and ALL adjuster settings on initial seed roll deterministic 2020-07-16 03:40:47 -07:00
caitsith2 3c6893d4a8 make hints, credit text, and chaos thieves determistic. (no longer random based on the order the roms are written.) 2020-07-15 23:01:29 -07:00
Fabian Dill 6841158373 unfix fake world in glitched modes where ER is not cross-world 2020-07-16 04:14:44 +02:00
Fabian Dill 93ecf5988b implement secrets.SystemRandom() for --race 2020-07-14 07:01:51 +02:00
Fabian Dill 59a71dbb05 restore multidata backwards compatibility 2020-07-14 05:06:25 +02:00
Fabian Dill ea9e103cb0 update rom name handling 2020-07-14 04:48:56 +02:00
Fabian Dill f27d9e904f fix multithreaded import racing condition when frozen 2020-07-10 22:43:54 +02:00
Fabian Dill 346a08c3dd Use EasyModeEscape flag of upcoming Enemizer 2020-07-05 02:06:00 +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
Fabian Dill 8367351c62 track precollected items after first location check and add some non-progressive item handling 2020-06-23 23:50:37 +02:00
Fabian Dill af13b62c8d do not include entrance hint data if entrance is vanilla 2020-06-20 12:22:50 +02:00
Fabian Dill d6cccff2d7
Merge pull request #109 from Berserker66/extended_triforce_hunt
Change max triforce_pieces_required from 30 to 112.
2020-06-17 10:34:59 +02:00
caitsith2 d8bc5ca2a8 Set triforce pieces available to max of available and required. 2020-06-17 01:33:34 -07:00
caitsith2 617312fd4b add available_triforce_pieces 2020-06-17 01:02:54 -07:00
Fabian Dill fdaba7e28c Merge branch 'bsdiff4_baserom'
# Conflicts:
#	Main.py
2020-06-13 22:51:44 +02:00
Fabian Dill 5692041a5b call enemizer with binary rom data 2020-06-11 04:56:47 +02:00
Fabian Dill 4125995bdd Adjust output to "BM" (Berserker's Multiworld) to differentiate spoiler logs, roms and server data at a glance
Rename _multidata to .multidata and embed .multidata as MultiServer-openable file into windows registry
2020-06-10 21:25:14 +02:00
Fabian Dill 8f6fd314ef remove jsonout #2 2020-06-09 22:11:14 +02:00
Fabian Dill 9c9b5c5191 remove jsonout 2020-06-09 21:52:46 +02:00
CaitSith2 96bea214da
Merge branch 'master' into msu_v32 2020-06-08 02:04:41 -07:00
Fabian Dill 17f884d047 make triforce pieces required an option 2020-06-07 15:22:24 +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 e55726efca make world-local items available as a general option 2020-06-03 22:13:58 +02:00
Fabian Dill f918efb645 implement skip_playthrough in mystery 2020-05-31 00:28:03 +02:00
Fabian Dill b2e20be077 Hints now contain ER info 2020-05-18 05:40:36 +02:00
Fabian Dill 11678fa20b turn progression balancing into a per-player option 2020-05-18 03:54:29 +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 4df8604b48
Merge pull request #92 from compiling/owg_multi
Fix copy world
2020-05-10 08:33:23 +02:00
compiling 8cd15c0e0a Go back to the old copy_world routine, and fix it to work with dynamic connections. 2020-05-10 14:56:52 +10:00
Fabian Dill cb3ad87299
Merge pull request #90 from compiling/owg_multi
Fix for copy_world
2020-05-09 02:46:39 +02:00
compiling 555bd52a68 Go back to a custom copy_world implementation. copy.deepcopy doesn't handle big graphs very well (stackoverflow). 2020-05-09 10:00:41 +10:00
Fabian Dill aa3eb6a3f8 stronger compression and compatibility on multidata 2020-05-08 23:09:56 +02:00
compiling e7a3637cc9 Add OWG clip to dark world floating island. 2020-05-08 18:23:55 +10:00
compiling 441f59d6ea Refactor OWG rules to keep them separate from no glitches.
Add logic for superbunny access to Sahasrahla's closet (with boots)
Add logic for superbunny through Two Brother's House (with boots)
Fix superbunny logic for spiral cave and mini moldorm cave - requires a sword
Add logic for waterwalking into Waterfall Cave
Add clip to Ice Palace entrance (requires boots, pearl and flippers)
Add extra clips to inverted owg logic - PoD and Dark Lake Hylia Ledge are now in logic with just boots
Add clip to flute point 6 into inverted owg logic - some light world locations are now accessible with boots and mitts, but no pearl or mirror.
2020-05-07 18:07:53 +10:00
Fabian Dill 860faf6ef5 unify versions 2020-04-20 14:50:49 +02:00
Fabian Dill 8599c76647 Disallow spaces in generated names 2020-04-18 21:46:57 +02:00
Fabian Dill 4cc216949a embed server_options into multidata 2020-04-18 15:59:11 +02:00
Fabian Dill 31d3b7ce84 implement glitch_boots as a proper CLI option 2020-04-16 11:02:16 +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 f89c28d5c2 Merge branch 'master' into pull/58
# Conflicts:
#	AdjusterMain.py
#	BaseClasses.py
#	EntranceShuffle.py
#	Gui.py
#	InvertedRegions.py
#	ItemList.py
#	Main.py
#	Plando.py
#	Rom.py
#	Rules.py
2020-04-04 09:16:39 +02:00
Fabian Dill 74b1688427 Allow diff files to be created from the command line 2020-03-08 15:34:35 +01:00
Fabian Dill 6059db3ea0 some general improvements. Mostly performance improvements of patching roms in multiworld with enemizer 2020-03-06 23:08:46 +01:00
Fabian Dill e3beb702f8 fix clock mode, again 2020-03-04 13:55:03 +01:00
Fabian Dill 11e1ad6901 some small improvements for mystery 2020-02-23 17:06:44 +01:00
cassidy 54e300a9e7
Get timer and progressive settings from dict for file name (#29) 2020-02-07 23:16:24 +01:00
Fabian Dill bac66a7e53 fix timer handling in gui set data 2020-02-07 23:14:50 +01:00
Fabian Dill c76b19b290 Merge remote-tracking branch 'origin/master' 2020-02-04 10:59:27 +01:00
Fabian Dill 574699a527 remove extraneous spoiler creation 2020-02-04 10:59:19 +01:00
cassidy 21b8c73179
Add "timer" as individual setting (#23) 2020-02-03 02:10:56 +01:00
CaitSith2 18f15d80f9 MSU-1 (#13)
* Add Extended MSU as an option
2020-01-22 18:27:25 +01:00
Fabian Dill a8f4bd946b revert "mark utf-8 output as such" for Bonta compatibility and sahahashashasbot compatiblity 2020-01-22 18:20:35 +01:00
Fabian Dill 7dba01b4f7 mark utf-8 output as such 2020-01-22 18:00:58 +01:00
Fabian Dill 06ea170ecd
Non progressive option (#12)
* allow non-progressive

* use the actual extended_collections module
2020-01-22 06:28:58 +01:00
DatXFire 341e794cd8 Add Beemizer and Pot Shuffle to Spoiler Log Output 2020-01-18 12:51:10 -05:00
Bonta-kun f988f7671b --remote_items toggle: items will no longer be stored in the rom, a connection to a multiworld server will be required to receive them 2020-01-18 09:50:12 +01:00
Bonta-kun 71cd0b917c Rom: fix enemizer patching 2020-01-14 22:13:37 +01: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 2f5a3e24dd Small shops refactor, cleanup some inverted mess 2020-01-10 11:41:22 +01:00
Bonta-kun 239ea0f67c outputpath: use makedirs instead of mkdir 2020-01-10 07:25:16 +01:00
Bonta-kun 77ae96cf1b Refactor rom patching now that jsonrom patches can safely be merged 2020-01-10 07:02:44 +01:00
Bonta-kun 6bafdfafe6 Mystery: rom options can be set in weights file, eg
rom:
  sprite:
    random: 1
    randomonhit: 1
    mog: 1
  disablemusic: off
  quickswap:
    on: 1
    off: 0
  menuspeed:
    normal: 1
    instant: 1
    double: 1
    triple: 1
    quadruple: 1
    half: 1
  heartcolor:
    red: 1
    blue: 1
    green: 1
    yellow: 1
    random: 1
  heartbeep:
    double: 1
    normal: 1
    half: 1
    quarter: 1
    off: 1
  ow_palettes:
    default: 1
    random: 1
    blackout: 1
  uw_palettes:
    default: 1
    random: 1
    blackout: 1
2020-01-09 17:46:07 +01:00
Bonta-kun 42b85d7a3c Include sphere0 items in the spoiler log and in the playthrough 2020-01-09 08:31:49 +01:00
Bonta-kun 5db7e066da Sprites are now player specific, can be chosen from their sprite name rather than file path, support "random" choice and support "randomonhit" enemizer-only option 2020-01-09 02:30:00 +01:00
Bonta-kun 28011cf675 Built-in palette shuffle (including blackout) 2020-01-08 03:43:48 +01:00
Bonta-kun eb7ca4fdf9 Implement --startinventory 2020-01-06 19:13:42 +01:00
Bonta-kun a3657c02aa Multidata/save: moved away from pickle and store a compressed json instead 2020-01-05 20:22:29 +01:00
compiling edd656b903 Swap implementation of Take Any fix to match Multiworld. 2020-01-03 08:27:22 +11:00
compiling 4921daccf3 Add Python 3.8 compatibility - replace deprecated function time.clock with time.perf_counter 2020-01-02 16:33:01 +11:00
compiling 0eed4bb527 Add shop door ids to tables (used when shop locations are vanilla)
Do not replace Upgrade Fairy with retro shop
2020-01-02 16:33:00 +11:00
Bonta-kun 7aa9622c5e Escape assist: only get infinite bombs with enemizer or bombs/cane/bow start + high hp 2019-12-30 06:42:45 +01:00
Bonta-kun fe307b1ac7 bzzz bzzz 2019-12-30 03:03:53 +01:00
Bonta-kun 4281dcc619 Skip enemizer patching with jsonout and no enemizercli 2019-12-28 18:12:11 +01:00
Bonta-kun 93f8a684f1 Move outputpath handling in main(), create path if it doesn't exist 2019-12-28 17:12:27 +01:00
Bonta-kun 197b8bd6c6 Actually enable bombs escape assist 2019-12-27 19:09:58 +01:00
Bonta-kun aa080eb455 Include unreachable items in the spoiler log 2019-12-21 13:33:07 +01:00
Bonta-kun 4a16ba74e8 Fix triforce hunt icon showing for every player 2019-12-21 10:42:59 +01:00
Bonta-kun 5f77aaba06 Individual settings: shufflepots and shufflepalette 2019-12-18 21:20:55 +01:00
Bonta-kun 8721310cf7 World: include can_access_trock_eyebridge can_access_trock_front can_access_trock_big_chest can_access_trock_middle and fix_fake_world in the player specific attributes 2019-12-18 20:45:51 +01:00
Bonta-kun c2fabc9f8a Fix player id/name not showing up in rom name 2019-12-17 22:36:23 +01:00
Bonta-kun 1ecb5fe40b Individual settings: shufflebosses shuffleenemies enemy_health enemy_damage 2019-12-17 15:55:53 +01:00
Bonta-kun 8a5eef11ce Individual settings: hints 2019-12-17 12:22:55 +01:00
Bonta-kun d9281adc07 Individual settings: accessibility 2019-12-17 12:14:29 +01:00
Bonta-kun e5246d5d5a Individual settings: retro 2019-12-17 00:16:02 +01:00
Bonta-kun 1315eb55cf Individual settings: map/compass/key/bk shuffle 2019-12-16 21:46:47 +01:00
Bonta-kun dc26dfce77 Individual settings: crystals_ganon crystals_gt openpyramid 2019-12-16 19:09:15 +01:00
Bonta-kun ec1b9eca43 Individual settings: shuffle 2019-12-16 18:24:34 +01:00
Bonta-kun 203147dda1 Individual settings: difficulty and item_functionality 2019-12-16 17:46:21 +01:00
Bonta-kun c1788c070d Individual settings: goal 2019-12-16 16:55:00 +01:00
Bonta-kun ab28858a8f Individual settings: mode 2019-12-16 16:54:46 +01:00
Bonta-kun 79786c7c9e Individual settings: logic 2019-12-16 13:26:07 +01:00
Bonta-kun b695d3573e Main: change output name to support individual player settings 2019-12-16 13:09:43 +01:00
Bonta-kun d33582a3a2 Enable bombs in escape assist with an enemized standard start so you can beat the game 2019-12-16 09:59:16 +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 5bdc01e48f Add an option to specify a custom output filename 2019-12-15 17:29:17 +01:00
Bonta-kun 955dce0812 Race rom support (partial) 2019-12-15 16:16:39 +01:00
Bonta-kun 842f6bf1ac rom: correct gametype flag 2019-12-15 10:54:49 +01:00
Bonta-kun e4fef05d53 Initialize region cache in initialize_regions() and make it a 2d map for more efficient player filtering 2019-12-14 19:19:08 +01:00
Bonta-kun fc9d1b501b Replace keysanity with map/compass/key/bk shuffle 2019-12-13 22:37:52 +01:00
Bonta-kun 6ca08a0fa4 Output rom: put seed and player id/name first in filename 2019-12-12 10:22:54 +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 55a30aa91f multiworld 2019-12-09 19:27:56 +01:00
Bonta-kun ce19713209 Removed usage of deprecated time.clock() 2019-12-09 13:45:45 +01:00
Kevin Cathcart ab99e8c223 Triforce Hunt turn-in logic 2019-08-28 21:12:44 -04:00
Kevin Cathcart e29f39c585 Mark as pre-release 2019-08-24 15:38:22 -04:00
Kevin Cathcart 990eab4e55 Fix broken retro mode 2019-08-17 15:13:46 -04:00
Kevin Cathcart 0377d6b7bc Finish support for variable crystal requirements
Note: We still do not have anything to reveal required Ganon crystal
counts in inverted mode. For non-inverted it is revealed at a sign on
the pyramid, which might be less than ideal.
2019-08-11 08:55:38 -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 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
Kevin Cathcart 6d5a0a004d Use a proper multiset for progression items
This can cut generation times in half in some cases
2019-07-13 18:17:16 -04:00
Kevin Cathcart aab696fa9c Remove logic_hash
It is no longer used for anything.
2019-07-11 20:39:08 -04:00
Kevin Cathcart 759c1a5686 Optimize simplified caching system 2019-07-11 20:39:08 -04:00
Kevin Cathcart d6ff27f0a5 Reinstate the state cache system for playthough generation
Fixed the issues in can_beat_game that required me to turn it off.
2019-07-11 20:39:08 -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
Kevin Cathcart d44d194de7 Switch to simpler caching system
This should speed up generating the seeds the currently take
the longest. Seems to have no impact on the average case.
2019-07-09 20:31:39 -04:00
AmazingAmpharos 3d2ae7d710 Most remaining changes for release 2019-04-29 16:11:23 -05: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
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
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
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
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 2e99db5403 Fix mixed line endings 2018-03-18 01:52:09 -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 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 c5b62c9b93
Version number to satisfy msi requirement
Apparently we are required to always have three distinct numeric fields. Hilarious.
2018-03-03 12:29:52 -06:00
AmazingAmpharos 52300e8c85
Update version number and logic hash 2018-03-03 12:24:32 -06:00
Kevin Cathcart df0835d3e7 Extra Junk in GT for triforce Hunt 2018-03-01 21:36:30 -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 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
Kevin Cathcart 407687d18e Add Dam to spoiler Paths when appropriate 2018-02-09 19:20:54 -05:00
Kevin Cathcart f39886579a Add cross world bunny logic 2018-02-06 19:18:13 -05:00
Kevin Cathcart a0237e0863 Update mixed cave shuffle
It now shuffles super bomb into multi-entrance caves
(The list of entrances that owuld be blacksmith safe are marked, but
they are not safe because dwarf will not enter them, we may patch this
eventually)

Also include a missing dungeon region in the hyrule castle dungeon
definition

Include Tower of Hera as a valid old man location in new Full shuffle
2018-02-06 19:18:12 -05:00
Kevin Cathcart 8672099a3c Add new Full Shuffle
Add stubs for other new modes
2018-02-06 19:18: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
AmazingAmpharos 9f76ab025b
0.5.2.1 new logic hash 2018-01-18 01:10:39 -06:00
Kevin Cathcart 9a2198ac8f Bump version number & new logic hash 2018-01-07 04:49:47 -05: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 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