aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2018-01-28 23:29:33 +0100
committerShauren <shauren.trinity@gmail.com>2021-06-19 01:35:40 +0200
commit428bf60f7fd021cb8d55eb2acbdaa8f3d4969ae7 (patch)
tree429e553c69f8252a627719d748719cb58b5d1ac1
parent2d43b8aaa32bf75a40d7fa92eafda7eb87258c22 (diff)
Scripts/Icecrown Citadel: Added missing cosmetic colors and emotes to Big Ooze (Rotface)
(cherry picked from commit aaab7ba9f4e08ba5b7d7ac2f4e37e07d80c8f339)
-rw-r--r--sql/updates/world/master/2021_06_19_01_world_2018_01_28_03_world.sql7
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp66
2 files changed, 54 insertions, 19 deletions
diff --git a/sql/updates/world/master/2021_06_19_01_world_2018_01_28_03_world.sql b/sql/updates/world/master/2021_06_19_01_world_2018_01_28_03_world.sql
new file mode 100644
index 00000000000..a157bb23aa8
--- /dev/null
+++ b/sql/updates/world/master/2021_06_19_01_world_2018_01_28_03_world.sql
@@ -0,0 +1,7 @@
+DELETE FROM `creature_text` WHERE `CreatureID`=36627 AND `GroupID`=4;
+DELETE FROM `creature_text` WHERE `CreatureID`=36899;
+INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES
+(36899,0,0,'%s grows more unstable!',16,0,0,0,0,0,36950,0,'Big Ooze - EMOTE_UNSTABLE_2'),
+(36899,1,0,'%s is growing volatile!',16,0,0,0,0,0,36952,0,'Big Ooze - EMOTE_UNSTABLE_3'),
+(36899,2,0,'%s can barely maintain its form!',16,0,0,0,0,0,36956,0,'Big Ooze - EMOTE_UNSTABLE_4'),
+(36899,3,0,'|TInterface\\Icons\\spell_shadow_unstableaffliction_2.blp:16|t%s begins to cast |cFFFF0000Unstable Ooze Explosion!|r',41,0,0,0,0,0,37064,0,'Big Ooze - EMOTE_UNSTABLE_EXPLOSION');
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
index 0b2f6a8f7bc..f15e751157d 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
@@ -34,13 +34,17 @@ enum Texts
SAY_AGGRO = 1,
EMOTE_SLIME_SPRAY = 2,
SAY_SLIME_SPRAY = 3,
- EMOTE_UNSTABLE_EXPLOSION = 4,
SAY_UNSTABLE_EXPLOSION = 5,
SAY_KILL = 6,
SAY_BERSERK = 7,
SAY_DEATH = 8,
EMOTE_MUTATED_INFECTION = 9,
+ EMOTE_UNSTABLE_2 = 0,
+ EMOTE_UNSTABLE_3 = 1,
+ EMOTE_UNSTABLE_4 = 2,
+ EMOTE_UNSTABLE_EXPLOSION = 3,
+
EMOTE_PRECIOUS_ZOMBIES = 0,
};
@@ -63,6 +67,9 @@ enum Spells
SPELL_UNSTABLE_OOZE_EXPLOSION = 69839,
SPELL_STICKY_OOZE = 69774,
SPELL_UNSTABLE_OOZE_EXPLOSION_TRIGGER = 69832,
+ SPELL_VERTEX_COLOR_PINK = 53213,
+ SPELL_VERTEX_COLOR_BRIGHT_RED = 69844,
+ SPELL_VERTEX_COLOR_DARK_RED = 44773,
// Precious
SPELL_MORTAL_WOUND = 71127,
@@ -653,34 +660,55 @@ class spell_rotface_large_ooze_buff_combine : public SpellScriptLoader
{
PrepareSpellScript(spell_rotface_large_ooze_buff_combine_SpellScript);
+ bool Load() override
+ {
+ return GetCaster()->GetTypeId() == TYPEID_UNIT;
+ }
+
void HandleScript(SpellEffIndex /*effIndex*/)
{
if (!(GetHitCreature() && GetHitCreature()->IsAlive()))
return;
- if (Aura* unstable = GetCaster()->GetAura(SPELL_UNSTABLE_OOZE))
+ Creature* caster = GetCaster()->ToCreature();
+ if (Aura* unstable = caster->GetAura(SPELL_UNSTABLE_OOZE))
{
uint8 newStack = uint8(unstable->GetStackAmount()+1);
unstable->SetStackAmount(newStack);
- // explode!
- if (newStack >= 5)
+ switch (newStack)
{
- GetCaster()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_BUFF_COMBINE);
- GetCaster()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_COMBINE);
- if (InstanceScript* instance = GetCaster()->GetInstanceScript())
- if (Creature* rotface = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_ROTFACE)))
- if (rotface->IsAlive())
- {
- rotface->AI()->Talk(EMOTE_UNSTABLE_EXPLOSION);
- rotface->AI()->Talk(SAY_UNSTABLE_EXPLOSION);
- }
-
- if (Creature* cre = GetCaster()->ToCreature())
- cre->AI()->DoAction(EVENT_STICKY_OOZE);
- GetCaster()->CastSpell(GetCaster(), SPELL_UNSTABLE_OOZE_EXPLOSION, CastSpellExtraArgs().SetOriginalCaster(GetCaster()->GetGUID()));
- if (InstanceScript* instance = GetCaster()->GetInstanceScript())
- instance->SetData(DATA_OOZE_DANCE_ACHIEVEMENT, uint32(false));
+ case 2:
+ caster->AI()->Talk(EMOTE_UNSTABLE_2, caster);
+ caster->CastSpell(caster, SPELL_VERTEX_COLOR_PINK, true);
+ break;
+ case 3:
+ caster->AI()->Talk(EMOTE_UNSTABLE_3, caster);
+ caster->CastSpell(caster, SPELL_VERTEX_COLOR_BRIGHT_RED, true);
+ break;
+ case 4:
+ caster->AI()->Talk(EMOTE_UNSTABLE_4, caster);
+ caster->CastSpell(caster, SPELL_VERTEX_COLOR_DARK_RED, true);
+ break;
+ case 5:
+ {
+ caster->AI()->Talk(EMOTE_UNSTABLE_EXPLOSION);
+ caster->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_BUFF_COMBINE);
+ caster->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_COMBINE);
+ if (InstanceScript* instance = caster->GetInstanceScript())
+ {
+ instance->SetData(DATA_OOZE_DANCE_ACHIEVEMENT, uint32(false));
+ if (Creature* rotface = ObjectAccessor::GetCreature(*caster, instance->GetGuidData(DATA_ROTFACE)))
+ if (rotface->IsAlive())
+ rotface->AI()->Talk(SAY_UNSTABLE_EXPLOSION);
+ }
+
+ caster->AI()->DoAction(EVENT_STICKY_OOZE);
+ caster->CastSpell(caster, SPELL_UNSTABLE_OOZE_EXPLOSION, CastSpellExtraArgs().SetOriginalCaster(caster->GetGUID()));
+ break;
+ }
+ default:
+ break;
}
}