mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-24 06:27:24 +00:00
fc75d6048f
* moving branch * Add deleteinven slash command * Change name of BRICKS_IN_BBB * Use string_view instead of strcmp * Clean up include tree * Remove unneeded headers from PCH files Removes unneeded headers from pre-compiled headers. This increases compile time, however reduces development time for most files. * Update Entity.h * Update EntityManager.h * Update GameMessages.cpp * There it compiles now Co-authored-by: Aaron Kimbrell <aronwk.aaron@gmail.com>
32 lines
1.2 KiB
C++
32 lines
1.2 KiB
C++
#include "NPCAddRemoveItem.h"
|
|
#include "InventoryComponent.h"
|
|
#include "MissionState.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, eLootSourceType::LOOT_SOURCE_NONE);
|
|
} 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();
|
|
}
|