Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # HG changeset patch
- # User rualex <drobyshev83@gmail.com>
- # Date 1319572595 -14400
- # Node ID 0e64729663345f0239d04784b2f1d5ac304f07c4
- # Parent b809bf98113a818d8e33f66dc2a3a11e3158d67f
- Core/Spell: Holy Power
- diff -r b809bf98113a -r 0e6472966334 src/server/game/Spells/Auras/SpellAuraEffects.cpp
- --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp Tue Oct 25 21:49:47 2011 +0300
- +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp Tue Oct 25 23:56:35 2011 +0400
- @@ -5972,16 +5972,8 @@
- if (GetSpellProto()->Id == 84963)
- {
- // Divine Purpose
- - if (target->HasAura(90174))
- - GetBase()->SetDuration(GetBase()->GetDuration()*3);
- - else
- - GetBase()->SetDuration(GetBase()->GetDuration()*(GetBase()->GetUnitOwner()->GetPower(POWER_HOLY_POWER)+1));
- -
- - // Eternal Glory
- - if (AuraEffect * aur = target->GetDummyAuraEffect(SPELLFAMILY_PALADIN, 2944, 0))
- - if (roll_chance_i(aur->GetAmount()))
- - return;
- - target->SetPower(POWER_HOLY_POWER,0);
- + if (Unit* caster = GetCaster())
- + GetBase()->SetDuration(GetBase()->GetDuration() * caster->GetCurrentSpell(CURRENT_GENERIC_SPELL)->GetPowerCost());
- }
- }
- diff -r b809bf98113a -r 0e6472966334 src/server/game/Spells/Spell.cpp
- --- a/src/server/game/Spells/Spell.cpp Tue Oct 25 21:49:47 2011 +0300
- +++ b/src/server/game/Spells/Spell.cpp Tue Oct 25 23:56:35 2011 +0400
- @@ -3996,29 +3996,6 @@
- if (m_caster->HasAura(88688)) // Surge of Light
- m_caster->RemoveAura(88688);
- break;
- - case 85673: // Word of Glory
- - case 53600: // Shield of the Righteous
- - case 85256: // Templar's Verdict
- - case 84963: // Inquisition
- - case 85222: // Light of Dawn
- - for (std::list<TargetInfo>::const_iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit)
- - {
- - if ((*ihit).missCondition == SPELL_MISS_NONE)
- - if (!m_caster->HasAura(90174) && !m_caster->HasAura(85696))
- - m_caster->SetPower(POWER_HOLY_POWER, 0);
- - else
- - m_caster->RemoveAurasDueToSpell(90174);
- - }
- - break;
- - case 85696: // Zealotry
- - if (m_caster->HasAura(90174))
- - {
- - m_caster->RemoveAurasDueToSpell(90174);
- - m_caster->SetPower(POWER_HOLY_POWER, 3);
- - }
- - else
- - m_caster->SetPower(POWER_HOLY_POWER, 3);
- - break;
- }
- }
- @@ -4654,13 +4631,10 @@
- if (m_CastItem || m_triggeredByAuraSpell)
- return;
- - if (m_spellInfo->powerType == POWER_HOLY_POWER)
- - return;
- -
- bool hit = true;
- if (m_caster->GetTypeId() == TYPEID_PLAYER)
- {
- - if (m_spellInfo->powerType == POWER_RAGE || m_spellInfo->powerType == POWER_ENERGY ||
- + if (m_spellInfo->powerType == POWER_RAGE || m_spellInfo->powerType == POWER_ENERGY || m_spellInfo->powerType == POWER_HOLY_POWER ||
- m_spellInfo->powerType == POWER_RUNE || m_spellInfo->powerType == POWER_RUNIC_POWER)
- if (uint64 targetGUID = m_targets.getUnitTargetGUID())
- for (std::list<TargetInfo>::iterator ihit= m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit)
- @@ -4685,6 +4659,29 @@
- return;
- }
- + if (m_spellInfo->powerType == POWER_HOLY_POWER)
- + {
- + if (m_caster->HasAura(90174))
- + {
- + m_caster->RemoveAurasDueToSpell(90174);
- + m_powerCost = 3;
- + return;
- + }
- + else if (hit)
- + m_powerCost = m_caster->GetPower(POWER_HOLY_POWER);
- + else
- + m_powerCost = 0;
- +
- + if (m_spellInfo->Id == 85696)
- + return;
- +
- + // Eternal Glory
- + if (m_spellInfo->Id == 84963)
- + if (AuraEffect * aur = m_caster->GetDummyAuraEffect(SPELLFAMILY_PALADIN, 2944, 0))
- + if (roll_chance_i(aur->GetAmount()))
- + return;
- + }
- +
- if (!m_powerCost)
- return;
- diff -r b809bf98113a -r 0e6472966334 src/server/game/Spells/SpellEffects.cpp
- --- a/src/server/game/Spells/SpellEffects.cpp Tue Oct 25 21:49:47 2011 +0300
- +++ b/src/server/game/Spells/SpellEffects.cpp Tue Oct 25 23:56:35 2011 +0400
- @@ -910,48 +910,45 @@
- damage += count * int32(average * IN_MILLISECONDS) / m_caster->GetAttackTime(BASE_ATTACK);
- break;
- }
- - // Shield of Righteous
- - if (m_spellInfo->Id == 53600)
- - {
- - switch(m_caster->GetPower(POWER_HOLY_POWER))
- + switch (m_spellInfo->Id)
- + {
- + //Shield of Righteous
- + case 53600:
- {
- - case 1:
- - damage = int32(damage * 1.16f);
- - break;
- - case 2:
- - damage = int32((damage * 1.16f) * 3);
- - break;
- - case 3:
- - damage = int32((damage * 1.16f) * 6);
- - break;
- + int32 mod = (GetPowerCost() - 1) * 3;
- + if (mod)
- + damage *= mod;
- + damage = m_caster->SpellDamageBonus(unitTarget, m_spellInfo, effIndex, (uint32)damage, SPELL_DIRECT_DAMAGE);
- + break;
- }
- - }
- - // Hammer of Wrath
- - if (m_spellInfo->Id == 24275)
- - {
- - float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
- - int32 spd = m_caster->CalculateSpellDamage(m_caster, m_spellInfo, 0);
- - damage += int32(0.15f * spd + 0.15f * ap);
- - }
- - // Holy Wrath damage part
- - if (m_spellInfo->Id == 2812)
- - {
- - uint32 power = m_caster->GetPower(POWER_HOLY_POWER);
- -
- - if (power < 1)
- - power = 1;
- -
- - damage += int32(0.61f * power);
- - }
- - // Exorcism damage part
- - if (m_spellInfo->Id == 879)
- - {
- - float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
- - int32 spd = m_caster->CalculateSpellDamage(m_caster, m_spellInfo, 0);
- - uint32 maxdmg = ap > spd ? (ap*0.344f) : (spd*0.344f);
- - damage += int32(maxdmg);
- - }
- - break;
- + // Hammer of Wrath
- + case 24275:
- + {
- + float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
- + int32 spd = m_caster->CalculateSpellDamage(m_caster, m_spellInfo, 0);
- + damage += int32(0.15f * spd + 0.15f * ap);
- + break;
- + }
- + // Holy Wrath damage part
- + case 2812:
- + {
- + uint32 power = GetPowerCost();
- + if (power < 1)
- + power = 1;
- + damage += int32(0.61f * power);
- + break;
- + }
- + // Exorcism damage part
- + case 879:
- + {
- + float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
- + int32 spd = m_caster->CalculateSpellDamage(m_caster, m_spellInfo, 0);
- + uint32 maxdmg = ap > spd ? (ap*0.344f) : (spd*0.344f);
- + damage += int32(maxdmg);
- + break;
- + }
- + }
- + break;
- }
- case SPELLFAMILY_DEATHKNIGHT:
- {
- @@ -2917,10 +2914,7 @@
- addhealth += 0.198f*m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
- // Divine Purpose
- - if (m_caster->HasAura(90174))
- - addhealth *= 3;
- - else
- - addhealth *= (m_caster->GetPower(POWER_HOLY_POWER));
- + addhealth *= GetPowerCost();
- // Selfless Healer
- if (m_caster != unitTarget)
- @@ -2958,14 +2952,10 @@
- m_caster->CastSpell(m_caster, 79437, true);
- m_caster->RemoveAura(74434);
- }
- + // Divine Purpose
- if (m_spellInfo->Id == 85222)
- - {
- - // Divine Purpose
- - if (m_caster->HasAura(90174))
- - addhealth *= 3;
- - else
- - addhealth *= (m_caster->GetPower(POWER_HOLY_POWER));
- - }
- + addhealth *= GetPowerCost();
- +
- // Echo of Light
- if (m_caster->getClass() == CLASS_PRIEST)
- {
- @@ -4786,33 +4776,21 @@
- {
- totalDamagePercentMod *= 1.36f; //136% damage
- }
- - // Templar's Verdict
- - else if (m_spellInfo->Id == 85256)
- + else if (m_spellInfo->Id == 85256) // Templar's Verdict
- {
- - uint32 holy_power = m_caster->HasAura(90174) ? 3: m_caster->GetPower(POWER_HOLY_POWER);
- - float bonus_damage = 1;
- -
- - switch (holy_power)
- - {
- - case 1:
- - totalDamagePercentMod *= 1.0f;
- - break;
- - case 2:
- - totalDamagePercentMod += 2.0f;
- - break;
- - case 3:
- - totalDamagePercentMod += 6.5f;
- - break;
- - }
- - // Crusade
- - if (AuraEffect const * aurEff = m_caster->GetAuraEffect(SPELL_AURA_ADD_PCT_MODIFIER, SPELLFAMILY_PALADIN, 2171, 1))
- - bonus_damage = (aurEff->GetAmount()+100.0f)/100.0f;
- -
- - totalDamagePercentMod *= bonus_damage;
- -
- - // Glyph of Templar's Verdict
- - if (m_caster->HasAura(63220))
- - totalDamagePercentMod *= 1.15f;
- + switch (GetPowerCost())
- + {
- + case 1: totalDamagePercentMod = 0.3f; break;
- + case 2: totalDamagePercentMod = 0.9f; break;
- + case 3: totalDamagePercentMod = 2.25f; break;
- + }
- +
- + if (AuraEffect const * aurEff = m_caster->GetAuraEffect(SPELL_AURA_ADD_PCT_MODIFIER, SPELLFAMILY_PALADIN, 2171, 1))
- + totalDamagePercentMod *= (aurEff->GetAmount()+100.0f)/100.0f;
- +
- + // Glyphe of Templar's Verdict
- + if (AuraEffect* aur = m_caster->GetAuraEffect(63220, EFFECT_0))
- + totalDamagePercentMod += float(aur->GetAmount()) / 100.0f;
- }
- // Seal of Command Unleashed
- else if (m_spellInfo->Id == 20467)
Add Comment
Please, Sign In to add comment