mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-12-23 14:03:34 +00:00
6aa90ad5b2
* Breakout rest of the enums from dcommonvars so we don't have to deal with merge conflicts ePlayerFlags is not a scoped enum, yet, due to it's complexity * address feedback * make player flag types consistent * fix typo
30 lines
1.1 KiB
C++
30 lines
1.1 KiB
C++
#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);
|
|
}
|