mirror of
https://github.com/DarkflameUniverse/DarkflameServer
synced 2024-08-30 18:43:58 +00:00
25 lines
1013 B
C++
25 lines
1013 B
C++
|
#include "NjNPCMissionSpinjitzuServer.h"
|
||
|
#include "Character.h"
|
||
|
#include "EntityManager.h"
|
||
|
|
||
|
void NjNPCMissionSpinjitzuServer::OnMissionDialogueOK(Entity *self, Entity *target, int missionID,
|
||
|
MissionState missionState) {
|
||
|
|
||
|
const auto& element = self->GetVar<std::u16string>(ElementVariable);
|
||
|
if (missionID == ElementMissions.at(element) && missionState >= MissionState::MISSION_STATE_READY_TO_COMPLETE) {
|
||
|
|
||
|
const auto targetID = target->GetObjectID();
|
||
|
|
||
|
// 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);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|