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
};
enum Creatures
{
GRAND_WARLOCK_ALYTHESS = 25166,
MOB_SHADOW_IMAGE = 25214,
LADY_SACROLASH = 25165
};
struct boss_sacrolashAI : public ScriptedAI
{
boss_sacrolashAI(Creature *c) : ScriptedAI(c)
@@ -79,16 +79,6 @@ enum Spells
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
{
PHASE_NONE,
@@ -24,7 +24,7 @@ EndScriptData */
#include "ScriptedPch.h"
#include "sunwell_plateau.h"
enum Quotes
enum Yells
{
//Kalecgos dragon form
SAY_EVIL_AGGRO = -1580000,
@@ -47,10 +47,10 @@ enum Quotes
SAY_SATH_SPELL2 = -1580013,
SAY_SATH_SLAY1 = -1580014,
SAY_SATH_SLAY2 = -1580015,
SAY_SATH_ENRAGE = -1580016
SAY_SATH_ENRAGE = -1580016,
};
enum SpellIds
enum Spells
{
AURA_SUNWELL_RADIANCE = 45769,
AURA_SPECTRAL_EXHAUSTION = 44867,
@@ -76,16 +76,10 @@ enum SpellIds
SPELL_REVITALIZE = 45027
};
enum Creatures
{
MOB_KALECGOS = 24850,
MOB_KALEC = 24891,
MOB_SATHROVARR = 24892
};
enum SWPActions
{
DO_ENRAGE = 1,
DO_BANISH = 2
DO_BANISH = 2,
};
#define GO_FAILED "You are unable to use this currently."
@@ -114,7 +108,7 @@ struct boss_kalecgosAI : public ScriptedAI
pInstance = c->GetInstanceData();
SathGUID = 0;
DoorGUID = 0;
JustReseted = false;
bJustReset = false;
me->setActive(true);
SpellEntry *TempSpell = GET_SPELL(SPELL_SPECTRAL_BLAST);
if (TempSpell)
@@ -136,7 +130,7 @@ struct boss_kalecgosAI : public ScriptedAI
bool isFriendly;
bool isEnraged;
bool isBanished;
bool JustReseted;
bool bJustReset;
uint64 SathGUID;
uint64 DoorGUID;
@@ -153,7 +147,7 @@ struct boss_kalecgosAI : public ScriptedAI
Sath->AI()->EnterEvadeMode();
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->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
@@ -178,7 +172,7 @@ struct boss_kalecgosAI : public ScriptedAI
void EnterEvadeMode()
{
JustReseted = true;
bJustReset = true;
me->SetVisibility(VISIBILITY_OFF);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE + UNIT_FLAG_NOT_SELECTABLE);
ScriptedAI::EnterEvadeMode();
@@ -223,16 +217,16 @@ struct boss_kalecgosAI : public ScriptedAI
}
else
{
if (JustReseted)
if (bJustReset)
{
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->SetVisibility(VISIBILITY_ON);
me->SetStandState(UNIT_STAND_STATE_SLEEP);
ResetTimer = 10000;
JustReseted = false;
bJustReset = false;
} else ResetTimer -= diff;
return;
}
@@ -325,17 +319,16 @@ struct boss_kalecgosAI : public ScriptedAI
void MoveInLineOfSight(Unit *who)
{
if (JustReseted)//boss is invisible, don't attack
if (bJustReset)//boss is invisible, don't attack
return;
if (!me->getVictim() && who->isTargetableForAttack() && (me->IsHostileTo(who)))
{
float attackRadius = me->GetAttackDistance(who);
if (me->IsWithinDistInMap(who, attackRadius))
{
AttackStart(who);
}
}
}
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
};
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{
TIMER_DARKNESS = 0,
TIMER_HUMANOIDES = 1,
@@ -6,32 +6,90 @@
#define DEF_SUNWELLPLATEAU_H
/*** Encounters ***/
#define DATA_KALECGOS_EVENT 1
#define DATA_BRUTALLUS_EVENT 2
#define DATA_FELMYST_EVENT 3
#define DATA_EREDAR_TWINS_EVENT 4
#define DATA_MURU_EVENT 5
#define DATA_KILJAEDEN_EVENT 6
enum Data
{
DATA_KALECGOS_EVENT,
DATA_BRUTALLUS_EVENT,
DATA_FELMYST_EVENT,
DATA_EREDAR_TWINS_EVENT,
DATA_MURU_EVENT,
DATA_KILJAEDEN_EVENT,
};
enum Data64
{
/*** Creatures ***/
#define DATA_KALECGOS_DRAGON 7
#define DATA_KALECGOS_HUMAN 8
#define DATA_SATHROVARR 9
#define DATA_BRUTALLUS 10
#define DATA_MADRIGOSA 11
#define DATA_FELMYST 12
#define DATA_ALYTHESS 13
#define DATA_SACROLASH 14
#define DATA_MURU 15
#define DATA_KILJAEDEN 16
#define DATA_KILJAEDEN_CONTROLLER 17
#define DATA_ANVEENA 18
#define DATA_KALECGOS_KJ 19
DATA_KALECGOS_DRAGON,
DATA_KALECGOS_HUMAN,
DATA_SATHROVARR,
DATA_BRUTALLUS,
DATA_MADRIGOSA,
DATA_FELMYST,
DATA_ALYTHESS,
DATA_SACROLASH,
DATA_MURU,
DATA_KILJAEDEN,
DATA_KILJAEDEN_CONTROLLER,
DATA_ANVEENA,
DATA_KALECGOS_KJ,
/*** 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 ***/
#define DATA_PLAYER_GUID 21
#endif
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,
};
#endif