Merge pull request #592 Added item precondition checks

Added item precondition checks
This commit is contained in:
David Markowitz 2022-06-20 21:41:08 -07:00 committed by GitHub
commit 5f34b7150a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -311,7 +311,9 @@ bool Item::UseNonEquip()
const auto success = !packages.empty();
Game::logger->Log("Item", "Used (%i) with (%d)\n", lot, success);
auto inventoryComponent = inventory->GetComponent();
auto playerEntity = inventoryComponent->GetParent();
if (subKey != LWOOBJID_EMPTY)
{
@ -324,8 +326,7 @@ bool Item::UseNonEquip()
return true;
}
}
if (success)
if (success && (playerEntity->GetGMLevel() >= eGameMasterLevel::GAME_MASTER_LEVEL_JUNIOR_DEVELOPER || this->GetPreconditionExpression()->Check(playerEntity)))
{
auto* entityParent = inventory->GetComponent()->GetParent();
@ -342,7 +343,7 @@ bool Item::UseNonEquip()
LootGenerator::Instance().GiveLoot(inventory->GetComponent()->GetParent(), result, eLootSourceType::LOOT_SOURCE_CONSUMPTION);
}
Game::logger->Log("Item", "Used (%i)\n", lot);
inventory->GetComponent()->RemoveItem(lot, 1);
}