City of threads

This commit is contained in:
luis
2026-09-23 20:12:37 -03:00
parent 76505646a8
commit 3b8bbcb859
5 changed files with 12 additions and 9 deletions
@@ -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);
}