mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 19:37:03 +00:00
[10765] Implement SPELL_AURA_MOD_PERIODIC_HEAL (259)
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
a34deecfc0
commit
996b284277
4 changed files with 12 additions and 5 deletions
|
|
@ -294,7 +294,7 @@ enum AuraType
|
||||||
SPELL_AURA_NO_REAGENT_USE = 256,
|
SPELL_AURA_NO_REAGENT_USE = 256,
|
||||||
SPELL_AURA_MOD_TARGET_RESIST_BY_SPELL_CLASS = 257,
|
SPELL_AURA_MOD_TARGET_RESIST_BY_SPELL_CLASS = 257,
|
||||||
SPELL_AURA_258 = 258,
|
SPELL_AURA_258 = 258,
|
||||||
SPELL_AURA_259 = 259,
|
SPELL_AURA_MOD_PERIODIC_HEAL = 259,
|
||||||
SPELL_AURA_SCREEN_EFFECT = 260,
|
SPELL_AURA_SCREEN_EFFECT = 260,
|
||||||
SPELL_AURA_PHASE = 261,
|
SPELL_AURA_PHASE = 261,
|
||||||
SPELL_AURA_IGNORE_UNIT_STATE = 262,
|
SPELL_AURA_IGNORE_UNIT_STATE = 262,
|
||||||
|
|
|
||||||
|
|
@ -309,7 +309,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]=
|
||||||
&Aura::HandleNoReagentUseAura, //256 SPELL_AURA_NO_REAGENT_USE Use SpellClassMask for spell select
|
&Aura::HandleNoReagentUseAura, //256 SPELL_AURA_NO_REAGENT_USE Use SpellClassMask for spell select
|
||||||
&Aura::HandleNULL, //257 SPELL_AURA_MOD_TARGET_RESIST_BY_SPELL_CLASS Use SpellClassMask for spell select
|
&Aura::HandleNULL, //257 SPELL_AURA_MOD_TARGET_RESIST_BY_SPELL_CLASS Use SpellClassMask for spell select
|
||||||
&Aura::HandleNULL, //258 SPELL_AURA_MOD_SPELL_VISUAL
|
&Aura::HandleNULL, //258 SPELL_AURA_MOD_SPELL_VISUAL
|
||||||
&Aura::HandleNULL, //259 corrupt healing over time spell
|
&Aura::HandleNoImmediateEffect, //259 SPELL_AURA_MOD_PERIODIC_HEAL implemented in Unit::SpellHealingBonus
|
||||||
&Aura::HandleNoImmediateEffect, //260 SPELL_AURA_SCREEN_EFFECT (miscvalue = id in ScreenEffect.dbc) not required any code
|
&Aura::HandleNoImmediateEffect, //260 SPELL_AURA_SCREEN_EFFECT (miscvalue = id in ScreenEffect.dbc) not required any code
|
||||||
&Aura::HandlePhase, //261 SPELL_AURA_PHASE undetectable invisibility? implemented in Unit::isVisibleForOrDetect
|
&Aura::HandlePhase, //261 SPELL_AURA_PHASE undetectable invisibility? implemented in Unit::isVisibleForOrDetect
|
||||||
&Aura::HandleNoImmediateEffect, //262 SPELL_AURA_IGNORE_UNIT_STATE implemented in Unit::isIgnoreUnitState & Spell::CheckCast
|
&Aura::HandleNoImmediateEffect, //262 SPELL_AURA_IGNORE_UNIT_STATE implemented in Unit::isIgnoreUnitState & Spell::CheckCast
|
||||||
|
|
|
||||||
|
|
@ -6949,11 +6949,18 @@ uint32 Unit::SpellHealingBonusTaken(Unit *pCaster, SpellEntry const *spellProto,
|
||||||
|
|
||||||
// Healing taken percent
|
// Healing taken percent
|
||||||
float minval = float(GetMaxNegativeAuraModifier(SPELL_AURA_MOD_HEALING_PCT));
|
float minval = float(GetMaxNegativeAuraModifier(SPELL_AURA_MOD_HEALING_PCT));
|
||||||
if(minval)
|
if (damagetype == DOT)
|
||||||
|
{
|
||||||
|
// overwrite max SPELL_AURA_MOD_HEALING_PCT if greater negative effect
|
||||||
|
float minDotVal = float(GetMaxNegativeAuraModifier(SPELL_AURA_MOD_PERIODIC_HEAL));
|
||||||
|
minval = (minDotVal < minval) ? minDotVal : minval;
|
||||||
|
}
|
||||||
|
if (minval)
|
||||||
TakenTotalMod *= (100.0f + minval) / 100.0f;
|
TakenTotalMod *= (100.0f + minval) / 100.0f;
|
||||||
|
|
||||||
float maxval = float(GetMaxPositiveAuraModifier(SPELL_AURA_MOD_HEALING_PCT));
|
float maxval = float(GetMaxPositiveAuraModifier(SPELL_AURA_MOD_HEALING_PCT));
|
||||||
if(maxval)
|
// no SPELL_AURA_MOD_PERIODIC_HEAL positive cases
|
||||||
|
if (maxval)
|
||||||
TakenTotalMod *= (100.0f + maxval) / 100.0f;
|
TakenTotalMod *= (100.0f + maxval) / 100.0f;
|
||||||
|
|
||||||
// No heal amount for this class spells
|
// No heal amount for this class spells
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "10764"
|
#define REVISION_NR "10765"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue