#include "FvPandaServer.h" #include "PetComponent.h" #include "Character.h" #include "ePetTamingNotifyType.h" void FvPandaServer::OnStartup(Entity* self) { const auto petComponent = self->GetComponent(); if (petComponent != nullptr && petComponent->GetOwner() == nullptr) { self->SetNetworkVar(u"pandatamer", std::to_string(self->GetVar(u"tamer"))); self->AddTimer("killSelf", 45); } } void FvPandaServer::OnNotifyPetTamingMinigame(Entity* self, Entity* tamer, ePetTamingNotifyType type) { if (type == ePetTamingNotifyType::BEGIN) { self->CancelAllTimers(); } else if (type == ePetTamingNotifyType::QUIT || type == ePetTamingNotifyType::FAILED) { self->Smash(); } else if (type == ePetTamingNotifyType::SUCCESS) { // TODO: Remove from groups auto* character = tamer->GetCharacter(); if (character != nullptr) { character->SetPlayerFlag(82, true); } } } void FvPandaServer::OnTimerDone(Entity* self, std::string timerName) { if (timerName == "killSelf") { const auto petComponent = self->GetComponent(); if (petComponent != nullptr && petComponent->GetOwner() == nullptr) { self->Smash(self->GetObjectID(), eKillType::SILENT); } } }