| 
									
										
											  
											
												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 07:38:57 -04:00
										 |  |  | from test.minecraft.TestMinecraft import TestMinecraft | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Format:  | 
					
						
							|  |  |  | # [location, expected_result, given_items, [excluded_items]] | 
					
						
							|  |  |  | # Every advancement has its own test, named by its internal ID number.  | 
					
						
							|  |  |  | class TestAdvancements(TestMinecraft): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42000(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Who is Cutting Onions?", False, []],  | 
					
						
							|  |  |  |             ["Who is Cutting Onions?", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Who is Cutting Onions?", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Who is Cutting Onions?", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Who is Cutting Onions?", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Who is Cutting Onions?", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket']],  | 
					
						
							|  |  |  |             ["Who is Cutting Onions?", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42001(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Oh Shiny", False, []],  | 
					
						
							|  |  |  |             ["Oh Shiny", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Oh Shiny", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Oh Shiny", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Oh Shiny", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Oh Shiny", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket']],  | 
					
						
							|  |  |  |             ["Oh Shiny", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42002(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Suit Up", False, []], | 
					
						
							|  |  |  |             ["Suit Up", False, [], ["Progressive Armor"]], | 
					
						
							|  |  |  |             ["Suit Up", False, [], ["Ingot Crafting"]], | 
					
						
							|  |  |  |             ["Suit Up", False, [], ["Progressive Tools"]], | 
					
						
							|  |  |  |             ["Suit Up", True, ["Progressive Armor", "Ingot Crafting", "Progressive Tools"]], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42003(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Very Very Frightening", False, []], | 
					
						
							|  |  |  |             ["Very Very Frightening", False, [], ['Channeling Book']], | 
					
						
							|  |  |  |             ["Very Very Frightening", False, [], ['Resource Blocks']], | 
					
						
							|  |  |  |             ["Very Very Frightening", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Very Very Frightening", False, [], ['Enchanting']], | 
					
						
							|  |  |  |             ["Very Very Frightening", False, [], ['Progressive Tools']], | 
					
						
							|  |  |  |             ["Very Very Frightening", False, [], ['Progressive Weapons']], | 
					
						
							|  |  |  |             ["Very Very Frightening", True, ['Progressive Weapons', 'Progressive Tools', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                              'Enchanting', 'Ingot Crafting', 'Resource Blocks', 'Channeling Book']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42004(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Hot Stuff", False, []],  | 
					
						
							|  |  |  |             ["Hot Stuff", False, [], ["Bucket"]], | 
					
						
							|  |  |  |             ["Hot Stuff", False, [], ["Ingot Crafting"]], | 
					
						
							|  |  |  |             ["Hot Stuff", False, [], ["Progressive Tools"]], | 
					
						
							|  |  |  |             ["Hot Stuff", True, ["Bucket", "Ingot Crafting", "Progressive Tools"]],   | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42005(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Free the End", False, []],  | 
					
						
							|  |  |  |             ["Free the End", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Free the End", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Free the End", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Free the End", False, ['Progressive Weapons'], ['Progressive Weapons', 'Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Free the End", False, [], ['Progressive Armor']],  | 
					
						
							|  |  |  |             ["Free the End", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["Free the End", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Free the End", False, ['3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls'], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["Free the End", False, [], ['Archery']],  | 
					
						
							|  |  |  |             ["Free the End", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket', | 
					
						
							|  |  |  |                                     'Progressive Weapons', 'Progressive Weapons', 'Archery', 'Progressive Armor',  | 
					
						
							|  |  |  |                                     'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["Free the End", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                     'Progressive Weapons', 'Progressive Weapons', 'Archery', 'Progressive Armor',   | 
					
						
							|  |  |  |                                     'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42006(self):  | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["A Furious Cocktail", False, []],  | 
					
						
							|  |  |  |             ["A Furious Cocktail", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["A Furious Cocktail", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["A Furious Cocktail", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["A Furious Cocktail", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["A Furious Cocktail", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["A Furious Cocktail", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["A Furious Cocktail", False, [], ['Bottles']],  | 
					
						
							|  |  |  |             ["A Furious Cocktail", False, [], ['Fishing Rod']],  | 
					
						
							| 
									
										
											  
											
												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-15 18:49:58 -04:00
										 |  |  |             ["A Furious Cocktail", False, ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']],  | 
					
						
							| 
									
										
											  
											
												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 07:38:57 -04:00
										 |  |  |             ["A Furious Cocktail", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							| 
									
										
											  
											
												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-15 18:49:58 -04:00
										 |  |  |                                              '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']], | 
					
						
							| 
									
										
											  
											
												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 07:38:57 -04:00
										 |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42007(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Best Friends Forever", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42008(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Bring Home the Beacon", False, []],  | 
					
						
							|  |  |  |             ["Bring Home the Beacon", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Bring Home the Beacon", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Bring Home the Beacon", False, ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Bring Home the Beacon", False, ['Progressive Weapons'], ['Progressive Weapons', 'Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Bring Home the Beacon", False, ['Progressive Armor'], ['Progressive Armor']],  | 
					
						
							|  |  |  |             ["Bring Home the Beacon", False, [], ['Enchanting']],  | 
					
						
							|  |  |  |             ["Bring Home the Beacon", False, [], ['Brewing']], | 
					
						
							|  |  |  |             ["Bring Home the Beacon", False, [], ['Bottles']],  | 
					
						
							|  |  |  |             ["Bring Home the Beacon", False, [], ['Resource Blocks']],  | 
					
						
							|  |  |  |             ["Bring Home the Beacon", True, [], ['Bucket']], | 
					
						
							|  |  |  |             ["Bring Home the Beacon", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                              'Progressive Weapons', 'Progressive Weapons', 'Progressive Weapons',  | 
					
						
							|  |  |  |                                              'Progressive Armor', 'Progressive Armor',  | 
					
						
							|  |  |  |                                              'Enchanting', 'Brewing', 'Bottles', 'Resource Blocks']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42009(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Not Today, Thank You", False, []],  | 
					
						
							|  |  |  |             ["Not Today, Thank You", False, [], ["Shield"]],  | 
					
						
							|  |  |  |             ["Not Today, Thank You", False, [], ["Ingot Crafting"]],  | 
					
						
							|  |  |  |             ["Not Today, Thank You", False, [], ["Progressive Tools"]],  | 
					
						
							|  |  |  |             ["Not Today, Thank You", True, ["Shield", "Ingot Crafting", "Progressive Tools"]],  | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42010(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Isn't It Iron Pick", False, []],  | 
					
						
							|  |  |  |             ["Isn't It Iron Pick", True, ["Progressive Tools", "Progressive Tools"], ["Progressive Tools"]],  | 
					
						
							|  |  |  |             ["Isn't It Iron Pick", False, [], ["Progressive Tools", "Progressive Tools"]],  | 
					
						
							|  |  |  |             ["Isn't It Iron Pick", False, [], ["Ingot Crafting"]],  | 
					
						
							|  |  |  |             ["Isn't It Iron Pick", False, ["Progressive Tools", "Ingot Crafting"]],  | 
					
						
							|  |  |  |             ["Isn't It Iron Pick", True, ["Progressive Tools", "Progressive Tools", "Ingot Crafting"]],  | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42011(self):  | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Local Brewery", False, []],  | 
					
						
							|  |  |  |             ["Local Brewery", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Local Brewery", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Local Brewery", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Local Brewery", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Local Brewery", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["Local Brewery", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["Local Brewery", False, [], ['Bottles']], | 
					
						
							|  |  |  |             ["Local Brewery", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Local Brewery", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                      'Progressive Weapons', 'Progressive Armor', 'Brewing', 'Bottles']],  | 
					
						
							|  |  |  |             ["Local Brewery", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                      'Progressive Weapons', 'Progressive Armor', 'Brewing', 'Bottles']], | 
					
						
							|  |  |  |             ["Local Brewery", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                      'Progressive Weapons', 'Shield', 'Brewing', 'Bottles']],  | 
					
						
							|  |  |  |             ["Local Brewery", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                      'Progressive Weapons', 'Shield', 'Brewing', 'Bottles']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42012(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["The Next Generation", False, []],  | 
					
						
							|  |  |  |             ["The Next Generation", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["The Next Generation", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["The Next Generation", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["The Next Generation", False, ['Progressive Weapons'], ['Progressive Weapons', 'Progressive Weapons']],  | 
					
						
							|  |  |  |             ["The Next Generation", False, [], ['Progressive Armor']],  | 
					
						
							|  |  |  |             ["The Next Generation", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["The Next Generation", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["The Next Generation", False, ['3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls'], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["The Next Generation", False, [], ['Archery']],  | 
					
						
							|  |  |  |             ["The Next Generation", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                            'Progressive Weapons', 'Progressive Weapons', 'Archery', 'Progressive Armor',  | 
					
						
							|  |  |  |                                            'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["The Next Generation", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                            'Progressive Weapons', 'Progressive Weapons', 'Archery', 'Progressive Armor',  | 
					
						
							|  |  |  |                                            'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42013(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Fishy Business", False, []], | 
					
						
							|  |  |  |             ["Fishy Business", False, [], ['Fishing Rod']], | 
					
						
							|  |  |  |             ["Fishy Business", True, ['Fishing Rod']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42014(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Hot Tourist Destinations", False, []],  | 
					
						
							|  |  |  |             ["Hot Tourist Destinations", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Hot Tourist Destinations", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Hot Tourist Destinations", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Hot Tourist Destinations", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							| 
									
										
										
										
											2021-05-22 09:30:09 -05:00
										 |  |  |             ["Hot Tourist Destinations", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket']],  | 
					
						
							|  |  |  |             ["Hot Tourist Destinations", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools']], | 
					
						
							| 
									
										
											  
											
												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 07:38:57 -04:00
										 |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42015(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["This Boat Has Legs", False, []],  | 
					
						
							|  |  |  |             ["This Boat Has Legs", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["This Boat Has Legs", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["This Boat Has Legs", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["This Boat Has Legs", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["This Boat Has Legs", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["This Boat Has Legs", False, [], ['Fishing Rod']], | 
					
						
							| 
									
										
										
										
											2021-07-23 19:28:16 -04:00
										 |  |  |             ["This Boat Has Legs", False, [], ['Saddle']], | 
					
						
							| 
									
										
											  
											
												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 07:38:57 -04:00
										 |  |  |             ["This Boat Has Legs", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							| 
									
										
										
										
											2021-07-23 19:28:16 -04:00
										 |  |  |             ["This Boat Has Legs", True, ['Saddle', 'Ingot Crafting', 'Progressive Tools', 'Progressive Weapons', 'Progressive Armor', 'Flint and Steel', 'Bucket', 'Fishing Rod']],  | 
					
						
							|  |  |  |             ["This Boat Has Legs", True, ['Saddle', 'Ingot Crafting', 'Progressive Tools', 'Progressive Weapons', 'Progressive Armor', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools', 'Fishing Rod']], | 
					
						
							|  |  |  |             ["This Boat Has Legs", True, ['Saddle', 'Ingot Crafting', 'Progressive Tools', 'Progressive Weapons', 'Shield', 'Flint and Steel', 'Bucket', 'Fishing Rod']],  | 
					
						
							|  |  |  |             ["This Boat Has Legs", True, ['Saddle', 'Ingot Crafting', 'Progressive Tools', 'Progressive Weapons', 'Shield', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools', 'Fishing Rod']], | 
					
						
							| 
									
										
											  
											
												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 07:38:57 -04:00
										 |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42016(self):  | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Sniper Duel", False, []], | 
					
						
							|  |  |  |             ["Sniper Duel", False, [], ['Archery']], | 
					
						
							|  |  |  |             ["Sniper Duel", True, ['Archery']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42017(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Nether", False, []],  | 
					
						
							|  |  |  |             ["Nether", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Nether", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Nether", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Nether", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Nether", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket']],  | 
					
						
							|  |  |  |             ["Nether", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42018(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Great View From Up Here", False, []],  | 
					
						
							|  |  |  |             ["Great View From Up Here", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Great View From Up Here", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Great View From Up Here", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Great View From Up Here", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Great View From Up Here", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["Great View From Up Here", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["Great View From Up Here", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Great View From Up Here", False, ['3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls'], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["Great View From Up Here", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                                'Progressive Weapons', 'Progressive Armor',  | 
					
						
							|  |  |  |                                                'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["Great View From Up Here", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                                'Progressive Weapons', 'Progressive Armor',  | 
					
						
							|  |  |  |                                                'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ["Great View From Up Here", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                                'Progressive Weapons', 'Shield',  | 
					
						
							|  |  |  |                                                'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["Great View From Up Here", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                                'Progressive Weapons', 'Shield',  | 
					
						
							|  |  |  |                                                'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42019(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, []],  | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, ['Progressive Weapons', 'Progressive Weapons'], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, ['Progressive Armor'], ['Progressive Armor']],  | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, [], ['Shield']],  | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, [], ['Enchanting']],  | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, [], ['Bottles']],  | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, [], ['Archery']],  | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, [], ['Resource Blocks']],  | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, [], ['Fishing Rod']],  | 
					
						
							|  |  |  |             ["How Did We Get Here?", False, ['3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls'], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["How Did We Get Here?", True, ['Ingot Crafting', 'Flint and Steel',  | 
					
						
							|  |  |  |                                             'Progressive Tools', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                             'Progressive Weapons', 'Progressive Weapons', 'Progressive Weapons',  | 
					
						
							|  |  |  |                                             'Progressive Armor', 'Progressive Armor', 'Shield',  | 
					
						
							|  |  |  |                                             'Enchanting', 'Brewing', 'Archery', 'Bottles', 'Resource Blocks', 'Fishing Rod',  | 
					
						
							|  |  |  |                                             '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42020(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Bullseye", False, []], | 
					
						
							|  |  |  |             ["Bullseye", False, [], ['Archery']], | 
					
						
							|  |  |  |             ["Bullseye", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Bullseye", False, [], ['Progressive Tools']], | 
					
						
							|  |  |  |             ["Bullseye", True, ['Progressive Tools', 'Progressive Tools', 'Ingot Crafting', 'Archery']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42021(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Spooky Scary Skeleton", False, []],  | 
					
						
							|  |  |  |             ["Spooky Scary Skeleton", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Spooky Scary Skeleton", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Spooky Scary Skeleton", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Spooky Scary Skeleton", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Spooky Scary Skeleton", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["Spooky Scary Skeleton", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Spooky Scary Skeleton", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket', 'Progressive Weapons', 'Progressive Armor']],  | 
					
						
							|  |  |  |             ["Spooky Scary Skeleton", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools', 'Progressive Weapons', 'Progressive Armor']], | 
					
						
							|  |  |  |             ["Spooky Scary Skeleton", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket', 'Progressive Weapons', 'Shield']],  | 
					
						
							|  |  |  |             ["Spooky Scary Skeleton", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools', 'Progressive Weapons', 'Shield']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42022(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Two by Two", False, []], | 
					
						
							|  |  |  |             ["Two by Two", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Two by Two", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Two by Two", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Two by Two", False, [], ['Progressive Weapons']], | 
					
						
							|  |  |  |             ["Two by Two", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Two by Two", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket', 'Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Two by Two", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools', 'Progressive Weapons']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42023(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Stone Age", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42024(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Two Birds, One Arrow", False, []], | 
					
						
							|  |  |  |             ["Two Birds, One Arrow", False, [], ['Archery']], | 
					
						
							|  |  |  |             ["Two Birds, One Arrow", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Two Birds, One Arrow", False, ['Progressive Tools'], ['Progressive Tools', 'Progressive Tools']], | 
					
						
							|  |  |  |             ["Two Birds, One Arrow", False, [], ['Enchanting']], | 
					
						
							|  |  |  |             ["Two Birds, One Arrow", True, ['Archery', 'Ingot Crafting', 'Progressive Tools', 'Progressive Tools', 'Progressive Tools', 'Enchanting']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42025(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["We Need to Go Deeper", False, []],  | 
					
						
							|  |  |  |             ["We Need to Go Deeper", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["We Need to Go Deeper", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["We Need to Go Deeper", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["We Need to Go Deeper", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["We Need to Go Deeper", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket']],  | 
					
						
							|  |  |  |             ["We Need to Go Deeper", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42026(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Who's the Pillager Now?", False, []], | 
					
						
							|  |  |  |             ["Who's the Pillager Now?", False, [], ['Archery']], | 
					
						
							|  |  |  |             ["Who's the Pillager Now?", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Who's the Pillager Now?", False, [], ['Progressive Tools']], | 
					
						
							|  |  |  |             ["Who's the Pillager Now?", False, [], ['Progressive Weapons']], | 
					
						
							|  |  |  |             ["Who's the Pillager Now?", True, ['Archery', 'Progressive Tools', 'Progressive Weapons', 'Ingot Crafting']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42027(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Getting an Upgrade", False, []], | 
					
						
							|  |  |  |             ["Getting an Upgrade", True, ["Progressive Tools"]], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42028(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Tactical Fishing", False, []], | 
					
						
							|  |  |  |             ["Tactical Fishing", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Tactical Fishing", False, [], ['Progressive Tools']], | 
					
						
							|  |  |  |             ["Tactical Fishing", False, [], ['Bucket']], | 
					
						
							|  |  |  |             ["Tactical Fishing", True, ['Ingot Crafting', 'Progressive Tools', 'Bucket']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42029(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Zombie Doctor", False, []],  | 
					
						
							|  |  |  |             ["Zombie Doctor", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Zombie Doctor", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Zombie Doctor", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Zombie Doctor", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Zombie Doctor", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["Zombie Doctor", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["Zombie Doctor", False, [], ['Bottles']], | 
					
						
							|  |  |  |             ["Zombie Doctor", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Zombie Doctor", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                      'Progressive Weapons', 'Progressive Armor', 'Brewing', 'Bottles']],  | 
					
						
							|  |  |  |             ["Zombie Doctor", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                      'Progressive Weapons', 'Progressive Armor', 'Brewing', 'Bottles']], | 
					
						
							|  |  |  |             ["Zombie Doctor", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                      'Progressive Weapons', 'Shield', 'Brewing', 'Bottles']],  | 
					
						
							|  |  |  |             ["Zombie Doctor", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                      'Progressive Weapons', 'Shield', 'Brewing', 'Bottles']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42030(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["The City at the End of the Game", False, []],  | 
					
						
							|  |  |  |             ["The City at the End of the Game", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["The City at the End of the Game", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["The City at the End of the Game", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["The City at the End of the Game", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["The City at the End of the Game", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["The City at the End of the Game", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["The City at the End of the Game", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["The City at the End of the Game", False, ['3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls'], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["The City at the End of the Game", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                                        'Progressive Weapons', 'Progressive Armor',  | 
					
						
							|  |  |  |                                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["The City at the End of the Game", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                                        'Progressive Weapons', 'Progressive Armor',  | 
					
						
							|  |  |  |                                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ["The City at the End of the Game", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                                        'Progressive Weapons', 'Shield',  | 
					
						
							|  |  |  |                                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["The City at the End of the Game", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                                        'Progressive Weapons', 'Shield',  | 
					
						
							|  |  |  |                                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42031(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Ice Bucket Challenge", False, []],  | 
					
						
							|  |  |  |             ["Ice Bucket Challenge", False, ["Progressive Tools", "Progressive Tools"], ["Progressive Tools"]], | 
					
						
							|  |  |  |             ["Ice Bucket Challenge", False, [], ["Ingot Crafting"]], | 
					
						
							|  |  |  |             ["Ice Bucket Challenge", True, ["Progressive Tools", "Progressive Tools", "Progressive Tools", "Ingot Crafting"]], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42032(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Remote Getaway", False, []],  | 
					
						
							|  |  |  |             ["Remote Getaway", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Remote Getaway", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Remote Getaway", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Remote Getaway", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Remote Getaway", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["Remote Getaway", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["Remote Getaway", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Remote Getaway", False, ['3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls'], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["Remote Getaway", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                       'Progressive Weapons', 'Progressive Armor',  | 
					
						
							|  |  |  |                                       'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["Remote Getaway", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                       'Progressive Weapons', 'Progressive Armor',  | 
					
						
							|  |  |  |                                       'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ["Remote Getaway", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                       'Progressive Weapons', 'Shield',  | 
					
						
							|  |  |  |                                       'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["Remote Getaway", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                       'Progressive Weapons', 'Shield',  | 
					
						
							|  |  |  |                                       'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42033(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Into Fire", False, []],  | 
					
						
							|  |  |  |             ["Into Fire", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Into Fire", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Into Fire", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Into Fire", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Into Fire", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["Into Fire", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Into Fire", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket', 'Progressive Weapons', 'Progressive Armor']],  | 
					
						
							|  |  |  |             ["Into Fire", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools', 'Progressive Weapons', 'Progressive Armor']], | 
					
						
							|  |  |  |             ["Into Fire", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket', 'Progressive Weapons', 'Shield']],  | 
					
						
							|  |  |  |             ["Into Fire", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools', 'Progressive Weapons', 'Shield']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42034(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["War Pigs", False, []],  | 
					
						
							|  |  |  |             ["War Pigs", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["War Pigs", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["War Pigs", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["War Pigs", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["War Pigs", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["War Pigs", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["War Pigs", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket', 'Progressive Weapons', 'Shield']],  | 
					
						
							|  |  |  |             ["War Pigs", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools', 'Progressive Weapons', 'Shield']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42035(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Take Aim", False, []], | 
					
						
							|  |  |  |             ["Take Aim", False, [], ['Archery']], | 
					
						
							|  |  |  |             ["Take Aim", True, ['Archery']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42036(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Total Beelocation", False, []], | 
					
						
							|  |  |  |             ["Total Beelocation", False, [], ['Enchanting']], | 
					
						
							|  |  |  |             ["Total Beelocation", False, [], ['Silk Touch Book']], | 
					
						
							|  |  |  |             ["Total Beelocation", False, [], ['Resource Blocks']], | 
					
						
							|  |  |  |             ["Total Beelocation", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Total Beelocation", False, ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']], | 
					
						
							|  |  |  |             ["Total Beelocation", True, ['Enchanting', 'Silk Touch Book', 'Resource Blocks', 'Ingot Crafting', 'Progressive Tools', 'Progressive Tools', 'Progressive Tools']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42037(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Arbalistic", False, []], | 
					
						
							|  |  |  |             ["Arbalistic", False, [], ['Enchanting']], | 
					
						
							|  |  |  |             ["Arbalistic", False, [], ['Piercing IV Book']], | 
					
						
							|  |  |  |             ["Arbalistic", False, [], ['Resource Blocks']], | 
					
						
							|  |  |  |             ["Arbalistic", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Arbalistic", False, ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']], | 
					
						
							|  |  |  |             ["Arbalistic", False, [], ['Archery']],  | 
					
						
							|  |  |  |             ["Arbalistic", True, ['Enchanting', 'Piercing IV Book', 'Resource Blocks', 'Ingot Crafting', 'Progressive Tools', 'Progressive Tools', 'Progressive Tools', 'Archery']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42038(self):  | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["The End... Again...", False, []],  | 
					
						
							|  |  |  |             ["The End... Again...", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["The End... Again...", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["The End... Again...", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["The End... Again...", False, ['Progressive Weapons'], ['Progressive Weapons', 'Progressive Weapons']],  | 
					
						
							|  |  |  |             ["The End... Again...", False, [], ['Progressive Armor']],  | 
					
						
							|  |  |  |             ["The End... Again...", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["The End... Again...", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["The End... Again...", False, ['3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls'], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["The End... Again...", False, [], ['Archery']],  | 
					
						
							|  |  |  |             ["The End... Again...", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                            'Progressive Weapons', 'Progressive Weapons', 'Archery', 'Progressive Armor',  | 
					
						
							|  |  |  |                                            'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["The End... Again...", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                            'Progressive Weapons', 'Progressive Weapons', 'Archery', 'Progressive Armor',  | 
					
						
							|  |  |  |                                            'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42039(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Acquire Hardware", False, []],  | 
					
						
							|  |  |  |             ["Acquire Hardware", False, [], ["Progressive Tools"]], | 
					
						
							|  |  |  |             ["Acquire Hardware", False, [], ["Ingot Crafting"]], | 
					
						
							|  |  |  |             ["Acquire Hardware", True, ["Progressive Tools", "Ingot Crafting"]], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42040(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Not Quite \"Nine\" Lives", False, []],  | 
					
						
							|  |  |  |             ["Not Quite \"Nine\" Lives", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Not Quite \"Nine\" Lives", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Not Quite \"Nine\" Lives", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Not Quite \"Nine\" Lives", False, [], ['Resource Blocks']],  | 
					
						
							|  |  |  |             ["Not Quite \"Nine\" Lives", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Not Quite \"Nine\" Lives", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket', 'Resource Blocks']],  | 
					
						
							|  |  |  |             ["Not Quite \"Nine\" Lives", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools', 'Resource Blocks']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42041(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Cover Me With Diamonds", False, []], | 
					
						
							|  |  |  |             ["Cover Me With Diamonds", False, ['Progressive Armor'], ['Progressive Armor']], | 
					
						
							|  |  |  |             ["Cover Me With Diamonds", False, ['Progressive Tools'], ['Progressive Tools', 'Progressive Tools']], | 
					
						
							|  |  |  |             ["Cover Me With Diamonds", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Cover Me With Diamonds", True, ['Ingot Crafting', 'Progressive Tools', 'Progressive Tools', 'Progressive Armor', 'Progressive Armor']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42042(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Sky's the Limit", False, []],  | 
					
						
							|  |  |  |             ["Sky's the Limit", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Sky's the Limit", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Sky's the Limit", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Sky's the Limit", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Sky's the Limit", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["Sky's the Limit", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["Sky's the Limit", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Sky's the Limit", False, ['3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls'], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["Sky's the Limit", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                        'Progressive Weapons', 'Progressive Armor',  | 
					
						
							|  |  |  |                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["Sky's the Limit", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                        'Progressive Weapons', 'Progressive Armor',  | 
					
						
							|  |  |  |                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ["Sky's the Limit", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                        'Progressive Weapons', 'Shield',  | 
					
						
							|  |  |  |                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["Sky's the Limit", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                        'Progressive Weapons', 'Shield',  | 
					
						
							|  |  |  |                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42043(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Hired Help", False, []], | 
					
						
							|  |  |  |             ["Hired Help", False, [], ['Resource Blocks']], | 
					
						
							|  |  |  |             ["Hired Help", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Hired Help", False, [], ['Progressive Tools']], | 
					
						
							|  |  |  |             ["Hired Help", True, ['Progressive Tools', 'Ingot Crafting', 'Resource Blocks']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42044(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Return to Sender", False, []],  | 
					
						
							|  |  |  |             ["Return to Sender", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Return to Sender", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Return to Sender", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Return to Sender", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Return to Sender", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket']],  | 
					
						
							|  |  |  |             ["Return to Sender", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42045(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Sweet Dreams", False, []], | 
					
						
							|  |  |  |             ["Sweet Dreams", True, ['Bed']], | 
					
						
							|  |  |  |             ["Sweet Dreams", False, [], ['Bed', 'Progressive Weapons']], | 
					
						
							|  |  |  |             ["Sweet Dreams", False, [], ['Bed', 'Ingot Crafting', 'Campfire']], | 
					
						
							|  |  |  |             ["Sweet Dreams", True, ['Progressive Weapons', 'Ingot Crafting'], ['Bed', 'Campfire']], | 
					
						
							|  |  |  |             ["Sweet Dreams", True, ['Progressive Weapons', 'Campfire'], ['Bed', 'Ingot Crafting']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42046(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["You Need a Mint", False, []],  | 
					
						
							|  |  |  |             ["You Need a Mint", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["You Need a Mint", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["You Need a Mint", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["You Need a Mint", False, ['Progressive Weapons'], ['Progressive Weapons', 'Progressive Weapons']],  | 
					
						
							|  |  |  |             ["You Need a Mint", False, [], ['Progressive Armor']],  | 
					
						
							|  |  |  |             ["You Need a Mint", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["You Need a Mint", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["You Need a Mint", False, ['3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls'], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["You Need a Mint", False, [], ['Archery']],  | 
					
						
							|  |  |  |             ["You Need a Mint", False, [], ['Bottles']], | 
					
						
							|  |  |  |             ["You Need a Mint", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                        'Progressive Weapons', 'Progressive Weapons', 'Archery', 'Progressive Armor',  | 
					
						
							|  |  |  |                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', 'Bottles']],  | 
					
						
							|  |  |  |             ["You Need a Mint", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                        'Progressive Weapons', 'Progressive Weapons', 'Archery', 'Progressive Armor',  | 
					
						
							|  |  |  |                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', 'Bottles']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42047(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Adventure", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42048(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Monsters Hunted", False, []],  | 
					
						
							|  |  |  |             ["Monsters Hunted", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Monsters Hunted", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Monsters Hunted", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Monsters Hunted", False, ['Progressive Weapons'], ['Progressive Weapons', 'Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Monsters Hunted", False, [], ['Progressive Armor']],  | 
					
						
							|  |  |  |             ["Monsters Hunted", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["Monsters Hunted", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Monsters Hunted", False, ['3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls'], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["Monsters Hunted", False, [], ['Archery']],  | 
					
						
							|  |  |  |             ["Monsters Hunted", False, [], ['Enchanting']],  | 
					
						
							|  |  |  |             ["Monsters Hunted", False, [], ['Fishing Rod']],  | 
					
						
							|  |  |  |             ["Monsters Hunted", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                        'Progressive Weapons', 'Progressive Weapons', 'Progressive Weapons', 'Archery',  | 
					
						
							|  |  |  |                                        'Progressive Armor', 'Progressive Armor', 'Enchanting',  | 
					
						
							|  |  |  |                                        'Fishing Rod', 'Brewing', 'Bottles', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42049(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Enchanter", False, []], | 
					
						
							|  |  |  |             ["Enchanter", False, [], ['Enchanting']], | 
					
						
							|  |  |  |             ["Enchanter", False, ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']], | 
					
						
							|  |  |  |             ["Enchanter", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Enchanter", True, ['Progressive Tools', 'Progressive Tools', 'Progressive Tools', 'Enchanting', 'Ingot Crafting']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42050(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Voluntary Exile", False, []], | 
					
						
							|  |  |  |             ["Voluntary Exile", False, [], ['Progressive Weapons']], | 
					
						
							|  |  |  |             ["Voluntary Exile", False, [], ['Progressive Armor', 'Shield']], | 
					
						
							|  |  |  |             ["Voluntary Exile", False, [], ['Progressive Tools']], | 
					
						
							|  |  |  |             ["Voluntary Exile", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Voluntary Exile", True, ['Progressive Tools', 'Progressive Armor', 'Progressive Weapons', 'Ingot Crafting']], | 
					
						
							|  |  |  |             ["Voluntary Exile", True, ['Progressive Tools', 'Shield', 'Progressive Weapons', 'Ingot Crafting']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42051(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Eye Spy", False, []],  | 
					
						
							|  |  |  |             ["Eye Spy", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Eye Spy", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Eye Spy", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Eye Spy", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Eye Spy", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["Eye Spy", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["Eye Spy", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Eye Spy", False, [], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["Eye Spy", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                'Progressive Weapons', 'Progressive Armor', 'Brewing', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["Eye Spy", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                'Progressive Weapons', 'Progressive Armor', 'Brewing', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ["Eye Spy", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                'Progressive Weapons', 'Shield', 'Brewing', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["Eye Spy", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                'Progressive Weapons', 'Shield', 'Brewing', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42052(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["The End", False, []],  | 
					
						
							|  |  |  |             ["The End", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["The End", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["The End", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["The End", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["The End", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["The End", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["The End", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["The End", False, ['3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls'], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["The End", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                'Progressive Weapons', 'Progressive Armor',  | 
					
						
							|  |  |  |                                'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["The End", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                'Progressive Weapons', 'Progressive Armor',  | 
					
						
							|  |  |  |                                'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ["The End", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                'Progressive Weapons', 'Shield',  | 
					
						
							|  |  |  |                                'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["The End", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                'Progressive Weapons', 'Shield',  | 
					
						
							|  |  |  |                                'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42053(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Serious Dedication", False, []],  | 
					
						
							|  |  |  |             ["Serious Dedication", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Serious Dedication", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Serious Dedication", False, ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Serious Dedication", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Serious Dedication", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["Serious Dedication", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["Serious Dedication", False, [], ['Bottles']], | 
					
						
							|  |  |  |             ["Serious Dedication", False, [], ['Bed']], | 
					
						
							|  |  |  |             ["Serious Dedication", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                           'Progressive Weapons', 'Progressive Armor', 'Brewing', 'Bottles', 'Bed']], | 
					
						
							|  |  |  |             ["Serious Dedication", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                           'Progressive Weapons', 'Shield', 'Brewing', 'Bottles', 'Bed']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42054(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Postmortal", False, []], | 
					
						
							|  |  |  |             ["Postmortal", False, ['Progressive Weapons'], ['Progressive Weapons', 'Progressive Weapons']], | 
					
						
							|  |  |  |             ["Postmortal", False, [], ['Progressive Armor']], | 
					
						
							|  |  |  |             ["Postmortal", False, [], ['Shield']], | 
					
						
							|  |  |  |             ["Postmortal", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Postmortal", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Postmortal", True, ['Progressive Weapons', 'Progressive Weapons', 'Progressive Armor', 'Shield', 'Ingot Crafting', 'Progressive Tools']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42055(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Monster Hunter", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42056(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Adventuring Time", False, []], | 
					
						
							|  |  |  |             ["Adventuring Time", False, [], ['Progressive Weapons']], | 
					
						
							|  |  |  |             ["Adventuring Time", False, [], ['Campfire', 'Ingot Crafting']], | 
					
						
							|  |  |  |             ["Adventuring Time", True, ['Progressive Weapons', 'Campfire']], | 
					
						
							|  |  |  |             ["Adventuring Time", True, ['Progressive Weapons', 'Ingot Crafting']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42057(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["A Seedy Place", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42058(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Those Were the Days", False, []],  | 
					
						
							|  |  |  |             ["Those Were the Days", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Those Were the Days", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Those Were the Days", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Those Were the Days", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Those Were the Days", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Those Were the Days", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket', 'Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Those Were the Days", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools', 'Progressive Weapons']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42059(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Hero of the Village", False, []], | 
					
						
							|  |  |  |             ["Hero of the Village", False, ['Progressive Weapons'], ['Progressive Weapons', 'Progressive Weapons']], | 
					
						
							|  |  |  |             ["Hero of the Village", False, [], ['Progressive Armor']], | 
					
						
							|  |  |  |             ["Hero of the Village", False, [], ['Shield']], | 
					
						
							|  |  |  |             ["Hero of the Village", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Hero of the Village", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Hero of the Village", True, ['Progressive Weapons', 'Progressive Weapons', 'Progressive Armor', 'Shield', 'Ingot Crafting', 'Progressive Tools']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42060(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Hidden in the Depths", False, []],  | 
					
						
							|  |  |  |             ["Hidden in the Depths", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Hidden in the Depths", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Hidden in the Depths", False, ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Hidden in the Depths", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Hidden in the Depths", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["Hidden in the Depths", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["Hidden in the Depths", False, [], ['Bottles']], | 
					
						
							|  |  |  |             ["Hidden in the Depths", False, [], ['Bed']], | 
					
						
							|  |  |  |             ["Hidden in the Depths", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                             'Progressive Weapons', 'Progressive Armor', 'Brewing', 'Bottles', 'Bed']], | 
					
						
							|  |  |  |             ["Hidden in the Depths", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                             'Progressive Weapons', 'Shield', 'Brewing', 'Bottles', 'Bed']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42061(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Beaconator", False, []],  | 
					
						
							|  |  |  |             ["Beaconator", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Beaconator", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Beaconator", False, ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Beaconator", False, ['Progressive Weapons'], ['Progressive Weapons', 'Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Beaconator", False, ['Progressive Armor'], ['Progressive Armor']],  | 
					
						
							|  |  |  |             ["Beaconator", False, [], ['Brewing']], | 
					
						
							|  |  |  |             ["Beaconator", False, [], ['Bottles']],  | 
					
						
							|  |  |  |             ["Beaconator", False, [], ['Resource Blocks']],  | 
					
						
							|  |  |  |             ["Beaconator", False, [], ['Enchanting']],  | 
					
						
							|  |  |  |             ["Beaconator", True, [], ['Bucket']], | 
					
						
							|  |  |  |             ["Beaconator", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                   'Progressive Weapons', 'Progressive Weapons', 'Progressive Weapons', 'Progressive Armor', 'Progressive Armor',  | 
					
						
							|  |  |  |                                   'Brewing', 'Bottles', 'Resource Blocks', 'Enchanting']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42062(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Withering Heights", False, []],  | 
					
						
							|  |  |  |             ["Withering Heights", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Withering Heights", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Withering Heights", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Withering Heights", False, ['Progressive Weapons'], ['Progressive Weapons', 'Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Withering Heights", False, ['Progressive Armor'], ['Progressive Armor']],  | 
					
						
							|  |  |  |             ["Withering Heights", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Withering Heights", False, [], ['Brewing']], | 
					
						
							|  |  |  |             ["Withering Heights", False, [], ['Bottles']],  | 
					
						
							|  |  |  |             ["Withering Heights", False, [], ['Enchanting']],  | 
					
						
							|  |  |  |             ["Withering Heights", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                          'Progressive Weapons', 'Progressive Weapons', 'Progressive Weapons', 'Progressive Armor', 'Progressive Armor',  | 
					
						
							|  |  |  |                                          'Brewing', 'Bottles', 'Enchanting']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42063(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["A Balanced Diet", False, []], | 
					
						
							|  |  |  |             ["A Balanced Diet", False, [], ['Bottles']], | 
					
						
							|  |  |  |             ["A Balanced Diet", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["A Balanced Diet", False, [], ['Resource Blocks']], | 
					
						
							|  |  |  |             ["A Balanced Diet", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["A Balanced Diet", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["A Balanced Diet", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["A Balanced Diet", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["A Balanced Diet", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["A Balanced Diet", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["A Balanced Diet", False, ['3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls'], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["A Balanced Diet", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                        'Progressive Weapons', 'Progressive Armor', 'Bottles', 'Resource Blocks',  | 
					
						
							|  |  |  |                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["A Balanced Diet", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                        'Progressive Weapons', 'Progressive Armor', 'Bottles', 'Resource Blocks',  | 
					
						
							|  |  |  |                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["A Balanced Diet", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                        'Progressive Weapons', 'Shield', 'Bottles', 'Resource Blocks',  | 
					
						
							|  |  |  |                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["A Balanced Diet", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                        'Progressive Weapons', 'Shield', 'Bottles', 'Resource Blocks',  | 
					
						
							|  |  |  |                                        'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42064(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Subspace Bubble", False, []],  | 
					
						
							|  |  |  |             ["Subspace Bubble", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Subspace Bubble", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Subspace Bubble", False, [], ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Subspace Bubble", True, ['Progressive Tools', 'Progressive Tools', 'Progressive Tools', 'Flint and Steel', 'Ingot Crafting']],  | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42065(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Husbandry", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42066(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Country Lode, Take Me Home", False, []],  | 
					
						
							|  |  |  |             ["Country Lode, Take Me Home", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Country Lode, Take Me Home", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Country Lode, Take Me Home", False, ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Country Lode, Take Me Home", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Country Lode, Take Me Home", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["Country Lode, Take Me Home", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["Country Lode, Take Me Home", False, [], ['Bottles']], | 
					
						
							|  |  |  |             ["Country Lode, Take Me Home", False, [], ['Bed']], | 
					
						
							|  |  |  |             ["Country Lode, Take Me Home", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                                   'Progressive Weapons', 'Progressive Armor', 'Brewing', 'Bottles', 'Bed']], | 
					
						
							|  |  |  |             ["Country Lode, Take Me Home", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                                   'Progressive Weapons', 'Shield', 'Brewing', 'Bottles', 'Bed']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42067(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Bee Our Guest", False, []], | 
					
						
							|  |  |  |             ["Bee Our Guest", False, [], ['Campfire']], | 
					
						
							|  |  |  |             ["Bee Our Guest", False, [], ['Bottles']], | 
					
						
							|  |  |  |             ["Bee Our Guest", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Bee Our Guest", True, ['Campfire', 'Bottles', 'Ingot Crafting']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42068(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["What a Deal!", False, []], | 
					
						
							|  |  |  |             ["What a Deal!", False, [], ['Progressive Weapons']], | 
					
						
							|  |  |  |             ["What a Deal!", False, [], ['Campfire', 'Ingot Crafting']], | 
					
						
							|  |  |  |             ["What a Deal!", True, ['Progressive Weapons', 'Campfire']], | 
					
						
							|  |  |  |             ["What a Deal!", True, ['Progressive Weapons', 'Ingot Crafting']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42069(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Uneasy Alliance", False, []],  | 
					
						
							|  |  |  |             ["Uneasy Alliance", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Uneasy Alliance", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Uneasy Alliance", False, [], ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']],  | 
					
						
							| 
									
										
											  
											
												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-15 18:49:58 -04:00
										 |  |  |             ["Uneasy Alliance", False, [], ['Fishing Rod']],  | 
					
						
							|  |  |  |             ["Uneasy Alliance", True, ['Progressive Tools', 'Progressive Tools', 'Progressive Tools', 'Flint and Steel', 'Ingot Crafting', 'Fishing Rod']],  | 
					
						
							| 
									
										
											  
											
												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 07:38:57 -04:00
										 |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42070(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Diamonds!", False, []],  | 
					
						
							|  |  |  |             ["Diamonds!", True, ["Progressive Tools", "Progressive Tools"], ["Progressive Tools"]],  | 
					
						
							|  |  |  |             ["Diamonds!", False, [], ["Progressive Tools", "Progressive Tools"]],  | 
					
						
							|  |  |  |             ["Diamonds!", False, [], ["Ingot Crafting"]],  | 
					
						
							|  |  |  |             ["Diamonds!", False, ["Progressive Tools", "Ingot Crafting"]],  | 
					
						
							|  |  |  |             ["Diamonds!", True, ["Progressive Tools", "Progressive Tools", "Ingot Crafting"]],  | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42071(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["A Terrible Fortress", False, []],  | 
					
						
							|  |  |  |             ["A Terrible Fortress", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["A Terrible Fortress", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["A Terrible Fortress", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["A Terrible Fortress", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["A Terrible Fortress", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["A Terrible Fortress", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket', 'Progressive Weapons']],  | 
					
						
							|  |  |  |             ["A Terrible Fortress", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools', 'Progressive Weapons']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42072(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["A Throwaway Joke", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42073(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Minecraft", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42074(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Sticky Situation", False, []], | 
					
						
							|  |  |  |             ["Sticky Situation", False, [], ['Bottles']], | 
					
						
							|  |  |  |             ["Sticky Situation", False, [], ['Ingot Crafting']], | 
					
						
							| 
									
										
										
										
											2021-05-27 16:51:11 -05:00
										 |  |  |             ["Sticky Situation", False, [], ['Campfire']], | 
					
						
							|  |  |  |             ["Sticky Situation", True, ['Bottles', 'Ingot Crafting', 'Campfire']], | 
					
						
							| 
									
										
											  
											
												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 07:38:57 -04:00
										 |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42075(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Ol' Betsy", False, []], | 
					
						
							|  |  |  |             ["Ol' Betsy", False, [], ['Archery']], | 
					
						
							|  |  |  |             ["Ol' Betsy", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Ol' Betsy", False, [], ['Progressive Tools']], | 
					
						
							|  |  |  |             ["Ol' Betsy", True, ['Archery', 'Ingot Crafting', 'Progressive Tools']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42076(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Cover Me in Debris", False, []],  | 
					
						
							|  |  |  |             ["Cover Me in Debris", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Cover Me in Debris", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Cover Me in Debris", False, ['Progressive Tools', 'Progressive Tools'], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Cover Me in Debris", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Cover Me in Debris", False, ['Progressive Armor'], ['Progressive Armor']],  | 
					
						
							|  |  |  |             ["Cover Me in Debris", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["Cover Me in Debris", False, [], ['Bottles']], | 
					
						
							|  |  |  |             ["Cover Me in Debris", False, [], ['Bed']], | 
					
						
							|  |  |  |             ["Cover Me in Debris", False, ['8 Netherite Scrap'], ['8 Netherite Scrap']], | 
					
						
							|  |  |  |             ["Cover Me in Debris", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                           'Progressive Weapons', 'Progressive Armor', 'Progressive Armor',  | 
					
						
							|  |  |  |                                           'Brewing', 'Bottles', 'Bed', '8 Netherite Scrap', '8 Netherite Scrap']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42077(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["The End?", False, []],  | 
					
						
							|  |  |  |             ["The End?", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["The End?", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["The End?", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["The End?", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["The End?", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["The End?", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["The End?", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["The End?", False, ['3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls'], ['3 Ender Pearls']], | 
					
						
							|  |  |  |             ["The End?", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                 'Progressive Weapons', 'Progressive Armor',  | 
					
						
							|  |  |  |                                 'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["The End?", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                 'Progressive Weapons', 'Progressive Armor',  | 
					
						
							|  |  |  |                                 'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ["The End?", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                 'Progressive Weapons', 'Shield',  | 
					
						
							|  |  |  |                                 'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']],  | 
					
						
							|  |  |  |             ["The End?", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                 'Progressive Weapons', 'Shield',  | 
					
						
							|  |  |  |                                 'Brewing', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls', '3 Ender Pearls']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42078(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["The Parrots and the Bats", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42079(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["A Complete Catalogue", False, []], | 
					
						
							|  |  |  |             ["A Complete Catalogue", False, [], ['Progressive Weapons']], | 
					
						
							|  |  |  |             ["A Complete Catalogue", False, [], ['Campfire', 'Ingot Crafting']], | 
					
						
							|  |  |  |             ["A Complete Catalogue", True, ['Progressive Weapons', 'Campfire']], | 
					
						
							|  |  |  |             ["A Complete Catalogue", True, ['Progressive Weapons', 'Ingot Crafting']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42080(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Getting Wood", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42081(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Time to Mine!", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42082(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Hot Topic", False, []], | 
					
						
							|  |  |  |             ["Hot Topic", True, ['Ingot Crafting']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42083(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Bake Bread", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42084(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["The Lie", False, []], | 
					
						
							|  |  |  |             ["The Lie", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["The Lie", False, [], ['Bucket']], | 
					
						
							|  |  |  |             ["The Lie", False, [], ['Progressive Tools']], | 
					
						
							|  |  |  |             ["The Lie", True, ['Bucket', 'Ingot Crafting', 'Progressive Tools']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42085(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["On a Rail", False, []], | 
					
						
							|  |  |  |             ["On a Rail", False, [], ['Ingot Crafting']], | 
					
						
							| 
									
										
											  
											
												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-15 18:49:58 -04:00
										 |  |  |             ["On a Rail", False, ['Progressive Tools'], ['Progressive Tools', 'Progressive Tools']], | 
					
						
							|  |  |  |             ["On a Rail", True, ['Ingot Crafting', 'Progressive Tools', 'Progressive Tools']], | 
					
						
							| 
									
										
											  
											
												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 07:38:57 -04:00
										 |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42086(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Time to Strike!", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42087(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Cow Tipper", True, []], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42088(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["When Pigs Fly", False, []],  | 
					
						
							|  |  |  |             ["When Pigs Fly", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["When Pigs Fly", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["When Pigs Fly", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["When Pigs Fly", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["When Pigs Fly", False, [], ['Fishing Rod']],  | 
					
						
							| 
									
										
										
										
											2021-07-23 19:28:16 -04:00
										 |  |  |             ["When Pigs Fly", False, [], ['Saddle']],  | 
					
						
							| 
									
										
										
										
											2021-05-22 09:30:09 -05:00
										 |  |  |             ["When Pigs Fly", False, ['Progressive Weapons'], ['Flint and Steel', 'Progressive Weapons', 'Progressive Weapons']],  | 
					
						
							|  |  |  |             ["When Pigs Fly", False, ['Progressive Tools', 'Progressive Tools', 'Progressive Weapons'], ['Bucket', 'Progressive Tools', 'Progressive Weapons', 'Progressive Weapons']],  | 
					
						
							| 
									
										
										
										
											2021-07-23 19:28:16 -04:00
										 |  |  |             ["When Pigs Fly", True, ['Saddle', 'Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket', 'Progressive Weapons', 'Progressive Armor', 'Fishing Rod']],  | 
					
						
							|  |  |  |             ["When Pigs Fly", True, ['Saddle', 'Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools', 'Progressive Weapons', 'Progressive Armor', 'Fishing Rod']], | 
					
						
							|  |  |  |             ["When Pigs Fly", True, ['Saddle', 'Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket', 'Progressive Weapons', 'Shield', 'Fishing Rod']],  | 
					
						
							|  |  |  |             ["When Pigs Fly", True, ['Saddle', 'Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools', 'Progressive Weapons', 'Shield', 'Fishing Rod']], | 
					
						
							|  |  |  |             ["When Pigs Fly", True, ['Saddle', 'Progressive Weapons', 'Progressive Weapons', 'Progressive Armor', 'Shield', 'Ingot Crafting', 'Progressive Tools', 'Fishing Rod']], | 
					
						
							| 
									
										
											  
											
												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 07:38:57 -04:00
										 |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42089(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Overkill", False, []],  | 
					
						
							|  |  |  |             ["Overkill", False, [], ['Ingot Crafting']],  | 
					
						
							|  |  |  |             ["Overkill", False, [], ['Flint and Steel']],  | 
					
						
							|  |  |  |             ["Overkill", False, [], ['Progressive Tools']],  | 
					
						
							|  |  |  |             ["Overkill", False, [], ['Progressive Weapons']],  | 
					
						
							|  |  |  |             ["Overkill", False, [], ['Progressive Armor', 'Shield']],  | 
					
						
							|  |  |  |             ["Overkill", False, [], ['Brewing']],  | 
					
						
							|  |  |  |             ["Overkill", False, [], ['Bottles']], | 
					
						
							|  |  |  |             ["Overkill", False, ['Progressive Tools', 'Progressive Tools'], ['Bucket', 'Progressive Tools']],  | 
					
						
							|  |  |  |             ["Overkill", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                 'Progressive Weapons', 'Progressive Armor', 'Brewing', 'Bottles']],  | 
					
						
							|  |  |  |             ["Overkill", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                 'Progressive Weapons', 'Progressive Armor', 'Brewing', 'Bottles']], | 
					
						
							|  |  |  |             ["Overkill", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Bucket',  | 
					
						
							|  |  |  |                                 'Progressive Weapons', 'Shield', 'Brewing', 'Bottles']],  | 
					
						
							|  |  |  |             ["Overkill", True, ['Ingot Crafting', 'Progressive Tools', 'Flint and Steel', 'Progressive Tools', 'Progressive Tools',  | 
					
						
							|  |  |  |                                 'Progressive Weapons', 'Shield', 'Brewing', 'Bottles']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42090(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Librarian", False, []], | 
					
						
							|  |  |  |             ["Librarian", True, ['Enchanting']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_42091(self): | 
					
						
							|  |  |  |         self.run_location_tests([ | 
					
						
							|  |  |  |             ["Overpowered", False, []], | 
					
						
							|  |  |  |             ["Overpowered", False, [], ['Ingot Crafting']], | 
					
						
							|  |  |  |             ["Overpowered", False, [], ['Resource Blocks']], | 
					
						
							|  |  |  |             ["Overpowered", False, ['Progressive Tools'], ['Flint and Steel', 'Progressive Tools', 'Progressive Tools']], | 
					
						
							|  |  |  |             ["Overpowered", True, ['Resource Blocks', 'Ingot Crafting', 'Progressive Tools', 'Progressive Tools']], | 
					
						
							|  |  |  |             ["Overpowered", True, ['Resource Blocks', 'Ingot Crafting', 'Progressive Tools', 'Bucket', 'Flint and Steel']], | 
					
						
							|  |  |  |             ]) | 
					
						
							|  |  |  | 
 |