/* * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #ifndef TRINITYCORE_ARTIFACT_PACKETS_H #define TRINITYCORE_ARTIFACT_PACKETS_H #include "Packet.h" #include "ObjectGuid.h" #include "PacketUtilities.h" namespace WorldPackets { namespace Artifact { struct ArtifactPowerChoice { int32 ArtifactPowerID = 0; uint8 Rank = 0; }; class ArtifactAddPower final : public ClientPacket { public: explicit ArtifactAddPower(WorldPacket&& packet) : ClientPacket(CMSG_ARTIFACT_ADD_POWER, std::move(packet)) { } void Read() override; ObjectGuid ArtifactGUID; ObjectGuid ForgeGUID; Array PowerChoices; }; class ArtifactSetAppearance final : public ClientPacket { public: explicit ArtifactSetAppearance(WorldPacket&& packet) : ClientPacket(CMSG_ARTIFACT_SET_APPEARANCE, std::move(packet)) { } void Read() override; ObjectGuid ArtifactGUID; ObjectGuid ForgeGUID; int32 ArtifactAppearanceID = 0; }; class ConfirmArtifactRespec final : public ClientPacket { public: explicit ConfirmArtifactRespec(WorldPacket&& packet) : ClientPacket(CMSG_CONFIRM_ARTIFACT_RESPEC, std::move(packet)) { } void Read() override; ObjectGuid ArtifactGUID; ObjectGuid NpcGUID; }; class OpenArtifactForge final : public ServerPacket { public: explicit OpenArtifactForge() : ServerPacket(SMSG_OPEN_ARTIFACT_FORGE, 16 + 16) { } WorldPacket const* Write() override; ObjectGuid ArtifactGUID; ObjectGuid ForgeGUID; }; class ArtifactRespecPrompt final : public ServerPacket { public: explicit ArtifactRespecPrompt() : ServerPacket(SMSG_ARTIFACT_RESPEC_PROMPT, 16 + 16) { } WorldPacket const* Write() override; ObjectGuid ArtifactGUID; ObjectGuid NpcGUID; }; class ArtifactXpGain final : public ServerPacket { public: explicit ArtifactXpGain() : ServerPacket(SMSG_ARTIFACT_XP_GAIN, 16 + 4) { } WorldPacket const* Write() override; ObjectGuid ArtifactGUID; uint64 Amount = 0; }; } } #endif // TRINITYCORE_ARTIFACT_PACKETS_H