DarkflameServer/dScripts/NPCAddRemoveItem.cpp
EmosewaMC a4d934913c added lootsource send in GM
WIP commit
2022-04-23 05:13:06 -07:00

31 lines
1.4 KiB
C++

#include "NPCAddRemoveItem.h"
#include "InventoryComponent.h"
void NPCAddRemoveItem::OnMissionDialogueOK(Entity *self, Entity *target, int missionID, MissionState missionState) {
auto* inventory = target->GetComponent<InventoryComponent>();
if (inventory == nullptr)
return;
for (const auto& missionSetting : m_MissionItemSettings) {
if (missionSetting.first == missionID) {
for (const auto& itemSetting : missionSetting.second) {
for (const auto& lot : itemSetting.items) {
if (itemSetting.add && (missionState == MissionState::MISSION_STATE_AVAILABLE || missionState == MissionState::MISSION_STATE_COMPLETE_AVAILABLE)) {
inventory->AddItem(lot, 1, eInventoryType::INVALID, {}, 0LL, true, false, 0LL, eInventoryType::INVALID, 0, false, -1, eLootSourceType::LOOT_SOURCE_ACTIVITY);
} else if (itemSetting.remove && (missionState == MissionState::MISSION_STATE_READY_TO_COMPLETE || missionState == MissionState::MISSION_STATE_COMPLETE_READY_TO_COMPLETE)) {
inventory->RemoveItem(lot, 1);
}
}
}
}
}
}
std::map<uint32_t, std::vector<ItemSetting>> NPCAddRemoveItem::GetSettings() {
return std::map<uint32_t, std::vector<ItemSetting>>();
}
void NPCAddRemoveItem::OnStartup(Entity *self) {
m_MissionItemSettings = GetSettings();
}