Commit Graph

107 Commits

Author SHA1 Message Date
CaitSith2 7bb115de72 Fix bug with placements always being empty.
It will never be not empty, because every placement that succeeds gets its event set to true, and the conditional expects locations already placed within the fill to also not be events.
2021-01-13 10:40:23 -08:00
Fabian Dill 058436e47f shop cleanup and correctly backreference swapped items' locations
Also fixes a false reference in progression balancing from 2019 (swapped Location.item.location was not updated)
2021-01-11 13:35:48 +01:00
Fabian Dill 36123308a6 Refine Shop Item Candidate picking 2021-01-10 15:50:18 +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 eea4cb5815 Make sure yamls that specify key drop plando locations don't fail. 2021-01-08 06:37:23 -08:00
Fabian Dill 37cf2e1ac4 speed up local item fill, by sorting by world once instead of up to twice per player 2021-01-07 12:43:11 +01:00
CaitSith2 113efa8f02 Fix bugs that prevent seed rolling from continuing if too many plando items are placed. 2021-01-06 11:13:22 -08: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 f3b6be2b20 Item Plando Support 2021-01-02 12:49:43 +01: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
pepperpow 4f58459742 Shop Generation options
(reduced from previous PR)
2020-11-23 19:38:57 -06:00
Fabian Dill fd020ead7f Fix FillError message assembly crashing the error 2020-11-22 22:53:02 +01:00
Fabian Dill 3271460c68 No need to set locality rules in single player and no need to reverse a list that was just shuffled 2020-08-25 18:05:16 +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 b5048d99b9 optimize sweep_for_events, some has_ functions and some minor things 2020-08-22 19:19:29 +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 52cf99c5c8 skip gtower fill if target fill count is 0
Also rename gftower to gtower. I don't know what the f could stand for. Girlfriend tower?
2020-08-17 03:55:46 +02:00
Fabian Dill b3bb1f187d GT Trash Fill adjustments:
- skipped in no_logic; already was skipped in OWG
- instead of randint[0, 15] and randint[15, 50] (if any kind of triforce hunt) trash items, it is now randint[0, GT_crystals*2] and randint[GT_crystals*2, GT_crystals*4] if you're on local or singleplayer triforce hunt; in general this means that the trash prefill is lessened and is especially low if your GT can be entered early.
2020-08-17 03:51:55 +02:00
Fabian Dill df6ee1a08b Fill Algorithm optimisations (somewhat minor, but easy pickings) 2020-08-14 00:34:41 +02:00
Fabian Dill 86025745ac reimplement easy item pool
Some changes were made. The design chosen is to keep the changes to the same range of changes that hard and expert apply (so no change in lamp count, for example), while trying to keep easy as similar as it was.
2020-08-01 06:22:59 +02:00
Fabian Dill 7a29445c07 Should probably not spoil which players have progression balancing in a logging.info level, for mystery rolling 2020-07-30 20:17:04 +02:00
Fabian Dill 93ecf5988b implement secrets.SystemRandom() for --race 2020-07-14 07:01:51 +02:00
Fabian Dill 57fe16ab60 remove special rules for pinball room 2020-07-09 16:16:31 +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 2a649a749c fix crash when quick filling locally locked trash items 2020-06-04 03:30:59 +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 11678fa20b turn progression balancing into a per-player option 2020-05-18 03:54:29 +02:00
Fabian Dill 26ea2d5905 some optimization 2020-04-14 18:59:00 +02:00
Fabian Dill 1c855fea9a refix yaml laoding 2020-04-10 06:41:32 +02:00
qadan 2b44792f70 better seed gen stuff 2020-02-10 16:54:09 -04:00
Bonta-kun 9175c22895 Fill: place items for players with no accessibility requirements first 2019-12-18 20:47:35 +01:00
Bonta-kun d9281adc07 Individual settings: accessibility 2019-12-17 12:14:29 +01:00
Bonta-kun 1315eb55cf Individual settings: map/compass/key/bk shuffle 2019-12-16 21:46:47 +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 bf7a2d79fb fill_restrictive: optimize itempool iteration, also fix output itempool for logging 2019-12-14 17:47:36 +01:00
Bonta-kun fc9d1b501b Replace keysanity with map/compass/key/bk shuffle 2019-12-13 22:37:52 +01:00
Bonta-kun 6d50e905e1 Fix beatable-only prizes and dungeon items in multiworld 2019-12-11 11:37:05 +01:00
Bonta-kun d6ec10d9ca Fill: MW balance: optimize lock check and do a sanity check to make sure the replacement location can receive the item 2019-12-10 19:23:12 +01:00
Bonta-kun fe6a032f09 Fixed a bug in the balancing algorithm in non keysanity modes and increased the threshold 2019-12-09 13:43:30 +01: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
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 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 e19c0ada70 Retry Logic for Dungeon Prizes
Will help make avoid seed failure for custom pool seeds.

This won't help with a seed that has a layout that is not compatible
with the item pool though.
2018-01-27 16:21:32 -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 9d4d3b8456 Whitespace fixes
Removing trailing whitepace.
2017-11-18 20:43:37 -05:00
AmazingAmpharos 990a466253
No filler in shuffled GT
This adds a check to adding filler into GT for the shuffle_ganon flag. If it is set, adding filler is skipped.
2017-11-09 04:46:59 -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 fcc97cef81 Tweak fill algorithm to more closely match VT26 2017-11-04 23:52:56 -04:00
Kevin Cathcart dcc34bd39f Move item fill and distribution functions to new file 2017-11-04 23:52:56 -04:00