2021-12-05 17:54:36 +00:00
|
|
|
#include "SpawnGryphonServer.h"
|
|
|
|
#include "InventoryComponent.h"
|
|
|
|
#include "GameMessages.h"
|
2022-07-05 06:00:10 +00:00
|
|
|
#include "MissionComponent.h"
|
|
|
|
#include "eMissionState.h"
|
2023-05-02 22:39:21 +00:00
|
|
|
#include "eTerminateType.h"
|
2021-12-05 17:54:36 +00:00
|
|
|
|
|
|
|
void SpawnGryphonServer::SetVariables(Entity* self) {
|
|
|
|
self->SetVar<LOT>(u"petLOT", 12433);
|
|
|
|
self->SetVar<std::string>(u"petType", "gryphon");
|
|
|
|
self->SetVar<uint32_t>(u"maxPets", 2);
|
|
|
|
self->SetVar<std::u16string>(u"spawnAnim", u"spawn");
|
|
|
|
self->SetVar<std::u16string>(u"spawnCinematic", u"SentinelPet");
|
|
|
|
}
|
|
|
|
|
|
|
|
void SpawnGryphonServer::OnUse(Entity* self, Entity* user) {
|
|
|
|
auto* missionComponent = user->GetComponent<MissionComponent>();
|
|
|
|
auto* inventoryComponent = user->GetComponent<InventoryComponent>();
|
|
|
|
|
|
|
|
// Little extra for handling the case of the egg being placed the first time
|
|
|
|
if (missionComponent != nullptr && inventoryComponent != nullptr
|
|
|
|
&& missionComponent->GetMissionState(1391) == eMissionState::ACTIVE) {
|
|
|
|
inventoryComponent->RemoveItem(12483, inventoryComponent->GetLotCount(12483));
|
2023-05-02 22:39:21 +00:00
|
|
|
GameMessages::SendTerminateInteraction(user->GetObjectID(), eTerminateType::FROM_INTERACTION, self->GetObjectID());
|
2021-12-05 17:54:36 +00:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
SpawnPetBaseServer::OnUse(self, user);
|
|
|
|
}
|