Update Script Sunwell/Kil Jaeden.

Fixes issue #291. Thanks Ille000.
Code layout.

Please also check the SQL proposed in comment 19 of issue #291.

--HG--
branch : trunk
This commit is contained in:
Trazom62
2010-05-27 21:23:25 +02:00
parent 452675e500
commit 19743316e0
6 changed files with 704 additions and 687 deletions
@@ -84,13 +84,6 @@ enum Spells
SPELL_BLAZE_BURN = 45246 SPELL_BLAZE_BURN = 45246
}; };
enum Creatures
{
GRAND_WARLOCK_ALYTHESS = 25166,
MOB_SHADOW_IMAGE = 25214,
LADY_SACROLASH = 25165
};
struct boss_sacrolashAI : public ScriptedAI struct boss_sacrolashAI : public ScriptedAI
{ {
boss_sacrolashAI(Creature *c) : ScriptedAI(c) boss_sacrolashAI(Creature *c) : ScriptedAI(c)
@@ -79,16 +79,6 @@ enum Spells
SPELL_CLOUD_SUMMON = 45884, SPELL_CLOUD_SUMMON = 45884,
}; };
enum Creatures
{
MOB_DEAD = 25268,
MOB_FLIGHT_LEFT = 25357,
MOB_FLIGHT_RIGHT = 25358,
MOB_DEATH_CLOUD = 25703,
MOB_VAPOR = 25265,
MOB_VAPOR_TRAIL = 25267,
};
enum PhaseFelmyst enum PhaseFelmyst
{ {
PHASE_NONE, PHASE_NONE,
@@ -1,18 +1,18 @@
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> /* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
/* ScriptData /* ScriptData
SDName: Boss_Kalecgos SDName: Boss_Kalecgos
@@ -24,7 +24,7 @@ EndScriptData */
#include "ScriptedPch.h" #include "ScriptedPch.h"
#include "sunwell_plateau.h" #include "sunwell_plateau.h"
enum Quotes enum Yells
{ {
//Kalecgos dragon form //Kalecgos dragon form
SAY_EVIL_AGGRO = -1580000, SAY_EVIL_AGGRO = -1580000,
@@ -47,10 +47,10 @@ enum Quotes
SAY_SATH_SPELL2 = -1580013, SAY_SATH_SPELL2 = -1580013,
SAY_SATH_SLAY1 = -1580014, SAY_SATH_SLAY1 = -1580014,
SAY_SATH_SLAY2 = -1580015, SAY_SATH_SLAY2 = -1580015,
SAY_SATH_ENRAGE = -1580016 SAY_SATH_ENRAGE = -1580016,
}; };
enum SpellIds enum Spells
{ {
AURA_SUNWELL_RADIANCE = 45769, AURA_SUNWELL_RADIANCE = 45769,
AURA_SPECTRAL_EXHAUSTION = 44867, AURA_SPECTRAL_EXHAUSTION = 44867,
@@ -76,16 +76,10 @@ enum SpellIds
SPELL_REVITALIZE = 45027 SPELL_REVITALIZE = 45027
}; };
enum Creatures
{
MOB_KALECGOS = 24850,
MOB_KALEC = 24891,
MOB_SATHROVARR = 24892
};
enum SWPActions enum SWPActions
{ {
DO_ENRAGE = 1, DO_ENRAGE = 1,
DO_BANISH = 2 DO_BANISH = 2,
}; };
#define GO_FAILED "You are unable to use this currently." #define GO_FAILED "You are unable to use this currently."
@@ -114,7 +108,7 @@ struct boss_kalecgosAI : public ScriptedAI
pInstance = c->GetInstanceData(); pInstance = c->GetInstanceData();
SathGUID = 0; SathGUID = 0;
DoorGUID = 0; DoorGUID = 0;
JustReseted = false; bJustReset = false;
me->setActive(true); me->setActive(true);
SpellEntry *TempSpell = GET_SPELL(SPELL_SPECTRAL_BLAST); SpellEntry *TempSpell = GET_SPELL(SPELL_SPECTRAL_BLAST);
if (TempSpell) if (TempSpell)
@@ -136,7 +130,7 @@ struct boss_kalecgosAI : public ScriptedAI
bool isFriendly; bool isFriendly;
bool isEnraged; bool isEnraged;
bool isBanished; bool isBanished;
bool JustReseted; bool bJustReset;
uint64 SathGUID; uint64 SathGUID;
uint64 DoorGUID; uint64 DoorGUID;
@@ -153,7 +147,7 @@ struct boss_kalecgosAI : public ScriptedAI
Sath->AI()->EnterEvadeMode(); Sath->AI()->EnterEvadeMode();
me->setFaction(14); me->setFaction(14);
if (!JustReseted)//first reset at create if (!bJustReset) //first reset at create
{ {
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE + UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE + UNIT_FLAG_NOT_SELECTABLE);
me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
@@ -178,7 +172,7 @@ struct boss_kalecgosAI : public ScriptedAI
void EnterEvadeMode() void EnterEvadeMode()
{ {
JustReseted = true; bJustReset = true;
me->SetVisibility(VISIBILITY_OFF); me->SetVisibility(VISIBILITY_OFF);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE + UNIT_FLAG_NOT_SELECTABLE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE + UNIT_FLAG_NOT_SELECTABLE);
ScriptedAI::EnterEvadeMode(); ScriptedAI::EnterEvadeMode();
@@ -223,16 +217,16 @@ struct boss_kalecgosAI : public ScriptedAI
} }
else else
{ {
if (JustReseted) if (bJustReset)
{ {
if (ResetTimer <= diff) if (ResetTimer <= diff)
{ {
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE + UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); me->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
me->SetVisibility(VISIBILITY_ON); me->SetVisibility(VISIBILITY_ON);
me->SetStandState(UNIT_STAND_STATE_SLEEP); me->SetStandState(UNIT_STAND_STATE_SLEEP);
ResetTimer = 10000; ResetTimer = 10000;
JustReseted = false; bJustReset = false;
} else ResetTimer -= diff; } else ResetTimer -= diff;
return; return;
} }
@@ -325,17 +319,16 @@ struct boss_kalecgosAI : public ScriptedAI
void MoveInLineOfSight(Unit *who) void MoveInLineOfSight(Unit *who)
{ {
if (JustReseted)//boss is invisible, don't attack if (bJustReset)//boss is invisible, don't attack
return; return;
if (!me->getVictim() && who->isTargetableForAttack() && (me->IsHostileTo(who))) if (!me->getVictim() && who->isTargetableForAttack() && (me->IsHostileTo(who)))
{ {
float attackRadius = me->GetAttackDistance(who); float attackRadius = me->GetAttackDistance(who);
if (me->IsWithinDistInMap(who, attackRadius)) if (me->IsWithinDistInMap(who, attackRadius))
{
AttackStart(who); AttackStart(who);
} }
} }
}
void DamageTaken(Unit *done_by, uint32 &damage) void DamageTaken(Unit *done_by, uint32 &damage)
{ {
File diff suppressed because it is too large Load Diff
@@ -70,19 +70,6 @@ enum Spells
SPELL_BLACKHOLE_GROW = 46228 SPELL_BLACKHOLE_GROW = 46228
}; };
enum Creatures
{
CREATURE_DARKNESS = 25879,
CREATURE_DARK_FIENDS = 25744,
CREATURE_BERSERKER = 25798,
CREATURE_FURY_MAGE = 25799,
CREATURE_VOID_SENTINEL = 25772,
CREATURE_VOID_SPAWN = 25824,
CREATURE_BLACK_HOLE = 25855,
BOSS_MURU = 25741,
BOSS_ENTROPIUS = 25840
};
enum BossTimers{ enum BossTimers{
TIMER_DARKNESS = 0, TIMER_DARKNESS = 0,
TIMER_HUMANOIDES = 1, TIMER_HUMANOIDES = 1,
@@ -6,32 +6,90 @@
#define DEF_SUNWELLPLATEAU_H #define DEF_SUNWELLPLATEAU_H
/*** Encounters ***/ /*** Encounters ***/
#define DATA_KALECGOS_EVENT 1 enum Data
#define DATA_BRUTALLUS_EVENT 2 {
#define DATA_FELMYST_EVENT 3 DATA_KALECGOS_EVENT,
#define DATA_EREDAR_TWINS_EVENT 4 DATA_BRUTALLUS_EVENT,
#define DATA_MURU_EVENT 5 DATA_FELMYST_EVENT,
#define DATA_KILJAEDEN_EVENT 6 DATA_EREDAR_TWINS_EVENT,
DATA_MURU_EVENT,
DATA_KILJAEDEN_EVENT,
};
/*** Creatures ***/ enum Data64
#define DATA_KALECGOS_DRAGON 7 {
#define DATA_KALECGOS_HUMAN 8 /*** Creatures ***/
#define DATA_SATHROVARR 9 DATA_KALECGOS_DRAGON,
#define DATA_BRUTALLUS 10 DATA_KALECGOS_HUMAN,
#define DATA_MADRIGOSA 11 DATA_SATHROVARR,
#define DATA_FELMYST 12 DATA_BRUTALLUS,
#define DATA_ALYTHESS 13 DATA_MADRIGOSA,
#define DATA_SACROLASH 14 DATA_FELMYST,
#define DATA_MURU 15 DATA_ALYTHESS,
#define DATA_KILJAEDEN 16 DATA_SACROLASH,
#define DATA_KILJAEDEN_CONTROLLER 17 DATA_MURU,
#define DATA_ANVEENA 18 DATA_KILJAEDEN,
#define DATA_KALECGOS_KJ 19 DATA_KILJAEDEN_CONTROLLER,
DATA_ANVEENA,
DATA_KALECGOS_KJ,
/*** GameObjects ***/ /*** GameObjects ***/
#define DATA_GO_FORCEFIELD 20 DATA_GO_FORCEFIELD,
DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1,
DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_2,
DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_3,
DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4,
/*** Misc ***/
DATA_PLAYER_GUID,
};
enum Creatures
{
BOSS_MURU = 25741,
BOSS_ENTROPIUS = 25840,
MOB_KALECGOS = 24850,
MOB_KALEC = 24891,
MOB_SATHROVARR = 24892,
MOB_DEAD = 25268,
MOB_FLIGHT_LEFT = 25357,
MOB_FLIGHT_RIGHT = 25358,
MOB_DEATH_CLOUD = 25703,
MOB_VAPOR = 25265,
MOB_VAPOR_TRAIL = 25267,
MOB_GRAND_WARLOCK_ALYTHESS = 25166,
MOB_SHADOW_IMAGE = 25214,
MOB_LADY_SACROLASH = 25165,
CREATURE_ANVEENA = 26046, // Embodiment of the Sunwell
CREATURE_KALECGOS = 25319, // Helps the raid throughout the fight
CREATURE_PROPHET = 26246, // Outro
CREATURE_KILJAEDEN = 25315, // Give it to 'em KJ!
CREATURE_HAND_OF_THE_DECEIVER = 25588, // Adds found before KJ emerges
CREATURE_FELFIRE_PORTAL = 25603, // Portal spawned be Hand of the Deceivers
CREATURE_VOLATILE_FELFIRE_FIEND = 25598, // Fiends spawned by the above portal
CREATURE_ARMAGEDDON_TARGET = 25735, // This mob casts meteor on itself.. I think
CREATURE_SHIELD_ORB = 25502, // Shield orbs circle the room raining shadow bolts on raid
CREATURE_THE_CORE_OF_ENTROPIUS = 26262, // Used in the ending cinematic?
CREATURE_POWER_OF_THE_BLUE_DRAGONFLIGHT = 25653, // NPC that players possess when using the Orb of the Blue Dragonflight
CREATURE_SPIKE_TARGET1 = 30598, // Should summon these under Shadow Spike Channel on targets place
CREATURE_SPIKE_TARGET2 = 30614,
CREATURE_SINISTER_REFLECTION = 25708, // Sinister Relection spawnd on Phase swichtes
CREATURE_DARKNESS = 25879,
CREATURE_DARK_FIENDS = 25744,
CREATURE_BERSERKER = 25798,
CREATURE_FURY_MAGE = 25799,
CREATURE_VOID_SENTINEL = 25772,
CREATURE_VOID_SPAWN = 25824,
CREATURE_BLACK_HOLE = 25855,
};
enum GameObjects
{
GAMEOBJECT_ORB_OF_THE_BLUE_DRAGONFLIGHT = 188415,
};
/*** Misc ***/
#define DATA_PLAYER_GUID 21
#endif #endif