mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-28 12:52:25 +01:00
Scripts/BF: The Maker rewritten to EventMap
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
|
||||
* Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
@@ -16,13 +15,6 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_The_Maker
|
||||
SD%Complete: 80
|
||||
SDComment: Mind control no support
|
||||
SDCategory: Hellfire Citadel, Blood Furnace
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "blood_furnace.h"
|
||||
@@ -42,6 +34,14 @@ enum Spells
|
||||
SPELL_DOMINATION = 25772
|
||||
};
|
||||
|
||||
enum Events
|
||||
{
|
||||
EVENT_ACID_SPRAY = 1,
|
||||
EVENT_EXPLODING_BREAKER,
|
||||
EVENT_DOMINATION,
|
||||
EVENT_KNOCKDOWN
|
||||
};
|
||||
|
||||
class boss_the_maker : public CreatureScript
|
||||
{
|
||||
public:
|
||||
@@ -51,24 +51,15 @@ class boss_the_maker : public CreatureScript
|
||||
{
|
||||
boss_the_makerAI(Creature* creature) : BossAI(creature, DATA_THE_MAKER) { }
|
||||
|
||||
uint32 AcidSpray_Timer;
|
||||
uint32 ExplodingBreaker_Timer;
|
||||
uint32 Domination_Timer;
|
||||
uint32 Knockdown_Timer;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
_Reset();
|
||||
AcidSpray_Timer = 15000;
|
||||
ExplodingBreaker_Timer = 6000;
|
||||
Domination_Timer = 120000;
|
||||
Knockdown_Timer = 10000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
_EnterCombat();
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
events.ScheduleEvent(EVENT_ACID_SPRAY, 15000);
|
||||
events.ScheduleEvent(EVENT_EXPLODING_BREAKER, 6000);
|
||||
events.ScheduleEvent(EVENT_DOMINATION, 120000);
|
||||
events.ScheduleEvent(EVENT_KNOCKDOWN, 10000);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* who) override
|
||||
@@ -83,49 +74,31 @@ class boss_the_maker : public CreatureScript
|
||||
Talk(SAY_DIE);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
void ExecuteEvent(uint32 eventId) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
if (AcidSpray_Timer <= diff)
|
||||
switch (eventId)
|
||||
{
|
||||
DoCastVictim(SPELL_ACID_SPRAY);
|
||||
AcidSpray_Timer = 15000 + rand32() % 8000;
|
||||
case EVENT_ACID_SPRAY:
|
||||
DoCastVictim(SPELL_ACID_SPRAY);
|
||||
events.ScheduleEvent(EVENT_ACID_SPRAY, urand(15000, 23000));
|
||||
break;
|
||||
case EVENT_EXPLODING_BREAKER:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 30.0f, true))
|
||||
DoCast(target, SPELL_EXPLODING_BREAKER);
|
||||
events.ScheduleEvent(EVENT_EXPLODING_BREAKER, urand(4000, 12000));
|
||||
break;
|
||||
case EVENT_DOMINATION:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
|
||||
DoCast(target, SPELL_DOMINATION);
|
||||
events.ScheduleEvent(EVENT_DOMINATION, 120000);
|
||||
break;
|
||||
case EVENT_KNOCKDOWN:
|
||||
DoCastVictim(SPELL_KNOCKDOWN);
|
||||
events.ScheduleEvent(EVENT_KNOCKDOWN, urand(4000, 12000));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
else
|
||||
AcidSpray_Timer -=diff;
|
||||
|
||||
if (ExplodingBreaker_Timer <= diff)
|
||||
{
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
DoCast(target, SPELL_EXPLODING_BREAKER);
|
||||
ExplodingBreaker_Timer = 4000 + rand32() % 8000;
|
||||
}
|
||||
else
|
||||
ExplodingBreaker_Timer -=diff;
|
||||
|
||||
/* // Disabled until Core Support for mind control
|
||||
if (domination_timer_timer <= diff)
|
||||
{
|
||||
Unit* target;
|
||||
target = SelectUnit(SELECT_TARGET_RANDOM, 0);
|
||||
|
||||
DoCast(target, SPELL_DOMINATION);
|
||||
|
||||
domination_timer = 120000;
|
||||
} else domination_timer -=diff;
|
||||
*/
|
||||
|
||||
if (Knockdown_Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_KNOCKDOWN);
|
||||
Knockdown_Timer = 4000 + rand32() % 8000;
|
||||
}
|
||||
else
|
||||
Knockdown_Timer -=diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -139,4 +112,3 @@ void AddSC_boss_the_maker()
|
||||
{
|
||||
new boss_the_maker();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user