Fabian Dill
f2a1858b59
Implement (most) Hollow Knight Options
2021-03-21 00:47:17 +01:00
Fabian Dill
bbe51c4cc7
Speed up restrictive_fill a bit.
...
This also changes behaviour slightly; it used to fill beatable only players' items first, now it shuffles it all together. It is not documented why this was done, so hopefully this doesn't undo something intentional.
2021-03-18 17:27:31 +01:00
Fabian Dill
567954a17f
Merge branch 'main' into breaking_changes
...
# Conflicts:
# BaseClasses.py
2021-03-06 05:27:16 +01:00
Fabian Dill
f130829c0c
Massively speed up progression balancing for very large multiworlds
...
Several times faster was observed in testing. 10+ hours to less than 2 in the last sample.
2021-03-04 08:10:30 +01:00
Fabian Dill
bda86a65f7
Add Grimmkin Flames logic
2021-02-27 16:27:35 +01:00
Fabian Dill
499f67c586
HK Logic
2021-02-24 06:02:51 +01:00
Fabian Dill
dcce53f8c8
Merge branch 'main' into breaking_changes
...
# Conflicts:
# Adjuster.py
# Gui.py
# MultiClient.py
# setup.py
# worlds/alttp/AdjusterMain.py
# worlds/alttp/Main.py
2021-02-21 20:15:07 +01:00
Fabian Dill
c55cf28229
allow ER coop
2021-02-20 02:30:55 +01:00
Fabian Dill
122e360ec8
Merge branch 'main' into breaking_changes
...
# Conflicts:
# MultiClient.py
# Utils.py
# worlds/alttp/ItemPool.py
# worlds/alttp/Main.py
# worlds/alttp/Shops.py
2021-02-19 13:45:50 +01:00
Fabian Dill
96d544ac84
Speed up Progression Balancing, mostly by using generators and pre-sorts where the opportunity exists
...
In some cases multi-thousand element lists were created in-memory with near identical contents, per player, then discarded and reassembled.
Was testing against a case with 3 GB of additional memory use (50 players) which appeared to get stuck, but really was just very slow. This example case is fixed with these changes.
Additionally, progression balancing is now run after ShopSlotFill, so it is now "aware" of the changed progression shops can produce.
As well, special handling for keys was removed, as not all games will have the notion of keys.
2021-02-05 08:07:12 +01:00
Fabian Dill
a646594f08
Merge branch 'main' into breaking_changes
...
# Conflicts:
# BaseClasses.py
# Fill.py
# MultiClient.py
# MultiServer.py
# Utils.py
# test/dungeons/TestDungeon.py
# test/inverted/TestInverted.py
# test/inverted_minor_glitches/TestInvertedMinor.py
# test/inverted_owg/TestInvertedOWG.py
# test/minor_glitches/TestMinor.py
# test/owg/TestVanillaOWG.py
# test/vanilla/TestVanilla.py
# worlds/alttp/ItemPool.py
# worlds/alttp/Main.py
# worlds/alttp/Rom.py
2021-01-30 23:29:32 +01:00
Fabian Dill
2352445146
Remove all uses of "item.priority" as the remaining fill algorithms don't need it anymore.
2021-01-30 09:57:25 +01:00
CaitSith2
eb1c4313a8
Fix root cause of items not being placed into locations
2021-01-26 13:11:43 -08:00
CaitSith2
c88d9b4339
Additional fixes for Ice Rod Hunt
2021-01-26 07:06:57 -08:00
Fabian Dill
670b8b4b11
Merge branch 'main' into breaking_changes
...
# Conflicts:
# MultiClient.py
# WebUI.py
2021-01-21 05:36:16 +01:00
Fabian Dill
f4281f81f5
Merge branch 'main' into multishop
2021-01-17 22:08:43 +01:00
Fabian Dill
a87a79eb00
remove some duplicate code
2021-01-17 22:08:28 +01:00
Fabian Dill
7333a15f1f
handle merge conflicts after plando update
2021-01-17 06:54:38 +01:00
CaitSith2
082a7b7e41
Merge branch 'main' into multishop
2021-01-13 10:40:52 -08:00
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