Core/Scripts: Update text for Garfrost to creature_text. Added some missing text & added call for help to aggro.

This commit is contained in:
Malcrom
2012-05-13 14:36:24 -02:30
parent a1ff27a1c6
commit 42b0dfc94f
2 changed files with 34 additions and 10 deletions
@@ -0,0 +1,13 @@
-- NPC talk text insert from sniff
DELETE FROM `creature_text` WHERE `entry`=36494;
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
(36494,0,0, 'Tiny creatures under feet, you bring Garfrost something good to eat!',14,0,100,0,0,0, 'Forgemaster Garfrost'),
(36494,1,0, 'Axe too weak. Garfrost make better and CRUSH YOU.',14,0,100,0,0,0, 'Forgemaster Garfrost'),
(36494,2,0, 'Garfrost tired of puny mortals. Now your bones will freeze!',14,0,100,0,0,0, 'Forgemaster Garfrost'),
(36494,3,0, 'Garfrost hope giant underpants clean. Save boss great shame. For later.',14,0,100,0,0,0, 'Forgemaster Garfrost'),
(36494,4,0, 'Will save for snack. For later.',12,0,100,0,0,0, 'Forgemaster Garfrost'),
(36494,4,1, 'That one maybe not so good to eat now. Stupid Garfrost! BAD! BAD!',12,0,100,0,0,0, 'Forgemaster Garfrost'),
(36494,5,0, '%s hurls a massive saronite boulder at you!',16,0,100,0,0,0, 'Forgemaster Garfrost'),
(36494,6,0, '%s casts |cFF00AACCDeep Freeze|r at $n.',41,0,100,0,0,0, 'Forgemaster Garfrost');
-- Remove old script text
DELETE FROM `script_texts` WHERE `entry` BETWEEN -1658006 AND -1658001;
@@ -20,14 +20,15 @@
enum Yells enum Yells
{ {
SAY_AGGRO = -1658001, SAY_AGGRO = 0,
SAY_SLAY_1 = -1658002, SAY_PHASE2 = 1,
SAY_SLAY_2 = -1658003, SAY_PHASE3 = 2,
SAY_DEATH = -1658004, SAY_DEATH = 3,
SAY_PHASE2 = -1658005, SAY_SLAY = 4,
SAY_PHASE3 = -1658006, SAY_THROW_SARONITE = 5,
SAY_CAST_DEEP_FREEZE = 6,
SAY_TYRANNUS_DEATH = -1658007, SAY_TYRANNUS_DEATH = -1658007, // todo
}; };
enum Spells enum Spells
@@ -107,8 +108,9 @@ class boss_garfrost : public CreatureScript
void EnterCombat(Unit* /*who*/) void EnterCombat(Unit* /*who*/)
{ {
DoScriptText(SAY_AGGRO, me); Talk(SAY_AGGRO);
DoCast(me, SPELL_PERMAFROST); DoCast(me, SPELL_PERMAFROST);
me->CallForHelp(70.0f);
events.ScheduleEvent(EVENT_THROW_SARONITE, 7000); events.ScheduleEvent(EVENT_THROW_SARONITE, 7000);
instance->SetBossState(DATA_GARFROST, IN_PROGRESS); instance->SetBossState(DATA_GARFROST, IN_PROGRESS);
@@ -117,12 +119,13 @@ class boss_garfrost : public CreatureScript
void KilledUnit(Unit* victim) void KilledUnit(Unit* victim)
{ {
if (victim->GetTypeId() == TYPEID_PLAYER) if (victim->GetTypeId() == TYPEID_PLAYER)
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); Talk(SAY_SLAY);
} }
void JustDied(Unit* /*killer*/) void JustDied(Unit* /*killer*/)
{ {
DoScriptText(SAY_DEATH, me); Talk(SAY_DEATH);
if (Creature* tyrannus = me->GetCreature(*me, instance->GetData64(DATA_TYRANNUS))) if (Creature* tyrannus = me->GetCreature(*me, instance->GetData64(DATA_TYRANNUS)))
DoScriptText(SAY_TYRANNUS_DEATH, tyrannus); DoScriptText(SAY_TYRANNUS_DEATH, tyrannus);
@@ -134,6 +137,7 @@ class boss_garfrost : public CreatureScript
if (events.GetPhaseMask() & PHASE_ONE_MASK && !HealthAbovePct(66)) if (events.GetPhaseMask() & PHASE_ONE_MASK && !HealthAbovePct(66))
{ {
events.SetPhase(PHASE_TWO); events.SetPhase(PHASE_TWO);
Talk(SAY_PHASE2);
events.DelayEvents(8000); events.DelayEvents(8000);
DoCast(me, SPELL_THUNDERING_STOMP); DoCast(me, SPELL_THUNDERING_STOMP);
events.ScheduleEvent(EVENT_JUMP, 1500); events.ScheduleEvent(EVENT_JUMP, 1500);
@@ -143,6 +147,7 @@ class boss_garfrost : public CreatureScript
if (events.GetPhaseMask() & PHASE_TWO_MASK && !HealthAbovePct(33)) if (events.GetPhaseMask() & PHASE_TWO_MASK && !HealthAbovePct(33))
{ {
events.SetPhase(PHASE_THREE); events.SetPhase(PHASE_THREE);
Talk(SAY_PHASE3);
events.DelayEvents(8000); events.DelayEvents(8000);
DoCast(me, SPELL_THUNDERING_STOMP); DoCast(me, SPELL_THUNDERING_STOMP);
events.ScheduleEvent(EVENT_JUMP, 1500); events.ScheduleEvent(EVENT_JUMP, 1500);
@@ -199,7 +204,10 @@ class boss_garfrost : public CreatureScript
{ {
case EVENT_THROW_SARONITE: case EVENT_THROW_SARONITE:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
Talk(SAY_THROW_SARONITE);
DoCast(target, SPELL_THROW_SARONITE); DoCast(target, SPELL_THROW_SARONITE);
}
events.ScheduleEvent(EVENT_THROW_SARONITE, urand(12500, 20000)); events.ScheduleEvent(EVENT_THROW_SARONITE, urand(12500, 20000));
break; break;
case EVENT_CHILLING_WAVE: case EVENT_CHILLING_WAVE:
@@ -208,7 +216,10 @@ class boss_garfrost : public CreatureScript
break; break;
case EVENT_DEEP_FREEZE: case EVENT_DEEP_FREEZE:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
Talk(SAY_CAST_DEEP_FREEZE);
DoCast(target, SPELL_DEEP_FREEZE); DoCast(target, SPELL_DEEP_FREEZE);
}
events.ScheduleEvent(EVENT_DEEP_FREEZE, 35000, 0, PHASE_THREE); events.ScheduleEvent(EVENT_DEEP_FREEZE, 35000, 0, PHASE_THREE);
break; break;
case EVENT_JUMP: case EVENT_JUMP: