mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 13:37:05 +00:00
[11495] Implement damage taken reduce part of spell 20911, 25899.
This commit is contained in:
parent
575584ad9b
commit
6237c115a5
3 changed files with 28 additions and 11 deletions
|
|
@ -2767,6 +2767,7 @@ void Spell::EffectDummy(SpellEffectIndex eff_idx)
|
||||||
}
|
}
|
||||||
case 31231: // Cheat Death
|
case 31231: // Cheat Death
|
||||||
{
|
{
|
||||||
|
// Cheating Death
|
||||||
m_caster->CastSpell(m_caster, 45182, true);
|
m_caster->CastSpell(m_caster, 45182, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6529,15 +6529,28 @@ uint32 Unit::SpellDamageBonusTaken(Unit *pCaster, SpellEntry const *spellProto,
|
||||||
TakenTotalMod *= GetTotalAuraMultiplierByMiscMask(SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, schoolMask);
|
TakenTotalMod *= GetTotalAuraMultiplierByMiscMask(SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, schoolMask);
|
||||||
|
|
||||||
// .. taken pct: dummy auras
|
// .. taken pct: dummy auras
|
||||||
if (GetTypeId() == TYPEID_PLAYER)
|
AuraList const& mDummyAuras = GetAurasByType(SPELL_AURA_DUMMY);
|
||||||
|
for(AuraList::const_iterator i = mDummyAuras.begin(); i != mDummyAuras.end(); ++i)
|
||||||
{
|
{
|
||||||
//Cheat Death
|
switch((*i)->GetId())
|
||||||
if (Aura *dummy = GetDummyAura(45182))
|
|
||||||
{
|
{
|
||||||
float mod = -((Player*)this)->GetRatingBonusValue(CR_CRIT_TAKEN_SPELL)*2*4;
|
case 45182: // Cheating Death
|
||||||
if (mod < float(dummy->GetModifier()->m_amount))
|
if((*i)->GetModifier()->m_miscvalue & SPELL_SCHOOL_MASK_NORMAL)
|
||||||
mod = float(dummy->GetModifier()->m_amount);
|
{
|
||||||
TakenTotalMod *= (mod+100.0f)/100.0f;
|
if(GetTypeId() != TYPEID_PLAYER)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
float mod = ((Player*)this)->GetRatingBonusValue(CR_CRIT_TAKEN_MELEE)*(-8.0f);
|
||||||
|
if (mod < float((*i)->GetModifier()->m_amount))
|
||||||
|
mod = float((*i)->GetModifier()->m_amount);
|
||||||
|
|
||||||
|
TakenTotalMod *= (mod + 100.0f) / 100.0f;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 20911: // Blessing of Sanctuary
|
||||||
|
case 25899: // Greater Blessing of Sanctuary
|
||||||
|
TakenTotalMod *= ((*i)->GetModifier()->m_amount + 100.0f) / 100.0f;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -7501,10 +7514,9 @@ uint32 Unit::MeleeDamageBonusTaken(Unit *pCaster, uint32 pdamage,WeaponAttackTyp
|
||||||
AuraList const& mDummyAuras = GetAurasByType(SPELL_AURA_DUMMY);
|
AuraList const& mDummyAuras = GetAurasByType(SPELL_AURA_DUMMY);
|
||||||
for(AuraList::const_iterator i = mDummyAuras.begin(); i != mDummyAuras.end(); ++i)
|
for(AuraList::const_iterator i = mDummyAuras.begin(); i != mDummyAuras.end(); ++i)
|
||||||
{
|
{
|
||||||
switch((*i)->GetSpellProto()->SpellIconID)
|
switch((*i)->GetId())
|
||||||
{
|
{
|
||||||
//Cheat Death
|
case 45182: // Cheating Death
|
||||||
case 2109:
|
|
||||||
if((*i)->GetModifier()->m_miscvalue & SPELL_SCHOOL_MASK_NORMAL)
|
if((*i)->GetModifier()->m_miscvalue & SPELL_SCHOOL_MASK_NORMAL)
|
||||||
{
|
{
|
||||||
if(GetTypeId() != TYPEID_PLAYER)
|
if(GetTypeId() != TYPEID_PLAYER)
|
||||||
|
|
@ -7517,6 +7529,10 @@ uint32 Unit::MeleeDamageBonusTaken(Unit *pCaster, uint32 pdamage,WeaponAttackTyp
|
||||||
TakenPercent *= (mod + 100.0f) / 100.0f;
|
TakenPercent *= (mod + 100.0f) / 100.0f;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 20911: // Blessing of Sanctuary
|
||||||
|
case 25899: // Greater Blessing of Sanctuary
|
||||||
|
TakenPercent *= ((*i)->GetModifier()->m_amount + 100.0f) / 100.0f;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "11494"
|
#define REVISION_NR "11495"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue