Scripts/ZulGurub: Missing mass replace changes and typo/codestyle fixes.

This commit is contained in:
Warpten committed 2013-01-16 07:07:48 +01:00
1 parent 26bf10365e
commit 797be8d9ff
3 files changed
+55 -53

No files matched your search

@@ -79,11 +79,7 @@ class boss_arlokk : public CreatureScript
struct boss_arlokkAI : public BossAI
{
boss_arlokkAI(Creature* creature) : BossAI(creature, DATA_ARLOKK) {}
uint32 summonCount;
// Unit* markedTarget;
uint64 markedTargetGUID;
boss_arlokkAI(Creature* creature) : BossAI(creature, DATA_ARLOKK) { }
void Reset()
{
@@ -113,13 +109,15 @@ class boss_arlokk : public CreatureScript
void JustReachedHome()
{
if (instance)
instance->SetData(DATA_ARLOKK, NOT_STARTED);
instance->SetBossState(DATA_ARLOKK, NOT_STARTED);
me->DespawnOrUnsummon();
}
void DoSummonPhanters()
{
if (summonCount > 30)
return;
if (markedTargetGUID)
Talk(SAY_FEAST_PANTHER, markedTargetGUID);
me->SummonCreature(NPC_ZULIAN_PROWLER, PosSummonProwlers[0], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
@@ -152,7 +150,8 @@ class boss_arlokk : public CreatureScript
events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 15000, 0, PHASE_ONE);
break;
case EVENT_MARK:
DoCast(SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true), SPELL_MARK);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
DoCast(target, SPELL_MARK);
events.ScheduleEvent(EVENT_MARK, 15000, 0, PHASE_ONE);
break;
case EVENT_CLEAVE:
@@ -164,8 +163,7 @@ class boss_arlokk : public CreatureScript
events.ScheduleEvent(EVENT_GOUGE, urand(17000, 27000), 0, PHASE_TWO);
break;
case EVENT_SUMMON:
if (summonCount <= 30)
DoSummonPhanters();
DoSummonPhanters();
events.ScheduleEvent(EVENT_SUMMON, 5000);
break;
case EVENT_VANISH:
@@ -176,21 +174,21 @@ class boss_arlokk : public CreatureScript
events.ScheduleEvent(EVENT_VISIBLE, 6000);
break;
case EVENT_VISIBLE:
{
me->SetDisplayId(MODEL_ID_PANTHER);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
const CreatureTemplate* cinfo = me->GetCreatureTemplate();
me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 35)));
me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 35)));
me->UpdateDamagePhysical(BASE_ATTACK);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
AttackStart(target);
events.ScheduleEvent(EVENT_VANISH, 39000);
events.ScheduleEvent(EVENT_CLEAVE, 0, PHASE_TWO);
events.ScheduleEvent(EVENT_GOUGE, 14000, 0, PHASE_TWO);
events.SetPhase(PHASE_TWO);
break;
}
{
me->SetDisplayId(MODEL_ID_PANTHER);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
const CreatureTemplate* cinfo = me->GetCreatureTemplate();
me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 35)));
me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 35)));
me->UpdateDamagePhysical(BASE_ATTACK);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
AttackStart(target);
events.ScheduleEvent(EVENT_VANISH, 39000);
events.ScheduleEvent(EVENT_CLEAVE, 0, PHASE_TWO);
events.ScheduleEvent(EVENT_GOUGE, 14000, 0, PHASE_TWO);
events.SetPhase(PHASE_TWO);
break;
}
default:
break;
}
@@ -198,11 +196,15 @@ class boss_arlokk : public CreatureScript
DoMeleeAttackIfReady();
}
private:
uint32 summonCount;
uint64 markedTargetGUID;
};
CreatureAI* GetAI(Creature* creature) const
{
return new boss_arlokkAI(creature);
return GetZulGurubAI<boss_arlokkAI>(creature);
}
};
@@ -214,7 +216,7 @@ class go_gong_of_bethekk : public GameObjectScript
{
if (InstanceScript* instance = go->GetInstanceScript())
{
if (instance->GetData(DATA_ARLOKK) == DONE || instance->GetBossState(DATA_ARLOKK) == IN_PROGRESS)
if (instance->GetBossState(DATA_ARLOKK) == DONE || instance->GetBossState(DATA_ARLOKK) == IN_PROGRESS)
return true;
instance->SetBossState(DATA_ARLOKK, IN_PROGRESS);
return true;
@@ -23,12 +23,12 @@ SDComment: Ohgan function needs improvements.
SDCategory: Zul'Gurub
EndScriptData */
#include "zulgurub.h"
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "Spell.h"
#include "SpellAuras.h"
#include "SpellScript.h"
#include "zulgurub.h"
enum Says
{
@@ -38,27 +38,18 @@ class instance_zulgurub : public InstanceMapScript
SetBossNumber(EncounterCount);
}
//If all High Priest bosses were killed. Lorkhan, Zath and Ohgan are added too.
//Storing Lorkhan, Zath and Thekal because we need to cast on them later. Jindo is needed for healfunction too.
uint64 lorKhanGUID;
uint64 zathGUID;
uint64 thekalGUID;
uint64 jindoGUID;
uint64 speakerGUID;
void Initialize()
{
lorKhanGUID = 0;
zathGUID = 0;
thekalGUID = 0;
jindoGUID = 0;
speakerGUID = 0;
ZealotLorkhanGUID = 0;
ZealotZathGUID = 0;
HighPriestTekalGUID = 0;
JindoTheHexxerGUID = 0;
VilebranchSpeakerGUID = 0;
}
bool IsEncounterInProgress() const
{
//not active in Zul'Gurub
// not active in Zul'Gurub
return false;
}
@@ -67,19 +58,19 @@ class instance_zulgurub : public InstanceMapScript
switch (creature->GetEntry())
{
case NPC_ZEALOT_LORKHAN:
lorKhanGUID = creature->GetGUID();
ZealotLorkhanGUID = creature->GetGUID();
break;
case NPC_ZEALOT_ZATH:
zathGUID = creature->GetGUID();
ZealotZathGUID = creature->GetGUID();
break;
case NPC_HIGH_PRIEST_THEKAL:
thekalGUID = creature->GetGUID();
HighPriestTekalGUID = creature->GetGUID();
break;
case NPC_JINDO_THE_HEXXER:
jindoGUID = creature->GetGUID();
JindoTheHexxerGUID = creature->GetGUID();
break;
case NPC_SPEAKER:
speakerGUID = creature->GetGUID();
case NPC_VILEBRANCH_SPEAKER:
VilebranchSpeakerGUID = creature->GetGUID();
break;
case NPC_MANDOKIR:
if (GetBossState(DATA_MANDOKIR) == DONE)
@@ -93,16 +84,16 @@ class instance_zulgurub : public InstanceMapScript
switch (uiData)
{
case DATA_LORKHAN:
return lorKhanGUID;
return ZealotLorkhanGUID;
break;
case DATA_ZATH:
return zathGUID;
return ZealotZathGUID;
break;
case DATA_THEKAL:
return thekalGUID;
return HighPriestTekalGUID;
break;
case DATA_JINDO:
return jindoGUID;
return JindoTheHexxerGUID;
break;
}
return 0;
@@ -150,6 +141,15 @@ class instance_zulgurub : public InstanceMapScript
OUT_LOAD_INST_DATA_COMPLETE;
}
private:
//If all High Priest bosses were killed. Lorkhan, Zath and Ohgan are added too.
//Storing Lorkhan, Zath and Thekal because we need to cast on them later. Jindo is needed for healfunction too.
uint64 ZealotLorkhanGUID;
uint64 ZealotZathGUID;
uint64 HighPriestTekalGUID;
uint64 JindoTheHexxerGUID;
uint64 VilebranchSpeakerGUID
};
InstanceScript* GetInstanceScript(InstanceMap* map) const