mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
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>
This commit is contained in:
@@ -89,15 +89,19 @@ class TestAdvancements(TestMinecraft):
|
||||
["A Furious Cocktail", False, [], ['Brewing']],
|
||||
["A Furious Cocktail", False, [], ['Bottles']],
|
||||
["A Furious Cocktail", False, [], ['Fishing Rod']],
|
||||
["A Furious Cocktail", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],
|
||||
["A Furious Cocktail", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',
|
||||
'Progressive Weapons', 'Progressive Armor', 'Brewing', 'Bottles', 'Fishing Rod']],
|
||||
["A Furious Cocktail", False, ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']],
|
||||
["A Furious Cocktail", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',
|
||||
'Progressive Weapons', 'Progressive Armor', 'Brewing', 'Bottles', 'Fishing Rod']],
|
||||
["A Furious Cocktail", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',
|
||||
'Progressive Weapons', 'Shield', 'Brewing', 'Bottles', 'Fishing Rod']],
|
||||
["A Furious Cocktail", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',
|
||||
'Progressive Weapons', 'Shield', 'Brewing', 'Bottles', 'Fishing Rod']],
|
||||
'Progressive Weapons', 'Progressive Weapons', 'Progressive Weapons',
|
||||
'Progressive Armor', 'Progressive Armor',
|
||||
'Enchanting', 'Brewing', 'Bottles', 'Resource Blocks', 'Fishing Rod']],
|
||||
# ["A Furious Cocktail", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',
|
||||
# 'Progressive Weapons', 'Progressive Armor', 'Brewing', 'Bottles', 'Fishing Rod']],
|
||||
# ["A Furious Cocktail", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',
|
||||
# 'Progressive Weapons', 'Progressive Armor', 'Brewing', 'Bottles', 'Fishing Rod']],
|
||||
# ["A Furious Cocktail", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',
|
||||
# 'Progressive Weapons', 'Shield', 'Brewing', 'Bottles', 'Fishing Rod']],
|
||||
# ["A Furious Cocktail", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',
|
||||
# 'Progressive Weapons', 'Shield', 'Brewing', 'Bottles', 'Fishing Rod']],
|
||||
])
|
||||
|
||||
def test_42007(self):
|
||||
@@ -934,7 +938,8 @@ class TestAdvancements(TestMinecraft):
|
||||
["Uneasy Alliance", False, [], ['Ingot Crafting']],
|
||||
["Uneasy Alliance", False, [], ['Flint and Steel']],
|
||||
["Uneasy Alliance", False, [], ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']],
|
||||
["Uneasy Alliance", True, ['Progressive Tools', 'Progressive Tools', 'Progressive Tools', 'Flint and Steel', 'Ingot Crafting']],
|
||||
["Uneasy Alliance", False, [], ['Fishing Rod']],
|
||||
["Uneasy Alliance", True, ['Progressive Tools', 'Progressive Tools', 'Progressive Tools', 'Flint and Steel', 'Ingot Crafting', 'Fishing Rod']],
|
||||
])
|
||||
|
||||
def test_42070(self):
|
||||
@@ -1076,8 +1081,8 @@ class TestAdvancements(TestMinecraft):
|
||||
self.run_location_tests([
|
||||
["On a Rail", False, []],
|
||||
["On a Rail", False, [], ['Ingot Crafting']],
|
||||
["On a Rail", False, [], ['Progressive Tools']],
|
||||
["On a Rail", True, ['Ingot Crafting', 'Progressive Tools']],
|
||||
["On a Rail", False, ['Progressive Tools'], ['Progressive Tools', 'Progressive Tools']],
|
||||
["On a Rail", True, ['Ingot Crafting', 'Progressive Tools', 'Progressive Tools']],
|
||||
])
|
||||
|
||||
def test_42086(self):
|
||||
|
Reference in New Issue
Block a user