Fabian Dill
1f5bcb6273
update basic and normal boss shuffling with a less biased algorithm
2021-03-26 04:05:36 +01:00
CaitSith2
4d99bb1429
Allow setting of Glitching to Triforce from ganon in host.yaml.
2021-03-22 13:14:19 -07:00
Fabian Dill
ef3623fb5f
only alttp players have medallions
2021-03-21 05:19:29 +01:00
Fabian Dill
f2a1858b59
Implement (most) Hollow Knight Options
2021-03-21 00:47:17 +01:00
Fabian Dill
01ef29568a
Temporarily destroy the world, instead of copying it.
...
Not pretty, but faster. Unfortunately can't be threaded alongside rom/multidata creation, as otherwise locations may be empty at certain times.
2021-03-17 10:53:40 +01:00
Fabian Dill
91c0650b42
remove some missed nonlocal world references
...
that would refer to a different world after copying it
It is static data though, so it hasn't created an actual bug (yet)
2021-03-14 22:59:41 +01:00
Fabian Dill
3d93f659e3
some option updates
2021-03-14 08:38:02 +01:00
Fabian Dill
4b499d2b1c
fix location hints not being able to get the correct text
2021-03-14 00:27:06 +01:00
Fabian Dill
a528ed5e9e
Client now uses location_id consistently internally, instead of switching on a dime all the time
...
And some smaller changes
2021-03-07 22:05:07 +01:00
CaitSith2
d0d995b3a4
Use the more convenient _asdict() function of named tuples.
2021-03-05 11:05:57 -08:00
CaitSith2
60e032510d
Make pre_rolled safer by converting namespace/plandoitems/plandoconnections to/from dict.
2021-03-05 02:50:40 -08:00
Fabian Dill
612c3c23c0
spheres should ignore empty locations
2021-02-27 18:58:17 +01:00
Fabian Dill
8bfddb7fc6
Remove Single-Item logic macros
2021-02-27 17:11:54 +01:00
Fabian Dill
bda86a65f7
Add Grimmkin Flames logic
2021-02-27 16:27:35 +01:00
Fabian Dill
abcc2690f0
Add "Fake" (Randomizer-only) Hollow Knight items
2021-02-26 21:03:16 +01:00
Fabian Dill
499f67c586
HK Logic
2021-02-24 06:02:51 +01:00
Fabian Dill
a248fd5f94
add a HK game completion rule
2021-02-22 11:18:53 +01:00
Fabian Dill
8a395a3021
update guis
2021-02-21 20:37:43 +01:00
Fabian Dill
ff9b24e88e
Hollow Knight integration
...
(prototype status)
2021-02-21 20:17:24 +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
CaitSith2
8dc2a5748c
Allow for possible reuse of er layout
...
This is done by assigning a unique seed to each player who doesn't have one set. er layout seed is output in spoiler log.
2021-02-20 12:01:38 -08: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
d8366fbac7
Add Activated Flute as a proper item
2021-02-15 22:33:44 +01:00
Fabian Dill
e4d7e08963
when sweeping for events, only filter them once
2021-02-14 17:52:01 +01:00
Fabian Dill
0af77421fc
remove fairy and big magic from bonk prizes in hard/expert
...
remove arrow prizes in retro when "g" is not toggled
rename "difficulty_adjustments" to "item_functionality"
2021-02-10 07:01:03 +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
e4d4ff667c
Some Shop fixes:
...
Make sure that dark lake hylia shop in inverted retains the blue potion, while allowing shop slots on top (potion will always be the leftmost slot, ignoring "i"/"f"/"g")
Cull Shop swap Candidates before generating weights, then keep track of updated sphere sizes during swaps. This significantly reduces the chance to run out of candidates, as large clumps of false candidates do not get included in the weight
Shop fill is slower with this, as all candidates need to be swept once, instead of on-demand; but this seemed the best way to address the remaining issues.
2021-02-03 14:24:29 +01:00
Fabian Dill
fcbaa35cc5
new inverted logic, accounting for dark world flute activation
2021-02-02 11:24:17 +01:00
Fabian Dill
3d81f0cca7
update after merge from /main
2021-01-30 23:43:15 +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
9ee5c50f88
Fixed non-deterministic shop-sanity shuffling.
2021-01-28 22:39:04 -08:00
Fabian Dill
9386a9c220
Update Menus
2021-01-24 21:58:26 +01:00
CaitSith2
6095cfc586
If any shop shuffle slots are defined, define ALL of them to avoid information leakage.
2021-01-22 05:40:50 -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
2b730ab1d4
Merge branch 'main' into multishop
2021-01-18 22:30:05 +01:00
Fabian Dill
4fb8067b5e
document item plando force parameter
2021-01-18 05:07:53 +01:00
Fabian Dill
ba07da6bba
Change ShopShuffle to operate within current Sphere
2021-01-17 22:58:52 +01:00
Fabian Dill
514cd19367
Merge branch 'main' into breaking_changes
...
# Conflicts:
# BaseClasses.py
# Mystery.py
# WebHostLib/downloads.py
# WebHostLib/models.py
# WebHostLib/templates/macros.html
# WebHostLib/upload.py
# worlds/alttp/ItemPool.py
# worlds/alttp/Main.py
2021-01-17 06:50:25 +01:00
Fabian Dill
f3e686ba9a
Move Shop related stuff to a Shops module
2021-01-16 02:23:23 +01:00
Fabian Dill
e8a57a4d24
Change hint for shop items to be "for sale"
...
Lock Dungeon Prizes, as they're not supposed to be moved by any swapping mechanic
2021-01-13 14:58:40 +01:00
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