Commit Graph

164 Commits

Author SHA1 Message Date
aerinon
19faf41e79 Retro to match Bonta solution
Minor gui updates
2020-01-06 15:56:14 -07:00
aerinon
6569d81e2a Retro to match Bonta solution
Minor gui updates
2020-01-06 15:54:59 -07:00
aerinon
f26c83e852 Made the CollectionState crystal switch aware and added crystal rules
Small adjustment to big key forbidding
2020-01-06 15:32:33 -07:00
compiling
edd656b903 Swap implementation of Take Any fix to match Multiworld. 2020-01-03 08:27:22 +11:00
aerinon
fea605ae66 Fixing conflicts 2020-01-02 11:52:24 -07: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
aerinon
ee3cf80732 Mark regions as light/dark world after dungeons are connected up. 2019-12-24 07:15:34 -07:00
aerinon
9dfd93adbc More trap doors (mostly interior)
DungeonGen refinements
--More Big Key door considerations
--Backtracks earlier when hook candidates comes up empty
Minor work on key shuffling - lots of bad rules still
Playthrough gen doesn't flood swamp keys now
2019-12-03 15:50:15 -07:00
aerinon
093746a0c7 Ganon's Tower added
Some key logic work
2019-11-15 13:50:31 -07:00
aerinon
5718018982 Added Turtle Rock.
Fixed clock -> process_time for Python 3.8
Fixed interior blocked doors
Vanilla logical connections for Ice Cross (Push block)
Dungeon entrance enhancement for TR, Skull, HC (Standard)
Kill on invalid dungeons during key door shuffle
Key logic improvements (Smallkey restrictions, Logic Min/Logic Max for key doors, Big Chest doesn't count for small keys if BK not found yet)
Key door candidate now accounts for "overworld" dungeon traversal
Path checking added some Crystal Logic (Blind's Cell to Boss mostly)
Kill on dungeon gen if taking too long
2019-11-07 12:16:13 -07:00
aerinon
e08bf3776a Ice Palace added
Dynamic logical doors added for ice cross w/ push block
Improved crystal switch pathing
Minor update to PoD
2019-11-01 16:13:23 -06:00
aerinon
90c3368f9d Revamped dungeon generation
Revamped key logic generation
Prevent key floods in playthrough/can_beat_game checks
2019-10-31 11:09:58 -06:00
aerinon
050ae66bf6 Thieves Town 2019-10-25 13:50:37 -06:00
aerinon
beb15951a0 Skull Woods added
Fixed polarity for stairs
Some swamp fixes
Prep work for dungeons that can require traversal through overworld - like skull woods
Special case for pinball room so it can be in Skull 2 or Skull 1
2019-10-17 16:35:13 -06:00
aerinon
a0fdb25b43 Spirals for Swamp
Swamp Logic
Door definition cleanup
Stabs at Swamp events and Crystal Switches
2019-10-11 16:53:46 -06:00
aerinon
2ced48c691 Incorporated key logic prototype in the rules.
Relaxed key_layout_validation more (allows keys to lead to more keys)
2019-10-08 16:57:27 -06:00
aerinon
8719a4919d Door pairing system initial pass complete
Sucessfully de-coupling of Big Key doors with dumb small key doors behind
Added a bit to trap door fixer so that we can hit the 3rd door in the door list
Added door list position info
2019-10-01 11:26:10 -06:00
aerinon
5eb0e6e379 Aga Tower preliminary check in 2019-09-20 21:24:46 -06:00
randall.rupper
48f29b3aa5 Merge branch 'Dev' into DoorDev 2019-09-06 14:22:42 -06:00
Kevin Cathcart
ab99e8c223 Triforce Hunt turn-in logic 2019-08-28 21:12:44 -04:00
randall.rupper
02f4ad956d Merge branch 'Dev' into DoorDev 2019-08-26 15:11:11 -06:00
Kevin Cathcart
e29f39c585 Mark as pre-release 2019-08-24 15:38:22 -04:00
randall.rupper
c87c767835 Upgrades doors to be written out by the rom. (No testing today)
Added some various modes to play around with.
Fixed prototype's generation code to run
2019-08-23 16:52:53 -06:00
randall.rupper
f2974cf769 Added vanilla info for created regions and fixed initial errors. 2019-08-22 14:49:23 -06:00
randall.rupper
ad3770e534 An initial commit.
ASAR asm patch included with test tables.
Eastern and Hyrule Castle regions created from a while ago.
Currently broken because boss prizes are unreachable.
2019-08-22 12:03:55 -06: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