From 0574b12032df7fef90f0164a495ed063bd930be4 Mon Sep 17 00:00:00 2001 From: VladimirMangos Date: Fri, 11 Dec 2009 02:02:26 +0300 Subject: [PATCH] [8966] Restore full stack bufs from talent 51528 and ranks using unique aura type. --- src/game/SpellAuraDefines.h | 2 +- src/game/SpellAuras.cpp | 2 +- src/game/Unit.cpp | 8 ++++++++ src/shared/revision_nr.h | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/game/SpellAuraDefines.h b/src/game/SpellAuraDefines.h index 9ab46128438..3407999e637 100644 --- a/src/game/SpellAuraDefines.h +++ b/src/game/SpellAuraDefines.h @@ -314,7 +314,7 @@ enum AuraType SPELL_AURA_MOD_IGNORE_DAMAGE_REDUCTION_SCHOOL = 269, SPELL_AURA_MOD_IGNORE_TARGET_RESIST = 270, // Possibly need swap vs 195 aura used only in 1 spell Chaos Bolt Passive SPELL_AURA_MOD_DAMAGE_FROM_CASTER = 271, - SPELL_AURA_272 = 272, + SPELL_AURA_MAELSTROM_WEAPON = 272, SPELL_AURA_X_RAY = 273, SPELL_AURA_274 = 274, SPELL_AURA_MOD_IGNORE_SHAPESHIFT = 275, diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index ec4dbdb9074..4b64326f478 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -322,7 +322,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= &Aura::HandleNoImmediateEffect, //269 SPELL_AURA_MOD_IGNORE_DAMAGE_REDUCTION_SCHOOL implemented in Unit::CalcNotIgnoreDamageRedunction &Aura::HandleUnused, //270 SPELL_AURA_MOD_IGNORE_TARGET_RESIST (unused in 3.2.2a) &Aura::HandleNoImmediateEffect, //271 SPELL_AURA_MOD_DAMAGE_FROM_CASTER implemented in Unit::SpellDamageBonus - &Aura::HandleNULL, //272 reduce spell cast time? + &Aura::HandleNoImmediateEffect, //272 SPELL_AURA_MAELSTROM_WEAPON (unclear use for aura, it used in (3.2.2a...3.3.0) in single spell 53817 that spellmode stacked and charged spell expected to be drop as stack &Aura::HandleNoImmediateEffect, //273 SPELL_AURA_X_RAY (client side implementation) &Aura::HandleNULL, //274 proc free shot? &Aura::HandleNoImmediateEffect, //275 SPELL_AURA_MOD_IGNORE_SHAPESHIFT Use SpellClassMask for spell select diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index c734dfa02a2..76dd4b20f10 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -11727,6 +11727,7 @@ bool InitTriggerAuraData() isTriggerAura[SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE] = true; isTriggerAura[SPELL_AURA_MOD_DAMAGE_FROM_CASTER] = true; isTriggerAura[SPELL_AURA_MOD_SPELL_CRIT_CHANCE] = true; + isTriggerAura[SPELL_AURA_MAELSTROM_WEAPON] = true; isNonTriggerAura[SPELL_AURA_MOD_POWER_REGEN]=true; isNonTriggerAura[SPELL_AURA_REDUCE_PUSHBACK]=true; @@ -12017,6 +12018,13 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag continue; } break; + case SPELL_AURA_MAELSTROM_WEAPON: + sLog.outDebug("ProcDamageAndSpell: casting spell id %u (triggered by %s maelstrom aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId()); + + // remove all stack; + RemoveSpellsCausingAura(SPELL_AURA_MAELSTROM_WEAPON); + triggeredByAura->SetInUse(false); // this safe, aura locked + continue; // avoid re-remove attempts default: // nothing do, just charges counter break; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 5b9d1f85ae4..751323b360f 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "8965" + #define REVISION_NR "8966" #endif // __REVISION_NR_H__