Commit Graph
100 Commits
Author SHA1 Message Date
Andrew 2945ef1892 fix(Scripts/OnyxiasLair): Match Onyxia's air phase to retail (#27848) 2026-09-28 00:26:07 -03:00
Andrew e849efedb6 fix(Scripts/OnyxiasLair): Close the Many Whelps window 10s after liftoff (#27847) 2026-09-27 17:14:16 -03:00
Andrew 6b16a00c05 fix(Scripts/OnyxiasLair): Stop Onyxia casting Wing Buffet in phase 3 (#27846) 2026-09-27 16:43:02 -03:00
Andrew d8daef1f55 fix(Scripts/OnyxiasLair): Match Onyxia's phase transitions and Eruption to retail (#27843) 2026-09-27 16:27:00 -03:00
Andrew 8c7ab7b0c6 fix(Scripts/OnyxiasLair): Keep Onyxian Whelps unattackable during their spawn-in (#27842) 2026-09-27 13:34:17 -03:00
Andrew 5a2fbaf1bc fix(DB/Creature): Onyxian Whelps are not skinnable (#27841) 2026-09-27 13:16:44 -03:00
Andrew c63523e4c4 fix(Scripts/OnyxiasLair): Cast Heated Ground over the rookery after each Deep Breath (#27836) 2026-09-27 12:17:47 -03:00
Andrew 0a9ad7ecdb fix(Scripts/OnyxiasLair): Spawn Onyxia's whelps from rookery points and hatching eggs (#27833) 2026-09-27 10:54:02 -03:00
Andrew 54323a308c fix(Scripts/OnyxiasLair): Despawn Onyxia on evade (#27832) 2026-09-27 10:15:55 -03:00
Andrew 7cc81570b1 fix(Scripts/OnyxiasLair): Summon Lair Guards from a tunnel trigger every 46s (#27831) 2026-09-27 10:15:35 -03:00
Andrew 25084affb9 feat(Core/World): Show previous session outcome and lifetime peak in server info (#27819) 2026-09-27 05:24:47 -03:00
Andrewandrazer025 012af5510e fix(Scripts/Ulduar): Let interrupts stop Flame Leviathan's Flame Vents (#27809)
Co-authored-by: razer025 <[email protected]>
2026-09-26 21:09:04 -03:00
Andrew 6b6da2861b feat(Core/Commands): Show guid and remaining count on .additem removal (#27817) 2026-09-26 21:08:45 -03:00
Andrew 742305fa93 feat(Scripts/Commands): Show boss name in instance setbossstate (#27818) 2026-09-26 21:04:43 -03:00
Andrew 36943c080c fix(DB/Ulduar): Make Freya's Iron Roots immune to knockback (#27813) 2026-09-26 20:49:30 -03:00
Andrew ec2aa2d5d8 fix(e2e): wait for the Sweeping Strikes aura before failing its precondition (#27812) 2026-09-26 19:30:20 -03:00
Andrew caa7b38915 fix(Scripts/Ulduar): Respawn unchosen Observation Ring keepers after a Yogg-Saron wipe (#27810) 2026-09-26 16:44:43 -03:00
Andrew 93ab9ad63e fix(Scripts/Ulduar): let the hard-reset respawn bring Algalon back after a wipe (#27807) 2026-09-26 11:32:56 -03:00
Andrew 5727348eb5 refactor(Scripts/OnyxiasLair): modernize Onyxia boss and instance scripts (#27762) 2026-09-26 10:35:15 -03:00
AndrewandGultask eeab5f408d fix(Core/Maps): keep bosses of DONE encounters down on the dynamic respawn path (#27788)
Co-authored-by: Gultask <[email protected]>
2026-09-25 22:34:58 -03:00
Andrew 7185e0a9c2 refactor(Scripts/Ulduar): track Thorim's defeat through the boss state (#27755) 2026-09-22 20:07:35 -03:00
Andrew d1813fe4bb fix(Scripts/Ulduar): kill every Iron Construct when Ignis dies (#27751)
Only constructs that were already in combat were killed, leaving the dormant ones alive
after the boss died. Activate Construct is a slow missile, so a bolt still in flight then
landed on one of the survivors and activated it, pulling the raid back into combat.

Retail handles this with Kill All Constructs (65109), an instakill that hits every Iron
Construct in range, so cast that instead of killing them from script. Its implicit target
is entry-based and matches every unit in range without a condition, players included, so
the targeting row ships with it.

Adds e2e coverage: TestAC_27736_IgnisKillsAllConstructs.

Closes #27736
2026-09-21 22:14:46 -03:00
Andrew 88d9915553 docs(Agents): record creature_template_model probability semantics (#27754) 2026-09-21 21:15:18 -03:00
Andrew 215579c828 fix(Scripts/ICC): time the Deathbringer Saurfang intro, outro and camp to the sniffs (#27663) 2026-09-21 09:23:22 -03:00
Andrew e622cb5157 fix(DB/Ulduar): correct Freya's Gift emblem counts (#27718) 2026-09-19 22:34:17 -03:00
Andrew 7eeef5223b test(e2e/Ulduar): drop the flaky Brightleaf sun beam despawn test (#27703) 2026-09-19 06:48:09 -03:00
Andrew a53ddd813e fix(Scripts/Ulduar): stop Freya's Tidal Wave when its cast is kicked (#27636) 2026-09-18 19:06:44 -03:00
Andrew 0e6a5d322c fix(Scripts/Ulduar): do not let Thorim's evade despawn trigger his defeat (#27672) 2026-09-17 06:14:54 -03:00
Andrew 4d4ae4f957 fix(Scripts/Ulduar): stop Freya's Ward adds despawning on the spell timer (#27651) 2026-09-16 08:03:09 -03:00
f68a9759bd fix(Scripts/Feralas): summon the Gordunni trap mound through its own spells (#27632)
Co-authored-by: offl <[email protected]>
Co-authored-by: Giacomo Pozzoni <[email protected]>
Co-authored-by: blinkysc <[email protected]>
Co-authored-by: Claude Opus 5 <[email protected]>
2026-09-15 19:09:25 -03:00
Andrew d32c4abe8b fix(Scripts/Ulduar): cap Elder Brightleaf's Unstable Sun Beams (#27638) 2026-09-14 20:23:13 -03:00
Andrew 7907c668b1 fix(DB/Ulduar): give Freya's Elders their emblems (#27634) 2026-09-13 18:17:52 -03:00
AndrewandShauren 92f5ce9a73 fix(Scripts/Ulduar): give Algalon a stasis period after Big Bang (#27630)
Co-authored-by: Shauren <[email protected]>
2026-09-13 16:59:43 -03:00
Andrew 46d4e0a39a feat(Core/World): apply PlayerLimit on config reload (#27633) 2026-09-13 16:26:02 -03:00
AndrewandCyberium 71012e3ce3 fix(Core/Groups): identify the finished roll in SMSG_LOOT_ROLL_WON (#27631)
Co-authored-by: Cyberium <[email protected]>
2026-09-13 14:36:33 -03:00
fe69136688 refactor(Core/Spells): allow any WorldObject to be a spell caster (#27627)
Co-authored-by: blinkysc <[email protected]>
Co-authored-by: ariel- <[email protected]>
Co-authored-by: Treeston <[email protected]>
Co-authored-by: Shauren <[email protected]>
Co-authored-by: brotalnia <[email protected]>
Co-authored-by: Claude Opus 5 <[email protected]>
2026-09-13 11:16:45 -03:00
Andrewandhorn 7409484aa3 fix(Scripts/Ulduar): stop Yogg-Saron's Psychosis and Malady of the Mind from picking low Sanity targets (#27628)
Co-authored-by: horn <[email protected]>
2026-09-13 05:21:19 -03:00
AndrewandLopin e9675bf3e0 fix(Scripts/Ulduar): give Elder Brightleaf's Unstable Sun Beams their own lifetime (#27619)
The beams were summoned by hand with TEMPSUMMON_MANUAL_DESPAWN and no
duration, which InitStats turns into TEMPSUMMON_DEAD_DESPAWN, and NPC
33050 is a trigger with NullCreatureAI that can neither die nor despawn
itself. The only thing that removed them was an event on the elder, and
his event map stops running the moment he dies, so a kill taken while a
wave was up left the beams standing forever. With a 20s summon cycle and
a 15s despawn that was most kills.

Move the lifetime onto the beam: 33050 gets SmartAI rows that cast
Unstable Sun Beam and Photosynthesis when summoned, then cast Unstable
Energy and despawn after 18-25s. AIName and ScriptName resolve from the
base entry, so the 25-man template is covered too. The react-passive row
is required because InitializeReactState gives a SmartAI trigger
REACT_AGGRESSIVE; Freya's own Sun Beam (33170) carries the same row.

The elder now casts 62207 rather than placing two creatures himself, so
the placement comes from the spell: one beam at his feet, plus a forced
62221 on every player in range each summoning one under themselves. That
relies on the EffectForceCast fix in #27621.

Wave timing from a sniff: first wave 6s after the pull and then every
22-26s, against a fixed 8s and 20s. Beam lifetime 18-25s across eight
observed beams, against a fixed 15s.

The beam owning its own despawn and the 62207 cast mirror TrinityCore
60388f39073ca85f9592b1e67e88e507a1a79421. The timers come from the sniff
and the beam side is SmartAI rather than a C++ AI.

Covered by TestUlduar_BrightleafSunBeamsDespawnAfterDeath, which asserts a
beam lands on the player and that none outlive the elder. It enters at
Brightleaf's own spawn rather than the Freya pad: that pad is 12y from
Freya, and aggroing her banishes every living elder, after which he
schedules no beams at all.

Reported as https://github.com/chromiecraft/chromiecraft/issues/10163

Co-authored-by: Lopin <[email protected]>
2026-09-12 19:43:53 -03:00
AndrewandClaude Opus 5 5054796f66 fix(Core/Spells): stop forced casts from inheriting the caster as their destination (#27621)
Spell::EffectForceCast always handed the forced cast the original caster
as its unit target. When the triggered spell takes no unit target but
does need a destination, Spell::InitExplicitTargets turns that unit
target into the destination, so the forced cast resolves against the
original caster instead of against the unit that was forced to cast it.

Only pass the unit target when the triggered spell's explicit target mask
accepts one, which is the same test InitExplicitTargets applies before
discarding it.

Twelve spells in the client data force-cast a spell that needs a
destination but takes no unit target: 42073, 48759, 52187, 57838, 58566,
62207, 62301, 62921, 64088, 64598, 69839 and 70882. Seven of them place
their summon somewhere new - 48759, 52187, 57838, 58566, 62207, 62921 and
64088, whose triggers summon at the destination itself or at a fixed
offset from it. The rest do not move: 42073 force-casts on itself,
69839's force-cast effect is prevented by a spell script, and 70882's
trigger overwrites the destination with TARGET_DEST_CASTER.

62301 and 64598 are the last two. Their trigger 62293 inherited the
destination like the others, but a spell_info correction forcing its
TargetB to TARGET_DEST_CASTER had SelectImplicitCasterDestTargets
overwrite it with the forced caster afterwards, so Algalon's craters
landed correctly in spite of the bug. With the root cause fixed that
correction is dead code and goes with it; the fallback destination
InitExplicitTargets now picks is the same position the correction used to
write, so nothing moves in-game.

TestEffects_ForceCastDestination covers both trigger shapes: 62221 and
62293 summoning at the destination itself, and 48757 summoning at an
offset from it.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-12 15:38:34 -03:00
Andrew 186dfc7fa1 fix(DB/Ulduar): correct 10-man and 25-man loot pools (#27624) 2026-09-12 14:47:05 -03:00
Andrew 09c70f28a2 fix(Scripts/Ulduar): stop Flame Leviathan saving the raid on pull (#27622) 2026-09-12 12:13:28 -03:00
Andrew f0f08f1331 fix(Scripts/Ulduar): cast Razorscale's Wing Buffet once per grounding (#27616) 2026-09-12 11:14:12 -03:00
Andrew c0e6272af9 fix(Scripts/Ulduar): make Yogg-Saron's Laughing Skulls respect line of sight (#27614) 2026-09-11 21:28:07 -03:00
Andrew d0825055c9 docs(agents): state the PR title convention inline (#27568) 2026-09-10 22:56:02 -03:00
Andrewandsogladev 65d564c848 fix(Core/Creature): Keep a spell's own recovery time on category cooldowns (#27595)
Co-authored-by: sogladev <[email protected]>
2026-09-10 20:30:23 -03:00
Andrew b34efa2abb docs(agents): set flags_extra on every difficulty entry (#27586) 2026-09-10 19:13:35 -03:00
Andrew 4ddcea8503 fix(DB/Creature): stop Mimiron DB Target entering combat (#27594) 2026-09-10 06:47:12 -03:00
Andrew f4763cc9eb fix(Scripts/Ulduar): give Flame Leviathan's Freya's Ward lashers their own targeting AI (#27567) 2026-09-10 05:21:40 -03:00
Andrew 76bc632dc0 fix(DB/Creature): sync Freya's 25-man HARD_RESET flag (#27587) 2026-09-09 22:31:18 -03:00
Andrew 02926c2bda fix(Scripts/Ulduar): stop XT-002 summoning adds after death (#27589) 2026-09-09 22:30:59 -03:00
Andrew 2c94fbfbf6 fix(Scripts/Ulduar): Respawn Hodir's Rare Cache with the boss (#27582) 2026-09-09 21:54:57 -03:00
Andrew 9183925666 fix(Scripts/Ulduar): Use Thorim Sif's 10-man spell ids (#27575) 2026-09-09 19:57:28 -03:00
Andrew d0ca81bdea docs(agents): warn against summoning entries tracked by InstanceScript ObjectData (#27565) 2026-09-09 05:10:58 -03:00
Andrew 083efa2bd7 fix(DB/Loot): Correct Steelbreaker 10-man hard mode loot (#27566) 2026-09-09 04:57:26 -03:00
1702c28b74 fix(Scripts/Ulduar): Spawn Thorim's golem hand bunnies statically and drop their combat (#27523)
Co-authored-by: joschiwald <[email protected]>
Co-authored-by: Claude Fable 5.1 <[email protected]>
2026-09-07 17:48:24 -03:00
Andrew 0d89b673b5 fix(DB/Creature): Ironwork Cannon should attack players with Flame Cannon (#27401) 2026-09-05 15:35:34 -03:00
65c3bd1ae4 fix(Scripts/SSC): drive Hydross' form and beams from the Cleansing Field aura (#27503)
Co-authored-by: killerwife <[email protected]>
Co-authored-by: offl <[email protected]>
2026-09-05 14:54:02 -03:00
Andrew 78ef336d61 docs(agents): require upstream author credit for mirrored code (#27504) 2026-09-04 17:42:13 -03:00
Andrew 931fc9b4b0 fix(DB/Creature): Thorim's Thunder Orbs can no longer enter combat (#27470) 2026-09-04 09:56:55 +02:00
Andrew c663eac30b fix(DB/Spells): Mimiron's Laser Barrage hits a 10 degree cone instead of a 19yd wide line (#27469) 2026-09-03 21:19:40 -03:00
Andrew 54783860e4 fix(Core/Vehicles): Salvaged Demolishers should spawn with full pyrite (#27399) 2026-08-31 04:49:40 -03:00
Andrew 1c231a6606 fix(Core/Spells): keep the Demolisher gunner seat's pyrite in sync in Ulduar (#27398) 2026-08-30 21:01:31 -03:00
Andrew 0faf1b4ce5 fix(Scripts/Ulduar): Yogg-Saron should be defeated below 1.5% health (#27393) 2026-08-30 21:01:04 -03:00
Andrew c0ed123499 fix(DB/Creature): Ironwork Cannon should always use display id 25723 (#27395) 2026-08-30 20:16:37 -03:00
AndrewandCopilot Autofix powered by AI e5c4f2b09c docs(Agents): VerifiedBuild stamping and DoCast helper rules (#27396)
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
2026-08-30 20:16:10 -03:00
Andrew f7df88efaa fix(Scripts/Ulduar): Yogg-Saron's Grim Reprisal should not reflect damage dealt by totems (#27392) 2026-08-30 16:51:50 -03:00
Andrew d4c0aa80ab fix(DB/SAI): Champion of Hodir should cast Freezing Breath on the second highest threat target (#27387) 2026-08-30 13:34:58 -03:00
Andrew 5e93fed7a5 fix(Scripts/Ulduar): protect players riding Flame Leviathan from Hodir's Fury (#27360) 2026-08-28 10:13:22 +02:00
Andrew 6825b41eb7 fix(Scripts/Ulduar): clear Hodir's Fury freeze when Flame Leviathan resets or dies (#27359) 2026-08-28 08:00:33 +02:00
Andrew 4790cb08af fix(DB/Creature): move Salvaged Chopper First Aid to action bar slot 6 (#27361) 2026-08-28 07:58:44 +02:00
Andrew 527c24b92a fix(Scripts/Ulduar): fly the machine's sniffed approach arc and remove its spellclick (#27349) 2026-08-27 06:29:52 -03:00
Andrew 263025c187 fix(Scripts/Ulduar): add the missing event after Flame Leviathan's death (#27277) 2026-08-25 22:12:13 -03:00
Andrew 084c9e2bf1 fix(Scripts/Ulduar): despawn Freya's Strengthened Iron Roots on wipe and defeat (#27286) 2026-08-24 20:21:44 -03:00
AndrewandTreeston cf2c99f8a8 feat(Core/AI): add the UnitAI::OnDespawn hook (#27285)
Co-authored-by: Treeston <[email protected]>
2026-08-24 20:20:47 -03:00
AndrewandGustavo f7f8d84c84 fix(Core/Vehicles): don't seat accessories on dead spawns awaiting respawn (#27267)
Co-authored-by: Gustavo <[email protected]>
2026-08-23 10:20:46 +02:00
Andrew 8f68451bb2 fix(Scripts/Ulduar): drive Mimiron's Spinning Up targeting and barrage hold from spell data (#27265) 2026-08-22 15:28:31 -03:00
Andrew fd2c763726 fix(DB/Conditions): Stop pet attacks from stacking Focus Anger on Yogg-Saron's Crusher Tentacles (#27191) 2026-08-17 19:34:34 -03:00
Andrew 5646f9b01f fix(Scripts/Ulduar): correct Yogg-Saron's Shadow Beacon timer in phase 3 (#27193) 2026-08-17 15:36:38 -03:00
Andrew 70291e1888 fix(Scripts/Ulduar): randomize Yogg-Saron's Lunatic Gaze interval in phase 3 (#27192) 2026-08-17 15:36:27 -03:00
Andrew fe5b07e057 feat(Core/Commands): add .account info (#27160) 2026-08-16 23:25:11 +02:00
Andrew 3110fe5e8b fix(Core/Pet): stop new pets inheriting a recycled pet number's spells (#27141) 2026-08-15 00:03:06 -03:00
Andrew 88209128a5 refactor(Core/Config): remove dead configuration options (#27138) 2026-08-13 19:50:37 -03:00
AndrewandKillyana 9204c46ca9 fix(Core/GameObject): use the full spell focus radius (#27075)
Co-authored-by: Killyana <[email protected]>
2026-08-11 19:35:04 -03:00
Andrew 0a1611a4cf fix(Scripts/Ulduar): drive Mimiron's Laser Barrage from its sniffed target NPC (#27079) 2026-08-10 05:42:08 -03:00
Andrew b74f9e4f23 fix(Scripts/Ulduar): rework Freya's trio revive from sniff (#27068) 2026-08-09 12:20:42 -03:00
Andrew 553b6974d6 fix(DB/Creature): add Freya's Storm Lasher spawn visuals (#27067) 2026-08-09 12:03:42 -03:00
Andrew 4ee35f2f64 fix(Scripts/Ulduar): reconstruct Freya's hard mode intro from sniff (#27065) 2026-08-09 11:59:26 -03:00
Andrew ce056b41f8 fix(Scripts/Ulduar): remove Freya's Attuned to Nature stacks via dose reduction spells (#27063) 2026-08-09 11:58:04 -03:00
Andrew aca38f52f1 fix(Scripts/Ulduar): summon Freya's Lifebinder's Gift through its spell chain (#27062) 2026-08-09 11:19:35 -03:00
Andrew 037b45e3a3 fix(DB/Creature): Thorim despawns on evade (HARD_RESET) (#27059) 2026-08-09 11:19:26 -03:00
Andrew d85c8a7823 fix(Scripts/Ulduar): summon Sif during Thorim's intro instead of pre-spawning her (#27058) 2026-08-09 11:19:14 -03:00
Andrew f027e8b4a5 fix(Scripts/Ulduar): restore the Clash of Thunder mock fight before Thorim (#27057) 2026-08-09 11:19:02 -03:00
Andrew 7eea30d471 fix(Scripts/Ulduar): delay Sara's P2 Malady, Brain Link and Death Ray openers (#27055) 2026-08-09 06:55:32 -03:00
Andrew f8f667bff5 fix(Core/Spells): fix crash on non-unit targets in area target check (#27061) 2026-08-09 06:14:20 -03:00
Andrew 161d3a27e3 fix(Scripts/Ulduar): delay the Crusher Tentacle's first Diminish Power (#27054) 2026-08-08 19:38:56 -03:00
Andrewandhorn be5c07d566 fix(Scripts/Ulduar): cast Deafening Roar when Keepers are missing (#27052)
Co-authored-by: horn <[email protected]>
2026-08-08 18:16:25 -03:00
Andrew 715d6a3d3b fix(Scripts/Ulduar): complete the brain room Influence Tentacle sets (#27048) 2026-08-08 17:50:45 -03:00
Andrew dd7da10af2 docs(Agents): add script, SQL and config conventions (#27045) 2026-08-08 16:28:19 -03:00
AndrewandClaude Fable 5 c2cf1e06a1 fix(Scripts/Ulduar): credit Singed to the player instead of the campfire (#27047)
Co-authored-by: Claude Fable 5 <[email protected]>
2026-08-08 15:28:33 -03:00
Andrew b6bd504f8e fix(Scripts/Ulduar): drive the Crusher Tentacle interrupt with its proc aura (#27046) 2026-08-08 14:24:06 -03:00