198 {
200 {
203 {
204
206 if (pInfo)
207 {
208 ghoul->SetCreateHealth(pInfo->
health);
212 ghoul->SetCreateStat(
Stats(stat),
float(pInfo->
stats[stat]));
213 }
214
215 ghoul->SetBaseWeaponDamage(
BASE_ATTACK,
MINDAMAGE,
float(ghoul->GetLevel() - (ghoul->GetLevel() / 4)));
216 ghoul->SetBaseWeaponDamage(
BASE_ATTACK,
MAXDAMAGE,
float(ghoul->GetLevel() + (ghoul->GetLevel() / 4)));
217
218
219 if (
Aura* aur = ghoul->AddAura(62137, ghoul))
221 if (aur->GetEffect(0))
222 aur->GetEffect(0)->SetAmount(-aurEff->GetSpellInfo()->Effects[
EFFECT_2].CalcValue());
223
224
226
227
229 val = 2000.0f * (100.0f + val) / 100.0f;
232
233
235 {
238 continue;
239
240 float value = 0.0f;
242
243
245 if (aurEff)
246 {
249 }
250
252 if (aurEff)
254
255 value = float(
GetCaster()->GetStat(stat)) * mod;
256 value = ghoul->GetTotalStatValue(stat, value);
257 ghoul->SetStat(stat,
int32(value));
258 ghoul->UpdateStatBuffMod(stat);
259 }
260
261
266
267
269
270
272 ghoul->UpdateAllStats();
273 ghoul->SetFullHealth();
274
275
282 }
283 }
284 }
std::int32_t int32
Definition Define.h:103
std::uint8_t uint8
Definition Define.h:109
#define sObjectMgr
Definition ObjectMgr.h:1712
@ SPELL_HUNTER_PET_SCALING_04
Definition PetDefines.h:145
@ EFFECT_1
Definition SharedDefines.h:32
@ EFFECT_0
Definition SharedDefines.h:31
@ EFFECT_2
Definition SharedDefines.h:33
#define MAX_STATS
Definition SharedDefines.h:253
@ POWER_ENERGY
Definition SharedDefines.h:260
@ IMMUNITY_STATE
Definition SharedDefines.h:1401
@ SPELLFAMILY_DEATHKNIGHT
Definition SharedDefines.h:3801
Stats
Definition SharedDefines.h:245
@ STAT_AGILITY
Definition SharedDefines.h:247
@ STAT_STRENGTH
Definition SharedDefines.h:246
@ STAT_STAMINA
Definition SharedDefines.h:248
@ SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE
Definition SpellAuraDefines.h:200
@ SPELL_AURA_MOD_ATTACK_POWER
Definition SpellAuraDefines.h:162
@ SPELL_AURA_MELEE_SLOW
Definition SpellAuraDefines.h:256
@ SPELL_AURA_ADD_FLAT_MODIFIER
Definition SpellAuraDefines.h:170
@ SPELL_AURA_MOD_STAT
Definition SpellAuraDefines.h:92
@ SPELL_AURA_MOD_MELEE_RANGED_HASTE
Definition SpellAuraDefines.h:255
@ SPELL_AURA_MOD_ATTACK_POWER_PCT
Definition SpellAuraDefines.h:229
@ SPELL_BLOCK_TYPE_POSITIVE
Definition SpellDefines.h:160
@ BASE_VALUE
Definition Unit.h:127
@ TOTAL_VALUE
Definition Unit.h:128
@ MINDAMAGE
Definition Unit.h:141
@ MAXDAMAGE
Definition Unit.h:142
UnitMods
Definition Unit.h:148
@ UNIT_MOD_ARMOR
Definition Unit.h:162
@ UNIT_MOD_ATTACK_POWER
Definition Unit.h:169
@ UNIT_MOD_HEALTH
Definition Unit.h:154
@ UNIT_MOD_POWER_START
Definition Unit.h:180
@ BASE_ATTACK
Definition Unit.h:215
@ TOTAL_PCT
Definition Unit.h:135
@ BASE_PCT
Definition Unit.h:134
@ UNIT_FIELD_ATTACK_POWER_MODS
Definition UpdateFields.h:163
@ UNIT_FIELD_ATTACK_POWER_MULTIPLIER
Definition UpdateFields.h:164
@ UNIT_FIELD_ATTACK_POWER
Definition UpdateFields.h:162
@ UNIT_FIELD_BASEATTACKTIME
Definition UpdateFields.h:120
T AddPct(T &base, U pct)
Definition Util.h:58
T CalculatePct(T base, U pct)
Definition Util.h:52
Definition SpellAuraEffects.h:39
SpellInfo const * GetSpellInfo() const
Definition SpellAuraEffects.h:54
int32 GetAmount() const
Definition SpellAuraEffects.h:64
Definition SpellAuras.h:87
Definition SpellInfo.h:340
std::array< SpellEffectInfo, MAX_SPELL_EFFECTS > Effects
Definition SpellInfo.h:417
Player * GetHitPlayer()
Definition SpellScript.cpp:471
int32 GetEffectValue() const
Definition SpellScript.cpp:600
Unit * GetCaster()
Definition SpellScript.cpp:401
Unit * GetCharm() const
Definition Unit.cpp:7753
float m_modAttackSpeedPct[3]
Definition Unit.h:2086
AuraEffect * GetAuraEffect(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
Definition Unit.cpp:5755
@ SPELL_DK_GLYPH_OF_THE_GHOUL
Definition spell_dk.cpp:39
Definition ObjectMgr.h:531
uint32 health
Definition ObjectMgr.h:538
std::array< uint32, MAX_STATS > stats
Definition ObjectMgr.h:537
uint32 armor
Definition ObjectMgr.h:540