2021-12-05 17:54:36 +00:00
|
|
|
#include "NjNPCMissionSpinjitzuServer.h"
|
|
|
|
#include "Character.h"
|
|
|
|
#include "EntityManager.h"
|
|
|
|
|
2022-07-28 13:39:57 +00:00
|
|
|
void NjNPCMissionSpinjitzuServer::OnMissionDialogueOK(Entity* self, Entity* target, int missionID,
|
|
|
|
MissionState missionState) {
|
2021-12-05 17:54:36 +00:00
|
|
|
|
2022-07-28 13:39:57 +00:00
|
|
|
const auto& element = self->GetVar<std::u16string>(ElementVariable);
|
|
|
|
if (missionID == ElementMissions.at(element) && missionState >= MissionState::MISSION_STATE_READY_TO_COMPLETE) {
|
2021-12-05 17:54:36 +00:00
|
|
|
|
2022-07-28 13:39:57 +00:00
|
|
|
const auto targetID = target->GetObjectID();
|
2021-12-05 17:54:36 +00:00
|
|
|
|
2022-07-28 13:39:57 +00:00
|
|
|
// Wait for an animation to complete and flag that the player has learned spinjitzu
|
|
|
|
self->AddCallbackTimer(5.0f, [targetID, element]() {
|
|
|
|
auto* target = EntityManager::Instance()->GetEntity(targetID);
|
|
|
|
if (target != nullptr) {
|
|
|
|
auto* character = target->GetCharacter();
|
|
|
|
if (character != nullptr) {
|
|
|
|
character->SetPlayerFlag(ElementFlags.at(element), true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
2021-12-05 17:54:36 +00:00
|
|
|
}
|