Fabian Dill
c0cdeef67a
Optimize fulfills_accessibility by pruning to relevant locations
2021-01-13 14:27:17 +01:00
Fabian Dill
0978daba69
Make sure shop slots obey accessibility rules.
...
The way this is checked is quite computationally expensive, should revisit later.
2021-01-11 19:56:18 +01:00
Fabian Dill
f12259dd7d
Simplify ShopSlot Shuffling
2021-01-10 19:23:57 +01:00
Fabian Dill
9fcb317aca
convert potion_shop_shuffle into 'w' shop_shuffle flag
2021-01-09 17:53:38 +01:00
Fabian Dill
aed763c58f
make potion_shop_shuffle more consistent in type use
2021-01-09 17:29:31 +01:00
Fabian Dill
e36c6e97c1
Merge remote-tracking branch 'pepper/multishop-all' into multishop
...
# Conflicts:
# EntranceRandomizer.py
# Rom.py
# WebHostLib/static/static/playerSettings.json
# data/basepatch.bmbp
2021-01-09 16:03:59 +01:00
CaitSith2
8ef78cc32a
Add options to allow silent failed plando placements.
2021-01-05 09:56:39 -08:00
CaitSith2
a6d53aafb0
Add option to hard require plando item placement.
2021-01-04 13:50:42 -08:00
Fabian Dill
bd86a07115
make random world targeting smarter, in only considering possible unfilled locations
2021-01-04 15:14:20 +01:00
Fabian Dill
6bb7631382
fix unit tests
2021-01-03 17:16:07 +01:00
Fabian Dill
8ebd36b5a7
update Archipelago
2021-01-03 14:32:32 +01:00
Fabian Dill
08ca4245c1
Merge branch 'main' into breaking_changes
...
# Conflicts:
# Adjuster.py
# AdjusterMain.py
# BaseClasses.py
# MultiClient.py
# MultiServer.py
# Mystery.py
# Utils.py
# WebHostLib/downloads.py
# WebHostLib/generate.py
# dumpSprites.py
# test/TestBase.py
# worlds/alttp/EntranceRandomizer.py
# worlds/alttp/Main.py
# worlds/alttp/Rom.py
2021-01-03 13:13:59 +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
938ccccbd4
make Item hashable
2021-01-02 12:59:19 +01:00
Fabian Dill
f3b6be2b20
Item Plando Support
2021-01-02 12:49:43 +01: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
Fabian Dill
9b0f49e813
Revert logical easy item functionality
2020-12-04 22:44:55 +01: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
360fcbea9e
Add new patch, disallow single bee traps from shops
2020-12-02 20:00:08 -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
Fabian Dill
fc2f1dfd29
implement "non_local_items"
2020-11-22 22:53:31 +01: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
CaitSith2
52dd068577
Fix a typo
2020-10-07 13:48:18 -07: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
dd1bf446ea
Put bombos into logic for swordless players
2020-09-27 10:17:35 -07:00
Fabian Dill
5b19818d14
fix prize shuffle alignment in spoiler log
2020-09-20 04:37:12 +02:00
Fabian Dill
a668aa3b23
Make "Prize" shuffling an option
2020-09-20 04:35:45 +02:00
CaitSith2
f040e96bef
Fix for Killable thieves, tile shuffle, bush shuffle always saying Yes in the spoiler log.
2020-09-14 23:09:47 -07:00
Fabian Dill
d32bfb7bdf
Change "not found" style errors from RuntimeError (misc error) to KeyError (value not found for a given search key)
2020-09-13 17:07:46 +02:00
Fabian Dill
ada13a67fc
rebuild world cache on cache miss
2020-09-08 15:02:37 +02:00
CaitSith2
096fc988c4
Show replacement items in shop spoiler if applicable
2020-09-01 21:23:43 -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
6370f4793b
Make triforce hunt item pool fully dynamic
2020-08-25 19:45:33 +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
ff79cb6e08
Fix custom item pool
...
fixes #136
2020-08-24 02:24:48 +02:00
Fabian Dill
9cabd41d3b
shopsanity
2020-08-23 21:38:21 +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
b5048d99b9
optimize sweep_for_events, some has_ functions and some minor things
2020-08-22 19:19:29 +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
685ff49711
make "universal" small key shuffle a thing and split it out of retro
...
also make retro usable independently from the other world modes in mystery
2020-08-20 20:13:00 +02:00
Fabian Dill
367c853300
optimize getting player names
2020-08-20 03:57:09 +02:00
Fabian Dill
cb4fa6dd33
Split enemy shuffle into its components
2020-08-19 23:24:17 +02:00
Fabian Dill
41163d50f5
default triforces in custom gui to their actual default
2020-08-16 16:49:48 +02:00
Fabian Dill
df6ee1a08b
Fill Algorithm optimisations (somewhat minor, but easy pickings)
2020-08-14 00:34:41 +02:00
Fabian Dill
615192f65b
remove lamps_needed_for_dark_rooms variable
2020-08-01 06:26:30 +02:00
compiling
d046829eae
Change item placement rules to not be part of logic - they are used for local items and to prevent placing items in ways that would make seed generation impossible.
2020-07-16 18:59:23 +10:00
Fabian Dill
93ecf5988b
implement secrets.SystemRandom() for --race
2020-07-14 07:01:51 +02:00
compiling
1594d82fb2
Add logic for including nologic seeds in multiworlds (overworld glitch rules)
...
nologic seeds are generated as beatable only with no progression balancing, where it is assumed the player can always win no matter where items are placed.
Add superbunny and dungeon revival to minor glitch ruleset.
2020-07-12 20:19:45 +10:00
Fabian Dill
57fe16ab60
remove special rules for pinball room
2020-07-09 16:16:31 +02:00
Fabian Dill
dd19834e94
implement Silver Bow as default non-progressive Bow
2020-06-30 09:51:11 +02:00
Fabian Dill
521d3b0584
make larger trackers linked tables
2020-06-30 07:32:05 +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
d3d68fcba2
Rename Escape Dungeon to Hyrule Castle by vote on discord
2020-06-24 16:22:49 +02:00
Fabian Dill
f311d3a8b9
implement "crossover logic".
...
Makes it impossible that logical progression for a logic-having player is placed inside a no-logic world. All other placements remain available.
2020-06-19 03:01:23 +02:00
caitsith2
617312fd4b
add available_triforce_pieces
2020-06-17 01:02:54 -07:00
Fabian Dill
9fcad5b392
fix that in a copied world progressive equipment would always say "on", including spoiler log
2020-06-09 18:44:02 +02:00
Fabian Dill
17f884d047
make triforce pieces required an option
2020-06-07 15:22:24 +02:00
Fabian Dill
2a649a749c
fix crash when quick filling locally locked trash items
2020-06-04 03:30:59 +02:00
Fabian Dill
e55726efca
make world-local items available as a general option
2020-06-03 22:13:58 +02: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
Fabian Dill
daf3747bec
add progression balancing to spoiler
2020-05-20 22:30:21 +02:00
CaitSith2
0deac5ef9d
Add Bosses to spoiler log ( #96 )
2020-05-20 22:21:05 +02:00
Fabian Dill
11678fa20b
turn progression balancing into a per-player option
2020-05-18 03:54:29 +02:00
compiling
195f6c86d2
Replace world exploration with a faster algorithm - use BFS and keep track of all entrances that are currently blocked by progression items
2020-05-10 19:27:13 +10:00
Fabian Dill
1a53b0e69b
rename has_blunt_weapon to has_melee_weapon
2020-04-20 19:17:10 +02:00
Fabian Dill
860faf6ef5
unify versions
2020-04-20 14:50:49 +02:00
Fabian Dill
31d3b7ce84
implement glitch_boots as a proper CLI option
2020-04-16 11:02:16 +02:00
Fabian Dill
26ea2d5905
some optimization
2020-04-14 18:59:00 +02:00
Fabian Dill
2fb419263e
remove some instances of no longer existing __unicode__
2020-04-10 21:31:15 +02:00
Fabian Dill
01b7a590e7
add glitch_boots mystery node
2020-04-10 20:58:52 +02:00
Fabian Dill
2ebc133cab
add world get_type type checker
2020-04-10 20:54:18 +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
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
compiling
270fbce516
Fix bombs check
2020-03-15 21:59:06 +11:00
compiling
ab89f70fa3
Add 10 bombs as an uncle weapon for standard.
2020-03-15 11:09:34 +11:00
compiling
18c10dc7ad
Make retro arrows always require buying the wooden arrow.
...
The Silver Arrows grant the ability to shoot if they are non-progressive, but this is harder to model.
2020-03-15 10:12:22 +11:00
compiling
5c95cf8730
Fix Half Magic logic
2020-03-14 10:31:28 +11:00
Fabian Dill
4cb5af19d6
write spoiler in unicode
2020-03-10 00:36:26 +01:00
Fabian Dill
99e7d51f11
remove reachable cache. Seems I missed invalidations somewhere as the wrong state can be retained.
2020-03-08 05:41:56 +01:00
Fabian Dill
f583db3ee9
remove collections_extended dependency and replace with much faster stdlib Counter
2020-03-07 23:35:55 +01:00
Fabian Dill
27b6dd8bd7
some speed improvments
2020-03-07 23:20:11 +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
d49bb10534
remove unused checks (as indicated by new type annotations)
2020-03-03 00:17:36 +01:00
Fabian Dill
260e156316
add some annotations to BaseClasses.py
2020-03-03 00:12:14 +01:00
Fabian Dill
11e1ad6901
some small improvements for mystery
2020-02-23 17:06:44 +01:00
Fabian Dill
95aea8c4b4
rename ocarina to flute.
2020-02-17 10:08:03 +01:00
Fabian Dill
b04db006e0
implement server-client handshake and move hint system to optional colorama support
2020-02-16 15:32:40 +01:00
qadan
3d021356b8
hera and tr superbunny logic
2020-02-12 19:48:36 -04:00
qadan
aa569d1c3d
rework as region connectors (inverted will be broken)
2020-02-10 23:54:35 -04:00
qadan
ff3b879a02
more idiomatic, bugfix too
2020-02-10 00:38:55 -04:00
qadan
d22ccdedb3
some changes
2020-02-06 12:20:50 -04:00
cassidy
0e18dd06a6
Fix can_take_damage world attribute ( #24 )
2020-02-03 03:52:57 +01:00
cassidy
21b8c73179
Add "timer" as individual setting ( #23 )
2020-02-03 02:10:56 +01:00
qadan
4b7694b50f
updates
2020-01-28 18:19:07 -04:00
DatXFire
fbfcb54bab
Add missing colon ( #15 )
2020-01-22 18:08:56 +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
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
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
compiling
edd656b903
Swap implementation of Take Any fix to match Multiworld.
2020-01-03 08:27:22 +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
fe307b1ac7
bzzz bzzz
2019-12-30 03:03:53 +01:00
Bonta-kun
819f6dc975
Retro: fix take any entrances with default connections
2019-12-27 19:11:41 +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
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
36bdb5f487
Spoiler: reorder some settings for visibility
2019-12-17 21:12:05 +01:00
Bonta-kun
a24fe1f3bf
World.__init__: group player attributes to remove some redundancy
2019-12-17 21:09:33 +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
9ca755d5b2
Individual settings: swords
2019-12-16 16:54:57 +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
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
d608d5ca30
Optimize update_reachable_regions using the new region cache, it is almost twice as fast now
2019-12-14 19:53:19 +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
25068bcfdd
Added an option to pre-open the pyramid hole (aka "fast ganon")
2019-12-12 09:20:32 +01:00
Bonta-kun
d87cb2c380
BaseClasses: do not tag every location as locked by default
2019-12-10 19:21:05 +01:00
Bonta-kun
f479c8dc23
dont throw on __len__ attribute
2019-12-10 02:14:22 +01:00
Bonta-kun
55a30aa91f
multiworld
2019-12-09 19:27:56 +01:00
cassidoxa
2859acef7d
Swordless rom writes and inverted fixes
...
* Update Swordless rom writes
* Remove swordless as possible mode in ItemList.py
* Fix inverted HC Ledge access
Added collection state helper methods for determining lw/dw access
Restricted locations where Link's House can be in inverted
Dark Sanc and Link's House can no longer be at the back of Skull Woods
Fixed minor error in inverted bunny rules
* Update Link's House Shuffling in inverted insanity
* More isolated entrances not to put Link's House at
* Fix Link's House in dungeons shuffles
* More dungeons shuffle stuff I forgot
2019-09-21 21:59:16 -04:00
Kevin Cathcart
ab99e8c223
Triforce Hunt turn-in logic
2019-08-28 21:12:44 -04:00
Kevin Cathcart
df6bf6f99c
Fix errors
2019-08-24 15:53:21 -04:00
Kevin Cathcart
eb1b5053e5
update json spoiler meta section
2019-08-24 15:35:58 -04:00
cassidoxa
c042442d98
Pre bomb TR doors in inverted
2019-08-16 23:00:17 -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
Kevin Cathcart
90e5f522d8
Partially implement variable crystal requirements
2019-08-03 16:48:31 -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
dcca15eda7
Avoid changing spoiler file for single world
2019-07-13 18:11:43 -04:00
Kevin Cathcart
c4570b732d
Remove option_identifier
...
It is no longer needed because we set the hash based on an actual
hash of the rom contents, so it is not based on the title field anymore.
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
Kevin Cathcart
0b9e144f8e
Minor fixes and clarifications for Bonta's Multiworld code
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
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
7b56932e31
TR Key Logic Update
...
This is just for review and isn't tested beyond seeing that it runs. In theory, this should fix the TR based seed generation failures and make TR Small Key requirements as precise as possible.
2019-04-15 19:17:44 -05:00
AmazingAmpharos
62df55242a
Part 1 of Hint Improvement
...
This causes items to use clear, specific names instead of the pedestal style ambiguous names. This also randomizes the order of the two items listed in the hints for Mire left and Swamp left. Part 2 is going to be a substantial number of changes/improvements to location names.
2019-04-08 20:11:33 -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
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