Commit Graph

56 Commits

Author SHA1 Message Date
espeon65536 685de847c4
Minecraft updates (#13)
* 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

* Minecraft logic updates
Wither kill now considers nether fortresses as a valid source of soul sand
A Furious Cocktail now requires beacons for resistance and village access for carrots
Uneasy Alliance now requires fishing rod to pull the ghast through the portal
On a Rail now requires iron pickaxe to make powered rails
Overkill now may require strength II without stone axe, which needs nether access

* embed all apmc info into slot_data

* updated MC tests for logic changes

* put apmc into zipfile

Co-authored-by: achuang <alexander.w.chuang@gmail.com>
2021-05-16 00:49:58 +02:00
Fabian Dill a231850911 Make hint costs relative 2021-05-11 23:08:50 +02:00
Fabian Dill 237b44ca66 Update Documentation to match compatibility variable 2021-05-10 22:04:19 +02:00
Fabian Dill 37755cd362 Factorio: Automatically find and force create bridge file 2021-05-09 16:49:47 +02:00
Fabian Dill 6567f14415 add log_network Server argument 2021-04-07 02:37:21 +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 4d99bb1429 Allow setting of Glitching to Triforce from ganon in host.yaml. 2021-03-22 13:14:19 -07:00
Fabian Dill 567954a17f Merge branch 'main' into breaking_changes
# Conflicts:
#	BaseClasses.py
2021-03-06 05:27:16 +01:00
CaitSith2 d09a03aace Rip out unsafe yaml loading. 2021-03-05 11:32:24 -08:00
Fabian Dill 2b553cd1c5 Give security warning 2021-03-04 08:44:07 +01:00
CaitSith2 6ddfbdf709 Allow pre-rolling yaml settings, and re-using the exact same pre-rolled settings later, for different actual seeds. 2021-03-03 02:20:37 -08:00
Fabian Dill 8ebd36b5a7 update Archipelago 2021-01-03 14:32:32 +01:00
Fabian Dill be162f5b8d Connections Plando Support 2021-01-02 22:41:03 +01:00
Fabian Dill f3b6be2b20 Item Plando Support 2021-01-02 12:49:43 +01:00
Fabian Dill 84a5c93995 correct that zip_spoiler: 1 is what you want to include the spoiler log 2020-12-30 16:34:51 +01:00
Fabian Dill b5e80d1f87 remove no longer used port_forward option 2020-11-30 16:33:54 +01:00
Fabian Dill fd1a25e362 update Enemizer download link 2020-11-15 14:49:09 +01:00
Fabian Dill 27971ee6a9 add functionality for async generation to MultiMystery.py 2020-11-08 07:26:50 +01:00
CaitSith2 119a5a2b66 Allow client side login and remote issuing of server side commands.
Disabled by default. Requires a password to be set for it to be enabled.
2020-09-21 22:11:43 -07:00
Fabian Dill 1fc368da1f remove Farrak's host.yaml options 2020-09-15 01:01:27 +02:00
Chris Wilson ae0a6362a6 Revert some accidentally set data in host.yaml 2020-09-13 00:19:27 -04:00
Chris Wilson c56b288d85 Fix a bug in player settings causing Timed OHKO to initially display as [Object Object] 2020-09-13 00:17:46 -04:00
Pandatron76 33a86e0812
Revise comments in multiple YAML files (#137)
* Clean up README.md and easy.yaml

Removed periods at end of bullets
General revisions to wording and format
Updated glitch logic comments in easy.yaml

* #133: Implemented requested changes by ljwu

* Update README.md

* Revise comments in multiple YAML files

* #137: Implement revisions from PR conversations
2020-09-03 13:14:25 +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 8852ec9a18 make all output paths host.yaml settable
rename itemlist to itempool, as the actual item listing is in items.py
change pedestal text of book of mudora from paradox to hylian for dingusses
2020-08-20 15:43:22 +02:00
Fabian Dill 2eea9b913c default to outputting to {local_path}/output
* Windows setup has that path as writable by everyone
* most others run from source, where the entire source path and children is writable.
* People complained about files appearing in My Documents, which admittedly is not intuitive
2020-08-01 16:52:11 +02:00
Fabian Dill 1d036c0d3c add compatibility server setting 2020-07-16 16:57:38 +02:00
Fabian Dill 2338d25b39 expand rom auto_start to be customizable 2020-07-15 17:19:16 +02:00
Fabian Dill d190fe65c6 webhost update 2020-07-10 17:42:22 +02:00
Fabian Dill e0e13ac59e move webhost over to UUID to make it nearly impossible to guess at seeds
Also introduce zip uploads and store the remaining relevant data, implemention of that still pending
2020-06-26 19:29:33 +02:00
Fabian Dill ddc7be0794 update webhost 2020-06-13 22:49:57 +02:00
Fabian Dill f918efb645 implement skip_playthrough in mystery 2020-05-31 00:28:03 +02:00
Fabian Dill 6afd4f0507 addresses #86
And also fixes auto, which worked as goal but never got triggered
2020-05-04 02:47:22 +02:00
Fabian Dill 77ca61d069 introduce forfeit_mode and remaining_mode, as well as server state for client has beaten the game
more info in host.yaml
2020-04-25 15:11:58 +02:00
Fabian Dill a36d887122 add ability to disable forfeits 2020-04-16 15:40:31 +02:00
Fabian Dill 4d27651d8d some zip format hints 2020-04-10 14:29:42 +02:00
Fabian Dill 380b59ade2 the setup experience 2020-04-07 04:18:26 +02:00
Fabian Dill 8b02103b93 encode port into patch, also reverse defaulting order for server;
cmd args overwrite yaml now
2020-04-02 11:21:33 +02:00
Fabian Dill 3bb4ace176 Allow use of "options.yaml" as a gitignored options overwrite
This also sets the default hint cost back to 1000, enable it if you want it.
2020-03-22 20:12:42 +01:00
Fabian Dill 27f26c5bf3 update port doc 2020-03-11 09:27:07 +01:00
Fabian Dill d220cc9cc9 make port forwarding non-default, as it makes more problems than it solves, apparently 2020-03-11 09:16:07 +01:00
Fabian Dill 3fd4a4d125 some setting adjustments 2020-03-08 15:47:43 +01:00
Fabian Dill 74b1688427 Allow diff files to be created from the command line 2020-03-08 15:34:35 +01:00
Fabian Dill 1d75d5b70e default to the legal way of doing things
Also set compression method down to zip, as the diffs are already LZMA compressed and zip is quicker
2020-03-07 18:57:50 +01:00
Fabian Dill 325f40bcfa move docs 2020-03-07 18:55:53 +01:00
Fabian Dill 4c75140492 some documentation 2020-03-07 17:06:34 +01:00
Fabian Dill b8e8e3904a add automatic port forwarding 2020-03-07 16:22:04 +01:00
Fabian Dill d44acfdaaf implement binary patching for multimystery (for now no gui/cli support) 2020-03-06 00:48:23 +01:00
Fabian Dill a5a3000b63 add item cheat arg to host.yaml 2020-03-03 01:22:52 +01:00