aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorShauren <none@none>2010-10-24 21:27:02 +0200
committerShauren <none@none>2010-10-24 21:27:02 +0200
commitd03aeab9ad4b9002b513be0d6b9552e6f653b6cb (patch)
treed6a5f24a3b158f291b7d74f9c509232972aab2b1 /src/server/game
parent07fa1bcbdfe65def200c640a6f3e52b755c3b603 (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-xsrc/server/game/AI/CreatureAI.h2
-rwxr-xr-xsrc/server/game/AI/SmartAI/SmartAI.cpp2
-rwxr-xr-xsrc/server/game/AI/SmartAI/SmartAI.h2
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp9
-rwxr-xr-xsrc/server/game/Globals/ObjectMgr.cpp1
-rwxr-xr-xsrc/server/game/Scripting/ScriptLoader.cpp2
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuraEffects.cpp11
-rwxr-xr-xsrc/server/game/Spells/Spell.cpp2
-rwxr-xr-xsrc/server/game/Spells/SpellMgr.cpp7
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;
}