mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 09:17:18 +00:00
* Add files via upload * Update boss_lurker_below.cpp * Update instance_serpent_shrine.cpp * Update SerpentShrine.sql * Update SerpentShrine.sql * Update SerpentShrine.sql * Add files via upload * Update instance_serpent_shrine.cpp * Update serpent_shrine.h * Update instance_serpent_shrine.cpp
This commit is contained in:
@@ -72,18 +72,21 @@ struct boss_the_lurker_below : public BossAI
|
||||
BossAI::Reset();
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetStandState(UNIT_STAND_STATE_SUBMERGED);
|
||||
me->SetVisible(false);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
{
|
||||
BossAI::EnterEvadeMode(why);
|
||||
me->DespawnOrUnsummon(2000);
|
||||
}
|
||||
|
||||
void DoAction(int32 action) override
|
||||
{
|
||||
if (action == ACTION_START_EVENT)
|
||||
{
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->setAttackTimer(BASE_ATTACK, 6000);
|
||||
me->SetVisible(true);
|
||||
me->UpdateObjectVisibility(true);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
me->SetInCombatWithZone();
|
||||
@@ -213,7 +216,7 @@ public:
|
||||
if (roll_chance_i(instance->GetBossState(DATA_THE_LURKER_BELOW) != DONE ? 25 : 0) && !instance->IsEncounterInProgress())
|
||||
{
|
||||
player->CastSpell(player, SPELL_LURKER_SPAWN_TRIGGER, true);
|
||||
if (Creature* lurker = ObjectAccessor::GetCreature(*go, instance->GetGuidData(NPC_THE_LURKER_BELOW)))
|
||||
if (Creature* lurker = go->SummonCreature(NPC_THE_LURKER_BELOW, 40.4058f, -417.108f, -21.5911f, 3.03312f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 604800000))
|
||||
lurker->AI()->DoAction(ACTION_START_EVENT);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -101,8 +101,8 @@ public:
|
||||
{
|
||||
case NPC_COILFANG_SHATTERER:
|
||||
case NPC_COILFANG_PRIESTESS:
|
||||
if (creature->GetPositionX() > -110.0f && creature->GetPositionX() < 155.0f && creature->GetPositionY() > -610.0f && creature->GetPositionY() < -280.0f)
|
||||
AliveKeepersCount += creature->IsAlive() ? 0 : -1; // SmartAI calls JUST_RESPAWNED in AIInit...
|
||||
if (creature->GetPositionX() > 190.0f)
|
||||
--AliveKeepersCount;
|
||||
break;
|
||||
case NPC_CYCLONE_KARATHRESS:
|
||||
creature->GetMotionMaster()->MoveRandom(50.0f);
|
||||
@@ -126,9 +126,17 @@ public:
|
||||
{
|
||||
case DATA_PLATFORM_KEEPER_RESPAWNED:
|
||||
++AliveKeepersCount;
|
||||
if (AliveKeepersCount > MAX_KEEPER_COUNT)
|
||||
{
|
||||
AliveKeepersCount = MAX_KEEPER_COUNT;
|
||||
}
|
||||
break;
|
||||
case DATA_PLATFORM_KEEPER_DIED:
|
||||
--AliveKeepersCount;
|
||||
if (AliveKeepersCount < MIN_KEEPER_COUNT)
|
||||
{
|
||||
AliveKeepersCount = MIN_KEEPER_COUNT;
|
||||
}
|
||||
break;
|
||||
case DATA_BRIDGE_ACTIVATED:
|
||||
SetBossState(DATA_BRIDGE_EMERGED, NOT_STARTED);
|
||||
|
||||
@@ -88,6 +88,12 @@ enum SSSpells
|
||||
SPELL_FRENZY_WATER = 37026
|
||||
};
|
||||
|
||||
enum KeeperCount
|
||||
{
|
||||
MIN_KEEPER_COUNT = 0,
|
||||
MAX_KEEPER_COUNT = 24
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetSerpentShrineAI(T* obj)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user