Fix 'NotInInventory' ignoring HQ items

This commit is contained in:
Liza 2024-10-01 22:05:21 +02:00
parent ab44ecd45e
commit 4ccd615832
Signed by: liza
GPG Key ID: 7199F8D727D55F67
3 changed files with 5 additions and 14 deletions

View File

@ -33,13 +33,8 @@
"TerritoryId": 134, "TerritoryId": 134,
"InteractionType": "EquipItem", "InteractionType": "EquipItem",
"ItemId": 35778, "ItemId": 35778,
"AetheryteShortcut": "Middle La Noscea - Summerford Farms",
"Fly": true,
"Comment": "Try to Equip Stonegold Milpreves", "Comment": "Try to Equip Stonegold Milpreves",
"SkipConditions": { "SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
},
"StepIf": { "StepIf": {
"Item": { "Item": {
"NotInInventory": true "NotInInventory": true
@ -60,14 +55,7 @@
}, },
"StopDistance": 5, "StopDistance": 5,
"TerritoryId": 134, "TerritoryId": 134,
"InteractionType": "AcceptQuest", "InteractionType": "AcceptQuest"
"AetheryteShortcut": "Middle La Noscea - Summerford Farms",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
} }
] ]
}, },

View File

@ -158,6 +158,8 @@ internal static class EquipItem
return; return;
} }
} }
throw new TaskException($"Could not equip item {Task.ItemId}.");
} }
private static List<ushort>? GetEquipSlot(Item item) private static List<ushort>? GetEquipSlot(Item item)

View File

@ -144,7 +144,8 @@ internal static class SkipCondition
if (skipConditions.Item is { NotInInventory: true } && step is { ItemId: not null }) if (skipConditions.Item is { NotInInventory: true } && step is { ItemId: not null })
{ {
InventoryManager* inventoryManager = InventoryManager.Instance(); InventoryManager* inventoryManager = InventoryManager.Instance();
if (inventoryManager->GetInventoryItemCount(step.ItemId.Value) == 0) if (inventoryManager->GetInventoryItemCount(step.ItemId.Value) == 0 &&
inventoryManager->GetInventoryItemCount(step.ItemId.Value, true) == 0)
{ {
logger.LogInformation("Skipping step, no item with itemId {ItemId} in inventory", logger.LogInformation("Skipping step, no item with itemId {ItemId} in inventory",
step.ItemId.Value); step.ItemId.Value);