aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVincent-Michael <Vincent_Michael@gmx.de>2012-12-01 17:34:00 +0100
committerVincent-Michael <Vincent_Michael@gmx.de>2012-12-01 17:34:00 +0100
commit7afbacd6e15a46b3ac8e0919ae08f02844bcb2fb (patch)
tree9e3816fea29b5dc7cfca37348841193ba0068b06 /src
parent4a66290fb94faf4cdd882cb749008de32f00b298 (diff)
Core/Ulduar:
- Implemented kill credit for hodir and assembly of iron - Some cleanup
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp30
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp89
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp77
4 files changed, 85 insertions, 115 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
index 0094412895c..db8c7f38ef7 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
@@ -33,6 +33,7 @@ enum AssemblySpells
// General
SPELL_SUPERCHARGE = 61920,
SPELL_BERSERK = 47008, // Hard enrage, don't know the correct ID.
+ SPELL_KILL_CREDIT = 65195, // spell_dbc
// Steelbreaker
SPELL_HIGH_VOLTAGE = 61890,
@@ -136,9 +137,7 @@ class boss_steelbreaker : public CreatureScript
struct boss_steelbreakerAI : public BossAI
{
- boss_steelbreakerAI(Creature* creature) : BossAI(creature, BOSS_ASSEMBLY_OF_IRON)
- {
- }
+ boss_steelbreakerAI(Creature* creature) : BossAI(creature, BOSS_ASSEMBLY_OF_IRON) { }
uint32 phase;
@@ -185,7 +184,7 @@ class boss_steelbreaker : public CreatureScript
if (instance->GetBossState(BOSS_ASSEMBLY_OF_IRON) == DONE)
{
- // todo: kill credit
+ DoCastAOE(SPELL_KILL_CREDIT);
Talk(SAY_STEELBREAKER_ENCOUNTER_DEFEATED);
}
else
@@ -267,9 +266,7 @@ class boss_runemaster_molgeim : public CreatureScript
struct boss_runemaster_molgeimAI : public BossAI
{
- boss_runemaster_molgeimAI(Creature* creature) : BossAI(creature, BOSS_ASSEMBLY_OF_IRON)
- {
- }
+ boss_runemaster_molgeimAI(Creature* creature) : BossAI(creature, BOSS_ASSEMBLY_OF_IRON) { }
uint32 phase;
@@ -295,6 +292,7 @@ class boss_runemaster_molgeim : public CreatureScript
switch (action)
{
case ACTION_SUPERCHARGE:
+ {
me->SetFullHealth();
me->AddAura(SPELL_SUPERCHARGE, me);
events.SetPhase(++phase);
@@ -304,7 +302,8 @@ class boss_runemaster_molgeim : public CreatureScript
events.RescheduleEvent(EVENT_RUNE_OF_DEATH, 30000);
if (phase >= 3)
events.RescheduleEvent(EVENT_RUNE_OF_SUMMONING, urand(20000, 30000));
- break;
+ break;
+ }
}
}
@@ -314,7 +313,7 @@ class boss_runemaster_molgeim : public CreatureScript
if (instance->GetBossState(BOSS_ASSEMBLY_OF_IRON) == DONE)
{
- // todo: kill credit
+ DoCastAOE(SPELL_KILL_CREDIT);
Talk(SAY_MOLGEIM_ENCOUNTER_DEFEATED);
}
else
@@ -416,9 +415,7 @@ class boss_stormcaller_brundir : public CreatureScript
struct boss_stormcaller_brundirAI : public BossAI
{
- boss_stormcaller_brundirAI(Creature* creature) : BossAI(creature, BOSS_ASSEMBLY_OF_IRON)
- {
- }
+ boss_stormcaller_brundirAI(Creature* creature) : BossAI(creature, BOSS_ASSEMBLY_OF_IRON) { }
uint32 phase;
@@ -429,7 +426,7 @@ class boss_stormcaller_brundir : public CreatureScript
me->RemoveAllAuras();
me->SetDisableGravity(false);
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_INTERRUPT, false); // Should be interruptable unless overridden by spell (Overload)
- me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_STUN, false); // Reset immumity, Brundir should be stunnable by default
+ me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_STUN, false); // Reset immumity, Brundir should be stunnable by default
}
void EnterCombat(Unit* /*who*/)
@@ -448,6 +445,7 @@ class boss_stormcaller_brundir : public CreatureScript
switch (action)
{
case ACTION_SUPERCHARGE:
+ {
me->SetFullHealth();
me->AddAura(SPELL_SUPERCHARGE, me);
events.SetPhase(++phase);
@@ -461,8 +459,8 @@ class boss_stormcaller_brundir : public CreatureScript
events.RescheduleEvent(EVENT_LIGHTNING_TENDRILS, urand(50000, 60000));
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_STUN, true); // Apply immumity to stuns
}
- break;
-
+ break;
+ }
}
}
@@ -472,7 +470,7 @@ class boss_stormcaller_brundir : public CreatureScript
if (instance->GetBossState(BOSS_ASSEMBLY_OF_IRON) == DONE)
{
- // todo: kill credit
+ DoCastAOE(SPELL_KILL_CREDIT);
Talk(SAY_BRUNDIR_ENCOUNTER_DEFEATED);
}
else
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
index ac7c4ce8da5..b894706e0bf 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
@@ -148,7 +148,7 @@ enum FreyaSpells
// Attuned To Nature spells
SPELL_ATTUNED_TO_NATURE_2_DOSE_REDUCTION = 62524,
SPELL_ATTUNED_TO_NATURE_10_DOSE_REDUCTION = 62525,
- SPELL_ATTUNED_TO_NATURE_25_DOSE_REDUCTION = 62521,
+ SPELL_ATTUNED_TO_NATURE_25_DOSE_REDUCTION = 62521
};
enum FreyaNpcs
@@ -166,13 +166,13 @@ enum FreyaNpcs
NPC_IRON_ROOTS = 33088,
NPC_STRENGTHENED_IRON_ROOTS = 33168,
- OBJECT_NATURE_BOMB = 194902,
+ OBJECT_NATURE_BOMB = 194902
};
enum FreyaActions
{
ACTION_ELDER_DEATH = 1,
- ACTION_ELDER_FREYA_KILLED = 2,
+ ACTION_ELDER_FREYA_KILLED = 2
};
enum FreyaEvents
@@ -200,13 +200,16 @@ enum FreyaEvents
// Elder Brightleaf
EVENT_SOLAR_FLARE = 15,
EVENT_UNSTABLE_SUN_BEAM = 16,
- EVENT_FLUX = 17,
+ EVENT_FLUX = 17
};
-#define WAVE_TIME 60000 // Normal wave is one minute
-#define TIME_DIFFERENCE 10000 // If difference between waveTime and WAVE_TIME is bigger then TIME_DIFFERENCE, schedule EVENT_WAVE in 10 seconds
-#define DATA_GETTING_BACK_TO_NATURE 1
-#define DATA_KNOCK_ON_WOOD 2
+enum Misc
+{
+ WAVE_TIME = 60000, // Normal wave is one minute
+ TIME_DIFFERENCE = 10000, // If difference between waveTime and WAVE_TIME is bigger then TIME_DIFFERENCE, schedule EVENT_WAVE in 10 seconds
+ DATA_GETTING_BACK_TO_NATURE = 1,
+ DATA_KNOCK_ON_WOOD = 2
+};
class npc_iron_roots : public CreatureScript
{
@@ -262,9 +265,7 @@ class boss_freya : public CreatureScript
struct boss_freyaAI : public BossAI
{
- boss_freyaAI(Creature* creature) : BossAI(creature, BOSS_FREYA)
- {
- }
+ boss_freyaAI(Creature* creature) : BossAI(creature, BOSS_FREYA) { }
uint64 ElementalGUID[3][2];
@@ -1519,19 +1520,17 @@ class npc_unstable_sun_beam : public CreatureScript
class spell_freya_attuned_to_nature_dose_reduction : public SpellScriptLoader
{
public:
- spell_freya_attuned_to_nature_dose_reduction() : SpellScriptLoader("spell_freya_attuned_to_nature_dose_reduction")
- {
- }
+ spell_freya_attuned_to_nature_dose_reduction() : SpellScriptLoader("spell_freya_attuned_to_nature_dose_reduction") { }
class spell_freya_attuned_to_nature_dose_reduction_SpellScript : public SpellScript
{
- PrepareSpellScript(spell_freya_attuned_to_nature_dose_reduction_SpellScript)
+ PrepareSpellScript(spell_freya_attuned_to_nature_dose_reduction_SpellScript);
void HandleScript(SpellEffIndex /*effIndex*/)
{
Unit* target = GetHitUnit();
- SpellInfo const* spellInfo = GetSpellInfo();
- switch (spellInfo->Id)
+
+ switch (GetSpellInfo()->Id)
{
case SPELL_ATTUNED_TO_NATURE_2_DOSE_REDUCTION:
if (target->HasAura(GetEffectValue()))
@@ -1568,9 +1567,7 @@ class spell_freya_attuned_to_nature_dose_reduction : public SpellScriptLoader
class spell_freya_iron_roots : public SpellScriptLoader
{
public:
- spell_freya_iron_roots() : SpellScriptLoader("spell_freya_iron_roots")
- {
- }
+ spell_freya_iron_roots() : SpellScriptLoader("spell_freya_iron_roots") { }
class spell_freya_iron_roots_SpellScript : public SpellScript
{
@@ -1603,80 +1600,44 @@ class spell_freya_iron_roots : public SpellScriptLoader
class achievement_getting_back_to_nature : public AchievementCriteriaScript
{
public:
- achievement_getting_back_to_nature() : AchievementCriteriaScript("achievement_getting_back_to_nature")
- {
- }
+ achievement_getting_back_to_nature() : AchievementCriteriaScript("achievement_getting_back_to_nature") { }
bool OnCheck(Player* /*player*/, Unit* target)
{
- if (!target)
- return false;
-
- if (Creature* Freya = target->ToCreature())
- if (Freya->AI()->GetData(DATA_GETTING_BACK_TO_NATURE) >= 25)
- return true;
-
- return false;
+ return target && target->GetAI()->GetData(DATA_GETTING_BACK_TO_NATURE) >= 25;
}
};
class achievement_knock_on_wood : public AchievementCriteriaScript
{
public:
- achievement_knock_on_wood() : AchievementCriteriaScript("achievement_knock_on_wood")
- {
- }
+ achievement_knock_on_wood() : AchievementCriteriaScript("achievement_knock_on_wood") { }
bool OnCheck(Player* /*player*/, Unit* target)
{
- if (!target)
- return false;
-
- if (Creature* Freya = target->ToCreature())
- if (Freya->AI()->GetData(DATA_KNOCK_ON_WOOD) >= 1)
- return true;
-
- return false;
+ return target && target->GetAI()->GetData(DATA_KNOCK_ON_WOOD) >= 1;
}
};
class achievement_knock_knock_on_wood : public AchievementCriteriaScript
{
public:
- achievement_knock_knock_on_wood() : AchievementCriteriaScript("achievement_knock_knock_on_wood")
- {
- }
+ achievement_knock_knock_on_wood() : AchievementCriteriaScript("achievement_knock_knock_on_wood") { }
bool OnCheck(Player* /*player*/, Unit* target)
{
- if (!target)
- return false;
-
- if (Creature* Freya = target->ToCreature())
- if (Freya->AI()->GetData(DATA_KNOCK_ON_WOOD) >= 2)
- return true;
-
- return false;
+ return target && target->GetAI()->GetData(DATA_KNOCK_ON_WOOD) >= 2;
}
};
class achievement_knock_knock_knock_on_wood : public AchievementCriteriaScript
{
public:
- achievement_knock_knock_knock_on_wood() : AchievementCriteriaScript("achievement_knock_knock_knock_on_wood")
- {
- }
+ achievement_knock_knock_knock_on_wood() : AchievementCriteriaScript("achievement_knock_knock_knock_on_wood") { }
bool OnCheck(Player* /*player*/, Unit* target)
{
- if (!target)
- return false;
-
- if (Creature* Freya = target->ToCreature())
- if (Freya->AI()->GetData(DATA_KNOCK_ON_WOOD) == 3)
- return true;
-
- return false;
+ return target && target->GetAI()->GetData(DATA_KNOCK_ON_WOOD) == 3;
}
};
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
index ae865ded40a..8247236016c 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
@@ -67,6 +67,8 @@ enum HodirSpells
SPELL_ICE_SHARD = 62457,
SPELL_ICE_SHARD_HIT = 65370,
+ SPELL_KILL_CREDIT = 64899,
+
// Druids
SPELL_WRATH = 62793,
SPELL_STARLIGHT = 62807,
@@ -373,6 +375,8 @@ class boss_hodir : public CreatureScript
me->setFaction(35);
me->DespawnOrUnsummon(10000);
+ DoCastAOE(SPELL_KILL_CREDIT);
+
_JustDied();
}
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
index 0e4d5026caf..c1fc0a81989 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
@@ -30,34 +30,40 @@ SDComment: TODO: Achievements
SDCategory: Ulduar
EndScriptData */
-#define SPELL_ARM_DEAD_DAMAGE RAID_MODE(63629, 63979)
-#define SPELL_TWO_ARM_SMASH RAID_MODE(63356, 64003)
-#define SPELL_ONE_ARM_SMASH RAID_MODE(63573, 64006)
-#define SPELL_ARM_SWEEP RAID_MODE(63766, 63983)
-#define SPELL_STONE_SHOUT RAID_MODE(63716, 64005)
-#define SPELL_PETRIFY_BREATH RAID_MODE(62030, 63980)
-#define SPELL_STONE_GRIP RAID_MODE(62166, 63981)
-#define SPELL_STONE_GRIP_CANCEL 65594
-#define SPELL_SUMMON_RUBBLE 63633
-#define SPELL_FALLING_RUBBLE 63821
-#define SPELL_ARM_ENTER_VEHICLE 65343
-#define SPELL_ARM_ENTER_VISUAL 64753
-
-#define SPELL_SUMMON_FOCUSED_EYEBEAM 63342
-#define SPELL_FOCUSED_EYEBEAM_PERIODIC RAID_MODE(63347, 63977)
-#define SPELL_FOCUSED_EYEBEAM_VISUAL 63369
-#define SPELL_FOCUSED_EYEBEAM_VISUAL_LEFT 63676
-#define SPELL_FOCUSED_EYEBEAM_VISUAL_RIGHT 63702
-
-// Passive
-#define SPELL_KOLOGARN_REDUCE_PARRY 64651
-#define SPELL_KOLOGARN_PACIFY 63726
-#define SPELL_KOLOGARN_UNK_0 65219 // Not found in DBC
-
-#define SPELL_BERSERK 47008 // guess
-
-#define NPC_RUBBLE_STALKER 33809
-#define NPC_ARM_SWEEP_STALKER 33661
+enum Spells
+{
+ SPELL_ARM_DEAD_DAMAGE = 63629,
+ SPELL_TWO_ARM_SMASH = 63356,
+ SPELL_ONE_ARM_SMASH = 63573,
+ SPELL_ARM_SWEEP = 63766,
+ SPELL_STONE_SHOUT = 63716,
+ SPELL_PETRIFY_BREATH = 62030,
+ SPELL_STONE_GRIP = 62166,
+ SPELL_STONE_GRIP_CANCEL = 65594,
+ SPELL_SUMMON_RUBBLE = 63633,
+ SPELL_FALLING_RUBBLE = 63821,
+ SPELL_ARM_ENTER_VEHICLE = 65343,
+ SPELL_ARM_ENTER_VISUAL = 64753,
+
+ SPELL_SUMMON_FOCUSED_EYEBEAM = 63342,
+ SPELL_FOCUSED_EYEBEAM_PERIODIC = 63347,
+ SPELL_FOCUSED_EYEBEAM_VISUAL = 63369,
+ SPELL_FOCUSED_EYEBEAM_VISUAL_LEFT = 63676,
+ SPELL_FOCUSED_EYEBEAM_VISUAL_RIGHT = 63702,
+
+ // Passive
+ SPELL_KOLOGARN_REDUCE_PARRY = 64651,
+ SPELL_KOLOGARN_PACIFY = 63726,
+ SPELL_KOLOGARN_UNK_0 = 65219, // Not found in DBC
+
+ SPELL_BERSERK = 47008 // guess
+};
+
+enum NPCs
+{
+ NPC_RUBBLE_STALKER = 33809,
+ NPC_ARM_SWEEP_STALKER = 33661
+};
enum Events
{
@@ -295,8 +301,8 @@ class boss_kologarn : public CreatureScript
Talk(EMOTE_STONE_GRIP);
}
events.ScheduleEvent(EVENT_STONE_GRIP, 25 * IN_MILLISECONDS);
+ break;
}
- break;
case EVENT_FOCUSED_EYEBEAM:
if (Unit* eyebeamTargetUnit = SelectTarget(SELECT_TARGET_FARTHEST, 0, 0, true))
{
@@ -406,12 +412,12 @@ class spell_ulduar_stone_grip_cast_target : public SpellScriptLoader
}
// For subsequent effects
- m_unitList = unitList;
+ _unitList = unitList;
}
void FillTargetsSubsequential(std::list<WorldObject*>& unitList)
{
- unitList = m_unitList;
+ unitList = _unitList;
}
void Register()
@@ -421,8 +427,9 @@ class spell_ulduar_stone_grip_cast_target : public SpellScriptLoader
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_ulduar_stone_grip_cast_target_SpellScript::FillTargetsSubsequential, EFFECT_2, TARGET_UNIT_SRC_AREA_ENEMY);
}
+ private:
// Shared between effects
- std::list<WorldObject*> m_unitList;
+ std::list<WorldObject*> _unitList;
};
SpellScript* GetSpellScript() const
@@ -627,10 +634,10 @@ class spell_kologarn_summon_focused_eyebeam : public SpellScriptLoader
{
PrepareSpellScript(spell_kologarn_summon_focused_eyebeam_SpellScript);
- void HandleForceCast(SpellEffIndex eff)
+ void HandleForceCast(SpellEffIndex effIndex)
{
- PreventHitDefaultEffect(eff);
- GetCaster()->CastSpell(GetCaster(), GetSpellInfo()->Effects[eff].TriggerSpell, true);
+ PreventHitDefaultEffect(effIndex);
+ GetCaster()->CastSpell(GetCaster(), GetSpellInfo()->Effects[effIndex].TriggerSpell, true);
}
void Register()