Commit Graph

83 Commits

Author SHA1 Message Date
espeon65536 2f7e532f4f
Minecraft Randomizer
Squash merge, original Commits:

* Minecraft locations, items, and generation without logic

* added id lookup for minecraft

* typing import fix in minecraft/Items.py

* fix 2

* implementing Minecraft options and hard/postgame advancement exclusion

* first logic pass (75/80)

* logic pass 2 and proper completion conditions

* added insane difficulty pool, modified method of excluding item pools for easier extension

* bump network_data_package version

* minecraft testing framework

* switch Ancient Debris to Netherite Scrap to avoid advancement triggering on receiving that item

* Testing now functions, split tests up by advancement pane, added some story tests

* Newer testing framework: every advancement gets its own function, for ease of testing

* fixed logic for The End... Again...

* changed option names to "include_hard_advancements" etc.

* village/pillager-related advancements now require can_adventure: weapon + food

* a few minecraft tests

* rename "Flint & Steel" to "Flint and Steel" for parity with in-game name

* additional MC tests

* more tests, mostly nether-related tests

* more tests, removed anvil path for Two Birds One Arrow

* include Minecraft slot data, and a world seed for each Minecraft player slot

* Added new items: ender pearls, lapis, porkchops

* All remaining Minecraft tests

* formatting of Minecraft tests and logic for better readability

* require Wither kill for Monsters Hunted

* properly removed 8 Emeralds item from item pool

* enchanting required for wither; fishing rod required for water breathing; water breathing required for elder guardian kill

* Added 12 new advancements (ported from old achievement system)

* renamed "On a Rail" for consistency with modern advancements

* tests for the new advancements

* moved slot_data generation for minecraft into worlds/minecraft/__init__.py, added logic_version to slot_data

* output minecraft options in the spoiler log

* modified advancement goal values for new advancements

* make non-native Minecraft items appear as Shovel in ALttP, and unknown-game items as Power Stars

* fixed glowstone block logic for Not Quite Nine Lives

* setup for shuffling MC structures: building ER world and shuffling regions/entrances

* ensured Nether Fortresses can't be placed in the End

* finished logic for structure randomization

* fixed nonnative items always showing up as Hammers in ALttP shops

* output minecraft structure info in the spoiler

* generate .apmc file for communication with MC client

* fixed structure rando always using the same seed

* move stuff to worlds/minecraft/Regions.py

* make output apmc file have consistent name with other files

* added minecraft bottle macro; fixed tests imports

* generalizing MC region generation

* restructured structure shuffling in preparation for structure plando

* only output structure rando info in spoiler if they are shuffled

* Force structure rando to always be off, for the stable release

* added Minecraft options to player settings

* formally added combat_difficulty as an option

* Added Ender Dragon into playthrough, cleaned up goal map

* Added new difficulties: Easy, Normal, Hard combat

* moved .apmc generation time to prevent outputs on failed generation

* updated tests for new combat logic

* Fixed bug causing generation to fail; removed Nether Fortress event since it should no longer be needed with the fix

* moved all MC-specific functions into gen_minecraft

* renamed "logic_version" to "client_version"

* bug fixes
properly flagged event locations/items with id None
moved generation back to Main.py to fix mysterious generation failures

* moved link_minecraft_regions into minecraft init, left create_regions in Main for caching

* added seed_name, player_name, client_version to apmc file

* reenabled structure shuffle

* added entrance tests for minecraft

Co-authored-by: achuang <alexander.w.chuang@gmail.com>
2021-05-08 13:38:57 +02:00
Fabian Dill eb2a3009f4 Add dungeonscrossed to sample yaml 2021-05-08 12:08:55 +02:00
Fabian Dill 569e0e3004 Factorio: add option: random tech ingredients 2021-04-24 01:16:49 +02:00
Fabian Dill 0cf9baef4b Factorio: add document visibility option to playerSettings.yaml 2021-04-14 02:45:36 +02:00
Fabian Dill 4292cdddd5 Factorio: add Funnel tech shape 2021-04-11 18:19:47 +02:00
Fabian Dill 9aef76767a Include example trigger for legacy weapons 2021-04-11 15:53:13 +02:00
Chris Wilson 50f06c3aac Add "swords" option back to playerSettings.yaml 2021-04-10 12:31:04 -04:00
Fabian Dill 0586b24579 Factorio: add small_diamonds tech tree layout 2021-04-10 03:03:46 +02:00
Fabian Dill ceea55e3c6 traverse recipe tree for Factorio logic 2021-04-09 22:10:04 +02:00
Fabian Dill 96a28ed41e implement Factorio option "free_samples" 2021-04-06 21:16:25 +02:00
Fabian Dill 91bcd59940 implement Factorio options max_science_pack and tech_cost
also give warnings about deprecated LttP options
also fix FactorioClient.py getting stuck if send an unknown item id
also fix !missing having an extra newline after each entry
also default to no webui
2021-04-03 14:47:49 +02:00
Fabian Dill 01ef041b86 last minute fixing 2021-04-01 20:31:39 +02:00
Fabian Dill d24ee45462 Merge branch 'main' into Archipelago_Main
# Conflicts:
#	BaseClasses.py
#	LttPAdjuster.py
#	Main.py
#	Mystery.py
#	Utils.py
#	WebHostLib/generate.py
#	playerSettings.yaml
2021-04-01 11:44:37 +02:00
Fabian Dill dc73fa0f33 Factorio integration 2021-04-01 11:40:58 +02:00
CaitSith2 9233a7e208 name variable changes
* Convert %number%, %player% and %% to {number}, {player} and %.
* added {NUMBER} - output number if greater than 1.
* added {PLAYER}, output player slot number if greater than 1.
2021-03-28 16:52:32 -07:00
Fabian Dill f55096b8cc use python str formatting for player variable names 2021-03-17 06:26:06 +01:00
Fabian Dill 6455dc3ffc Merge branch 'main' into breaking_changes
# Conflicts:
#	README.md
2021-03-13 23:34:38 +01:00
CaitSith2 a331c397aa Allow %%, %player%, %number% variables in names. 2021-03-12 17:43:50 -08:00
CaitSith2 c73b843f41 Document group settings for doors. 2021-03-07 14:12:20 -08:00
Fabian Dill f7dc21ddcc Merge branch 'main' into breaking_changes
# Conflicts:
#	Main.py
#	Utils.py
2021-03-07 22:04:06 +01:00
Fabian Dill cd5696527d some er layout group fixes 2021-03-07 20:11:36 +01:00
Fabian Dill 567954a17f Merge branch 'main' into breaking_changes
# Conflicts:
#	BaseClasses.py
2021-03-06 05:27:16 +01:00
Chris Wilson 280f3938ed Add Triforce HUD options to weighted settings page
- Added triforce hud options
- Fix a bug causing weighted settings to always fail to load (git blame forthcoming)
- Update ws_version to prompt users to update
- Who is Murahalda? (corrected to Murahadala)
2021-03-03 17:47:35 -05:00
Fabian Dill 0d576eefbb Merge branch 'main' into breaking_changes
# Conflicts:
#	Main.py
#	worlds/alttp/EntranceRandomizer.py
2021-03-03 01:54:52 +01:00
Fabian Dill 7871555620 Implement PrintJSON
Remove deprecated network packets
Make Client send new locations checked only once
Simplify register_location_checks
Rip out Server savegame compatibility
2021-03-02 22:31:44 +01:00
pepperpow 222784dbb6 Merge branch 'main' of https://github.com/Berserker66/MultiWorld-Utilities into triforce_changes 2021-02-22 22:44:43 -06:00
Fabian Dill c55cf28229 allow ER coop 2021-02-20 02:30:55 +01:00
pepperpow fca64f1177
Removes Flashing instances in game (#168)
* Added reduced flashing, triforce hud and cutscene options

* Corrected parameters and replacement order

* Mixed up rom byte

* Removed triforce hud, smoothed cutscene speed and reset tables

* Removed triforcehud line and added bird cutscene speedup

* Added options to yaml

* Added check for race rom generation (is not internal asm)

* Added options to GUI (check sprite adjust crash)

* Fixed inconsistency in setting weight

* A "slow" setting for the cutscenespeed (#1)

* Slow wall setting

* Slow wall setting

* Slow wall setting

* Slow wall setting

* Slow wall setting

* Slow wall setting

* Update playerSettings.yaml

* Remove instances of cutscene speed modification

* Changed command to remove to mitigate frame advantage

* Antiepilepsy enabled for default/race roms, param change, RTL byte

* Found a frame independent antiflashing patch for real

* Further ASM patching style

* Reduce these changes to just two bytes

* Added patches for Dark Mountain and Ether Flashing palette reveal

Co-authored-by: StructuralMike <66819228+StructuralMike@users.noreply.github.com>
2021-02-19 17:45:54 +01:00
Fabian Dill 1bad02e029 warn about missing logic on door-rando branch 2021-02-14 19:08:31 +01:00
Fabian Dill 5e619dec60 add mystery triggers 2021-02-13 14:03:23 +01:00
TWest3D a90cb86da5
Update playerSettings.yaml
Change "price" to "prize" in description for prize shuffle description.
2021-02-12 20:46:46 -09:00
pepperpow 1d1abb7d22 Removed remnants of team stuff, make hide_goal default 2021-02-05 20:37:27 -06:00
Chris Wilson 889d24606f Updated weighted settings to reflect new beemizer documentation and include pyramid_open options 2021-01-30 19:03:54 -05:00
Fabian Dill 24e8fb54ad update fast_ganon hole description 2021-01-30 23:17:54 +01:00
Fabian Dill 61bef142a3 New Beemizer implementation, no longer replacing health; leaving that to item pool settings. 2021-01-30 06:46:17 +01:00
CaitSith2 7f74aa7cb0 Implement open_pyramid yaml settings 2021-01-29 13:27:42 -08:00
CaitSith2 5c427f5e3e Add Ice rod hunt to player settings and weighted settings. 2021-01-24 14:52:42 -08:00
Fabian Dill 6e3ca3cc39 add misery_mire_medallion and turtle_rock_medallion to sample yaml 2021-01-24 22:41:58 +01:00
Fabian Dill 03552ecf12 remove duplicate Shop name in location names 2021-01-09 22:48:03 +01:00
Fabian Dill 00d1f272e8 set reasonable upper bounds for shop_shuffle_slots 2021-01-09 22:37:57 +01:00
Fabian Dill 166594a52b remove potion_shop_shuffle from example yaml 2021-01-09 19:41:54 +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
Fabian Dill e8fd575379 tile_shuffle option no longer requires Enemizer, document it as such
also shuffle things around in gui.py
2020-12-29 19:59:20 +01:00
Fabian Dill 95730400e6 mark door-rando only options in sample playerSettings.yaml 2020-12-19 22:36:06 +01:00
pepperpow 37493c85dc Merge branch 'shop-generate' of github.com:pepperpow/MultiWorld-Utilities into multishop-all 2020-12-02 20:41:49 -06: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 7da69d5140 Added missing potion shop compatability 2020-11-23 20:21:53 -06:00
pepperpow 608d96329f Shop Item Pool fill feature + multiworld player compatability 2020-11-23 20:05:04 -06:00
pepperpow 4f58459742 Shop Generation options
(reduced from previous PR)
2020-11-23 19:38:57 -06:00