diff options
author | maximius <none@none> | 2009-10-13 16:07:23 -0700 |
---|---|---|
committer | maximius <none@none> | 2009-10-13 16:07:23 -0700 |
commit | 845f9036e56e6df35d9b6bcf6e6e893e8d5150ce (patch) | |
tree | 075cbfbf584508fedbf58987626f494a1e5045a3 | |
parent | 1791eb978bac601e583b1395025801a1bf7a49cb (diff) |
*Grobbulus - fix Poison Cloud, by Cass
--HG--
branch : trunk
-rw-r--r-- | sql/FULL/world_scripts_full.sql | 1 | ||||
-rw-r--r-- | sql/updates/5872_world_scripts.sql | 2 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/northrend/naxxramas/boss_grobbulus.cpp | 41 |
3 files changed, 43 insertions, 1 deletions
diff --git a/sql/FULL/world_scripts_full.sql b/sql/FULL/world_scripts_full.sql index 8064215fa75..4c55e5b3338 100644 --- a/sql/FULL/world_scripts_full.sql +++ b/sql/FULL/world_scripts_full.sql @@ -769,6 +769,7 @@ UPDATE `creature_template` SET `ScriptName`='mob_gothik_minion' where `entry` IN UPDATE `creature_template` SET `ScriptName`='boss_four_horsemen' WHERE `entry` IN (16063,16064,16065,30549); UPDATE `creature_template` SET `ScriptName`='boss_patchwerk' WHERE `entry`=16028; UPDATE `creature_template` SET `ScriptName`='boss_grobbulus' WHERE `entry`=15931; +UPDATE `creature_template` SET `ScriptName`='npc_grobbulus_poison_cloud' WHERE `entry`=16363; UPDATE `creature_template` SET `ScriptName`='boss_gluth' WHERE `entry`=15932; UPDATE `creature_template` SET `ScriptName`='boss_thaddius' WHERE `entry`=15928; UPDATE `creature_template` SET `ScriptName`='boss_stalagg' WHERE `entry`=15929; diff --git a/sql/updates/5872_world_scripts.sql b/sql/updates/5872_world_scripts.sql new file mode 100644 index 00000000000..4c1ece635b1 --- /dev/null +++ b/sql/updates/5872_world_scripts.sql @@ -0,0 +1,2 @@ + +UPDATE `creature_template` SET `ScriptName`='npc_grobbulus_poison_cloud' WHERE `entry`=16363; diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_grobbulus.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_grobbulus.cpp index 3652b902eda..10c9c38f1cd 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_grobbulus.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_grobbulus.cpp @@ -23,6 +23,7 @@ #define SPELL_MUTATING_INJECTION 28169 #define SPELL_SLIME_SPRAY HEROIC(28157,54364) #define SPELL_BERSERK 26662 +#define SPELL_POISON_CLOUD_ADD 59116 #define EVENT_BERSERK 1 #define EVENT_CLOUD 2 @@ -33,7 +34,10 @@ struct TRINITY_DLL_DECL boss_grobbulusAI : public BossAI { - boss_grobbulusAI(Creature *c) : BossAI(c, BOSS_GROBBULUS) {} + boss_grobbulusAI(Creature *c) : BossAI(c, BOSS_GROBBULUS) + { + me->ApplySpellImmune(0, IMMUNITY_ID, SPELL_POISON_CLOUD_ADD, true); + } void EnterCombat(Unit *who) { @@ -88,11 +92,41 @@ struct TRINITY_DLL_DECL boss_grobbulusAI : public BossAI } }; +struct TRINITY_DLL_DECL npc_grobbulus_poison_cloudAI : public Scripted_NoMovementAI +{ + npc_grobbulus_poison_cloudAI(Creature* pCreature) : Scripted_NoMovementAI(pCreature) + { + Reset(); + } + + uint32 Cloud_Timer; + + void Reset() + { + Cloud_Timer = 1000; + m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + } + + void UpdateAI(const uint32 diff) + { + if (Cloud_Timer < diff) + { + DoCast(m_creature, SPELL_POISON_CLOUD_ADD); + Cloud_Timer = 10000; + } else Cloud_Timer -= diff; + } +}; + CreatureAI* GetAI_boss_grobbulus(Creature* pCreature) { return new boss_grobbulusAI (pCreature); } +CreatureAI* GetAI_npc_grobbulus_poison_cloud(Creature* pCreature) +{ + return new npc_grobbulus_poison_cloudAI(pCreature); +} + void AddSC_boss_grobbulus() { Script *newscript; @@ -100,4 +134,9 @@ void AddSC_boss_grobbulus() newscript->Name="boss_grobbulus"; newscript->GetAI = &GetAI_boss_grobbulus; newscript->RegisterSelf(); + + newscript = new Script; + newscript->Name = "npc_grobbulus_poison_cloud"; + newscript->GetAI = &GetAI_npc_grobbulus_poison_cloud; + newscript->RegisterSelf(); } |