From eb8511a8bce394eb40a07fb8ef5e1959892deeba Mon Sep 17 00:00:00 2001 From: Carter Hesterman Date: Tue, 17 Dec 2024 15:52:42 -0700 Subject: [PATCH] Update logic for supporting start_inventory and start_inventory_from_pool --- worlds/metroidprime/ItemPool.py | 21 +- worlds/metroidprime/__init__.py | 25 +- worlds/metroidprime/data/StartRoomData.py | 13 +- .../metroidprime/test/TestShuffleScanVisor.py | 4 +- worlds/metroidprime/test/TestStartingRoom.py | 46 ++- worlds/metroidprime/test/__init__.py | 11 +- .../test/data/all_randomized.json | 90 ++--- .../test/data/default_config.json | 352 +++++++++--------- .../data/missile_launcher_main_pb_config.json | 12 +- 9 files changed, 306 insertions(+), 268 deletions(-) diff --git a/worlds/metroidprime/ItemPool.py b/worlds/metroidprime/ItemPool.py index a86d572755e8..b0dd1aa5304c 100644 --- a/worlds/metroidprime/ItemPool.py +++ b/worlds/metroidprime/ItemPool.py @@ -15,7 +15,7 @@ from . import MetroidPrimeWorld -def generate_start_inventory(world: "MetroidPrimeWorld") -> List[str]: +def generate_base_start_inventory(world: "MetroidPrimeWorld") -> List[str]: assert world.starting_room_data.selected_loadout starting_items = [ get_item_for_options( @@ -30,15 +30,7 @@ def generate_start_inventory(world: "MetroidPrimeWorld") -> List[str]: if not world.options.shuffle_scan_visor: starting_items.append(SuitUpgrade.Scan_Visor.value) - already_collected_items = [ - item - for item in [ - *world.options.start_inventory_from_pool.value.keys(), - *world.options.start_inventory.value.keys(), - ] - ] - - return [item for item in starting_items if item not in already_collected_items] + return starting_items def generate_item_pool(world: "MetroidPrimeWorld") -> List[MetroidPrimeItem]: @@ -137,11 +129,10 @@ def generate_item_pool(world: "MetroidPrimeWorld") -> List[MetroidPrimeItem]: ) assert world.starting_room_data.selected_loadout - items_to_remove: List[str] = [ - # starting items - *[item for item in generate_start_inventory(world)], - # prefilled items - *[item for item in world.prefilled_item_map.values()], + + items_to_remove = [ + *world.prefilled_item_map.values(), + *generate_base_start_inventory(world), ] for item in items_to_remove: diff --git a/worlds/metroidprime/__init__.py b/worlds/metroidprime/__init__.py index ff47aa63119c..27f5444aa0f2 100644 --- a/worlds/metroidprime/__init__.py +++ b/worlds/metroidprime/__init__.py @@ -33,7 +33,7 @@ from .Config import make_config from .Regions import create_regions from .Locations import every_location -from .ItemPool import generate_item_pool, generate_start_inventory +from .ItemPool import generate_item_pool, generate_base_start_inventory from .PrimeOptions import ( BlastShieldRandomization, DoorColorRandomization, @@ -234,8 +234,15 @@ def generate_early(self) -> None: self.elevator_mapping = get_random_elevator_mapping(self) # Init starting inventory - starting_items = generate_start_inventory(self) - for item in starting_items: + starting_items = generate_base_start_inventory(self) + option_filled_items = [ + *[item for item in self.options.start_inventory.value.keys()], + *[item for item in self.options.start_inventory_from_pool.value.keys()], + ] + + for item in [ + item for item in starting_items if item not in option_filled_items + ]: self.multiworld.push_precollected( self.create_item(item, ItemClassification.progression) ) @@ -259,6 +266,18 @@ def create_item( ) def create_items(self) -> None: + precollected_item_names = [ + item.name for item in self.multiworld.precollected_items[self.player] + ] + new_map: Dict[str, str] = {} + + for location, item in self.prefilled_item_map.items(): + if item not in precollected_item_names: + # Prefilled items affect what goes into the item pool. If we already have collected something, we won't need to prefill it + new_map[location] = item + + self.prefilled_item_map = new_map + item_pool = generate_item_pool(self) self.multiworld.itempool += item_pool diff --git a/worlds/metroidprime/data/StartRoomData.py b/worlds/metroidprime/data/StartRoomData.py index f5c057c0ebb5..4433ea98f617 100644 --- a/worlds/metroidprime/data/StartRoomData.py +++ b/worlds/metroidprime/data/StartRoomData.py @@ -476,16 +476,17 @@ def init_starting_loadout(world: "MetroidPrimeWorld"): # If we are preventing bk then set a few items for prefill if available if not disable_bk_prevention: - for mapping in world.starting_room_data.selected_loadout.item_rules: + if len(world.starting_room_data.selected_loadout.item_rules): + mapping = world.random.choice( + world.starting_room_data.selected_loadout.item_rules + ) + for location_name, potential_items in mapping.items(): required_item = get_item_for_options( world, world.random.choice(potential_items) ) - if ( - required_item.value - not in world.options.start_inventory_from_pool.value.keys() - ): - world.prefilled_item_map[location_name] = required_item.value + world.prefilled_item_map[location_name] = required_item.value + if world.starting_room_data.local_early_items: for item in world.starting_room_data.local_early_items: options_item = get_item_for_options(world, item) diff --git a/worlds/metroidprime/test/TestShuffleScanVisor.py b/worlds/metroidprime/test/TestShuffleScanVisor.py index f31af2e0bd7b..bd731598802c 100644 --- a/worlds/metroidprime/test/TestShuffleScanVisor.py +++ b/worlds/metroidprime/test/TestShuffleScanVisor.py @@ -19,7 +19,7 @@ def test_do_not_start_with_scan_visor(self): item.name for item in self.multiworld.precollected_items[self.player] ] - def test_scan_visor_not_in_item_pool(self): + def test_scan_visor_in_item_pool(self): assert SuitUpgrade.Scan_Visor.value in [ item.name for item in self.multiworld.itempool ] @@ -40,7 +40,7 @@ def test_start_with_scan_visor(self): item.name for item in self.multiworld.precollected_items[self.player] ] - def test_scan_visor_in_item_pool(self): + def test_scan_visor_not_in_item_pool(self): assert SuitUpgrade.Scan_Visor.value not in [ item.name for item in self.multiworld.itempool ] diff --git a/worlds/metroidprime/test/TestStartingRoom.py b/worlds/metroidprime/test/TestStartingRoom.py index db7b35f1679a..9a7eb4239ab5 100644 --- a/worlds/metroidprime/test/TestStartingRoom.py +++ b/worlds/metroidprime/test/TestStartingRoom.py @@ -99,18 +99,24 @@ def test_bk_prevention_should_not_add_items_when_in_start_inventory( ) -class TestPreCollectedItemsWithStartFromPool(MetroidPrimeWithOverridesTestBase): +class TestPreCollectedItemsWithStartInventoryFromPool( + MetroidPrimeWithOverridesTestBase +): run_default_tests = False # type: ignore - options = {"start_inventory_from_pool": {SuitUpgrade.Missile_Expansion.value: 1}} + options = {"start_inventory": {SuitUpgrade.Missile_Expansion.value: 1}} overrides = {"starting_room_name": RoomName.Arboretum.value} - def test_should_not_double_collect_items_when_using_start_from_pool( + def test_should_not_double_collect_items_when_using_start_items( self, ): - self.assertNotIn( - SuitUpgrade.Missile_Expansion.value, - [item.name for item in self.multiworld.precollected_items[1]], + count = len( + [ + item + for item in self.multiworld.precollected_items[self.player] + if item.name == SuitUpgrade.Missile_Expansion.value + ] ) + self.assertEqual(count, 1, "Should only be one missile in precolelcted items") class TestPreCollectedItemsWithStartInventory(MetroidPrimeWithOverridesTestBase): @@ -121,10 +127,14 @@ class TestPreCollectedItemsWithStartInventory(MetroidPrimeWithOverridesTestBase) def test_should_not_double_collect_items_when_using_start_items( self, ): - self.assertNotIn( - SuitUpgrade.Missile_Expansion.value, - [item.name for item in self.multiworld.precollected_items[1]], + count = len( + [ + item + for item in self.multiworld.precollected_items[self.player] + if item.name == SuitUpgrade.Missile_Expansion.value + ] ) + self.assertEqual(count, 1, "Should only be one missile in precolelcted items") class TestStartRoomBKPreventionEnabled(MetroidPrimeWithOverridesTestBase): @@ -201,3 +211,21 @@ def test_starting_in_arboretum(self): self.assertTrue( self.can_reach_location("Chozo Ruins: Watery Hall - Scan Puzzle") ) + + +class TestPrefilledItemsNotPlaced(MetroidPrimeWithOverridesTestBase): + run_default_tests = False # type: ignore + options = {"start_inventory_from_pool": {SuitUpgrade.Morph_Ball.value: 1}} + overrides = {"starting_room_name": RoomName.Save_Station_1.value} + + def test_prefilled_items_should_not_be_placed_when_in_start_inventory( + self, + ): + self.assertNotIn( + SuitUpgrade.Morph_Ball.value, + self.world.prefilled_item_map.values(), + ) + self.assertIn( + SuitUpgrade.Missile_Expansion.value, + self.world.prefilled_item_map.values(), + ) diff --git a/worlds/metroidprime/test/__init__.py b/worlds/metroidprime/test/__init__.py index 51bd0a6c57f4..114b0958e619 100644 --- a/worlds/metroidprime/test/__init__.py +++ b/worlds/metroidprime/test/__init__.py @@ -56,8 +56,17 @@ def world_setup(self, seed: typing.Optional[int] = None) -> None: self.world = self.multiworld.worlds[self.player] # type: ignore self.pre_steps() + self.world.generate_early() + + # A couple tests rely on this being set, it does not happen in the test base for some reason + if self.world.options.start_inventory_from_pool.value: + for item in self.world.options.start_inventory_from_pool.value.keys(): + self.multiworld.push_precollected(self.world.create_item(item)) + if self.world.options.start_inventory.value: + for item in self.world.options.start_inventory.value.keys(): + self.multiworld.push_precollected(self.world.create_item(item)) + gen_steps = ( - "generate_early", "create_regions", "create_items", "set_rules", diff --git a/worlds/metroidprime/test/data/all_randomized.json b/worlds/metroidprime/test/data/all_randomized.json index c90725490883..9682ecbcb259 100644 --- a/worlds/metroidprime/test/data/all_randomized.json +++ b/worlds/metroidprime/test/data/all_randomized.json @@ -274,11 +274,7 @@ "showIcon": true } ], - "doors": { - "0": { - "blastShieldType": "Power Bomb" - } - } + "doors": {} }, "Arbor Chamber": { "pickups": [ @@ -321,7 +317,11 @@ }, "Canyon Cavern": { "pickups": [], - "doors": {} + "doors": { + "1": { + "blastShieldType": "Bomb" + } + } }, "Cargo Freight Lift to Deck Gamma": { "pickups": [ @@ -384,7 +384,8 @@ "pickups": [], "doors": { "2": { - "shieldType": "Wave Beam" + "shieldType": "Blue", + "blastShieldType": "Power Bomb" }, "3": { "shieldType": "Wave Beam" @@ -423,14 +424,14 @@ } ], "doors": { - "2": { - "blastShieldType": "Charge Beam" + "1": { + "blastShieldType": "Bomb" }, - "3": { - "blastShieldType": "Power Bomb" + "2": { + "blastShieldType": "Super Missile" }, "4": { - "blastShieldType": "Power Bomb" + "blastShieldType": "Charge Beam" } } }, @@ -496,10 +497,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Power Bomb Expansion", - "hudmemoText": "Power Bomb Expansion Acquired!", + "scanText": "Charge Beam", + "hudmemoText": "Charge Beam Acquired!", "currIncrease": 0, - "model": "Power Bomb Expansion", + "model": "Charge Beam", "showIcon": true } ], @@ -517,25 +518,18 @@ "doors": { "0": { "blastShieldType": "None" - }, - "1": { - "blastShieldType": "Charge Beam" } } }, "Tallon Canyon": { "pickups": [], - "doors": { - "3": { - "blastShieldType": "Charge Beam" - } - } + "doors": {} }, "Temple Hall": { "pickups": [], "doors": { "1": { - "blastShieldType": "Charge Beam" + "blastShieldType": "Super Missile" } } }, @@ -619,7 +613,8 @@ "pickups": [], "doors": { "0": { - "shieldType": "Wave Beam" + "shieldType": "Blue", + "blastShieldType": "Power Bomb" }, "1": { "shieldType": "Wave Beam" @@ -641,7 +636,7 @@ "pickups": [], "doors": { "0": { - "blastShieldType": "Power Bomb" + "blastShieldType": "Charge Beam" }, "1": { "blastShieldType": "None" @@ -913,9 +908,6 @@ } ], "doors": { - "0": { - "blastShieldType": "Missile" - }, "2": { "shieldType": "Plasma Beam" }, @@ -957,8 +949,7 @@ ], "doors": { "0": { - "shieldType": "Blue", - "blastShieldType": "Super Missile" + "shieldType": "Ice Beam" } } }, @@ -1029,17 +1020,13 @@ }, "Reflecting Pool Access": { "pickups": [], - "doors": { - "1": { - "blastShieldType": "Missile" - } - } + "doors": {} }, "Reflecting Pool": { "pickups": [], "doors": { "0": { - "blastShieldType": "None" + "blastShieldType": "Super Missile" }, "1": { "shieldType": "Plasma Beam" @@ -1137,7 +1124,8 @@ ], "doors": { "0": { - "shieldType": "Ice Beam" + "shieldType": "Blue", + "blastShieldType": "Missile" } } }, @@ -1161,7 +1149,7 @@ "pickups": [], "doors": { "0": { - "blastShieldType": "None" + "blastShieldType": "Super Missile" } } }, @@ -1189,10 +1177,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Charge Beam", - "hudmemoText": "Charge Beam Acquired!", + "scanText": "Super Missile", + "hudmemoText": "Super Missile Acquired!", "currIncrease": 0, - "model": "Charge Beam", + "model": "Super Missile", "showIcon": true }, { @@ -1232,6 +1220,9 @@ "doors": { "0": { "shieldType": "Ice Beam" + }, + "1": { + "blastShieldType": "Missile" } } }, @@ -1268,8 +1259,7 @@ ], "doors": { "0": { - "shieldType": "Blue", - "blastShieldType": "Super Missile" + "shieldType": "Ice Beam" }, "1": { "shieldType": "Ice Beam" @@ -2049,10 +2039,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Energy Tank", - "hudmemoText": "Energy Tank Acquired!", + "scanText": "Power Bomb Expansion", + "hudmemoText": "Power Bomb Expansion Acquired!", "currIncrease": 0, - "model": "Energy Tank", + "model": "Power Bomb Expansion", "showIcon": true } ], @@ -2464,10 +2454,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Super Missile", - "hudmemoText": "Super Missile Acquired!", + "scanText": "Energy Tank", + "hudmemoText": "Energy Tank Acquired!", "currIncrease": 0, - "model": "Super Missile", + "model": "Energy Tank", "showIcon": true } ], diff --git a/worlds/metroidprime/test/data/default_config.json b/worlds/metroidprime/test/data/default_config.json index e089bce63281..5f372f0d9594 100644 --- a/worlds/metroidprime/test/data/default_config.json +++ b/worlds/metroidprime/test/data/default_config.json @@ -237,18 +237,18 @@ "removeMineSecurityStationLocks": false, "powerBombArboretumSandstone": false, "artifactHints": { - "Artifact of Chozo": "The &push;&main-color=#c300ff;Artifact of Chozo&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Magmoor Caverns: Shore Tunnel&pop;.", - "Artifact of Nature": "The &push;&main-color=#c300ff;Artifact of Nature&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Phendrana Drifts: Quarantine Cave&pop;.", + "Artifact of Chozo": "The &push;&main-color=#c300ff;Artifact of Chozo&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Magmoor Caverns: Storage Cavern&pop;.", + "Artifact of Nature": "The &push;&main-color=#c300ff;Artifact of Nature&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Chozo Ruins: Watery Hall Access&pop;.", "Artifact of Sun": "The &push;&main-color=#c300ff;Artifact of Sun&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Chozo Ruins: Hall of the Elders&pop;.", - "Artifact of World": "The &push;&main-color=#c300ff;Artifact of World&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Magmoor Caverns: Fiery Shores - Morph Track&pop;.", - "Artifact of Spirit": "The &push;&main-color=#c300ff;Artifact of Spirit&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Tallon Overworld: Landing Site&pop;.", - "Artifact of Newborn": "The &push;&main-color=#c300ff;Artifact of Newborn&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Phendrana Drifts: Gravity Chamber - Grapple Ledge&pop;.", - "Artifact of Truth": "The &push;&main-color=#c300ff;Artifact of Truth&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Phendrana Drifts: Ruined Courtyard&pop;.", - "Artifact of Strength": "The &push;&main-color=#c300ff;Artifact of Strength&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Chozo Ruins: Tower of Light&pop;.", - "Artifact of Elder": "The &push;&main-color=#c300ff;Artifact of Elder&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Magmoor Caverns: Plasma Processing&pop;.", - "Artifact of Wild": "The &push;&main-color=#c300ff;Artifact of Wild&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Tallon Overworld: Life Grove Tunnel&pop;.", - "Artifact of Lifegiver": "The &push;&main-color=#c300ff;Artifact of Lifegiver&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Chozo Ruins: Ruined Gallery - Missile Wall&pop;.", - "Artifact of Warrior": "The &push;&main-color=#c300ff;Artifact of Warrior&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Magmoor Caverns: Storage Cavern&pop;." + "Artifact of World": "The &push;&main-color=#c300ff;Artifact of World&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Chozo Ruins: Tower of Light&pop;.", + "Artifact of Spirit": "The &push;&main-color=#c300ff;Artifact of Spirit&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Chozo Ruins: Ruined Gallery - Tunnel&pop;.", + "Artifact of Newborn": "The &push;&main-color=#c300ff;Artifact of Newborn&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Chozo Ruins: Dynamo - Spider Track&pop;.", + "Artifact of Truth": "The &push;&main-color=#c300ff;Artifact of Truth&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Chozo Ruins: Tower Chamber&pop;.", + "Artifact of Strength": "The &push;&main-color=#c300ff;Artifact of Strength&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Chozo Ruins: Training Chamber&pop;.", + "Artifact of Elder": "The &push;&main-color=#c300ff;Artifact of Elder&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Phendrana Drifts: Ice Ruins East - Behind Ice&pop;.", + "Artifact of Wild": "The &push;&main-color=#c300ff;Artifact of Wild&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Chozo Ruins: Watery Hall - Underwater&pop;.", + "Artifact of Lifegiver": "The &push;&main-color=#c300ff;Artifact of Lifegiver&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Phendrana Drifts: Gravity Chamber - Underwater&pop;.", + "Artifact of Warrior": "The &push;&main-color=#c300ff;Artifact of Warrior&pop; can be found in &push;&main-color=#d4cc33;your&pop; &push;&main-color=#89a1ff;Phendrana Drifts: Security Cave&pop;." }, "requiredArtifactCount": 12 }, @@ -267,10 +267,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Power Bomb Expansion", + "hudmemoText": "Power Bomb Expansion Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Power Bomb Expansion", "showIcon": true } ], @@ -293,10 +293,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Plasma Beam", + "hudmemoText": "Plasma Beam Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Plasma Beam", "showIcon": true } ], @@ -306,10 +306,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Energy Tank", - "hudmemoText": "Energy Tank Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Energy Tank", + "model": "Missile", "showIcon": true } ], @@ -340,10 +340,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Power Bomb Expansion", - "hudmemoText": "Power Bomb Expansion Acquired!", + "scanText": "Boost Ball", + "hudmemoText": "Boost Ball Acquired!", "currIncrease": 0, - "model": "Power Bomb Expansion", + "model": "Boost Ball", "showIcon": true } ], @@ -357,10 +357,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Power Bomb Expansion", + "hudmemoText": "Power Bomb Expansion Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Power Bomb Expansion", "showIcon": true } ], @@ -378,10 +378,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "X-Ray Visor", - "hudmemoText": "X-Ray Visor Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "X-Ray Visor", + "model": "Missile", "showIcon": true } ], @@ -391,10 +391,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Artifact of Spirit", - "hudmemoText": "Artifact of Spirit Acquired!", + "scanText": "Space Jump Boots", + "hudmemoText": "Space Jump Boots Acquired!", "currIncrease": 0, - "model": "Artifact of Spirit", + "model": "Space Jump Boots", "showIcon": true } ], @@ -404,10 +404,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Artifact of Wild", - "hudmemoText": "Artifact of Wild Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Artifact of Wild", + "model": "Missile", "showIcon": true } ], @@ -451,10 +451,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Charge Beam", + "hudmemoText": "Charge Beam Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Charge Beam", "showIcon": true } ], @@ -524,10 +524,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "X-Ray Visor", + "hudmemoText": "X-Ray Visor Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "X-Ray Visor", "showIcon": true } ], @@ -673,10 +673,10 @@ }, { "type": "Unknown Item 1", - "scanText": "Energy Tank", - "hudmemoText": "Energy Tank Acquired!", + "scanText": "Artifact of Newborn", + "hudmemoText": "Artifact of Newborn Acquired!", "currIncrease": 0, - "model": "Energy Tank", + "model": "Artifact of Newborn", "showIcon": true } ], @@ -809,10 +809,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Power Bomb Expansion", - "hudmemoText": "Power Bomb Expansion Acquired!", + "scanText": "Energy Tank", + "hudmemoText": "Energy Tank Acquired!", "currIncrease": 0, - "model": "Power Bomb Expansion", + "model": "Energy Tank", "showIcon": true } ], @@ -919,18 +919,18 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Artifact of Lifegiver", - "hudmemoText": "Artifact of Lifegiver Acquired!", + "scanText": "Morph Ball Bomb", + "hudmemoText": "Morph Ball Bomb Acquired!", "currIncrease": 0, - "model": "Artifact of Lifegiver", + "model": "Morph Ball Bomb", "showIcon": true }, { "type": "Unknown Item 1", - "scanText": "Energy Tank", - "hudmemoText": "Energy Tank Acquired!", + "scanText": "Artifact of Spirit", + "hudmemoText": "Artifact of Spirit Acquired!", "currIncrease": 0, - "model": "Energy Tank", + "model": "Artifact of Spirit", "showIcon": true } ], @@ -940,10 +940,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Plasma Beam", - "hudmemoText": "Plasma Beam Acquired!", + "scanText": "Energy Tank", + "hudmemoText": "Energy Tank Acquired!", "currIncrease": 0, - "model": "Plasma Beam", + "model": "Energy Tank", "showIcon": true } ], @@ -969,18 +969,18 @@ }, { "type": "Unknown Item 1", - "scanText": "Spider Ball", - "hudmemoText": "Spider Ball Acquired!", + "scanText": "Energy Tank", + "hudmemoText": "Energy Tank Acquired!", "currIncrease": 0, - "model": "Spider Ball", + "model": "Energy Tank", "showIcon": true }, { "type": "Unknown Item 1", - "scanText": "Boost Ball", - "hudmemoText": "Boost Ball Acquired!", + "scanText": "Spider Ball", + "hudmemoText": "Spider Ball Acquired!", "currIncrease": 0, - "model": "Boost Ball", + "model": "Spider Ball", "showIcon": true } ], @@ -1034,18 +1034,18 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Power Bomb Expansion", + "hudmemoText": "Power Bomb Expansion Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Power Bomb Expansion", "showIcon": true }, { "type": "Unknown Item 1", - "scanText": "Energy Tank", - "hudmemoText": "Energy Tank Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Energy Tank", + "model": "Missile", "showIcon": true } ], @@ -1059,10 +1059,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Artifact of Truth", + "hudmemoText": "Artifact of Truth Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Artifact of Truth", "showIcon": true } ], @@ -1076,10 +1076,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Artifact of Strength", - "hudmemoText": "Artifact of Strength Acquired!", + "scanText": "Artifact of World", + "hudmemoText": "Artifact of World Acquired!", "currIncrease": 0, - "model": "Artifact of Strength", + "model": "Artifact of World", "showIcon": true } ], @@ -1102,10 +1102,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Artifact of Strength", + "hudmemoText": "Artifact of Strength Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Artifact of Strength", "showIcon": true } ], @@ -1169,10 +1169,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Artifact of Nature", + "hudmemoText": "Artifact of Nature Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Artifact of Nature", "showIcon": true } ], @@ -1186,18 +1186,18 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Morph Ball Bomb", - "hudmemoText": "Morph Ball Bomb Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Morph Ball Bomb", + "model": "Missile", "showIcon": true }, { "type": "Unknown Item 1", - "scanText": "Charge Beam", - "hudmemoText": "Charge Beam Acquired!", + "scanText": "Artifact of Wild", + "hudmemoText": "Artifact of Wild Acquired!", "currIncrease": 0, - "model": "Charge Beam", + "model": "Artifact of Wild", "showIcon": true } ], @@ -1237,10 +1237,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Artifact of World", - "hudmemoText": "Artifact of World Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Artifact of World", + "model": "Missile", "showIcon": true }, { @@ -1308,10 +1308,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Artifact of Elder", - "hudmemoText": "Artifact of Elder Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Artifact of Elder", + "model": "Missile", "showIcon": true } ], @@ -1341,10 +1341,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Artifact of Chozo", - "hudmemoText": "Artifact of Chozo Acquired!", + "scanText": "Grapple Beam", + "hudmemoText": "Grapple Beam Acquired!", "currIncrease": 0, - "model": "Artifact of Chozo", + "model": "Grapple Beam", "showIcon": true } ], @@ -1358,10 +1358,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Artifact of Warrior", - "hudmemoText": "Artifact of Warrior Acquired!", + "scanText": "Artifact of Chozo", + "hudmemoText": "Artifact of Chozo Acquired!", "currIncrease": 0, - "model": "Artifact of Warrior", + "model": "Artifact of Chozo", "showIcon": true } ], @@ -1395,10 +1395,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Ice Beam", + "hudmemoText": "Ice Beam Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Ice Beam", "showIcon": true } ], @@ -1416,10 +1416,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Flamethrower", - "hudmemoText": "Flamethrower Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Flamethrower", + "model": "Missile", "showIcon": true } ], @@ -1437,10 +1437,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Gravity Suit", - "hudmemoText": "Gravity Suit Acquired!", + "scanText": "Flamethrower", + "hudmemoText": "Flamethrower Acquired!", "currIncrease": 0, - "model": "Gravity Suit", + "model": "Flamethrower", "showIcon": true } ], @@ -1554,18 +1554,18 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Grapple Beam", - "hudmemoText": "Grapple Beam Acquired!", + "scanText": "Artifact of Lifegiver", + "hudmemoText": "Artifact of Lifegiver Acquired!", "currIncrease": 0, - "model": "Grapple Beam", + "model": "Artifact of Lifegiver", "showIcon": true }, { "type": "Unknown Item 1", - "scanText": "Artifact of Newborn", - "hudmemoText": "Artifact of Newborn Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Artifact of Newborn", + "model": "Missile", "showIcon": true } ], @@ -1591,10 +1591,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Space Jump Boots", - "hudmemoText": "Space Jump Boots Acquired!", + "scanText": "Artifact of Elder", + "hudmemoText": "Artifact of Elder Acquired!", "currIncrease": 0, - "model": "Space Jump Boots", + "model": "Artifact of Elder", "showIcon": true }, { @@ -1612,10 +1612,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Ice Beam", - "hudmemoText": "Ice Beam Acquired!", + "scanText": "Energy Tank", + "hudmemoText": "Energy Tank Acquired!", "currIncrease": 0, - "model": "Ice Beam", + "model": "Energy Tank", "showIcon": true } ], @@ -1649,10 +1649,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Energy Tank", + "hudmemoText": "Energy Tank Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Energy Tank", "showIcon": true } ], @@ -1666,10 +1666,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Energy Tank", - "hudmemoText": "Energy Tank Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Energy Tank", + "model": "Missile", "showIcon": true } ], @@ -1716,10 +1716,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Artifact of Nature", - "hudmemoText": "Artifact of Nature Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Artifact of Nature", + "model": "Missile", "showIcon": true } ], @@ -1763,10 +1763,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Energy Tank", + "hudmemoText": "Energy Tank Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Energy Tank", "showIcon": true }, { @@ -1784,10 +1784,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Ice Spreader", - "hudmemoText": "Ice Spreader Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Ice Spreader", + "model": "Missile", "showIcon": true } ], @@ -1797,10 +1797,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Artifact of Truth", - "hudmemoText": "Artifact of Truth Acquired!", + "scanText": "Ice Spreader", + "hudmemoText": "Ice Spreader Acquired!", "currIncrease": 0, - "model": "Artifact of Truth", + "model": "Ice Spreader", "showIcon": true } ], @@ -1842,10 +1842,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Power Bomb Expansion", - "hudmemoText": "Power Bomb Expansion Acquired!", + "scanText": "Artifact of Warrior", + "hudmemoText": "Artifact of Warrior Acquired!", "currIncrease": 0, - "model": "Power Bomb Expansion", + "model": "Artifact of Warrior", "showIcon": true } ], @@ -1867,10 +1867,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Thermal Visor", - "hudmemoText": "Thermal Visor Acquired!", + "scanText": "Energy Tank", + "hudmemoText": "Energy Tank Acquired!", "currIncrease": 0, - "model": "Thermal Visor", + "model": "Energy Tank", "showIcon": true } ], @@ -1884,10 +1884,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Wavebuster", - "hudmemoText": "Wavebuster Acquired!", + "scanText": "Thermal Visor", + "hudmemoText": "Thermal Visor Acquired!", "currIncrease": 0, - "model": "Wavebuster", + "model": "Thermal Visor", "showIcon": true } ], @@ -1966,10 +1966,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Phazon Suit", - "hudmemoText": "Phazon Suit Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Phazon Suit", + "model": "Missile", "showIcon": true } ], @@ -1987,10 +1987,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Phazon Suit", + "hudmemoText": "Phazon Suit Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Phazon Suit", "showIcon": true } ], @@ -2000,18 +2000,18 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Super Missile", - "hudmemoText": "Super Missile Acquired!", + "scanText": "Wavebuster", + "hudmemoText": "Wavebuster Acquired!", "currIncrease": 0, - "model": "Super Missile", + "model": "Wavebuster", "showIcon": true }, { "type": "Unknown Item 1", - "scanText": "Energy Tank", - "hudmemoText": "Energy Tank Acquired!", + "scanText": "Super Missile", + "hudmemoText": "Super Missile Acquired!", "currIncrease": 0, - "model": "Energy Tank", + "model": "Super Missile", "showIcon": true } ], @@ -2025,10 +2025,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Gravity Suit", + "hudmemoText": "Gravity Suit Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Gravity Suit", "showIcon": true } ], @@ -2051,10 +2051,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Energy Tank", - "hudmemoText": "Energy Tank Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Energy Tank", + "model": "Missile", "showIcon": true } ], @@ -2114,10 +2114,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Energy Tank", - "hudmemoText": "Energy Tank Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Energy Tank", + "model": "Missile", "showIcon": true } ], @@ -2127,10 +2127,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Energy Tank", + "hudmemoText": "Energy Tank Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Energy Tank", "showIcon": true } ], @@ -2211,10 +2211,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Energy Tank", - "hudmemoText": "Energy Tank Acquired!", + "scanText": "Missile Expansion", + "hudmemoText": "Missile Expansion Acquired!", "currIncrease": 0, - "model": "Energy Tank", + "model": "Missile", "showIcon": true } ], @@ -2236,10 +2236,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Missile Expansion", - "hudmemoText": "Missile Expansion Acquired!", + "scanText": "Energy Tank", + "hudmemoText": "Energy Tank Acquired!", "currIncrease": 0, - "model": "Missile", + "model": "Energy Tank", "showIcon": true } ], diff --git a/worlds/metroidprime/test/data/missile_launcher_main_pb_config.json b/worlds/metroidprime/test/data/missile_launcher_main_pb_config.json index 775cdf0bc435..44a775c747f8 100644 --- a/worlds/metroidprime/test/data/missile_launcher_main_pb_config.json +++ b/worlds/metroidprime/test/data/missile_launcher_main_pb_config.json @@ -919,10 +919,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Morph Ball", - "hudmemoText": "Morph Ball Acquired!", + "scanText": "Morph Ball Bomb", + "hudmemoText": "Morph Ball Bomb Acquired!", "currIncrease": 0, - "model": "Morph Ball", + "model": "Morph Ball Bomb", "showIcon": true }, { @@ -961,10 +961,10 @@ "pickups": [ { "type": "Unknown Item 1", - "scanText": "Morph Ball Bomb", - "hudmemoText": "Morph Ball Bomb Acquired!", + "scanText": "Morph Ball", + "hudmemoText": "Morph Ball Acquired!", "currIncrease": 0, - "model": "Morph Ball Bomb", + "model": "Morph Ball", "showIcon": true }, {