From c26d5560ea446e2aca2ecfbddc08adf6e168fa7b Mon Sep 17 00:00:00 2001 From: megamage Date: Fri, 31 Jul 2009 10:36:29 +0800 Subject: [8253] Some spell proc fixes. Author: Den --HG-- branch : trunk --- src/game/Unit.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/game/Unit.cpp') diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index c72187df8f3..7489341338e 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -7052,6 +7052,7 @@ bool Unit::HandleObsModEnergyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* SpellEntry const* triggerEntry = sSpellStore.LookupEntry(triggered_spell_id); + // Try handle unknown trigger spells if(!triggerEntry) { sLog.outError("Unit::HandleObsModEnergyAuraProc: Spell %u have not existed triggered spell %u",dummySpell->Id,triggered_spell_id); @@ -7877,6 +7878,17 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig basepoints0 = GetCreateMana() * 0.20f; break; } + // Maelstrom Weapon + case 53817: + { + // have rank dependent proc chance, ignore too often cases + // PPM = 2.5 * (rank of talent), + uint32 rank = spellmgr.GetSpellRank(auraSpellInfo->Id); + // 5 rank -> 100% 4 rank -> 80% and etc from full rate + if(!roll_chance_i(20*rank)) + return false; + break; + } // Brain Freeze case 57761: { -- cgit v1.2.3 From 94aa35c8286110d3bcac73574b350336deef9d85 Mon Sep 17 00:00:00 2001 From: megamage Date: Fri, 31 Jul 2009 11:00:25 +0800 Subject: *Use triggerAmount instead of fixed number for improved stormstrike. Author: nos4r2zod --HG-- branch : trunk --- src/game/Unit.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/game/Unit.cpp') diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 7489341338e..825e552dc6f 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -7873,9 +7873,10 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig ((Player*)this)->RemoveSpellCategoryCooldown(1209, true); break; } - case 63375: // Improved Stormstrike + // Improved Stormstrike + case 63375: { - basepoints0 = GetCreateMana() * 0.20f; + basepoints0 = int32(GetCreateMana() * triggerAmount / 100); break; } // Maelstrom Weapon -- cgit v1.2.3 From b7a425918ff18444269913913681324c72b388e1 Mon Sep 17 00:00:00 2001 From: megamage Date: Fri, 31 Jul 2009 11:16:38 +0800 Subject: [8266] Move percent spells with flat energize effect spells to effect code. Author: VladimirMangos * This is fix talent 51521 and ranks. * And replace hardcoded percent for talent 31876 and ranks. --HG-- branch : trunk --- src/game/SpellEffects.cpp | 22 +++++++++++----------- src/game/Unit.cpp | 8 -------- 2 files changed, 11 insertions(+), 19 deletions(-) (limited to 'src/game/Unit.cpp') diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index cf32a96f9f2..2dca13cd08a 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -2880,31 +2880,31 @@ void Spell::EffectEnergize(uint32 i) Powers power = Powers(m_spellInfo->EffectMiscValue[i]); // Some level depends spells - int multiplier = 0; + int level_multiplier = 0; int level_diff = 0; switch (m_spellInfo->Id) { - // Restore Energy - case 9512: + case 9512: // Restore Energy level_diff = m_caster->getLevel() - 40; - multiplier = 2; + level_multiplier = 2; break; - // Blood Fury - case 24571: + case 24571: // Blood Fury level_diff = m_caster->getLevel() - 60; - multiplier = 10; + level_multiplier = 10; break; - // Burst of Energy - case 24532: + case 24532: // Burst of Energy level_diff = m_caster->getLevel() - 60; - multiplier = 4; + level_multiplier = 4; break; + case 31930: // Judgements of the Wise + case 63375: // Improved Stormstrike + damage = damage * unitTarget->GetCreateMana() / 100; default: break; } if (level_diff > 0) - damage -= multiplier * level_diff; + damage -= level_multiplier * level_diff; if(damage < 0) return; diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 825e552dc6f..692185910db 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -6202,8 +6202,6 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger // Judgements of the Wise if (dummySpell->SpellIconID == 3017) { - // hardcoded amount - basepoints0 = 25 * GetCreatePowers(POWER_MANA)/100; target = this; triggered_spell_id = 31930; // replenishment @@ -7873,12 +7871,6 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig ((Player*)this)->RemoveSpellCategoryCooldown(1209, true); break; } - // Improved Stormstrike - case 63375: - { - basepoints0 = int32(GetCreateMana() * triggerAmount / 100); - break; - } // Maelstrom Weapon case 53817: { -- cgit v1.2.3