diff options
author | QAston <none@none> | 2009-06-12 00:02:16 +0200 |
---|---|---|
committer | QAston <none@none> | 2009-06-12 00:02:16 +0200 |
commit | 9278014f4d1f79306da4d64aa1fca1be091df094 (patch) | |
tree | 271fece0808d76b1d583925a188c9ec5713f0b19 /src | |
parent | bb01747ad181cb07c76d1ea2cbaf0bbeae67004e (diff) |
*Redefine attribute flag NO_INITIAL_AGGRO to make Mind Soothe and Soothe animal work
*Fix Glyph of Shadow Word: Death.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/SharedDefines.h | 4 | ||||
-rw-r--r-- | src/game/Spell.cpp | 4 | ||||
-rw-r--r-- | src/game/Unit.cpp | 12 |
3 files changed, 15 insertions, 5 deletions
diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index 0ab69789660..666e5c38710 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -261,7 +261,7 @@ enum SpellCategory #define SPELL_ATTR_EX_NEGATIVE 0x00000080 // 7 #define SPELL_ATTR_EX_NOT_IN_COMBAT_TARGET 0x00000100 // 8 Spell req target not to be in combat state #define SPELL_ATTR_EX_UNK9 0x00000200 // 9 melee spells -#define SPELL_ATTR_EX_NO_INITIAL_AGGRO 0x00000400 // 10 no generates threat on cast 100%? +#define SPELL_ATTR_EX_UNK10 0x00000400 // 10 no generates threat on cast 100%? ( old NO_INITIAL_AGGRO) #define SPELL_ATTR_EX_UNK11 0x00000800 // 11 aura #define SPELL_ATTR_EX_UNK12 0x00001000 // 12 #define SPELL_ATTR_EX_UNK13 0x00002000 // 13 @@ -334,7 +334,7 @@ enum SpellCategory #define SPELL_ATTR_EX3_UNK14 0x00004000 // 14 "Honorless Target" only this spells have this flag #define SPELL_ATTR_EX3_UNK15 0x00008000 // 15 Auto Shoot, Shoot, Throw, - this is autoshot flag #define SPELL_ATTR_EX3_UNK16 0x00010000 // 16 no triggers effects that trigger on casting a spell?? -#define SPELL_ATTR_EX3_UNK17 0x00020000 // 17 no triggers effects that trigger on casting a spell?? +#define SPELL_ATTR_EX3_NO_INITIAL_AGGRO 0x00020000 // 17 Soothe Animal, 39758, Mind Soothe #define SPELL_ATTR_EX3_UNK18 0x00040000 // 18 #define SPELL_ATTR_EX3_UNK19 0x00080000 // 19 spells triggered by spell with this flag can't proc caster auras and can proc from triggered (swings too - 20178) #define SPELL_ATTR_EX3_DEATH_PERSISTENT 0x00100000 // 20 Death persistent spells diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 4cd3a5d298a..544161e38e0 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1117,7 +1117,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) if( !m_caster->IsFriendlyTo(unit) && !IsPositiveSpell(m_spellInfo->Id)) { - if( !(m_spellInfo->AttributesEx & SPELL_ATTR_EX_NO_INITIAL_AGGRO) ) + if( !(m_spellInfo->AttributesEx3 & SPELL_ATTR_EX3_NO_INITIAL_AGGRO) ) { m_caster->CombatStart(unit); } @@ -1221,7 +1221,7 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask) if(m_caster->GetTypeId() == TYPEID_PLAYER) ((Player*)m_caster)->UpdatePvP(true); } - if( unit->isInCombat() && !(m_spellInfo->AttributesEx & SPELL_ATTR_EX_NO_INITIAL_AGGRO) ) + if( unit->isInCombat() && !(m_spellInfo->AttributesEx & SPELL_ATTR_EX3_NO_INITIAL_AGGRO) ) { m_caster->SetInCombatState(unit->GetCombatTimer() > 0); unit->getHostilRefManager().threatAssist(m_caster, 0.0f); diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index e6f8a3fd1fe..840a7767d6d 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5381,7 +5381,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger case 56374: RemoveAurasByType(SPELL_AURA_MOD_HASTE, 0, 0, true, false); RemoveAurasByType(SPELL_AURA_MOD_DECREASE_SPEED); - break; + return true; // Ignite case 11119: case 11120: @@ -8967,6 +8967,16 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 DoneTotalMod *= 3.0f; } + // Glyph of Shadow Word: Pain + if (spellProto->SpellFamilyName == SPELLFAMILY_PRIEST && spellProto->SpellFamilyFlags[0] & 0x800000) + { + // Increase Mind Flay damage + if (AuraEffect * aurEff = GetDummyAura(55687)) + // if Shadow Word: Pain present + if (pVictim->GetAura(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_PRIEST, 0x8000, 0,0, GetGUID())) + DoneTotalMod *= (aurEff->GetAmount() + 100.0f) / 100.f; + } + // Torment the weak if (spellProto->SpellFamilyName== SPELLFAMILY_MAGE && (spellProto->SpellFamilyFlags[0]&0x20200021 || spellProto->SpellFamilyFlags[1]& 0x9000)) { |