#include "SpawnGryphonServer.h" #include "InventoryComponent.h" #include "GameMessages.h" #include "MissionComponent.h" #include "eMissionState.h" #include "eTerminateType.h" 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)); GameMessages::SendTerminateInteraction(user->GetObjectID(), eTerminateType::FROM_INTERACTION, self->GetObjectID()); return; } SpawnPetBaseServer::OnUse(self, user); }