aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2012-04-27 15:38:09 +0200
committerShauren <shauren.trinity@gmail.com>2012-04-27 15:38:09 +0200
commit51656d7e609a4a079e636c74e5f1cd34d9141742 (patch)
tree0e8c9ec26fc779faf013142b2b5c84fa21cc948a /src/server/scripts
parent778afa11ac80837c877d043c6146e18c1aab89aa (diff)
Scripts/Icecrown Citadel: Fixed Scent of Blood on heroic mode of Deathbringer Saurfang encounter
Diffstat (limited to 'src/server/scripts')
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp35
1 files changed, 21 insertions, 14 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index e424cd16eaa..afc7c503bee 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -39,6 +39,7 @@ enum ScriptTexts
SAY_FRENZY = 11,
SAY_BERSERK = 12,
SAY_DEATH = 13,
+ EMOTE_SCENT_OF_BLOOD = 14,
// High Overlord Saurfang
SAY_INTRO_HORDE_1 = 0,
@@ -145,6 +146,7 @@ enum EventTypes
EVENT_BOILING_BLOOD = 20,
EVENT_BLOOD_NOVA = 21,
EVENT_RUNE_OF_BLOOD = 22,
+ EVENT_SCENT_OF_BLOOD = 52,
EVENT_OUTRO_ALLIANCE_1 = 23,
EVENT_OUTRO_ALLIANCE_2 = 24,
@@ -374,16 +376,13 @@ class boss_deathbringer_saurfang : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true))
summon->AI()->AttackStart(target);
- if (IsHeroic())
- DoCast(summon, SPELL_SCENT_OF_BLOOD);
-
- summon->AI()->DoCast(summon, SPELL_BLOOD_LINK_BEAST, true);
- summon->AI()->DoCast(summon, SPELL_RESISTANT_SKIN, true);
+ summon->CastSpell(summon, SPELL_BLOOD_LINK_BEAST, true);
+ summon->CastSpell(summon, SPELL_RESISTANT_SKIN, true);
summons.Summon(summon);
DoZoneInCombat(summon);
}
- void SummonedCreatureDespawn(Creature* summon)
+ void SummonedCreatureDies(Creature* summon, Unit* /*killer*/)
{
summons.Despawn(summon);
}
@@ -463,18 +462,13 @@ class boss_deathbringer_saurfang : public CreatureScript
DoCast(me, SPELL_SUMMON_BLOOD_BEAST_25_MAN+i25);
Talk(SAY_BLOOD_BEASTS);
events.ScheduleEvent(EVENT_SUMMON_BLOOD_BEAST, 40000, 0, PHASE_COMBAT);
+ if (IsHeroic())
+ events.ScheduleEvent(EVENT_SCENT_OF_BLOOD, 10000, 0, PHASE_COMBAT);
break;
case EVENT_BLOOD_NOVA:
- {
- // select at range only
- Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, -10.0f, true);
- if (!target)
- target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true); // noone? select melee
- if (target)
- DoCast(target, SPELL_BLOOD_NOVA_TRIGGER);
+ DoCastAOE(SPELL_BLOOD_NOVA_TRIGGER);
events.ScheduleEvent(EVENT_BLOOD_NOVA, urand(20000, 25000), 0, PHASE_COMBAT);
break;
- }
case EVENT_RUNE_OF_BLOOD:
DoCastVictim(SPELL_RUNE_OF_BLOOD);
events.ScheduleEvent(EVENT_RUNE_OF_BLOOD, urand(20000, 25000), 0, PHASE_COMBAT);
@@ -487,6 +481,13 @@ class boss_deathbringer_saurfang : public CreatureScript
DoCast(me, SPELL_BERSERK);
Talk(SAY_BERSERK);
break;
+ case EVENT_SCENT_OF_BLOOD:
+ if (!summons.empty())
+ {
+ Talk(EMOTE_SCENT_OF_BLOOD);
+ DoCastAOE(SPELL_SCENT_OF_BLOOD);
+ }
+ break;
default:
break;
}
@@ -1237,10 +1238,16 @@ class spell_deathbringer_blood_nova_targeting : public SpellScriptLoader
unitList.push_back(target);
}
+ void HandleForceCast(SpellEffIndex /*effIndex*/)
+ {
+ GetCaster()->CastSpell(GetHitUnit(), uint32(GetEffectValue()), TRIGGERED_FULL_MASK);
+ }
+
void Register()
{
OnUnitTargetSelect += SpellUnitTargetFn(spell_deathbringer_blood_nova_targeting_SpellScript::FilterTargetsInitial, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnUnitTargetSelect += SpellUnitTargetFn(spell_deathbringer_blood_nova_targeting_SpellScript::FilterTargetsSubsequent, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
+ OnEffectHitTarget += SpellEffectFn(spell_deathbringer_blood_nova_targeting_SpellScript::HandleForceCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
}
Unit* target;