diff options
| author | Shauren <none@none> | 2010-10-24 21:27:02 +0200 |
|---|---|---|
| committer | Shauren <none@none> | 2010-10-24 21:27:02 +0200 |
| commit | d03aeab9ad4b9002b513be0d6b9552e6f653b6cb (patch) | |
| tree | d6a5f24a3b158f291b7d74f9c509232972aab2b1 /src/server/game | |
| parent | 07fa1bcbdfe65def200c640a6f3e52b755c3b603 (diff) | |
Scripts/Icecrown Citadel: Added Blood Prince Council script
Scripts/Icecrown Citadel: Festergut will not cast Vile Gas on melee targets if there are at least 3 (25 man: 8) ranged targets
Scripts/Icecrown Citadel: Festergut and Rotface gates will close with delay (when Putricide reaches the balcony)
Scripts/Icecrown Citadel: Replaced ASSERT(instance) with code disabling the AI if not inside instance
Core/Spells: Fixed TARGET_DEST_TARGET_RANDOM usage
Core/Scripts: Extended DamageDealt in AI to accept damage type as 3rd parameter
Scripts/Quests: Fixed quest "Unholy Infusion" (24749)
--HG--
branch : trunk
Diffstat (limited to 'src/server/game')
| -rwxr-xr-x | src/server/game/AI/CreatureAI.h | 2 | ||||
| -rwxr-xr-x | src/server/game/AI/SmartAI/SmartAI.cpp | 2 | ||||
| -rwxr-xr-x | src/server/game/AI/SmartAI/SmartAI.h | 2 | ||||
| -rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 9 | ||||
| -rwxr-xr-x | src/server/game/Globals/ObjectMgr.cpp | 1 | ||||
| -rwxr-xr-x | src/server/game/Scripting/ScriptLoader.cpp | 2 | ||||
| -rwxr-xr-x | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 11 | ||||
| -rwxr-xr-x | src/server/game/Spells/Spell.cpp | 2 | ||||
| -rwxr-xr-x | src/server/game/Spells/SpellMgr.cpp | 7 |
9 files changed, 30 insertions, 8 deletions
diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h index e82f5d3b501..90d8d0f6e05 100755 --- a/src/server/game/AI/CreatureAI.h +++ b/src/server/game/AI/CreatureAI.h @@ -94,7 +94,7 @@ class CreatureAI : public UnitAI virtual void EnterCombat(Unit* /*enemy*/) {} // Called at any Damage to any victim (before damage apply) - virtual void DamageDealt(Unit * /*done_to*/, uint32 & /*damage*/) { } + virtual void DamageDealt(Unit * /*done_to*/, uint32 & /*damage*/, DamageEffectType /*damagetype*/) { } // Called at any Damage from any attacker (before damage apply) // Note: it for recalculation damage or special reaction at damage diff --git a/src/server/game/AI/SmartAI/SmartAI.cpp b/src/server/game/AI/SmartAI/SmartAI.cpp index 0ba379fb5e0..37e9847d0e5 100755 --- a/src/server/game/AI/SmartAI/SmartAI.cpp +++ b/src/server/game/AI/SmartAI/SmartAI.cpp @@ -98,7 +98,7 @@ void SmartAI::SpellHitTarget(Unit* /*target*/, const SpellEntry* /*pSpell*/) { } -void SmartAI::DamageTaken(Unit* /*done_by*/, uint32& /*damage*/) +void SmartAI::DamageTaken(Unit* /*done_by*/, uint32& /*damage*/, DamageEffectType /*damagetype*/) { } diff --git a/src/server/game/AI/SmartAI/SmartAI.h b/src/server/game/AI/SmartAI/SmartAI.h index d78abf8061e..d71a2d786a9 100755 --- a/src/server/game/AI/SmartAI/SmartAI.h +++ b/src/server/game/AI/SmartAI/SmartAI.h @@ -289,7 +289,7 @@ class SmartAI : public CreatureAI void SpellHitTarget(Unit* target, const SpellEntry*); // Called at any Damage from any attacker (before damage apply) - void DamageTaken(Unit* done_by, uint32& damage); + void DamageTaken(Unit* done_by, uint32& damage, DamageEffectType damagetype); // Called when the creature receives heal void HealReceived(Unit* done_by, uint32& addhealth); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index d04efc0b408..3896c8a6a81 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -549,7 +549,7 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa pVictim->ToCreature()->AI()->DamageTaken(this, damage); if (GetTypeId() == TYPEID_UNIT && this->ToCreature()->IsAIEnabled) - this->ToCreature()->AI()->DamageDealt(pVictim, damage); + this->ToCreature()->AI()->DamageDealt(pVictim, damage, damagetype); if (damagetype != NODAMAGE) { @@ -7930,6 +7930,13 @@ bool Unit::HandleAuraProc(Unit * pVictim, uint32 damage, Aura * triggeredByAura, RemoveAuraFromStack(71564); *handled = true; break; + case 71756: + case 72782: + case 72783: + case 72784: + RemoveAuraFromStack(dummySpell->Id); + *handled = true; + break; } break; case SPELLFAMILY_PALADIN: diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 8b1b62dbc9a..762631dee6e 100755 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -5259,7 +5259,6 @@ void ObjectMgr::ValidateSpellScripts() SpellEntry const * spellEntry = sSpellStore.LookupEntry(itr->first); std::vector<std::pair<SpellScriptLoader *, SpellScriptsMap::iterator> > SpellScriptLoaders; sScriptMgr.CreateSpellScriptLoaders(itr->first, SpellScriptLoaders); - SpellScriptsMap::iterator bitr; itr = mSpellScripts.upper_bound(itr->first); for (std::vector<std::pair<SpellScriptLoader *, SpellScriptsMap::iterator> >::iterator sitr = SpellScriptLoaders.begin(); sitr != SpellScriptLoaders.end(); ++sitr) diff --git a/src/server/game/Scripting/ScriptLoader.cpp b/src/server/game/Scripting/ScriptLoader.cpp index fda7e67a81c..3fe0cde699c 100755 --- a/src/server/game/Scripting/ScriptLoader.cpp +++ b/src/server/game/Scripting/ScriptLoader.cpp @@ -448,6 +448,7 @@ void AddSC_boss_deathbringer_saurfang(); void AddSC_boss_festergut(); void AddSC_boss_rotface(); void AddSC_boss_professor_putricide(); +void AddSC_boss_blood_prince_council(); void AddSC_icecrown_citadel_teleport(); void AddSC_instance_icecrown_citadel(); @@ -1108,6 +1109,7 @@ void AddNorthrendScripts() AddSC_boss_festergut(); AddSC_boss_rotface(); AddSC_boss_professor_putricide(); + AddSC_boss_blood_prince_council(); AddSC_icecrown_citadel_teleport(); AddSC_instance_icecrown_citadel(); diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index a629ba995ff..a18d9d30941 100755 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -2245,9 +2245,16 @@ void AuraEffect::TriggerSpell(Unit * target, Unit * caster) const return; } // Tear of Azzinoth Summon Channel - it's not really supposed to do anything,and this only prevents the console spam - case 39857: triggerSpellId = 39856; break; + case 39857: + triggerSpellId = 39856; + break; // Personalized Weather - case 46736: triggerSpellId = 46737; break; + case 46736: + triggerSpellId = 46737; + break; + // Ball of Flames Visual + case 71706: + return; } break; } diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 61a2a17b4d1..7a449062444 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2207,7 +2207,7 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur) dist = (float)target->GetSpellRadiusForTarget(target, sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[i])); if (dist < objSize) dist = objSize; - else if (cur == TARGET_DEST_CASTER_RANDOM) + else if (cur == TARGET_DEST_TARGET_RANDOM) dist = objSize + (dist - objSize) * (float)rand_norm(); switch(cur) diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index b59fa23ae04..639276dde6e 100755 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -3928,6 +3928,13 @@ void SpellMgr::LoadSpellCustomAttr() spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_TARGET_ENEMY; count++; break; + case 71708: // Empowered Flare + case 72785: // Empowered Flare + case 72786: // Empowered Flare + case 72787: // Empowered Flare + spellInfo->AttributesEx3 |= SPELL_ATTR_EX3_NO_DONE_BONUS; + count++; + break; default: break; } |
