Violet Hold: Add 5 secs intervale between waves
--HG-- branch : trunk
This commit is contained in:
@@ -70,6 +70,8 @@ struct TRINITY_DLL_DECL instance_violet_hold : public ScriptedInstance
|
|||||||
|
|
||||||
uint64 uiActivationCrystal[3];
|
uint64 uiActivationCrystal[3];
|
||||||
|
|
||||||
|
uint32 uiActivationTimer;
|
||||||
|
|
||||||
uint8 uiWaveCount;
|
uint8 uiWaveCount;
|
||||||
uint8 uiLocation;
|
uint8 uiLocation;
|
||||||
uint8 uiFirstBoss;
|
uint8 uiFirstBoss;
|
||||||
@@ -79,7 +81,7 @@ struct TRINITY_DLL_DECL instance_violet_hold : public ScriptedInstance
|
|||||||
uint8 uiCountErekemGuards;
|
uint8 uiCountErekemGuards;
|
||||||
uint8 uiCountActivationCrystals;
|
uint8 uiCountActivationCrystals;
|
||||||
|
|
||||||
bool HeroicMode;
|
bool bActive;
|
||||||
|
|
||||||
std::string str_data;
|
std::string str_data;
|
||||||
|
|
||||||
@@ -111,6 +113,10 @@ struct TRINITY_DLL_DECL instance_violet_hold : public ScriptedInstance
|
|||||||
uiCountErekemGuards = 0;
|
uiCountErekemGuards = 0;
|
||||||
uiCountActivationCrystals = 0;
|
uiCountActivationCrystals = 0;
|
||||||
|
|
||||||
|
uiActivationTimer = 5000;
|
||||||
|
|
||||||
|
bActive = false;
|
||||||
|
|
||||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -220,32 +226,25 @@ struct TRINITY_DLL_DECL instance_violet_hold : public ScriptedInstance
|
|||||||
break;
|
break;
|
||||||
case DATA_WAVE_COUNT:
|
case DATA_WAVE_COUNT:
|
||||||
uiWaveCount = data;
|
uiWaveCount = data;
|
||||||
switch(data)
|
bActive = true;
|
||||||
{
|
|
||||||
case 6:
|
|
||||||
uiFirstBoss = rand()%6;
|
|
||||||
StartBossEncounter(uiFirstBoss);
|
|
||||||
break;
|
|
||||||
case 12:
|
|
||||||
uiSecondBoss = rand()%6;
|
|
||||||
while (uiSecondBoss == uiFirstBoss)
|
|
||||||
uiSecondBoss = rand()%6;
|
|
||||||
StartBossEncounter(uiSecondBoss);
|
|
||||||
break;
|
|
||||||
case 18:
|
|
||||||
{
|
|
||||||
Creature *pSinclari = instance->GetCreature(uiSinclari);
|
|
||||||
if (pSinclari)
|
|
||||||
pSinclari->SummonCreature(CREATURE_CYANIGOSA,PortalLocation[0].x,PortalLocation[0].y,
|
|
||||||
PortalLocation[0].z,PortalLocation[0].orientation,TEMPSUMMON_DEAD_DESPAWN,0);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
if (GameObject* pMainDoor = instance->GetGameObject(uiMainDoor))
|
|
||||||
pMainDoor->SetGoState(GO_STATE_READY);
|
|
||||||
}
|
}
|
||||||
default:
|
|
||||||
|
uint32 GetData(uint32 type)
|
||||||
|
{
|
||||||
|
switch(type)
|
||||||
|
{
|
||||||
|
case DATA_1ST_BOSS_EVENT: return m_auiEncounter[0];
|
||||||
|
case DATA_2ND_BOSS_EVENT: return m_auiEncounter[1];
|
||||||
|
case DATA_CYANIGOSA_EVENT: return m_auiEncounter[2];
|
||||||
|
case DATA_WAVE_COUNT: return uiWaveCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SpawnPortal()
|
||||||
{
|
{
|
||||||
Creature *pSinclari = instance->GetCreature(uiSinclari);
|
Creature *pSinclari = instance->GetCreature(uiSinclari);
|
||||||
if (pSinclari)
|
if (pSinclari)
|
||||||
@@ -263,23 +262,6 @@ struct TRINITY_DLL_DECL instance_violet_hold : public ScriptedInstance
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32 GetData(uint32 type)
|
|
||||||
{
|
|
||||||
switch(type)
|
|
||||||
{
|
|
||||||
case DATA_1ST_BOSS_EVENT: return m_auiEncounter[0];
|
|
||||||
case DATA_2ND_BOSS_EVENT: return m_auiEncounter[1];
|
|
||||||
case DATA_CYANIGOSA_EVENT: return m_auiEncounter[2];
|
|
||||||
case DATA_WAVE_COUNT: return uiWaveCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void StartBossEncounter(uint8 uiBoss)
|
void StartBossEncounter(uint8 uiBoss)
|
||||||
{
|
{
|
||||||
@@ -349,6 +331,39 @@ struct TRINITY_DLL_DECL instance_violet_hold : public ScriptedInstance
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AddWave()
|
||||||
|
{
|
||||||
|
switch(uiWaveCount)
|
||||||
|
{
|
||||||
|
case 6:
|
||||||
|
uiFirstBoss = rand()%6;
|
||||||
|
StartBossEncounter(uiFirstBoss);
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
uiSecondBoss = rand()%6;
|
||||||
|
while (uiSecondBoss == uiFirstBoss)
|
||||||
|
uiSecondBoss = rand()%6;
|
||||||
|
StartBossEncounter(uiSecondBoss);
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
{
|
||||||
|
Creature *pSinclari = instance->GetCreature(uiSinclari);
|
||||||
|
if (pSinclari)
|
||||||
|
pSinclari->SummonCreature(CREATURE_CYANIGOSA,PortalLocation[0].x,PortalLocation[0].y,
|
||||||
|
PortalLocation[0].z,PortalLocation[0].orientation,TEMPSUMMON_DEAD_DESPAWN,0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 1:
|
||||||
|
{
|
||||||
|
if (GameObject* pMainDoor = instance->GetGameObject(uiMainDoor))
|
||||||
|
pMainDoor->SetGoState(GO_STATE_READY);
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
SpawnPortal();
|
||||||
|
}
|
||||||
|
bActive = true;
|
||||||
|
}
|
||||||
|
|
||||||
uint64 GetData64(uint32 identifier)
|
uint64 GetData64(uint32 identifier)
|
||||||
{
|
{
|
||||||
switch(identifier)
|
switch(identifier)
|
||||||
@@ -423,6 +438,19 @@ struct TRINITY_DLL_DECL instance_violet_hold : public ScriptedInstance
|
|||||||
|
|
||||||
OUT_LOAD_INST_DATA_COMPLETE;
|
OUT_LOAD_INST_DATA_COMPLETE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Update(uint32 diff)
|
||||||
|
{
|
||||||
|
if (bActive)
|
||||||
|
{
|
||||||
|
if (uiActivationTimer < diff)
|
||||||
|
{
|
||||||
|
AddWave();
|
||||||
|
bActive = false;
|
||||||
|
uiActivationTimer = 5000;
|
||||||
|
} else uiActivationTimer -= diff;
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
InstanceData* GetInstanceData_instance_violet_hold(Map* pMap)
|
InstanceData* GetInstanceData_instance_violet_hold(Map* pMap)
|
||||||
|
|||||||
Reference in New Issue
Block a user