TrinityCore
CombatPackets.cpp
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "CombatPackets.h"
19#include "Unit.h"
20
22{
24}
25
27{
28 _worldPacket << Attacker;
29 _worldPacket << Victim;
30
31 return &_worldPacket;
32}
33
35{
36 Attacker = attacker->GetGUID();
37 if (victim)
38 {
39 Victim = victim->GetGUID();
40 NowDead = !victim->IsAlive(); // using isAlive instead of isDead to catch JUST_DIED death states as well
41 }
42}
43
45{
46 _worldPacket << Attacker;
47 _worldPacket << Victim;
48 _worldPacket.WriteBit(NowDead);
49 _worldPacket.FlushBits();
50
51 return &_worldPacket;
52}
53
55{
56 _worldPacket << UnitGUID;
57 _worldPacket << int32(ThreatList.size());
58 for (WorldPackets::Combat::ThreatInfo const& threatInfo : ThreatList)
59 {
60 _worldPacket << threatInfo.UnitGUID;
61 _worldPacket << int64(threatInfo.Threat);
62 }
63
64 return &_worldPacket;
65}
66
68{
69 _worldPacket << UnitGUID;
70 _worldPacket << HighestThreatGUID;
71 _worldPacket << int32(ThreatList.size());
72 for (WorldPackets::Combat::ThreatInfo const& threatInfo : ThreatList)
73 {
74 _worldPacket << threatInfo.UnitGUID;
75 _worldPacket << int64(threatInfo.Threat);
76 }
77
78 return &_worldPacket;
79}
80
82{
83 _worldPacket << UnitGUID;
84 _worldPacket << AboutGUID;
85
86 return &_worldPacket;
87}
88
90{
91 _worldPacket << UnitGUID;
92 _worldPacket << Reaction;
93
94 return &_worldPacket;
95}
96
98{
99 _worldPacket.WriteBits(AsUnderlyingType(Reason), 3);
100 _worldPacket.FlushBits();
101 return &_worldPacket;
102}
103
105{
106 _worldPacket << Guid;
107 _worldPacket << uint32(Powers.size());
108 for (PowerUpdatePower const& power : Powers)
109 {
110 _worldPacket << int32(power.Power);
111 _worldPacket << uint8(power.PowerType);
112 }
113
114 return &_worldPacket;
115}
116
118{
119 _worldPacket << int32(PowerType);
120
121 return &_worldPacket;
122}
123
125{
126 _worldPacket >> CurrentSheathState;
127 Animate = _worldPacket.ReadBit();
128}
129
131{
132 _worldPacket << Guid;
133
134 return &_worldPacket;
135}
136
138{
139 _worldPacket << Guid;
140 _worldPacket << int64(Health);
141
142 return &_worldPacket;
143}
144
146{
147 _worldPacket << UnitGUID;
148 return &_worldPacket;
149}
150
152{
153 _worldPacket << int32(OriginalHonor);
154 _worldPacket << int32(Honor);
155 _worldPacket << Target;
156 _worldPacket << int32(Rank);
157
158 return &_worldPacket;
159}
160
162{
163 _worldPacket << UnitGUID;
164
165 return &_worldPacket;
166}
uint8_t uint8
Definition: Define.h:144
int64_t int64
Definition: Define.h:137
int32_t int32
Definition: Define.h:138
uint32_t uint32
Definition: Define.h:142
Powers
constexpr std::underlying_type< E >::type AsUnderlyingType(E enumValue)
Definition: Util.h:491
PowerType
bool WriteBit(bool bit)
Definition: ByteBuffer.h:175
void WriteBits(std::size_t value, int32 bits)
Definition: ByteBuffer.h:203
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:159
Definition: Unit.h:627
bool IsAlive() const
Definition: Unit.h:1164
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket _worldPacket
Definition: Packet.h:43
@ SMSG_ATTACK_STOP
Definition: Opcodes.h:956