aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2012_10_06_00_world_spell_difficulty.sql4
-rw-r--r--sql/updates/world/2012_10_06_01_world_spell_script_names.sql4
-rw-r--r--src/server/game/DungeonFinding/LFGScripts.cpp4
-rwxr-xr-xsrc/server/game/Entities/GameObject/GameObject.cpp4
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp16
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp294
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp4
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp36
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp21
-rwxr-xr-xsrc/server/shared/Utilities/Util.h2
11 files changed, 221 insertions, 170 deletions
diff --git a/sql/updates/world/2012_10_06_00_world_spell_difficulty.sql b/sql/updates/world/2012_10_06_00_world_spell_difficulty.sql
new file mode 100644
index 00000000000..1dd1a468990
--- /dev/null
+++ b/sql/updates/world/2012_10_06_00_world_spell_difficulty.sql
@@ -0,0 +1,4 @@
+-- Boss Elder Nadox Move Heroic Spell in spelldifficulty
+DELETE FROM `spelldifficulty_dbc` WHERE `id` =56130;
+INSERT INTO `spelldifficulty_dbc`(`id`,`spellid0`,`spellid1`) VALUES
+(56130,56130,59467); -- Brood Plague
diff --git a/sql/updates/world/2012_10_06_01_world_spell_script_names.sql b/sql/updates/world/2012_10_06_01_world_spell_script_names.sql
new file mode 100644
index 00000000000..354a359e45b
--- /dev/null
+++ b/sql/updates/world/2012_10_06_01_world_spell_script_names.sql
@@ -0,0 +1,4 @@
+-- Boss Elder Nadox Move Heroic Spell Script
+DELETE FROM `spell_script_names` WHERE `spell_id`=56153;
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(56153, 'spell_elder_nadox_guardian');
diff --git a/src/server/game/DungeonFinding/LFGScripts.cpp b/src/server/game/DungeonFinding/LFGScripts.cpp
index e4b67e22221..36f04b3020b 100644
--- a/src/server/game/DungeonFinding/LFGScripts.cpp
+++ b/src/server/game/DungeonFinding/LFGScripts.cpp
@@ -123,8 +123,8 @@ void LFGGroupScript::OnRemoveMember(Group* group, uint64 guid, RemoveMethod meth
sLFGMgr->SetState(guid, LFG_STATE_NONE);
if (Player* player = ObjectAccessor::FindPlayer(guid))
{
- if (method == GROUP_REMOVEMETHOD_LEAVE && state != LFG_STATE_FINISHED_DUNGEON && player->HasAura(LFG_SPELL_DUNGEON_COOLDOWN))
- player->CastSpell(player, LFG_SPELL_DUNGEON_DESERTER, false);
+ if (method == GROUP_REMOVEMETHOD_LEAVE && sLFGMgr->GetState(gguid) != LFG_STATE_FINISHED_DUNGEON && sLFGMgr->GetDungeon(gguid, false))
+ player->CastSpell(player, LFG_SPELL_DUNGEON_DESERTER, true);
/*
else if (group->isLfgKickActive())
// Update internal kick cooldown of kicked
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index bd5b544c33c..da6e4ef8407 100755
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -293,7 +293,7 @@ void GameObject::Update(uint32 diff)
else if (Unit* owner = GetOwner())
{
if (owner->isInCombat())
- m_cooldownTime = time(NULL) + goInfo->trap.cooldown;
+ m_cooldownTime = time(NULL) + goInfo->trap.startDelay;
}
m_lootState = GO_READY;
break;
@@ -417,7 +417,7 @@ void GameObject::Update(uint32 diff)
bool IsBattlegroundTrap = false;
//FIXME: this is activation radius (in different casting radius that must be selected from spell data)
//TODO: move activated state code (cast itself) to GO_ACTIVATED, in this place only check activating and set state
- float radius = (float)(goInfo->trap.radius)/2; // TODO rename radius to diameter (goInfo->trap.radius) should be (goInfo->trap.diameter)
+ float radius = (float)(goInfo->trap.radius)/3*2; // TODO rename radius to diameter (goInfo->trap.radius) should be (goInfo->trap.diameter)
if (!radius)
{
if (goInfo->trap.cooldown != 3) // cast in other case (at some triggering/linked go/etc explicit call)
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp
index ebab2cb99a9..b34a990d39d 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp
@@ -44,7 +44,7 @@ enum event
{
EVENT_SPAWN = 1,
EVENT_MINI,
- EVENT_ROOT,
+ EVENT_ROOT,
EVENT_BASH,
EVENT_BOLT,
EVENT_AURA
@@ -58,13 +58,13 @@ public:
struct boss_amanitarAI : public BossAI
{
boss_amanitarAI(Creature* creature) : BossAI(creature, DATA_AMANITAR) { }
-
+
void Reset()
{
_Reset();
-
+
me->SetMeleeDamageSchool(SPELL_SCHOOL_NATURE);
- me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true);
+ me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true);
summons.DespawnAll();
if (instance)
@@ -119,7 +119,7 @@ public:
{
trigger->DisappearAndDie();
}
- else
+ else
{
u = 1 - u;
trigger->DisappearAndDie();
@@ -143,7 +143,7 @@ public:
{
switch (eventId)
{
- case EVENT_SPAWN:
+ case EVENT_SPAWN:
SpawnAdds();
events.ScheduleEvent(EVENT_SPAWN, 20*IN_MILLISECONDS);
break;
@@ -151,7 +151,7 @@ public:
DoCast(SPELL_MINI);
events.ScheduleEvent(EVENT_MINI, urand(25,30)*IN_MILLISECONDS);
break;
- case EVENT_ROOT:
+ case EVENT_ROOT:
DoCast(SelectTarget(SELECT_TARGET_RANDOM,0, 100, true),SPELL_ENTANGLING_ROOTS,true);
events.ScheduleEvent(EVENT_ROOT, urand(10,15)*IN_MILLISECONDS);
break;
@@ -192,7 +192,7 @@ public:
{
events.Reset();
events.ScheduleEvent(EVENT_AURA, 1*IN_MILLISECONDS);
-
+
me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
DoCast(SPELL_PUTRID_MUSHROOM);
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
index 9274a016e2f..1ff16f3ec91 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
@@ -17,6 +17,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "SpellScript.h"
#include "ahnkahet.h"
enum Yells
@@ -30,22 +31,31 @@ enum Yells
enum Spells
{
- SPELL_BROOD_PLAGUE = 56130,
- H_SPELL_BROOD_PLAGUE = 59467,
- H_SPELL_BROOD_RAGE = 59465,
- SPELL_ENRAGE = 26662, // Enraged if too far away from home
- SPELL_SUMMON_SWARMERS = 56119, //2x 30178 -- 2x every 10secs
- SPELL_SUMMON_SWARM_GUARD = 56120, //1x 30176 -- every 25secs
+ SPELL_BROOD_PLAGUE = 56130,
+ H_SPELL_BROOD_RAGE = 59465,
+ SPELL_ENRAGE = 26662, // Enraged if too far away from home
+ SPELL_SUMMON_SWARMERS = 56119, // 2x 30178 -- 2x every 10secs
+ SPELL_SUMMON_SWARM_GUARD = 56120, // 1x 30176 -- every 25%
+ // Spells Adds
+ SPELL_SPRINT = 56354,
+ SPELL_GUARDIAN_AURA = 56151
};
enum Creatures
{
- MOB_AHNKAHAR_SWARMER = 30178,
- MOB_AHNKAHAR_GUARDIAN_ENTRY = 30176
+ NPC_AHNKAHAR_SWARMER = 30178,
+ NPC_AHNKAHAR_GUARDIAN = 30176
};
-#define ACTION_AHNKAHAR_GUARDIAN_DEAD 1
-#define DATA_RESPECT_YOUR_ELDERS 2
+enum Events
+{
+ EVENT_PLAGUE = 1,
+ EVENT_RAGE,
+ EVENT_SUMMON_SWARMER,
+ EVENT_CHECK_ENRAGE,
+ EVENT_SPRINT,
+ DATA_RESPECT_YOUR_ELDERS
+};
class boss_elder_nadox : public CreatureScript
{
@@ -54,32 +64,24 @@ class boss_elder_nadox : public CreatureScript
struct boss_elder_nadoxAI : public ScriptedAI
{
- boss_elder_nadoxAI(Creature* creature) : ScriptedAI(creature)
+ boss_elder_nadoxAI(Creature* creature) : ScriptedAI(creature), summons(me)
{
instance = creature->GetInstanceScript();
}
- uint32 uiPlagueTimer;
- uint32 uiRagueTimer;
-
- uint32 uiSwarmerSpawnTimer;
- uint32 uiGuardSpawnTimer;
- uint32 uiEnrageTimer;
-
- bool bGuardSpawned;
- bool respectYourElders;
-
+ bool GuardianDied;
+ uint8 AmountHealthModifier;
InstanceScript* instance;
+ SummonList summons;
+ EventMap events;
void Reset()
{
- uiPlagueTimer = 13000;
- uiRagueTimer = 20000;
- uiSwarmerSpawnTimer = 10000;
- uiGuardSpawnTimer = 25000;
- uiEnrageTimer = 5000;
- bGuardSpawned = false;
- respectYourElders = true;
+ events.Reset();
+ summons.DespawnAll();
+
+ AmountHealthModifier = 1;
+ GuardianDied = false;
if (instance)
instance->SetData(DATA_ELDER_NADOX_EVENT, NOT_STARTED);
@@ -91,98 +93,95 @@ class boss_elder_nadox : public CreatureScript
if (instance)
instance->SetData(DATA_ELDER_NADOX_EVENT, IN_PROGRESS);
- }
- void KilledUnit(Unit* /*who*/)
- {
- Talk(SAY_SLAY);
+ events.ScheduleEvent(EVENT_PLAGUE, 13*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_SUMMON_SWARMER, 10*IN_MILLISECONDS);
+
+ if (IsHeroic())
+ {
+ events.ScheduleEvent(EVENT_RAGE, 12*IN_MILLISECONDS);
+ events.ScheduleEvent(EVENT_CHECK_ENRAGE, 5*IN_MILLISECONDS);
+ }
}
- void JustDied(Unit* /*killer*/)
+ void JustSummoned(Creature* summon)
{
- Talk(SAY_DEATH);
-
- if (instance)
- instance->SetData(DATA_ELDER_NADOX_EVENT, DONE);
+ summons.Summon(summon);
+ summon->AI()->DoZoneInCombat();
}
- void DoAction(int32 const action)
+ void SummonedCreatureDies(Creature* summon, Unit* /*killer*/)
{
- if (action == ACTION_AHNKAHAR_GUARDIAN_DEAD)
- respectYourElders = false;
+ if (summon->GetEntry() == NPC_AHNKAHAR_GUARDIAN)
+ GuardianDied = true;
}
uint32 GetData(uint32 type)
{
if (type == DATA_RESPECT_YOUR_ELDERS)
- return respectYourElders ? 1 : 0;
+ return !GuardianDied ? 1 : 0;
return 0;
}
+ void KilledUnit(Unit* /*victim*/)
+ {
+ Talk(SAY_SLAY);
+ }
+
+ void JustDied(Unit* /*killer*/)
+ {
+ Talk(SAY_DEATH);
+
+ summons.DespawnAll();
+
+ if (instance)
+ instance->SetData(DATA_ELDER_NADOX_EVENT, DONE);
+ }
+
void UpdateAI(uint32 const diff)
{
if (!UpdateVictim())
return;
- if (uiPlagueTimer <= diff)
- {
- DoCastVictim(SPELL_BROOD_PLAGUE);
- uiPlagueTimer = 15000;
- }
- else
- uiPlagueTimer -= diff;
+ events.Update(diff);
- if (IsHeroic())
+ while (uint32 eventId = events.ExecuteEvent())
{
- if (uiRagueTimer <= diff)
+ switch (eventId)
{
- if (Creature* Swarmer = me->FindNearestCreature(MOB_AHNKAHAR_SWARMER, 35.0f))
- {
- DoCast(Swarmer, H_SPELL_BROOD_RAGE, true);
- uiRagueTimer = 15000;
- }
+ case EVENT_PLAGUE:
+ DoCast(SelectTarget(SELECT_TARGET_RANDOM,0, 100, true),SPELL_BROOD_PLAGUE,true);
+ events.ScheduleEvent(EVENT_PLAGUE, 15*IN_MILLISECONDS);
+ break;
+ case EVENT_RAGE:
+ DoCast(H_SPELL_BROOD_RAGE);
+ events.ScheduleEvent(EVENT_RAGE, urand(50*IN_MILLISECONDS, 10*IN_MILLISECONDS));
+ break;
+ case EVENT_SUMMON_SWARMER:
+ DoCast(me, SPELL_SUMMON_SWARMERS);
+ if (urand(1, 3) == 3) // 33% chance of dialog
+ Talk(SAY_EGG_SAC);
+ events.ScheduleEvent(EVENT_SUMMON_SWARMER, 10*IN_MILLISECONDS);
+ break;
+ case EVENT_CHECK_ENRAGE:
+ if (me->HasAura(SPELL_ENRAGE))
+ return;
+ if (me->GetPositionZ() < 24.0f)
+ DoCast(me, SPELL_ENRAGE, true);
+ events.ScheduleEvent(EVENT_CHECK_ENRAGE, 5*IN_MILLISECONDS);
+ break;
+ default:
+ break;
}
- else
- uiRagueTimer -= diff;
}
- if (uiSwarmerSpawnTimer <= diff)
- {
- DoCast(me, SPELL_SUMMON_SWARMERS, true);
- DoCast(me, SPELL_SUMMON_SWARMERS);
- if (urand(1, 3) == 3) // 33% chance of dialog
- Talk(SAY_EGG_SAC);
-
- uiSwarmerSpawnTimer = 10000;
- }
- else
- uiSwarmerSpawnTimer -= diff;
-
- if (!bGuardSpawned && uiGuardSpawnTimer <= diff)
+ if (me->HealthBelowPct(100 - AmountHealthModifier * 25))
{
Talk(EMOTE_HATCHES, me->GetGUID());
DoCast(me, SPELL_SUMMON_SWARM_GUARD);
- bGuardSpawned = true;
+ ++AmountHealthModifier;
}
- else
- uiGuardSpawnTimer -= diff;
-
- if (uiEnrageTimer <= diff)
- {
- if (me->HasAura(SPELL_ENRAGE, 0))
- return;
-
- float x, y, z, o;
- me->GetHomePosition(x, y, z, o);
- if (z < 24)
- if (!me->IsNonMeleeSpellCasted(false))
- DoCast(me, SPELL_ENRAGE, true);
-
- uiEnrageTimer = 5000;
- }
- else
- uiEnrageTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -194,12 +193,6 @@ class boss_elder_nadox : public CreatureScript
}
};
-enum AddSpells
-{
- SPELL_SPRINT = 56354,
- SPELL_GUARDIAN_AURA = 56151
-};
-
class mob_ahnkahar_nerubian : public CreatureScript
{
public:
@@ -207,50 +200,44 @@ class mob_ahnkahar_nerubian : public CreatureScript
struct mob_ahnkahar_nerubianAI : public ScriptedAI
{
- mob_ahnkahar_nerubianAI(Creature* creature) : ScriptedAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
+ mob_ahnkahar_nerubianAI(Creature* creature) : ScriptedAI(creature) { }
- InstanceScript* instance;
- uint32 uiSprintTimer;
+ EventMap events;
void Reset()
{
- if (me->GetEntry() == MOB_AHNKAHAR_GUARDIAN_ENTRY)
+ if (me->GetEntry() == NPC_AHNKAHAR_GUARDIAN)
DoCast(me, SPELL_GUARDIAN_AURA, true);
- uiSprintTimer = 10000;
+
+ events.ScheduleEvent(EVENT_SPRINT, 13*IN_MILLISECONDS);
}
void JustDied(Unit* /*killer*/)
{
- if (me->GetEntry() == MOB_AHNKAHAR_GUARDIAN_ENTRY)
- if (Creature* Nadox = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ELDER_NADOX)))
- Nadox->AI()->DoAction(ACTION_AHNKAHAR_GUARDIAN_DEAD);
+ if (me->GetEntry() == NPC_AHNKAHAR_GUARDIAN)
+ me->RemoveAurasDueToSpell(SPELL_GUARDIAN_AURA);
}
- void EnterCombat(Unit* /*who*/) {}
-
- void UpdateAI(uint32 const diff)
+ void UpdateAI(const uint32 diff)
{
if (!UpdateVictim())
return;
- if (me->GetEntry() == MOB_AHNKAHAR_GUARDIAN_ENTRY)
- me->RemoveAurasDueToSpell(SPELL_GUARDIAN_AURA);
+ events.Update(diff);
- if (instance)
- if (instance->GetData(DATA_ELDER_NADOX_EVENT) != IN_PROGRESS)
- me->DespawnOrUnsummon();
+ if (me->HasUnitState(UNIT_STATE_CASTING))
+ return;
- if (uiSprintTimer <= diff)
+ while (uint32 eventId = events.ExecuteEvent())
{
- DoCast(me, SPELL_SPRINT);
- uiSprintTimer = 25000;
+ switch (eventId)
+ {
+ case EVENT_SPRINT:
+ DoCast(me, SPELL_SPRINT);
+ events.ScheduleEvent(EVENT_SPRINT, 20*IN_MILLISECONDS);
+ break;
+ }
}
- else
- uiSprintTimer -= diff;
-
DoMeleeAttackIfReady();
}
};
@@ -274,6 +261,7 @@ public:
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
creature->UpdateAllStats();
}
+
void Reset() {}
void EnterCombat(Unit* /*who*/) {}
void AttackStart(Unit* /*victim*/) {}
@@ -287,28 +275,68 @@ public:
}
};
-class achievement_respect_your_elders : public AchievementCriteriaScript
+class GuardianCheck
{
- public:
- achievement_respect_your_elders() : AchievementCriteriaScript("achievement_respect_your_elders") {}
+public:
+ bool operator()(const WorldObject* target) const
+ {
+ if (target->GetEntry() == NPC_AHNKAHAR_GUARDIAN)
+ return true;
+
+ return false;
+ }
+};
- bool OnCheck(Player* /*player*/, Unit* target)
+class spell_elder_nadox_guardian : public SpellScriptLoader
+{
+public:
+ spell_elder_nadox_guardian() : SpellScriptLoader("spell_elder_nadox_guardian") { }
+
+ class spell_elder_nadox_guardian_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_elder_nadox_guardian_SpellScript);
+
+ void FilterTargets(std::list<WorldObject*>& targets)
{
- if (!target)
- return false;
+ targets.remove_if(GuardianCheck());
+ }
+
+ void Register()
+ {
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_elder_nadox_guardian_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_elder_nadox_guardian_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ALLY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_elder_nadox_guardian_SpellScript();
+ }
+};
- if (Creature* Nadox = target->ToCreature())
- if (Nadox->AI()->GetData(DATA_RESPECT_YOUR_ELDERS))
- return true;
+class achievement_respect_your_elders : public AchievementCriteriaScript
+{
+public:
+ achievement_respect_your_elders() : AchievementCriteriaScript("achievement_respect_your_elders") {}
+ bool OnCheck(Player* /*player*/, Unit* target)
+ {
+ if (!target)
return false;
- }
+
+ if (Creature* Nadox = target->ToCreature())
+ if (Nadox->AI()->GetData(DATA_RESPECT_YOUR_ELDERS))
+ return true;
+
+ return false;
+ }
};
void AddSC_boss_elder_nadox()
{
- new boss_elder_nadox;
- new mob_ahnkahar_nerubian;
- new mob_nadox_eggs;
+ new boss_elder_nadox();
+ new mob_ahnkahar_nerubian();
+ new mob_nadox_eggs();
+ new spell_elder_nadox_guardian();
new achievement_respect_your_elders();
}
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
index 8e7863259ad..179dedb290b 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
@@ -105,8 +105,8 @@ public:
void Reset()
{
me->CastSpell(me, SPELL_EVOCATE);
-
- _Reset();
+
+ _Reset();
if (instance->GetData(DATA_UROM_PLATAFORM) == 0)
{
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
index 1f4a3d1b229..a0b5aded315 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
@@ -278,7 +278,7 @@ public:
eternos->GetMotionMaster()->MovePoint(0, 943.202f, 1059.35f, 359.967f);
if (Creature* verdisa = instance->GetCreature(verdisaGUID))
verdisa->SetWalk(true),
- verdisa->GetMotionMaster()->MovePoint(0, 949.188f, 1032.91f, 359.967f);
+ verdisa->GetMotionMaster()->MovePoint(0, 949.188f, 1032.91f, 359.967f);
}
void GreaterWhelps()
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
index f2fa3158603..39fff139b52 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
@@ -108,10 +108,10 @@ class npc_verdisa_beglaristrasz_eternos : public CreatureScript
{
public:
npc_verdisa_beglaristrasz_eternos() : CreatureScript("npc_verdisa_beglaristrasz_eternos") { }
-
- InstanceScript* instance;
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
+
+ InstanceScript* instance;
+
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
switch (creature->GetEntry())
@@ -245,7 +245,7 @@ public:
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
}
};
-
+
CreatureAI* GetAI(Creature* creature) const
{
return new npc_verdisa_beglaristrasz_eternosAI(creature);
@@ -293,7 +293,7 @@ public:
{
instance = creature->GetInstanceScript();
}
-
+
InstanceScript* instance;
uint64 summonerGUID;
@@ -324,9 +324,9 @@ public:
HealthWarningOff = false;
DisableTakeOff = false;
}
-
+
void IsSummonedBy(Unit* summoner)
- {
+ {
if (instance->GetBossState(DATA_EREGOS_EVENT) == IN_PROGRESS)
if (Creature* eregos = me->FindNearestCreature(NPC_EREGOS, 450.0f, true))
{
@@ -357,7 +357,7 @@ public:
void UpdateAI(const uint32 diff)
{
if (!(instance->GetBossState(DATA_VAROS_EVENT) == DONE))
- {
+ {
if (me->HasAuraType(SPELL_AURA_CONTROL_VEHICLE))
{
if (!(WelcomeOff))
@@ -380,7 +380,7 @@ public:
{
Talk(WHISPER_DRAKES_ABILITIES, me->GetCreatorGUID());
WelcomeSequelOff = false;
- }
+ }
else WelcomeSequelTimer -= diff;
}
}
@@ -391,10 +391,10 @@ public:
if (!(SpecialOff))
{
if (SpecialTimer <= diff)
- {
+ {
Talk(WHISPER_DRAKES_SPECIAL, me->GetCreatorGUID());
SpecialOff = true;
- }
+ }
else SpecialTimer -= diff;
}
}
@@ -402,25 +402,25 @@ public:
if (me->HasAuraType(SPELL_AURA_CONTROL_VEHICLE))
{
if (!(HealthWarningOff))
- {
+ {
if (me->GetHealthPct() <= 40.0f)
{
Talk(WHISPER_DRAKES_LOWHEALTH, me->GetCreatorGUID());
HealthWarningOff = true;
}
}
- }
+ }
if (me->HasAuraType(SPELL_AURA_CONTROL_VEHICLE))
- {
+ {
if (HealthWarningOff)
- {
+ {
if (WarningTimer <= diff)
{
HealthWarningOff = false;
WarningTimer = 25000;
}
else WarningTimer -= diff;
- }
+ }
}
if (!(me->HasAuraType(SPELL_AURA_CONTROL_VEHICLE)))
{
@@ -433,7 +433,7 @@ public:
me->SetSpeed(MOVE_FLIGHT, 1.0f, true);
Talk(SAY_DRAKES_TAKEOFF);
Position pos;
- me->GetPosition(&pos);
+ me->GetPosition(&pos);
pos.m_positionX += 10.0f;
pos.m_positionY += 10.0f;
pos.m_positionZ += 12.0f;
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 0967c38c2e7..92e56d4dd9a 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
@@ -255,7 +255,12 @@ class boss_steelbreaker : public CreatureScript
{
DoScriptText(RAND(SAY_STEELBREAKER_DEATH_1, SAY_STEELBREAKER_DEATH_2), me);
if (IsEncounterComplete(instance, me))
- instance->SetData(BOSS_ASSEMBLY_OF_IRON, DONE);
+ {
+ instance->SetBossState(BOSS_ASSEMBLY_OF_IRON, DONE);
+ instance->SetBossState(BOSS_STEELBREAKER, DONE);
+ instance->SetBossState(BOSS_MOLGEIM, DONE);
+ instance->SetBossState(BOSS_BRUNDIR, DONE);
+ }
else
me->SetLootRecipient(NULL);
@@ -379,7 +384,12 @@ class boss_runemaster_molgeim : public CreatureScript
{
DoScriptText(RAND(SAY_MOLGEIM_DEATH_1, SAY_MOLGEIM_DEATH_2), me);
if (IsEncounterComplete(instance, me))
- instance->SetData(BOSS_ASSEMBLY_OF_IRON, DONE);
+ {
+ instance->SetBossState(BOSS_ASSEMBLY_OF_IRON, DONE);
+ instance->SetBossState(BOSS_STEELBREAKER, DONE);
+ instance->SetBossState(BOSS_MOLGEIM, DONE);
+ instance->SetBossState(BOSS_BRUNDIR, DONE);
+ }
else
me->SetLootRecipient(NULL);
@@ -620,7 +630,12 @@ class boss_stormcaller_brundir : public CreatureScript
{
DoScriptText(RAND(SAY_BRUNDIR_DEATH_1, SAY_BRUNDIR_DEATH_2), me);
if (IsEncounterComplete(instance, me))
- instance->SetData(BOSS_ASSEMBLY_OF_IRON, DONE);
+ {
+ instance->SetBossState(BOSS_ASSEMBLY_OF_IRON, DONE);
+ instance->SetBossState(BOSS_STEELBREAKER, DONE);
+ instance->SetBossState(BOSS_MOLGEIM, DONE);
+ instance->SetBossState(BOSS_BRUNDIR, DONE);
+ }
else
me->SetLootRecipient(NULL);
diff --git a/src/server/shared/Utilities/Util.h b/src/server/shared/Utilities/Util.h
index 21aaa36498d..f84e5155bb1 100755
--- a/src/server/shared/Utilities/Util.h
+++ b/src/server/shared/Utilities/Util.h
@@ -31,7 +31,7 @@ template<typename T, class S> struct Finder
{
T val_;
T S::* idMember_;
-
+
Finder(T val, T S::* idMember) : val_(val), idMember_(idMember) {}
bool operator()(const std::pair<int, S> &obj) { return obj.second.*idMember_ == val_; }
};