166 {
168 {
171 {
172
174 if (pInfo)
175 {
176 ghoul->SetCreateHealth(pInfo->
health);
180 ghoul->SetCreateStat(
Stats(stat),
float(pInfo->
stats[stat]));
181 }
182
183 ghoul->SetBaseWeaponDamage(
BASE_ATTACK,
MINDAMAGE,
float(ghoul->GetLevel() - (ghoul->GetLevel() / 4)));
184 ghoul->SetBaseWeaponDamage(
BASE_ATTACK,
MAXDAMAGE,
float(ghoul->GetLevel() + (ghoul->GetLevel() / 4)));
185
186
187 if (
Aura* aur = ghoul->AddAura(62137, ghoul))
189 if (aur->GetEffect(0))
190 aur->GetEffect(0)->SetAmount(-aurEff->GetSpellInfo()->Effects[
EFFECT_2].CalcValue());
191
192
194
195
200
201
203 {
206 continue;
207
208 float value = 0.0f;
210
211
213 if (aurEff)
214 {
217 }
218
220 if (aurEff)
222
223 value = float(
GetCaster()->GetStat(stat)) * mod;
224 value = ghoul->GetTotalStatValue(stat, value);
225 ghoul->SetStat(stat,
int32(value));
226 ghoul->ApplyStatBuffMod(stat, value, true);
227 }
228
229
234
235
237
238
240 ghoul->UpdateAllStats();
241 ghoul->SetFullHealth();
242
243
250 }
251 }
252 }
std::int32_t int32
Definition Define.h:103
std::uint8_t uint8
Definition Define.h:109
#define sObjectMgr
Definition ObjectMgr.h:1650
@ SPELL_HUNTER_PET_SCALING_04
Definition PetDefines.h:144
@ EFFECT_1
Definition SharedDefines.h:32
@ EFFECT_0
Definition SharedDefines.h:31
@ EFFECT_2
Definition SharedDefines.h:33
#define MAX_STATS
Definition SharedDefines.h:265
@ POWER_ENERGY
Definition SharedDefines.h:272
@ IMMUNITY_STATE
Definition SharedDefines.h:1395
@ SPELLFAMILY_DEATHKNIGHT
Definition SharedDefines.h:3798
Stats
Definition SharedDefines.h:257
@ STAT_AGILITY
Definition SharedDefines.h:259
@ STAT_STRENGTH
Definition SharedDefines.h:258
@ STAT_STAMINA
Definition SharedDefines.h:260
@ 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
@ MINDAMAGE
Definition Unit.h:136
@ MAXDAMAGE
Definition Unit.h:137
UnitMods
Definition Unit.h:143
@ UNIT_MOD_ARMOR
Definition Unit.h:157
@ UNIT_MOD_ATTACK_POWER
Definition Unit.h:164
@ UNIT_MOD_HEALTH
Definition Unit.h:149
@ UNIT_MOD_POWER_START
Definition Unit.h:175
@ BASE_ATTACK
Definition Unit.h:210
@ BASE_VALUE
Definition Unit.h:127
@ TOTAL_VALUE
Definition Unit.h:129
@ TOTAL_PCT
Definition Unit.h:130
@ BASE_PCT
Definition Unit.h:128
@ 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:67
T CalculatePct(T base, U pct)
Definition Util.h:61
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:316
std::array< SpellEffectInfo, MAX_SPELL_EFFECTS > Effects
Definition SpellInfo.h:393
int32 GetEffectValue() const
Definition SpellScript.cpp:600
Unit * GetCaster()
Definition SpellScript.cpp:401
Unit * GetCharm() const
Definition Unit.cpp:10757
float m_modAttackSpeedPct[3]
Definition Unit.h:2003
AuraEffect * GetAuraEffect(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
Definition Unit.cpp:5550
@ SPELL_DK_GLYPH_OF_THE_GHOUL
Definition spell_dk.cpp:40
Definition ObjectMgr.h:528
uint32 health
Definition ObjectMgr.h:535
std::array< uint32, MAX_STATS > stats
Definition ObjectMgr.h:534
uint32 armor
Definition ObjectMgr.h:537