Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
SpellCombatMetadata.cpp
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#include "
SpellCombatMetadata.h
"
7
#include "
DBCEnums.h
"
8
#include "
SharedDefines.h
"
9
10
namespace
Skyfire
11
{
12
namespace
Spells
13
{
14
namespace
15
{
16
struct
GenericSchoolDamageRuleInfo
17
{
18
uint32
SpellId;
19
GenericSchoolDamageRule
Rule;
20
};
21
22
uint32
const
SPELL_CONSUMPTION
= 28865;
23
uint32
const
SPELL_THUNDERCRASH
= 25599;
24
uint32
const
SPELL_ARCANE_CHARGE = 45072;
25
uint32
const
SPELL_GARGOYLE_STRIKE
= 51963;
26
uint32
const
SPELL_VICTORY_RUSH = 34428;
27
uint32
const
SPELL_SHOCKWAVE
= 46968;
28
uint32
const
SPELL_MANA_BURN
= 8129;
29
uint32
const
SPELL_VESSEL_OF_THE_NAARU = 45064;
30
uint32
const
SPELL_VESSEL_OF_THE_NAARU_STACK_AURA = 45062;
31
uint32
const
SPELL_RUNIC_HEALING_INJECTOR = 67489;
32
uint32
const
SPELL_PRIMAL_WISDOM = 63375;
33
uint32
const
SPELL_RUNIC_MANA_INJECTOR = 67490;
34
uint32
const
SPELL_JAB = 100780;
35
uint32
const
SPELL_STANCE_OF_THE_FIERCE_TIGER = 103985;
36
uint32
const
SPELL_MAD_ALCHEMISTS_POTION = 45051;
37
uint32
const
SPELL_BLOOD_TAP = 45529;
38
uint32
const
SPELL_EMPOWER_RUNE_WEAPON = 47568;
39
40
uint32
const
DAMAGE_CONSUMPTION_NORMAL = 2750;
41
uint32
const
DAMAGE_CONSUMPTION_HEROIC = 4250;
42
uint32
const
DAMAGE_THUNDERCRASH_MINIMUM = 200;
43
uint32
const
ENGINEERING_HEALING_BONUS_PCT = 25;
44
uint32
const
JAB_BASE_CHI = 1;
45
46
GenericSchoolDamageRuleInfo
const
GenericSchoolDamageRules[] =
47
{
48
{
SPELL_CONSUMPTION
,
GENERIC_SCHOOL_DAMAGE_CONSUMPTION
},
49
{
SPELL_THUNDERCRASH
,
GENERIC_SCHOOL_DAMAGE_THUNDERCRASH
},
50
{ SPELL_ARCANE_CHARGE,
GENERIC_SCHOOL_DAMAGE_ARCANE_CHARGE
},
51
{
SPELL_GARGOYLE_STRIKE
,
GENERIC_SCHOOL_DAMAGE_GARGOYLE_STRIKE
}
52
};
53
54
EnergizeLevelScalingRule
const
EnergizeLevelScalingRules[] =
55
{
56
{ 9512, 40, 2 },
// Restore Energy
57
{ 24571, 60, 10 },
// Blood Fury
58
{ 24532, 60, 4 }
// Burst of Energy
59
};
60
}
61
62
GenericSchoolDamageRule
GetGenericSchoolDamageRule
(
uint32
spellId)
63
{
64
for
(GenericSchoolDamageRuleInfo
const
& rule : GenericSchoolDamageRules)
65
if
(rule.SpellId == spellId)
66
return
rule.Rule;
67
68
return
GENERIC_SCHOOL_DAMAGE_NONE
;
69
}
70
71
uint32
GetConsumptionDamage
(
uint32
difficulty)
72
{
73
return
difficulty ==
DIFFICULTY_NONE
? DAMAGE_CONSUMPTION_NORMAL : DAMAGE_CONSUMPTION_HEROIC;
74
}
75
76
uint32
GetThundercrashMinimumDamage
()
77
{
78
return
DAMAGE_THUNDERCRASH_MINIMUM;
79
}
80
81
bool
IsArcaneChargeAllowedCreatureType
(
uint32
creatureType)
82
{
83
return
creatureType ==
CREATURE_TYPE_DEMON
|| creatureType ==
CREATURE_TYPE_UNDEAD
;
84
}
85
86
int32
GetGargoyleStrikeDamageForLevel
(
uint32
level)
87
{
88
return
(
int32
(level) - 60) * 4 + 60;
89
}
90
91
bool
IsVictoryRushDamageSpell
(
uint32
spellId)
92
{
93
return
spellId == SPELL_VICTORY_RUSH;
94
}
95
96
bool
IsShockwaveDamageSpell
(
uint32
spellId)
97
{
98
return
spellId ==
SPELL_SHOCKWAVE
;
99
}
100
101
bool
IsManaBurnSpell
(
uint32
spellId)
102
{
103
return
spellId ==
SPELL_MANA_BURN
;
104
}
105
106
bool
IsVesselOfTheNaaruHealSpell
(
uint32
spellId)
107
{
108
return
spellId == SPELL_VESSEL_OF_THE_NAARU;
109
}
110
111
uint32
GetVesselOfTheNaaruStackAuraSpellId
()
112
{
113
return
SPELL_VESSEL_OF_THE_NAARU_STACK_AURA;
114
}
115
116
bool
IsRunicHealingInjectorSpell
(
uint32
spellId)
117
{
118
return
spellId == SPELL_RUNIC_HEALING_INJECTOR;
119
}
120
121
uint32
GetEngineeringHealingBonusPct
()
122
{
123
return
ENGINEERING_HEALING_BONUS_PCT;
124
}
125
126
EnergizeLevelScalingRule
const
*
GetEnergizeLevelScalingRule
(
uint32
spellId)
127
{
128
for
(
EnergizeLevelScalingRule
const
& rule : EnergizeLevelScalingRules)
129
if
(rule.SpellId == spellId)
130
return
&rule;
131
132
return
nullptr
;
133
}
134
135
bool
IsPrimalWisdomEnergizeSpell
(
uint32
spellId)
136
{
137
return
spellId == SPELL_PRIMAL_WISDOM;
138
}
139
140
bool
IsRunicManaInjectorSpell
(
uint32
spellId)
141
{
142
return
spellId == SPELL_RUNIC_MANA_INJECTOR;
143
}
144
145
bool
IsJabEnergizeSpell
(
uint32
spellId)
146
{
147
return
spellId == SPELL_JAB;
148
}
149
150
uint32
GetJabBaseChi
()
151
{
152
return
JAB_BASE_CHI;
153
}
154
155
uint32
GetStanceOfTheFierceTigerAuraSpellId
()
156
{
157
return
SPELL_STANCE_OF_THE_FIERCE_TIGER;
158
}
159
160
bool
IsMadAlchemistsPotionSpell
(
uint32
spellId)
161
{
162
return
spellId == SPELL_MAD_ALCHEMISTS_POTION;
163
}
164
165
bool
IsBloodTapRuneSpell
(
uint32
spellId)
166
{
167
return
spellId == SPELL_BLOOD_TAP;
168
}
169
170
bool
IsEmpowerRuneWeaponSpell
(
uint32
spellId)
171
{
172
return
spellId == SPELL_EMPOWER_RUNE_WEAPON;
173
}
174
}
175
}
DBCEnums.h
DIFFICULTY_NONE
@ DIFFICULTY_NONE
Definition
DBCEnums.h:331
int32
std::int32_t int32
Definition
Define.h:73
uint32
std::uint32_t uint32
Definition
Define.h:77
SharedDefines.h
CREATURE_TYPE_UNDEAD
@ CREATURE_TYPE_UNDEAD
Definition
SharedDefines.h:3079
CREATURE_TYPE_DEMON
@ CREATURE_TYPE_DEMON
Definition
SharedDefines.h:3076
SpellCombatMetadata.h
SPELL_CONSUMPTION
@ SPELL_CONSUMPTION
Definition
boss_nethekurse.cpp:42
SPELL_THUNDERCRASH
@ SPELL_THUNDERCRASH
Definition
boss_rajaxx.cpp:37
SPELL_SHOCKWAVE
@ SPELL_SHOCKWAVE
Definition
boss_the_lich_king.cpp:167
SPELL_GARGOYLE_STRIKE
@ SPELL_GARGOYLE_STRIKE
Definition
hyjal_trash.cpp:32
SPELL_MANA_BURN
@ SPELL_MANA_BURN
Definition
hyjal_trash.cpp:30
Skyfire::Spells
Definition
SpellAuraMetadata.cpp:13
Skyfire::Spells::IsEmpowerRuneWeaponSpell
bool IsEmpowerRuneWeaponSpell(uint32 spellId)
Definition
SpellCombatMetadata.cpp:170
Skyfire::Spells::IsMadAlchemistsPotionSpell
bool IsMadAlchemistsPotionSpell(uint32 spellId)
Definition
SpellCombatMetadata.cpp:160
Skyfire::Spells::GetGenericSchoolDamageRule
GenericSchoolDamageRule GetGenericSchoolDamageRule(uint32 spellId)
Definition
SpellCombatMetadata.cpp:62
Skyfire::Spells::IsVesselOfTheNaaruHealSpell
bool IsVesselOfTheNaaruHealSpell(uint32 spellId)
Definition
SpellCombatMetadata.cpp:106
Skyfire::Spells::GetStanceOfTheFierceTigerAuraSpellId
uint32 GetStanceOfTheFierceTigerAuraSpellId()
Definition
SpellCombatMetadata.cpp:155
Skyfire::Spells::GetConsumptionDamage
uint32 GetConsumptionDamage(uint32 difficulty)
Definition
SpellCombatMetadata.cpp:71
Skyfire::Spells::IsPrimalWisdomEnergizeSpell
bool IsPrimalWisdomEnergizeSpell(uint32 spellId)
Definition
SpellCombatMetadata.cpp:135
Skyfire::Spells::GetGargoyleStrikeDamageForLevel
int32 GetGargoyleStrikeDamageForLevel(uint32 level)
Definition
SpellCombatMetadata.cpp:86
Skyfire::Spells::GenericSchoolDamageRule
GenericSchoolDamageRule
Definition
SpellCombatMetadata.h:16
Skyfire::Spells::GENERIC_SCHOOL_DAMAGE_NONE
@ GENERIC_SCHOOL_DAMAGE_NONE
Definition
SpellCombatMetadata.h:17
Skyfire::Spells::GENERIC_SCHOOL_DAMAGE_GARGOYLE_STRIKE
@ GENERIC_SCHOOL_DAMAGE_GARGOYLE_STRIKE
Definition
SpellCombatMetadata.h:21
Skyfire::Spells::GENERIC_SCHOOL_DAMAGE_CONSUMPTION
@ GENERIC_SCHOOL_DAMAGE_CONSUMPTION
Definition
SpellCombatMetadata.h:18
Skyfire::Spells::GENERIC_SCHOOL_DAMAGE_ARCANE_CHARGE
@ GENERIC_SCHOOL_DAMAGE_ARCANE_CHARGE
Definition
SpellCombatMetadata.h:20
Skyfire::Spells::GENERIC_SCHOOL_DAMAGE_THUNDERCRASH
@ GENERIC_SCHOOL_DAMAGE_THUNDERCRASH
Definition
SpellCombatMetadata.h:19
Skyfire::Spells::GetThundercrashMinimumDamage
uint32 GetThundercrashMinimumDamage()
Definition
SpellCombatMetadata.cpp:76
Skyfire::Spells::IsVictoryRushDamageSpell
bool IsVictoryRushDamageSpell(uint32 spellId)
Definition
SpellCombatMetadata.cpp:91
Skyfire::Spells::GetEngineeringHealingBonusPct
uint32 GetEngineeringHealingBonusPct()
Definition
SpellCombatMetadata.cpp:121
Skyfire::Spells::IsManaBurnSpell
bool IsManaBurnSpell(uint32 spellId)
Definition
SpellCombatMetadata.cpp:101
Skyfire::Spells::IsArcaneChargeAllowedCreatureType
bool IsArcaneChargeAllowedCreatureType(uint32 creatureType)
Definition
SpellCombatMetadata.cpp:81
Skyfire::Spells::GetVesselOfTheNaaruStackAuraSpellId
uint32 GetVesselOfTheNaaruStackAuraSpellId()
Definition
SpellCombatMetadata.cpp:111
Skyfire::Spells::IsRunicManaInjectorSpell
bool IsRunicManaInjectorSpell(uint32 spellId)
Definition
SpellCombatMetadata.cpp:140
Skyfire::Spells::IsBloodTapRuneSpell
bool IsBloodTapRuneSpell(uint32 spellId)
Definition
SpellCombatMetadata.cpp:165
Skyfire::Spells::IsJabEnergizeSpell
bool IsJabEnergizeSpell(uint32 spellId)
Definition
SpellCombatMetadata.cpp:145
Skyfire::Spells::IsShockwaveDamageSpell
bool IsShockwaveDamageSpell(uint32 spellId)
Definition
SpellCombatMetadata.cpp:96
Skyfire::Spells::GetEnergizeLevelScalingRule
EnergizeLevelScalingRule const * GetEnergizeLevelScalingRule(uint32 spellId)
Definition
SpellCombatMetadata.cpp:126
Skyfire::Spells::IsRunicHealingInjectorSpell
bool IsRunicHealingInjectorSpell(uint32 spellId)
Definition
SpellCombatMetadata.cpp:116
Skyfire::Spells::GetJabBaseChi
uint32 GetJabBaseChi()
Definition
SpellCombatMetadata.cpp:150
Skyfire
Definition
AuthPatchTransfer.h:12
Skyfire::Spells::EnergizeLevelScalingRule
Definition
SpellCombatMetadata.h:25
src
server
game
Spells
SpellCombatMetadata.cpp
Generated on
for Project SkyFire Core by
1.17.0