def test_multi_create_pickup_data_for_other(pickup_for_create_pickup_data): # Setup creator = patcher_file.PickupCreatorMulti( MagicMock(), patcher_file._SimplifiedMemo(), PlayersConfiguration(0, { 0: "You", 1: "Someone" })) # Run data = creator.create_pickup_data( PickupIndex(10), PickupTarget(pickup_for_create_pickup_data, 1), pickup_for_create_pickup_data, PickupModelStyle.ALL_VISIBLE, "Scan Text") # Assert assert data == { 'conditional_resources': [], 'convert': [], 'hud_text': ['Sent Cake to Someone!'], 'resources': [ { 'amount': 11, 'index': 74 }, ], 'scan': "Someone's Scan Text", }
def test_solo_create_pickup_data(pickup_for_create_pickup_data): # Setup creator = patcher_file.PickupCreatorSolo(MagicMock(), patcher_file._SimplifiedMemo()) # Run data = creator.create_pickup_data( PickupIndex(10), PickupTarget(pickup_for_create_pickup_data, 0), pickup_for_create_pickup_data, PickupModelStyle.ALL_VISIBLE, "Scan Text") # Assert assert data == { 'conditional_resources': [{ 'item': 1, 'resources': [{ 'amount': 1, 'index': 2 }] }], 'convert': [], 'hud_text': ['Sugar acquired!', 'Salt acquired!'], 'resources': [{ 'amount': 1, 'index': 1 }], 'scan': 'Scan Text', }
def test_create_pickup_all_from_pool(echoes_resource_database, default_layout_configuration, disable_hud_popup: bool): item_pool = pool_creator.calculate_pool_results( default_layout_configuration, echoes_resource_database) index = PickupIndex(0) if disable_hud_popup: memo_data = patcher_file._SimplifiedMemo() else: memo_data = default_prime2_memo_data() creator = patcher_file.PickupCreatorSolo(MagicMock(), memo_data) for item in item_pool.pickups: creator.create_pickup(index, PickupTarget(item, 0), item, PickupModelStyle.ALL_VISIBLE)
def test_multi_create_pickup_data_for_self(pickup_for_create_pickup_data): # Setup creator = patcher_file.PickupCreatorMulti( MagicMock(), patcher_file._SimplifiedMemo(), PlayersConfiguration(0, { 0: "You", 1: "Someone" })) # Run data = creator.create_pickup_data( PickupIndex(10), PickupTarget(pickup_for_create_pickup_data, 0), pickup_for_create_pickup_data, PickupModelStyle.ALL_VISIBLE, "Scan Text") # Assert assert data == { 'conditional_resources': [{ 'item': 1, 'resources': [ { 'amount': 1, 'index': 2 }, { 'amount': 11, 'index': 74 }, ] }], 'convert': [], 'hud_text': ['Sugar acquired!', 'Salt acquired!'], 'resources': [ { 'amount': 1, 'index': 1 }, { 'amount': 11, 'index': 74 }, ], 'scan': 'Your Scan Text', }
def test_run_validated_hud_text(): # Setup rng = MagicMock() rng.randint.return_value = 0 creator = patcher_file.PickupCreatorSolo(rng, patcher_file._SimplifiedMemo()) resource_a = SimpleResourceInfo(1, "A", "A", ResourceType.ITEM) pickup = PickupEntry("Energy Transfer Module", 1, ItemCategory.TEMPLE_KEY, ItemCategory.KEY, ( ConditionalResources("Energy Transfer Module", None, ((resource_a, 1),)), )) # Run data = creator.create_pickup_data(PickupIndex(0), PickupTarget(pickup, 0), pickup, PickupModelStyle.ALL_VISIBLE, "Scan Text") # Assert assert data['hud_text'] == ['Run validated!']
def test_create_pickup_list(model_style: PickupModelStyle, empty_patches): # Setup has_scan_text = model_style in { PickupModelStyle.ALL_VISIBLE, PickupModelStyle.HIDE_MODEL } rng = Random(5000) useless_resource = ItemResourceInfo(0, "Useless", "Useless", 10, None) resource_a = ItemResourceInfo(1, "A", "A", 10, None) resource_b = ItemResourceInfo(2, "B", "B", 10, None) pickup_a = PickupEntry("A", 1, ItemCategory.TEMPLE_KEY, ItemCategory.KEY, (ConditionalResources(None, None, ((resource_a, 1), )), )) pickup_b = PickupEntry("B", 2, ItemCategory.SUIT, ItemCategory.LIFE_SUPPORT, (ConditionalResources(None, None, ((resource_b, 1), (resource_a, 1))), ConditionalResources(None, resource_b, ((resource_a, 5), )))) pickup_c = PickupEntry( "C", 2, ItemCategory.EXPANSION, ItemCategory.MISSILE_RELATED, resources=(ConditionalResources(None, None, ((resource_b, 2), (resource_a, 1))), ), convert_resources=(ResourceConversion(useless_resource, resource_a), )) useless_pickup = PickupEntry( "Useless", 0, ItemCategory.ETM, ItemCategory.ETM, (ConditionalResources(None, None, ((useless_resource, 1), )), )) patches = empty_patches.assign_pickup_assignment({ PickupIndex(0): PickupTarget(pickup_a, 0), PickupIndex(2): PickupTarget(pickup_b, 0), PickupIndex(3): PickupTarget(pickup_a, 0), PickupIndex(4): PickupTarget(pickup_c, 0), }) creator = patcher_file.PickupCreatorSolo(MagicMock(), patcher_file._SimplifiedMemo()) # Run result = patcher_file._create_pickup_list( patches, PickupTarget(useless_pickup, 0), 5, rng, model_style, PickupModelDataSource.ETM, creator, ) # Assert assert len(result) == 5 assert result[0] == { "pickup_index": 0, "model_index": 1 if model_style == PickupModelStyle.ALL_VISIBLE else 30, "scan": "A" if has_scan_text else "Unknown item", "hud_text": ["A acquired!"] if model_style != PickupModelStyle.HIDE_ALL else ['Unknown item acquired!'], "sound_index": 1 if model_style == PickupModelStyle.ALL_VISIBLE else 0, "jingle_index": 2 if model_style == PickupModelStyle.ALL_VISIBLE else 0, "resources": [{ "index": 1, "amount": 1 }], "conditional_resources": [], "convert": [], } assert result[1] == { "pickup_index": 1, "scan": "Useless" if has_scan_text else "Unknown item", "model_index": 0 if model_style == PickupModelStyle.ALL_VISIBLE else 30, "hud_text": ["Useless acquired!"] if model_style != PickupModelStyle.HIDE_ALL else ['Unknown item acquired!'], "sound_index": 0, "jingle_index": 0, "resources": [{ "index": 0, "amount": 1 }], "conditional_resources": [], "convert": [], } assert result[2] == { "pickup_index": 2, "scan": "B" if has_scan_text else "Unknown item", "model_index": 2 if model_style == PickupModelStyle.ALL_VISIBLE else 30, "hud_text": ["B acquired!", "B acquired!"] if model_style != PickupModelStyle.HIDE_ALL else ['Unknown item acquired!', 'Unknown item acquired!'], "sound_index": 0, "jingle_index": 1 if model_style == PickupModelStyle.ALL_VISIBLE else 0, "resources": [{ "index": 2, "amount": 1 }, { "index": 1, "amount": 1 }], "conditional_resources": [{ "item": 2, "resources": [{ "index": 1, "amount": 5 }] }], "convert": [], } assert result[3] == { "pickup_index": 3, "scan": "A" if has_scan_text else "Unknown item", "model_index": 1 if model_style == PickupModelStyle.ALL_VISIBLE else 30, "hud_text": ["A acquired!"] if model_style != PickupModelStyle.HIDE_ALL else ['Unknown item acquired!'], "sound_index": 1 if model_style == PickupModelStyle.ALL_VISIBLE else 0, "jingle_index": 2 if model_style == PickupModelStyle.ALL_VISIBLE else 0, "resources": [{ "index": 1, "amount": 1 }], "conditional_resources": [], "convert": [], } assert result[4] == { "pickup_index": 4, "scan": "C that provides 2 B and 1 A" if has_scan_text else "Unknown item", "model_index": 2 if model_style == PickupModelStyle.ALL_VISIBLE else 30, "hud_text": ["C acquired!"] if model_style != PickupModelStyle.HIDE_ALL else ['Unknown item acquired!'], "sound_index": 0, "jingle_index": 0, "resources": [{ "index": 2, "amount": 2 }, { "index": 1, "amount": 1 }], "conditional_resources": [], "convert": [{ "from_item": 0, "to_item": 1, "clear_source": True, "overwrite_target": False, }], }