Commit Graph

235 Commits

Author SHA1 Message Date
Fabian Dill 5e619dec60 add mystery triggers 2021-02-13 14:03:23 +01:00
pepperpow 1d1abb7d22 Removed remnants of team stuff, make hide_goal default 2021-02-05 20:37:27 -06: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
pepperpow 82fc2aba20 Added triforce hud options, expanded triforce requirement 2021-01-29 15:42:00 -06:00
CaitSith2 7f74aa7cb0 Implement open_pyramid yaml settings 2021-01-29 13:27:42 -08:00
Chris Wilson 635d04f6ec Update Player Settings and Weighted Settings pages on website to reflect new possible settings.
- Also fix a bug caused by the website settings always forcing options to lowercase
2021-01-24 21:14:58 -05:00
Fabian Dill c604dfe509 move networks commands to [str, Optional[dict]] across the board
and some other updates
PrintHTML is an experiment and is unlikely the solution I'll go with
2021-01-21 23:37:58 +01: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 b775bfa916 Merge branch 'main' into multishop 2021-01-19 01:02:57 +01:00
Fabian Dill e2075686c2 fix ItemPlando defaults 2021-01-19 01:02:03 +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 f4281f81f5 Merge branch 'main' into multishop 2021-01-17 22:08:43 +01:00
Fabian Dill 446893c504 Document Item Plando 2021-01-17 17:58:58 +01:00
Fabian Dill 7333a15f1f handle merge conflicts after plando update 2021-01-17 06:54:38 +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 3b5ba161de first two plando modules documented 2021-01-17 02:15:46 +01:00
Fabian Dill 67731d9e53 Merge branch 'main' into multishop 2021-01-13 15:00:19 +01:00
Fabian Dill a879e3fc8b use computed goal names for open_pyramid, just in case 2021-01-11 20:45:59 +01:00
Fabian Dill 9fcb317aca convert potion_shop_shuffle into 'w' shop_shuffle flag 2021-01-09 17:53:38 +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
CaitSith2 48812ad296 Fix bug regarding silent failed plando. 2021-01-08 06:35:12 -08:00
CaitSith2 8116407b88 Add Ice Rod Hunt goal 2021-01-07 12:49:34 -08:00
CaitSith2 07f97887d1 Fix bug with boss plandomizer 2021-01-06 11:12:23 -08:00
CaitSith2 3d13ab749e Allow specifying multiple items and locations to fill at once. 2021-01-06 09:55:16 -08:00
CaitSith2 a6d53aafb0 Add option to hard require plando item placement. 2021-01-04 13:50:42 -08:00
CaitSith2 bf5930e193 Catch plando errors that will never resolve at mystery rolling time. 2021-01-03 07:14:31 -08: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 e7beb80219 Allow Mystery setting Misery Mire and Turtle Rock medallions 2021-01-02 23:00:14 +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 f3b6be2b20 Item Plando Support 2021-01-02 12:49:43 +01:00
Fabian Dill 3d53adf45c more debug/warning feedback for linked options 2021-01-02 05:24:53 +01:00
Fabian Dill 6256337df1 Manual Boss Placements 2020-12-31 13:23:32 +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 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
CaitSith2 4370447adc More fixes to non_local_items 2020-11-22 14:29:11 -08:00
Fabian Dill fc2f1dfd29 implement "non_local_items" 2020-11-22 22:53:31 +01:00
CaitSith2 7312ffdf5f Recognize list as an unweighted list of choices. 2020-11-05 17:03:33 -08: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
Fabian Dill 2d43cae88e palette fixes 2020-10-24 05:33:52 +02:00
Edos512 b91a627b32
Added options from Maseya Palette Randomizer (#145)
Add remaining palette shuffle options
2020-10-24 02:44:27 +02:00
CaitSith2 651e1a1901 Changes
* Fix chests always being for yourself AND intended recipient for Race Rom seeds.
* Fix MultiMystery not being able to correctly pack Race Rom seeds into a zip file.
* Add tags to multidata for Race rom, Spoiler log, and Playthrough if spoiler log was generated.
2020-10-21 02:02:13 -07:00
Fabian Dill 5436c062d3 Cast to number types explicitly in case they come as string from yaml in Mystery.py 2020-10-18 07:12:09 +02:00
Chris Wilson c714131b37 Fix the player settings page generating yaml files with string keys containing integers 2020-10-18 00:51:50 -04:00
CaitSith2 f17682e997 Implement pedestal ganon goal 2020-10-15 15:24:52 -07:00
CaitSith2 4e0a2ad696 Actually iterate the dictionary correctly. 2020-10-14 20:33:12 -07:00
CaitSith2 99e21a68fb Add a more direct random-sprite-on-event yaml option 2020-10-14 12:46:05 -07:00
Fabian Dill 88a5e024c7 Fix typo 2020-10-07 23:19:16 +02:00
Fabian Dill 0157294383 Fix sprite array crashing yaml_output
Fix "Torches" toggle misname
2020-10-07 20:19:31 +02: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
Edos512 068659fcb4
Extra Triforce pieces modes (#141)
* Added triforce hunt mode

Added modes to calculate the extra available triforce pieces in mystery seeds:
availabe: classic mode
extra: available= required+extra
percentage : available =required*(percentage/100)
2020-09-23 19:43:18 +02:00
Fabian Dill 823d8362ac Fix local keys working without "dungeon_items" key in mystery 2020-09-21 19:16:10 +02:00
CaitSith2 f249d9d86c Assign defaults to everything that was otherwise required in the yaml. 2020-09-19 22:25:58 -07:00
Fabian Dill a668aa3b23 Make "Prize" shuffling an option 2020-09-20 04:35:45 +02:00
Fabian Dill 154fffbb8d properly handle yaml read errors 2020-09-18 06:03:04 +02:00
Fabian Dill 2292dbc1ce PEP 8 format Mystery.py 2020-09-13 17:15:49 +02:00
Fabian Dill 06396b9bf2 Go back to always open pyramid with fast ganon 2020-09-13 17:13:47 +02:00
CaitSith2 ce8d9ff6a9 Report which linked option is badly formatted if possible. 2020-09-12 13:33:26 -07:00
Fabian Dill da01325abd Only pre-open pyramid if ER falls within vanilla/dungeonssimple/dungeonsfull 2020-09-11 03:23:00 +02:00
Fabian Dill f6439dadea Rename Progressive Armor to Progressive Mail to bring it in line with Red Mail and Blue Mail
Also add some more item groups
2020-09-06 17:19:34 +02:00
Fabian Dill 1ce4f55ea4 Fix Operator precendence in local items to make big keys local again when "l" is in dungeon_items 2020-09-06 17:05:50 +02:00
Fabian Dill c0632db403 Set rom default options 2020-09-05 05:20:34 +02:00
Fabian Dill fadf073acd remove "s" in dungeon_items if "u" is present 2020-08-30 03:19:02 +02:00
Fabian Dill a0c4337bac give Mystery.py the create_diff argument, then make MultiMystery.py use them 2020-08-26 22:28:48 +02:00
Fabian Dill 76f9717c99 fix chaos boss shuffle in mystery being vanilla, and prevent that mistake in the future 2020-08-25 23:53:15 +02:00
Fabian Dill 6370f4793b Make triforce hunt item pool fully dynamic 2020-08-25 19:45:33 +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 8e85e2892a secure sprite table fill with threadlock 2020-08-22 02:56:33 +02:00
Fabian Dill f1772982b0 remove a rogue log 2020-08-21 00:37:37 +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
CaitSith2 c9bd32a809 Whoops, fix double assignment. 2020-08-19 16:10:09 -07:00
CaitSith2 458e4a988a chaosthieves is supposed to be 50/50 killable thieves. 2020-08-19 15:59:28 -07:00
Fabian Dill cb4fa6dd33 Split enemy shuffle into its components 2020-08-19 23:24:17 +02:00
Fabian Dill c2e2c2d5f9 merge singularity and duality into one; under the singularity name 2020-08-19 21:10:02 +02:00
Fabian Dill 5247bd0ff0 Mystery: fix player naming if per-player and general weights are mixed 2020-08-11 22:11:37 +02:00
Fabian Dill 22abd09087 WebHost: On-Server rolling 2020-08-02 22:11:52 +02:00
Fabian Dill 25b43e8357 Add Singularity and Duality Boss Shuffles 2020-07-31 00:07:55 +02:00
Fabian Dill 5cd5223ae0 WebHost: Add youtube livestreaming and autogenerated multistream link 2020-07-25 22:40:24 +02:00
Fabian Dill 93ecf5988b implement secrets.SystemRandom() for --race 2020-07-14 07:01:51 +02:00
Fabian Dill baa1f1d2ba fix "l" in dungeon items to actually work 2020-07-08 23:50:08 +02:00
Fabian Dill 252f9600fe restore unkillable thieves in chaosthieves option 2020-07-05 03:12:28 +02:00
Fabian Dill d2e3c457be restore mystery determinism 2020-06-29 03:59:16 +02:00
Fabian Dill 36db420120 significantly increase the amount of seed numbers, reducing capability to infer source seed 2020-06-28 00:24:45 +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
caitsith2 6beeb7934d Add local_keys option to go in line with the *_shuffle options, and document both local_keys and l in easy.yaml 2020-06-19 16:10:22 -07:00
Fabian Dill 10f675a61e
Merge pull request #111 from Berserker66/tweaks_and_fixes
Tweaks and fixes
2020-06-19 04:52:07 +02:00
caitsith2 55a5812b6b Remove list(map(int, x)) 2020-06-18 19:21:52 -07:00
Fabian Dill 5d3e22a911 make "l" for local keysanity a thing in mystery 2020-06-19 03:17:54 +02:00
caitsith2 d7d7f32d0c Clean up get_choice(x,weights) if x in weights else y code. 2020-06-18 08:55:15 -07:00
caitsith2 f8ad83c86d yaml descriptions are now optional 2020-06-18 08:52:31 -07:00
caitsith2 75e185e437 Allow specififying returned default values. Disallow ALL zero weights. 2020-06-18 08:51:38 -07:00
caitsith2 63eb0ffc7b Max triforce pieces reduced to 90 2020-06-18 08:48:33 -07:00