refactor(DB/SAI): Move Chromatic Elite Guard script to SAI (#9194)

This commit is contained in:
Skjalf
2021-11-17 22:33:41 -03:00
committed by GitHub
parent 2bcd78041e
commit 62f93f9da1
2 changed files with 9 additions and 80 deletions

View File

@@ -0,0 +1,9 @@
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1636936439824516200');
UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = 10814;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 10814) AND (`source_type` = 0) AND (`id` IN (0, 1, 2));
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(10814, 0, 0, 0, 0, 0, 100, 2, 5000, 12800, 13000, 13000, 0, 11, 15708, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Chromatic Elite Guard - In Combat - Cast \'Mortal Strike\' (Normal Dungeon)'),
(10814, 0, 1, 0, 0, 0, 100, 2, 5600, 15400, 11200, 25700, 0, 11, 16790, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Chromatic Elite Guard - In Combat - Cast \'Knockdown\' (Normal Dungeon)'),
(10814, 0, 2, 0, 0, 0, 100, 2, 12000, 20800, 9000, 9000, 0, 11, 15580, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Chromatic Elite Guard - In Combat - Cast \'Strike\' (Normal Dungeon)');

View File

@@ -39,20 +39,6 @@ enum Events
EVENT_RAGE
};
enum ChromaticEliteGuardEvents
{
EVENT_MORTAL_STRIKE = 1,
EVENT_KNOCKDOWN = 2,
EVENT_STRIKE = 3
};
enum ChromaticEliteGuardSpells
{
SPELL_MORTAL_STRIKE = 15708,
SPELL_KNOCKDOWN = 16790,
SPELL_STRIKE = 15580
};
class boss_drakkisath : public CreatureScript
{
public:
@@ -62,11 +48,6 @@ public:
{
boss_drakkisathAI(Creature* creature) : BossAI(creature, DATA_GENERAL_DRAKKISATH) { }
void Reset() override
{
_Reset();
}
void EnterCombat(Unit* /*who*/) override
{
_EnterCombat();
@@ -78,11 +59,6 @@ public:
events.ScheduleEvent(EVENT_RAGE, 1000);
}
void JustDied(Unit* /*killer*/) override
{
_JustDied();
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
@@ -133,63 +109,7 @@ public:
}
};
class chromatic_elite_guard : public CreatureScript
{
public:
chromatic_elite_guard() : CreatureScript("chromatic_elite_guard") { }
struct chromatic_elite_guardAI : public ScriptedAI
{
chromatic_elite_guardAI(Creature* creature) : ScriptedAI(creature) { }
EventMap _events;
void EnterCombat(Unit* /*who*/) override
{
_events.Reset();
_events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(5000, 12800));
_events.ScheduleEvent(EVENT_KNOCKDOWN, urand(5600, 15400));
_events.ScheduleEvent(EVENT_STRIKE, urand(12000, 20800));
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
_events.Update(diff);
while (uint32 const eventId = _events.ExecuteEvent())
{
switch (eventId)
{
case EVENT_MORTAL_STRIKE:
DoCastVictim(SPELL_MORTAL_STRIKE);
_events.ScheduleEvent(EVENT_MORTAL_STRIKE, 13000);
break;
case EVENT_KNOCKDOWN:
DoCastVictim(SPELL_KNOCKDOWN);
_events.ScheduleEvent(EVENT_KNOCKDOWN, urand(11200, 25700));
break;
case EVENT_STRIKE:
DoCastVictim(SPELL_STRIKE);
_events.ScheduleEvent(EVENT_STRIKE, 9000);
break;
}
}
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return new chromatic_elite_guardAI(creature);
}
};
void AddSC_boss_drakkisath()
{
new boss_drakkisath();
new chromatic_elite_guard();
}