aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bindings/scripts/scripts/northrend/violet_hold/boss_ichoron.cpp2
-rw-r--r--src/bindings/scripts/scripts/northrend/violet_hold/boss_zuramat.cpp2
-rw-r--r--src/bindings/scripts/scripts/northrend/violet_hold/instance_violet_hold.cpp30
-rw-r--r--src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.cpp27
-rw-r--r--src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.h16
5 files changed, 53 insertions, 24 deletions
diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/boss_ichoron.cpp b/src/bindings/scripts/scripts/northrend/violet_hold/boss_ichoron.cpp
index 27ff6a00a14..2c15a2dd501 100644
--- a/src/bindings/scripts/scripts/northrend/violet_hold/boss_ichoron.cpp
+++ b/src/bindings/scripts/scripts/northrend/violet_hold/boss_ichoron.cpp
@@ -38,7 +38,7 @@ enum Spells
SPELL_SPLASH = 59516,
};
-enum Creatures
+enum IchoronCreatures
{
NPC_ICHOR_GLOBULE = 29321,
};
diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/boss_zuramat.cpp b/src/bindings/scripts/scripts/northrend/violet_hold/boss_zuramat.cpp
index 9c26d39a4c8..ce089b3b481 100644
--- a/src/bindings/scripts/scripts/northrend/violet_hold/boss_zuramat.cpp
+++ b/src/bindings/scripts/scripts/northrend/violet_hold/boss_zuramat.cpp
@@ -20,7 +20,7 @@ enum Spells
H_SPELL_ZUMARAT_ADD_2 = 59747
};
-enum Creatures
+enum ZuramatCreatures
{
CREATURE_VOID_SENTRY = 29364
};
diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/instance_violet_hold.cpp b/src/bindings/scripts/scripts/northrend/violet_hold/instance_violet_hold.cpp
index c2eed682776..2a8c58b34f5 100644
--- a/src/bindings/scripts/scripts/northrend/violet_hold/instance_violet_hold.cpp
+++ b/src/bindings/scripts/scripts/northrend/violet_hold/instance_violet_hold.cpp
@@ -16,19 +16,6 @@
4 - Xevozz
5 - Zuramat
6 - Cyanigosa */
-enum Creatures
-{
- CREATURE_TELEPORTATION_PORTAL = 31011,
- CREATURE_XEVOZZ = 29266,
- CREATURE_LAVANTHOR = 29312,
- CREATURE_ICHORON = 29313,
- CREATURE_ZURAMAT = 29314,
- CREATURE_EREKEM = 29315,
- CREATURE_EREKEM_GUARD = 29395,
- CREATURE_MORAGG = 29316,
- CREATURE_CYANIGOSA = 31134,
- CREATURE_SINCLARI = 30658
-};
enum GameObjects
{
GO_MAIN_DOOR = 191723,
@@ -43,6 +30,10 @@ enum GameObjects
GO_INTRO_ACTIVATION_CRYSTAL = 193615,
GO_ACTIVATION_CRYSTAL = 193611
};
+enum Spells
+{
+ SPELL_PORTAL_CHANNEL = 58012
+};
struct Location
{
float x,y,z,orientation;
@@ -259,10 +250,17 @@ struct TRINITY_DLL_DECL instance_violet_hold : public ScriptedInstance
Creature *pSinclari = instance->GetCreature(uiSinclari);
if (pSinclari)
{
- pSinclari->SummonCreature(CREATURE_TELEPORTATION_PORTAL,PortalLocation[uiLocation].x,PortalLocation[uiLocation].y,
+ if (Creature *pPortal = pSinclari->SummonCreature(CREATURE_TELEPORTATION_PORTAL,PortalLocation[uiLocation].x,PortalLocation[uiLocation].y,
PortalLocation[uiLocation].z,PortalLocation[uiLocation].orientation,
- TEMPSUMMON_CORPSE_TIMED_DESPAWN,900000);
- uiLocation = (++uiLocation)%3;
+ TEMPSUMMON_CORPSE_TIMED_DESPAWN,900000))
+ {
+ uint32 entry = urand(0, 1) ? CREATURE_PORTAL_GUARDIAN : CREATURE_PORTAL_KEEPER;
+ if (Creature *pPortalKeeper = pPortal->SummonCreature(entry,PortalLocation[uiLocation].x, PortalLocation[uiLocation].y,
+ PortalLocation[uiLocation].z, PortalLocation[uiLocation].orientation,
+ TEMPSUMMON_CORPSE_TIMED_DESPAWN,900000))
+ pPortal->CastSpell(pPortalKeeper, SPELL_PORTAL_CHANNEL,false);
+ uiLocation = (++uiLocation)%3;
+ }
}
}
}
diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.cpp b/src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.cpp
index aa2a572e618..725773e5a9a 100644
--- a/src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.cpp
+++ b/src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.cpp
@@ -3,15 +3,18 @@
#define GOSSIP_START_EVENT "[PH]: Start Event"
#define NEXT_WAVE_TIME 90000
-#define SPAWN_TIME 9000
+#define SPAWN_TIME 15000
-enum Creatures
+enum PortalCreatures
{
CREATURE_AZURE_INVADER = 30661,
CREATURE_AZURE_SPELLBREAKER = 30662,
CREATURE_AZURE_BINDER = 30663,
CREATURE_AZURE_MAGE_SLAYER = 30664,
- CREATURE_AZURE_CAPTAIN = 30666
+ CREATURE_AZURE_CAPTAIN = 30666,
+ CREATURE_AZURE_SORCEROR = 30667,
+ CREATURE_AZURE_RAIDER = 30668,
+ CREATURE_AZURE_STALKER = 32191
};
bool GossipHello_npc_sinclari(Player* pPlayer, Creature* pCreature)
@@ -58,15 +61,27 @@ struct TRINITY_DLL_DECL npc_teleportation_portalAI : public ScriptedAI
{
if (uiSpawnTimer <= diff)
{
- if (Creature* pSummon = m_creature->SummonCreature(RAND(CREATURE_AZURE_CAPTAIN,CREATURE_AZURE_SPELLBREAKER,
- CREATURE_AZURE_BINDER,CREATURE_AZURE_MAGE_SLAYER,CREATURE_AZURE_CAPTAIN),
+ for (uint8 i = 0; i < pInstance->GetData(DATA_WAVE_COUNT) < 12 ? 3 : 4; ++i)
+ {
+ if (Creature* pSummon = m_creature->SummonCreature(RAND(CREATURE_AZURE_CAPTAIN,CREATURE_AZURE_RAIDER,CREATURE_AZURE_STALKER,CREATURE_AZURE_SORCEROR),
m_creature->GetPositionX()+urand(0,2), m_creature->GetPositionY()+urand(0,2),
m_creature->GetPositionZ(),m_creature->GetOrientation(),
TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
- pSummon->Attack(pSummon->SelectNearestTarget(100),true);
+ if (Creature* pTarget = GetClosestCreatureWithEntry(m_creature, CREATURE_SINCLARI, 150.0f))
+ {
+ pSummon->Attack(pTarget, true);
+ }
+ }
uiSpawnTimer = SPAWN_TIME;
} else uiSpawnTimer -= diff;
+ if (!m_creature->IsNonMeleeSpellCasted(false))
+ {
+ m_creature->Kill(m_creature, false);
+ m_creature->RemoveCorpse();
+ return;
+ }
+
if (uiDespawnTimer <= diff)
{
m_creature->Kill(m_creature, false);
diff --git a/src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.h b/src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.h
index 8737bab2b60..475cf38e51d 100644
--- a/src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.h
+++ b/src/bindings/scripts/scripts/northrend/violet_hold/violet_hold.h
@@ -1,6 +1,22 @@
#ifndef DEF_VIOLET_HOLD_H
#define DEF_VIOLET_HOLD_H
+enum Creatures
+{
+ CREATURE_TELEPORTATION_PORTAL = 31011,
+ CREATURE_PORTAL_GUARDIAN = 30660,
+ CREATURE_PORTAL_KEEPER = 30695,
+ CREATURE_XEVOZZ = 29266,
+ CREATURE_LAVANTHOR = 29312,
+ CREATURE_ICHORON = 29313,
+ CREATURE_ZURAMAT = 29314,
+ CREATURE_EREKEM = 29315,
+ CREATURE_EREKEM_GUARD = 29395,
+ CREATURE_MORAGG = 29316,
+ CREATURE_CYANIGOSA = 31134,
+ CREATURE_SINCLARI = 30658
+};
+
enum Data
{
DATA_1ST_BOSS_EVENT,