Merge pull request #4965 from Bootz/master

Script cleanup MoltenCore
This commit is contained in:
Jorge
2012-01-26 01:10:47 -08:00
10 changed files with 199 additions and 183 deletions

View File

@@ -30,16 +30,19 @@ EndContentData */
#include "ScriptPCH.h"
#include "ScriptedSimpleAI.h"
#define SPELL_CONE_OF_FIRE 19630
#define SPELL_BITE 19771
enum Spells
{
SPELL_CONE_OF_FIRE = 19630,
SPELL_BITE = 19771,
//Random Debuff (each hound has only one of these)
#define SPELL_GROUND_STOMP 19364
#define SPELL_ANCIENT_DREAD 19365
#define SPELL_CAUTERIZING_FLAMES 19366
#define SPELL_WITHERING_HEAT 19367
#define SPELL_ANCIENT_DESPAIR 19369
#define SPELL_ANCIENT_HYSTERIA 19372
//Random Debuff (each hound has only one of these)
SPELL_GROUND_STOMP = 19364,
SPELL_ANCIENT_DREAD = 19365,
SPELL_CAUTERIZING_FLAMES = 19366,
SPELL_WITHERING_HEAT = 19367,
SPELL_ANCIENT_DESPAIR = 19369,
SPELL_ANCIENT_HYSTERIA = 19372
};
class mob_ancient_core_hound : public CreatureScript
{
@@ -75,7 +78,6 @@ public:
return ai;
}
};
void AddSC_molten_core()

View File

@@ -43,7 +43,6 @@ public:
player->AddAura(SPELL_BLESSING_OF_BLACKFATHOM, player);
return true;
}
};
class go_blackfathom_fire : public GameObjectScript
@@ -64,7 +63,6 @@ public:
}
return false;
}
};
class npc_blackfathom_deeps_event : public CreatureScript
@@ -92,9 +90,9 @@ public:
InstanceScript* instance;
uint32 uiRavageTimer;
uint32 uiFrostNovaTimer;
uint32 uiFrostBoltVolleyTimer;
uint32 ravageTimer;
uint32 frostNovaTimer;
uint32 frostBoltVolleyTimer;
bool bFlee;
@@ -102,9 +100,9 @@ public:
{
bFlee = false;
uiRavageTimer = urand(5000, 8000);
uiFrostNovaTimer = urand(9000, 12000);
uiFrostBoltVolleyTimer = urand(2000, 4000);
ravageTimer = urand(5000, 8000);
frostNovaTimer = urand(9000, 12000);
frostBoltVolleyTimer = urand(2000, 4000);
}
void AttackPlayer()
@@ -131,7 +129,7 @@ public:
}
}
void UpdateAI(const uint32 uiDiff)
void UpdateAI(const uint32 diff)
{
if (!UpdateVictim())
return;
@@ -140,11 +138,11 @@ public:
{
case NPC_AKU_MAI_SNAPJAW:
{
if (uiRavageTimer <= uiDiff)
if (ravageTimer <= diff)
{
DoCast(me->getVictim(), SPELL_RAVAGE);
uiRavageTimer = urand(9000, 14000);
} else uiRavageTimer -= uiDiff;
ravageTimer = urand(9000, 14000);
} else ravageTimer -= diff;
break;
}
case NPC_MURKSHALLOW_SOFTSHELL:
@@ -159,20 +157,23 @@ public:
}
case NPC_AKU_MAI_SERVANT:
{
if (uiFrostBoltVolleyTimer <= uiDiff)
if (frostBoltVolleyTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
if (target)
DoCast(target, SPELL_FROST_BOLT_VOLLEY);
}
uiFrostBoltVolleyTimer = urand(5000, 8000);
} else uiFrostBoltVolleyTimer -= uiDiff;
if (uiFrostNovaTimer <= uiDiff)
frostBoltVolleyTimer = urand(5000, 8000);
}
else frostBoltVolleyTimer -= diff;
if (frostNovaTimer <= diff)
{
DoCastAOE(SPELL_FROST_NOVA, false);
uiFrostNovaTimer = urand(25000, 30000);
} else uiFrostNovaTimer -= uiDiff;
frostNovaTimer = urand(25000, 30000);
}
else frostNovaTimer -= diff;
break;
}
}
@@ -187,7 +188,6 @@ public:
instance->SetData(DATA_EVENT, instance->GetData(DATA_EVENT) + 1);
}
};
};
enum eMorridune
@@ -201,12 +201,12 @@ class npc_morridune : public CreatureScript
public:
npc_morridune() : CreatureScript("npc_morridune") { }
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*uiSender*/, uint32 uiAction)
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*Sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
switch (uiAction)
switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
case GOSSIP_ACTION_INFO_DEF + 1:
player->TeleportTo(1, 9952.239f, 2284.277f, 1341.394f, 1.595f);
player->CLOSE_GOSSIP_MENU();
break;
@@ -216,7 +216,7 @@ public:
bool OnGossipHello(Player* player, Creature* creature)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_MORRIDUNE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_MORRIDUNE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
return true;
@@ -250,7 +250,6 @@ public:
}
}
};
};
void AddSC_blackfathom_deeps()

View File

@@ -36,19 +36,19 @@ public:
struct boss_aku_maiAI : public ScriptedAI
{
boss_aku_maiAI(Creature* c) : ScriptedAI(c)
boss_aku_maiAI(Creature* creature) : ScriptedAI(creature)
{
instance = c->GetInstanceScript();
instance = creature->GetInstanceScript();
}
uint32 uiPoisonCloudTimer;
uint32 poisonCloudTimer;
bool bIsEnraged;
InstanceScript* instance;
void Reset()
{
uiPoisonCloudTimer = urand(5000, 9000);
poisonCloudTimer = urand(5000, 9000);
bIsEnraged = false;
if (instance)
instance->SetData(TYPE_AKU_MAI, NOT_STARTED);
@@ -71,11 +71,11 @@ public:
if (!UpdateVictim())
return;
if (uiPoisonCloudTimer < diff)
if (poisonCloudTimer < diff)
{
DoCastVictim(SPELL_POISON_CLOUD);
uiPoisonCloudTimer = urand(25000, 50000);
} else uiPoisonCloudTimer -= diff;
poisonCloudTimer = urand(25000, 50000);
} else poisonCloudTimer -= diff;
if (!bIsEnraged && HealthBelowPct(30))
{
@@ -86,7 +86,6 @@ public:
DoMeleeAttackIfReady();
}
};
};
void AddSC_boss_aku_mai()

View File

@@ -35,18 +35,18 @@ public:
struct boss_gelihastAI : public ScriptedAI
{
boss_gelihastAI(Creature* c) : ScriptedAI(c)
boss_gelihastAI(Creature* creature) : ScriptedAI(creature)
{
instance = c->GetInstanceScript();
instance = creature->GetInstanceScript();
}
uint32 uiNetTimer;
uint32 netTimer;
InstanceScript* instance;
void Reset()
{
uiNetTimer = urand(2000, 4000);
netTimer = urand(2000, 4000);
if (instance)
instance->SetData(TYPE_GELIHAST, NOT_STARTED);
}
@@ -68,16 +68,15 @@ public:
if (!UpdateVictim())
return;
if (uiNetTimer < diff)
if (netTimer < diff)
{
DoCastVictim(SPELL_NET);
uiNetTimer = urand(4000, 7000);
} else uiNetTimer -= diff;
netTimer = urand(4000, 7000);
} else netTimer -= diff;
DoMeleeAttackIfReady();
}
};
};
void AddSC_boss_gelihast()

View File

@@ -44,20 +44,20 @@ public:
struct boss_kelrisAI : public ScriptedAI
{
boss_kelrisAI(Creature* c) : ScriptedAI(c)
boss_kelrisAI(Creature* creature) : ScriptedAI(creature)
{
instance = c->GetInstanceScript();
instance = creature->GetInstanceScript();
}
uint32 uiMindBlastTimer;
uint32 uiSleepTimer;
uint32 mindBlastTimer;
uint32 sleepTimer;
InstanceScript* instance;
void Reset()
{
uiMindBlastTimer = urand(2000, 5000);
uiSleepTimer = urand(9000, 12000);
mindBlastTimer = urand(2000, 5000);
sleepTimer = urand(9000, 12000);
if (instance)
instance->SetData(TYPE_KELRIS, NOT_STARTED);
}
@@ -81,26 +81,25 @@ public:
if (!UpdateVictim())
return;
if (uiMindBlastTimer < diff)
if (mindBlastTimer < diff)
{
DoCastVictim(SPELL_MIND_BLAST);
uiMindBlastTimer = urand(7000, 9000);
} else uiMindBlastTimer -= diff;
mindBlastTimer = urand(7000, 9000);
} else mindBlastTimer -= diff;
if (uiSleepTimer < diff)
if (sleepTimer < diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
{
DoScriptText(SAY_SLEEP, me);
DoCast(target, SPELL_SLEEP);
}
uiSleepTimer = urand(15000, 20000);
} else uiSleepTimer -= diff;
sleepTimer = urand(15000, 20000);
} else sleepTimer -= diff;
DoMeleeAttackIfReady();
}
};
};
void AddSC_boss_kelris()

View File

@@ -65,33 +65,33 @@ public:
{
instance_blackfathom_deeps_InstanceMapScript(Map* map) : InstanceScript(map) {}
uint64 m_uiTwilightLordKelrisGUID;
uint64 m_uiShrine1GUID;
uint64 m_uiShrine2GUID;
uint64 m_uiShrine3GUID;
uint64 m_uiShrine4GUID;
uint64 m_uiShrineOfGelihastGUID;
uint64 m_uiAltarOfTheDeepsGUID;
uint64 m_uiMainDoorGUID;
uint64 twilightLordKelrisGUID;
uint64 shrine1GUID;
uint64 shrine2GUID;
uint64 shrine3GUID;
uint64 shrine4GUID;
uint64 shrineOfGelihastGUID;
uint64 altarOfTheDeepsGUID;
uint64 mainDoorGUID;
uint8 m_auiEncounter[MAX_ENCOUNTER];
uint8 m_uiCountFires;
uint8 uiDeathTimes;
uint8 encounter[MAX_ENCOUNTER];
uint8 countFires;
uint8 deathTimes;
void Initialize()
{
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
memset(&encounter, 0, sizeof(encounter));
m_uiTwilightLordKelrisGUID = 0;
m_uiShrine1GUID = 0;
m_uiShrine2GUID = 0;
m_uiShrine3GUID = 0;
m_uiShrine4GUID = 0;
m_uiShrineOfGelihastGUID = 0;
m_uiAltarOfTheDeepsGUID = 0;
m_uiMainDoorGUID = 0;
m_uiCountFires = 0;
uiDeathTimes = 0;
twilightLordKelrisGUID = 0;
shrine1GUID = 0;
shrine2GUID = 0;
shrine3GUID = 0;
shrine4GUID = 0;
shrineOfGelihastGUID = 0;
altarOfTheDeepsGUID = 0;
mainDoorGUID = 0;
countFires = 0;
deathTimes = 0;
}
void OnCreatureCreate(Creature* creature)
@@ -99,7 +99,7 @@ public:
switch (creature->GetEntry())
{
case NPC_TWILIGHT_LORD_KELRIS:
m_uiTwilightLordKelrisGUID = creature->GetGUID();
twilightLordKelrisGUID = creature->GetGUID();
break;
case NPC_LORGUS_JETT:
creature->SetHomePosition(LorgusPosition[urand(0, 3)]);
@@ -112,150 +112,149 @@ public:
switch (go->GetEntry())
{
case GO_FIRE_OF_AKU_MAI_1:
m_uiShrine1GUID = go->GetGUID();
shrine1GUID = go->GetGUID();
break;
case GO_FIRE_OF_AKU_MAI_2:
m_uiShrine2GUID = go->GetGUID();
shrine2GUID = go->GetGUID();
break;
case GO_FIRE_OF_AKU_MAI_3:
m_uiShrine3GUID = go->GetGUID();
shrine3GUID = go->GetGUID();
break;
case GO_FIRE_OF_AKU_MAI_4:
m_uiShrine4GUID = go->GetGUID();
shrine4GUID = go->GetGUID();
break;
case GO_SHRINE_OF_GELIHAST:
m_uiShrineOfGelihastGUID = go->GetGUID();
if (m_auiEncounter[0] != DONE)
shrineOfGelihastGUID = go->GetGUID();
if (encounter[0] != DONE)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
break;
case GO_ALTAR_OF_THE_DEEPS:
m_uiAltarOfTheDeepsGUID = go->GetGUID();
if (m_auiEncounter[3] != DONE)
altarOfTheDeepsGUID = go->GetGUID();
if (encounter[3] != DONE)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
break;
case GO_AKU_MAI_DOOR:
if (m_auiEncounter[2] == DONE)
if (encounter[2] == DONE)
HandleGameObject(0, true, go);
m_uiMainDoorGUID = go->GetGUID();
mainDoorGUID = go->GetGUID();
break;
}
}
void SetData(uint32 uiType, uint32 uiData)
void SetData(uint32 type, uint32 data)
{
switch (uiType)
switch (type)
{
case TYPE_GELIHAST:
m_auiEncounter[0] = uiData;
if (uiData == DONE)
if (GameObject* go = instance->GetGameObject(m_uiShrineOfGelihastGUID))
encounter[0] = data;
if (data == DONE)
if (GameObject* go = instance->GetGameObject(shrineOfGelihastGUID))
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
break;
case TYPE_AKU_MAI:
m_auiEncounter[3] = uiData;
if (uiData == DONE)
if (GameObject* go = instance->GetGameObject(m_uiAltarOfTheDeepsGUID))
encounter[3] = data;
if (data == DONE)
if (GameObject* go = instance->GetGameObject(altarOfTheDeepsGUID))
{
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
go->SummonCreature(NPC_MORRIDUNE, SpawnsLocation[4], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
}
break;
case DATA_FIRE:
m_uiCountFires = uiData;
switch (m_uiCountFires)
countFires = data;
switch (countFires)
{
case 1:
if (GameObject* pGO = instance->GetGameObject(m_uiShrine1GUID))
if (GameObject* go = instance->GetGameObject(shrine1GUID))
{
pGO->SummonCreature(NPC_AKU_MAI_SNAPJAW, SpawnsLocation[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
pGO->SummonCreature(NPC_AKU_MAI_SNAPJAW, SpawnsLocation[1], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
pGO->SummonCreature(NPC_AKU_MAI_SNAPJAW, SpawnsLocation[2], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
pGO->SummonCreature(NPC_AKU_MAI_SNAPJAW, SpawnsLocation[3], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_AKU_MAI_SNAPJAW, SpawnsLocation[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_AKU_MAI_SNAPJAW, SpawnsLocation[1], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_AKU_MAI_SNAPJAW, SpawnsLocation[2], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_AKU_MAI_SNAPJAW, SpawnsLocation[3], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
}
break;
case 2:
if (GameObject* pGO = instance->GetGameObject(m_uiShrine1GUID))
if (GameObject* go = instance->GetGameObject(shrine1GUID))
{
for (uint8 i = 0; i < 2; ++i)
{
pGO->SummonCreature(NPC_MURKSHALLOW_SOFTSHELL, SpawnsLocation[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
pGO->SummonCreature(NPC_MURKSHALLOW_SOFTSHELL, SpawnsLocation[1], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
pGO->SummonCreature(NPC_MURKSHALLOW_SOFTSHELL, SpawnsLocation[2], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
pGO->SummonCreature(NPC_MURKSHALLOW_SOFTSHELL, SpawnsLocation[3], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_MURKSHALLOW_SOFTSHELL, SpawnsLocation[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_MURKSHALLOW_SOFTSHELL, SpawnsLocation[1], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_MURKSHALLOW_SOFTSHELL, SpawnsLocation[2], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_MURKSHALLOW_SOFTSHELL, SpawnsLocation[3], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
}
}
break;
case 3:
if (GameObject* pGO = instance->GetGameObject(m_uiShrine1GUID))
if (GameObject* go = instance->GetGameObject(shrine1GUID))
{
pGO->SummonCreature(NPC_AKU_MAI_SERVANT, SpawnsLocation[1], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
pGO->SummonCreature(NPC_AKU_MAI_SERVANT, SpawnsLocation[2], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_AKU_MAI_SERVANT, SpawnsLocation[1], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_AKU_MAI_SERVANT, SpawnsLocation[2], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
}
break;
case 4:
if (GameObject* pGO = instance->GetGameObject(m_uiShrine1GUID))
if (GameObject* go = instance->GetGameObject(shrine1GUID))
{
pGO->SummonCreature(NPC_BARBED_CRUSTACEAN, SpawnsLocation[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
pGO->SummonCreature(NPC_BARBED_CRUSTACEAN, SpawnsLocation[1], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
pGO->SummonCreature(NPC_BARBED_CRUSTACEAN, SpawnsLocation[2], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
pGO->SummonCreature(NPC_BARBED_CRUSTACEAN, SpawnsLocation[3], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_BARBED_CRUSTACEAN, SpawnsLocation[0], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_BARBED_CRUSTACEAN, SpawnsLocation[1], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_BARBED_CRUSTACEAN, SpawnsLocation[2], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
go->SummonCreature(NPC_BARBED_CRUSTACEAN, SpawnsLocation[3], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
}
break;
}
break;
case DATA_EVENT:
uiDeathTimes = uiData;
if (uiDeathTimes == 18)
HandleGameObject(m_uiMainDoorGUID, true);
deathTimes = data;
if (deathTimes == 18)
HandleGameObject(mainDoorGUID, true);
break;
}
}
uint32 GetData(uint32 uiType)
uint32 GetData(uint32 type)
{
switch (uiType)
switch (type)
{
case TYPE_GELIHAST:
return m_auiEncounter[0];
return encounter[0];
case TYPE_KELRIS:
return m_auiEncounter[1];
return encounter[1];
case TYPE_SHRINE:
return m_auiEncounter[2];
return encounter[2];
case TYPE_AKU_MAI:
return m_auiEncounter[3];
return encounter[3];
case DATA_FIRE:
return m_uiCountFires;
return countFires;
case DATA_EVENT:
return uiDeathTimes;
return deathTimes;
}
return 0;
}
uint64 GetData64(uint32 uiData)
uint64 GetData64(uint32 data)
{
switch (uiData)
switch (data)
{
case DATA_TWILIGHT_LORD_KELRIS:
return m_uiTwilightLordKelrisGUID;
return twilightLordKelrisGUID;
case DATA_SHRINE1:
return m_uiShrine1GUID;
return shrine1GUID;
case DATA_SHRINE2:
return m_uiShrine2GUID;
return shrine2GUID;
case DATA_SHRINE3:
return m_uiShrine3GUID;
return shrine3GUID;
case DATA_SHRINE4:
return m_uiShrine4GUID;
return shrine4GUID;
case DATA_SHRINE_OF_GELIHAST:
return m_uiShrineOfGelihastGUID;
return shrineOfGelihastGUID;
case DATA_MAINDOOR:
return m_uiMainDoorGUID;
return mainDoorGUID;
}
return 0;
}
};
};
void AddSC_instance_blackfathom_deeps()

View File

@@ -25,9 +25,12 @@ EndScriptData */
#include "ScriptPCH.h"
#define SPELL_WRATH 21807
#define SPELL_ENTANGLINGROOTS 12747
#define SPELL_CORRUPT_FORCES 21968
enum Spells
{
SPELL_WRATH = 21807,
SPELL_ENTANGLINGROOTS = 12747,
SPELL_CORRUPT_FORCES = 21968
};
class celebras_the_cursed : public CreatureScript
{
@@ -41,7 +44,7 @@ public:
struct celebras_the_cursedAI : public ScriptedAI
{
celebras_the_cursedAI(Creature* c) : ScriptedAI(c) {}
celebras_the_cursedAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Wrath_Timer;
uint32 EntanglingRoots_Timer;
@@ -74,14 +77,16 @@ public:
if (target)
DoCast(target, SPELL_WRATH);
Wrath_Timer = 8000;
} else Wrath_Timer -= diff;
}
else Wrath_Timer -= diff;
//EntanglingRoots
if (EntanglingRoots_Timer <= diff)
{
DoCast(me->getVictim(), SPELL_ENTANGLINGROOTS);
EntanglingRoots_Timer = 20000;
} else EntanglingRoots_Timer -= diff;
}
else EntanglingRoots_Timer -= diff;
//CorruptForces
if (CorruptForces_Timer <= diff)
@@ -89,12 +94,12 @@ public:
me->InterruptNonMeleeSpells(false);
DoCast(me, SPELL_CORRUPT_FORCES);
CorruptForces_Timer = 20000;
} else CorruptForces_Timer -= diff;
}
else CorruptForces_Timer -= diff;
DoMeleeAttackIfReady();
}
};
};
void AddSC_boss_celebras_the_cursed()

View File

@@ -25,9 +25,12 @@ EndScriptData */
#include "ScriptPCH.h"
#define SPELL_KNOCKAWAY 18670
#define SPELL_TRAMPLE 5568
#define SPELL_LANDSLIDE 21808
enum Spells
{
SPELL_KNOCKAWAY = 18670,
SPELL_TRAMPLE = 5568,
SPELL_LANDSLIDE = 21808
};
class boss_landslide : public CreatureScript
{
@@ -41,7 +44,7 @@ public:
struct boss_landslideAI : public ScriptedAI
{
boss_landslideAI(Creature* c) : ScriptedAI(c) {}
boss_landslideAI(Creature* creature) : ScriptedAI(creature) {}
uint32 KnockAway_Timer;
uint32 Trample_Timer;
@@ -68,14 +71,16 @@ public:
{
DoCast(me->getVictim(), SPELL_KNOCKAWAY);
KnockAway_Timer = 15000;
} else KnockAway_Timer -= diff;
}
else KnockAway_Timer -= diff;
//Trample_Timer
if (Trample_Timer <= diff)
{
DoCast(me, SPELL_TRAMPLE);
Trample_Timer = 8000;
} else Trample_Timer -= diff;
}
else Trample_Timer -= diff;
//Landslide
if (HealthBelowPct(50))
@@ -85,13 +90,13 @@ public:
me->InterruptNonMeleeSpells(false);
DoCast(me, SPELL_LANDSLIDE);
Landslide_Timer = 60000;
} else Landslide_Timer -= diff;
}
else Landslide_Timer -= diff;
}
DoMeleeAttackIfReady();
}
};
};
void AddSC_boss_landslide()

View File

@@ -24,9 +24,11 @@ SDCategory: Maraudon
EndScriptData */
#include "ScriptPCH.h"
#define SPELL_TOXICVOLLEY 21687
#define SPELL_UPPERCUT 22916
enum Spells
{
SPELL_TOXICVOLLEY = 21687,
SPELL_UPPERCUT = 22916
};
class boss_noxxion : public CreatureScript
{
@@ -40,7 +42,7 @@ public:
struct boss_noxxionAI : public ScriptedAI
{
boss_noxxionAI(Creature* c) : ScriptedAI(c) {}
boss_noxxionAI(Creature* creature) : ScriptedAI(creature) {}
uint32 ToxicVolley_Timer;
uint32 Uppercut_Timer;
@@ -78,7 +80,8 @@ public:
me->SetDisplayId(11172);
Invisible = false;
//me->m_canMove = true;
} else if (Invisible)
}
else if (Invisible)
{
Invisible_Timer -= diff;
//Do nothing while invisible
@@ -94,14 +97,16 @@ public:
{
DoCast(me->getVictim(), SPELL_TOXICVOLLEY);
ToxicVolley_Timer = 9000;
} else ToxicVolley_Timer -= diff;
}
else ToxicVolley_Timer -= diff;
//Uppercut_Timer
if (Uppercut_Timer <= diff)
{
DoCast(me->getVictim(), SPELL_UPPERCUT);
Uppercut_Timer = 12000;
} else Uppercut_Timer -= diff;
}
else Uppercut_Timer -= diff;
//Adds_Timer
if (!Invisible && Adds_Timer <= diff)
@@ -122,12 +127,12 @@ public:
Invisible_Timer = 15000;
Adds_Timer = 40000;
} else Adds_Timer -= diff;
}
else Adds_Timer -= diff;
DoMeleeAttackIfReady();
}
};
};
void AddSC_boss_noxxion()

View File

@@ -25,10 +25,13 @@ EndScriptData */
#include "ScriptPCH.h"
#define SPELL_DUSTFIELD 21909
#define SPELL_BOULDER 21832
#define SPELL_THRASH 3391
#define SPELL_REPULSIVEGAZE 21869
enum Spells
{
SPELL_DUSTFIELD = 21909,
SPELL_BOULDER = 21832,
SPELL_THRASH = 3391,
SPELL_REPULSIVEGAZE = 21869
};
class boss_princess_theradras : public CreatureScript
{
@@ -42,7 +45,7 @@ public:
struct boss_ptheradrasAI : public ScriptedAI
{
boss_ptheradrasAI(Creature* c) : ScriptedAI(c) {}
boss_ptheradrasAI(Creature* creature) : ScriptedAI(creature) {}
uint32 Dustfield_Timer;
uint32 Boulder_Timer;
@@ -57,9 +60,7 @@ public:
RepulsiveGaze_Timer = 23000;
}
void EnterCombat(Unit* /*who*/)
{
}
void EnterCombat(Unit* /*who*/) {}
void JustDied(Unit* /*killer*/)
{
@@ -76,7 +77,8 @@ public:
{
DoCast(me, SPELL_DUSTFIELD);
Dustfield_Timer = 14000;
} else Dustfield_Timer -= diff;
}
else Dustfield_Timer -= diff;
//Boulder_Timer
if (Boulder_Timer <= diff)
@@ -86,26 +88,28 @@ public:
if (target)
DoCast(target, SPELL_BOULDER);
Boulder_Timer = 10000;
} else Boulder_Timer -= diff;
}
else Boulder_Timer -= diff;
//RepulsiveGaze_Timer
if (RepulsiveGaze_Timer <= diff)
{
DoCast(me->getVictim(), SPELL_REPULSIVEGAZE);
RepulsiveGaze_Timer = 20000;
} else RepulsiveGaze_Timer -= diff;
}
else RepulsiveGaze_Timer -= diff;
//Thrash_Timer
if (Thrash_Timer <= diff)
{
DoCast(me, SPELL_THRASH);
Thrash_Timer = 18000;
} else Thrash_Timer -= diff;
}
else Thrash_Timer -= diff;
DoMeleeAttackIfReady();
}
};
};
void AddSC_boss_ptheradras()