City of threads
This commit is contained in:
@@ -44,11 +44,12 @@ enum CoaglamationMisc
|
||||
NPC_CONGELED_DROPLET = 216329,
|
||||
MAX_ENERGY_COAG = 100,
|
||||
ENERGY_GAIN_PER_TICK = 2,
|
||||
ORB_SOAK_DISTANCE = 2.0f,
|
||||
DROPLETS_PER_SLAM = 4,
|
||||
DROPLET_HEALTH_RESTORE = 3, // percent, stagnates per orb that reaches the boss
|
||||
};
|
||||
|
||||
static constexpr float COAG_ORB_SOAK_DISTANCE = 2.0f;
|
||||
|
||||
// Id 34362 - Blood Surge
|
||||
struct at_boss_the_coaglamation_blood_surge : AreaTriggerAI
|
||||
{
|
||||
@@ -98,7 +99,7 @@ struct npc_congealed_droplet : public ScriptedAI
|
||||
if (Unit* boss = me->FindNearestCreature(BOSS_THE_COAGLAMATION, 150.0f))
|
||||
{
|
||||
// A player touching the orb absorbs it and gains Corrupted Coating.
|
||||
if (Player* player = me->SelectNearestPlayer(ORB_SOAK_DISTANCE))
|
||||
if (Player* player = me->SelectNearestPlayer(COAG_ORB_SOAK_DISTANCE))
|
||||
{
|
||||
player->CastSpell(player, SPELL_CORRUPTED_COATING, CastSpellExtraArgsInit{
|
||||
.TriggerFlags = TRIGGERED_FULL_MASK | TRIGGERED_DONT_REPORT_CAST_ERROR
|
||||
@@ -111,7 +112,7 @@ struct npc_congealed_droplet : public ScriptedAI
|
||||
if (!me->HasUnitState(UNIT_STATE_CASTING) && me->GetMotionMaster()->GetCurrentMovementGeneratorType() != POINT_MOTION_TYPE)
|
||||
me->GetMotionMaster()->MovePoint(0, boss->GetPosition(), false);
|
||||
|
||||
if (me->GetDistance(boss) <= ORB_SOAK_DISTANCE)
|
||||
if (me->GetDistance(boss) <= COAG_ORB_SOAK_DISTANCE)
|
||||
{
|
||||
boss->ModifyHealth(boss->CountPctFromMaxHealth(DROPLET_HEALTH_RESTORE));
|
||||
me->DespawnOrUnsummon(100ms);
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
enum FangsoftheQueenSpells
|
||||
{
|
||||
SPELL_TWIN_FANGS = 439518, // shared damage 100%
|
||||
SPELL_ENERGY_CONTROLLER = 443357, // [DNT] energy controller
|
||||
SPELL_SYNERGIC_STEP = 439522, // dash across the arena
|
||||
SPELL_SYNERGIC_STEP_2 = 439985, // dash alternate
|
||||
SPELL_SYNERGIC_STACKS = 447114, // Synergic Step (Stacks)
|
||||
|
||||
@@ -53,10 +53,11 @@ enum IzoMisc
|
||||
MAX_ENERGY_IZO = 100,
|
||||
ENERGY_PER_TICK = 2,
|
||||
ANOMALIES_PER_CAST = 3,
|
||||
ANOMALY_RANGE = 15.0f,
|
||||
SCARABS_PER_SLAM = 4,
|
||||
};
|
||||
|
||||
static constexpr float IZO_ANOMALY_RANGE = 15.0f;
|
||||
|
||||
// 216658 - Izo, the Grand Splicer
|
||||
struct boss_izo_the_grand_splicer : public BossAI
|
||||
{
|
||||
@@ -145,7 +146,7 @@ struct boss_izo_the_grand_splicer : public BossAI
|
||||
DoCastSelf(SPELL_SHIFTING_ANOMALIES_4, true);
|
||||
for (uint8 i = 0; i < ANOMALIES_PER_CAST; ++i)
|
||||
{
|
||||
Position pos = me->GetNearPosition(ANOMALY_RANGE, _anomalyIndex * (2.f * float(M_PI) / ANOMALIES_PER_CAST));
|
||||
Position pos = me->GetNearPosition(IZO_ANOMALY_RANGE, _anomalyIndex * (2.f * float(M_PI) / ANOMALIES_PER_CAST));
|
||||
me->CastSpell(pos, SPELL_SHIFTING_ANOMALIES_2, true);
|
||||
me->CastSpell(pos, SPELL_SHIFTING_ANOMALIES_3, true);
|
||||
me->CastSpell(pos, SPELL_SHIFTING_ANOMALIES_5, true);
|
||||
|
||||
@@ -112,8 +112,8 @@ struct boss_orator_krix_vizk : public BossAI
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
|
||||
WorldObject* obj = nullptr;
|
||||
WowCommunity::ObjectEntryAndPrivateOwnerIfExistsCheck check(ObjectGuid::Empty, AREATRIGGER_BARRIER);
|
||||
WowCommunity::WorldObjectSearcher<WowCommunity::ObjectEntryAndPrivateOwnerIfExistsCheck> checker(me, obj, check, GRID_MAP_TYPE_MASK_AREATRIGGER);
|
||||
Trinity::ObjectEntryAndPrivateOwnerIfExistsCheck check(ObjectGuid::Empty, AREATRIGGER_BARRIER);
|
||||
Trinity::WorldObjectSearcher<Trinity::ObjectEntryAndPrivateOwnerIfExistsCheck> checker(me, obj, check, GRID_MAP_TYPE_MASK_AREATRIGGER);
|
||||
Cell::VisitGridObjects(me, checker, 100.0f);
|
||||
|
||||
if (!obj)
|
||||
|
||||
@@ -38,7 +38,7 @@ public:
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadObjectData(creatureData, nullptr);
|
||||
LoadObjectData(creatureData, {});
|
||||
LoadDungeonEncounterData(encounters);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user