Commit Graph

2475 Commits

Author SHA1 Message Date
Fabian Dill 71bb5b850e set correct player ID for Factorio Victory 2021-05-22 07:06:09 +02:00
Fabian Dill 066c830a43 Fix LttP progressive starting Items not writing to ROM 2021-05-22 06:27:22 +02:00
Fabian Dill 760107becf remove no longer needed imports 2021-05-22 03:00:24 +02:00
Fabian Dill 8dad49e385 assign generic tracker's checked locations to correct player 2021-05-20 01:22:18 +02:00
Fabian Dill 518e5db55b use item_name filter for generic tracker 2021-05-19 21:57:10 +02:00
Fabian Dill 31a3c1cf33 Add a generic fallback tracker for all games 2021-05-19 21:55:18 +02:00
Fabian Dill e1b4975a11 Add Crafting Machine awareness to Factorio logic
(should have no effect on vanilla, mostly for modded gameplay)
2021-05-19 06:52:53 +02:00
Fabian Dill f8a5e8bfc7 add Factorio Victory Event 2021-05-19 05:33:44 +02:00
Fabian Dill a656ad5cd2 potential fix for rcon timing issue 2021-05-18 20:45:56 +02:00
Fabian Dill b43e4fae86 update websockets 2021-05-16 23:10:45 +02:00
Fabian Dill 1f17aa394e allow uploading of Factorio mods 2021-05-16 22:59:45 +02:00
Fabian Dill a1d7bc558c preconfigure and sign qusb2snes 2021-05-16 18:30:13 +02:00
Fabian Dill de31fc320c allow webhost handling of APMC files 2021-05-16 01:16:51 +02:00
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
Kono Tyran 40751f267b removed reference to playersettings yaml as full descriptions are now in the provided example. 2021-05-15 22:46:21 +00:00
Fabian Dill 3e1941a561 allow Factorio Client to recognize if it's trying to connect to the wrong multiworld. 2021-05-16 00:21:00 +02:00
Fabian Dill 8e27ad3547 include full websockets module due to dynamic imports not being identifiable by cx_freeze 2021-05-15 23:01:52 +02:00
Fabian Dill c4f5db9c84 pass through sys args to factorio server 2021-05-15 22:11:20 +02:00
Fabian Dill 19896e1fae prepare webhost for multi-game per-slot downloads 2021-05-14 15:25:57 +02:00
Fabian Dill 23678b814d specify get_id as being alttp only 2021-05-14 14:38:23 +02:00
Fabian Dill 13fe1f2ea2 /api/generate send back error message 2021-05-14 14:12:21 +02:00
Chris Wilson c24d6a0785 Add error message to player-settings and weighted-settings pages if the call to /api/generate returns a non-2xx response code. 2021-05-13 21:33:56 -04:00
Fabian Dill b2f3fd56f4 bunch of fixes after testing round 2021-05-14 01:25:41 +02:00
Fabian Dill b82d6cec31 regain basic WebHost functionality 2021-05-13 21:57:11 +02:00
Fabian Dill c5ff962ea1 document start_hints 2021-05-13 02:53:59 +02:00
Fabian Dill 4aa56c1a7f don't default to active start_hints 2021-05-13 02:39:20 +02:00
Fabian Dill 681279cb2b Implement "start_hints" option 2021-05-13 02:35:50 +02:00
Fabian Dill c4ea879651 "precollect" visible Factorio tech tree as hints, so points are never spent on what was visible. 2021-05-13 02:10:37 +02:00
Fabian Dill 8cdf9d2ddc faster .apsave loading and saving 2021-05-13 01:58:53 +02:00
Fabian Dill daa959e353 remove suppress rom argument 2021-05-13 01:40:36 +02:00
Fabian Dill d5cdff5ec9 filter hints to whom they concern 2021-05-13 01:37:50 +02:00
Fabian Dill fb192b989d update jinja templates to use base static files 2021-05-13 00:41:49 +02:00
Fabian Dill d35adc5868 Update Flask and Jinja
Flask Autoversion is now integrated
Flask config.from_file is now integrated
2021-05-13 00:28:53 +02:00
Fabian Dill c0bf4f58ad extend gitignore 2021-05-11 23:57:42 +02:00
Kono Tyran f24a81fdaf fix !remaining command to look beyond ALTTP 2021-05-11 21:38:44 +00:00
Kono Tyran 40ff0e867c fixed abbreviation ap to full name. 2021-05-11 21:38:34 +00:00
Fabian Dill a231850911 Make hint costs relative 2021-05-11 23:08:50 +02:00
Fabian Dill 1b2283b173 Factorio: correctly cache control_template to allow multiple Factorio worlds 2021-05-11 13:28:58 +02:00
Fabian Dill 729088fd85 Fix generation failure if aga tower door was placed on HC ledge in inverted dungeonsfull 2021-05-11 01:26:59 +02:00
Fabian Dill 88d75a41ae Factorio setup tutorial 2021-05-10 22:42:11 +02:00
Fabian Dill 237b44ca66 Update Documentation to match compatibility variable 2021-05-10 22:04:19 +02:00
Fabian Dill 6fef30d9b3 remove german tutorial video 2021-05-10 13:06:51 +02:00
Fabian Dill 4813fcac08 include version tuple in manifest 2021-05-10 12:02:18 +02:00
Fabian Dill e50db61030 constrict Factorio logic to require all paths to a product, not any.
Should narrow this down in a careful manner later.
2021-05-10 02:33:54 +02:00
Fabian Dill f8c3b695d0 Add Swedish Minecraft Tutorial by Albinum 2021-05-10 01:46:42 +02:00
Edos512 431b64c574 Merge Tutorials from BM 2021-05-10 01:38:26 +02:00
Fabian Dill f06d160615 don't check the AP tag anymore 2021-05-10 01:18:57 +02:00
Fabian Dill 909172cbad Factorio, Minecraft & Hollow Knight: add startinventory support 2021-05-09 21:22:21 +02:00
Fabian Dill 382c6d0445 Factorio: Fix free samples still preventing starting items 2021-05-09 20:39:42 +02:00
Fabian Dill 4efd27694a Factorio: no longer lock starting_items behind free_samples 2021-05-09 18:13:29 +02:00