Commit Graph
19530 Commits
Author SHA1 Message Date
55794ee4bc fix(Core/Events): validate holiday data when loading game events (#27652)
Co-authored-by: Gerhood <[email protected]>
Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
2026-09-15 06:58:19 -03:00
AlsoNotMehhandhennors 27e0962041 fix(Core/Spells): correct SPELLMOD_COST order of operations (#27388)
Co-authored-by: hennors <[email protected]>
2026-09-15 10:02:57 +02:00
EricksOliveira 5c94774263 fix(Scripts/ICC): restore Rocket Artillery in the Gunship Battle (#27199) 2026-09-15 09:56:03 +02:00
EricksOliveira d9eb4c612a fix(Scripts/ICC): make the Lady Deathwhisper elevator wait 7s at each stop (#27149) 2026-09-15 09:25:29 +02:00
EricksOliveiraandClaude Opus 5 8362ae1635 fix(Core/Battlefield): resurrect ghosts when a Wintergrasp workshop is contested (#27264)
Co-authored-by: Claude Opus 5 <[email protected]>
2026-09-15 01:37:15 -03:00
658448f69a fix(Core/Spell): Don't put ritual spells on cooldown when the spell is cancelled. (#27643)
Co-authored-by: Shauren <[email protected]>
Co-authored-by: Gildor <[email protected]>
2026-09-15 01:09:14 -03:00
moostigre 0327e81994 fix(Core/Spells): preserve loaded aura amount without caster (#27375) 2026-09-15 00:50:22 -03:00
sudludandClaude Opus 5 a0019cea78 fix(Core/Events): do not count a holiday as active during its building stage (#27646)
Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
2026-09-14 21:19:37 -03:00
github-actions[bot] 7970acf716 chore(DB): import pending files
Referenced commit(s): d32c4abe8b
2026-09-14 23:24:17 +00:00
Andrew d32c4abe8b fix(Scripts/Ulduar): cap Elder Brightleaf's Unstable Sun Beams (#27638) 2026-09-14 20:23:13 -03:00
e1823bb2db feat(Core/Database): enable modules to own their database (#27544)
Co-authored-by: UndeadRogue <[email protected]>
Co-authored-by: UltraNix <[email protected]>
Co-authored-by: 郑佩茹 <[email protected]>
Co-authored-by: Yunfan Li <[email protected]>
Co-authored-by: kadeshar <[email protected]>
Co-authored-by: sudlud <[email protected]>
Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
2026-09-14 09:20:44 +02:00
github-actions[bot] e962278b9b chore(DB): import pending files
Referenced commit(s): 7907c668b1
2026-09-13 21:18:54 +00:00
Andrew 7907c668b1 fix(DB/Ulduar): give Freya's Elders their emblems (#27634) 2026-09-13 18:17:52 -03:00
cc280cd188 fix(Scripts/Spells): Glyph of Lightwell not increasing Lightwell healing (#27162)
Co-authored-by: sudlud <[email protected]>
Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
2026-09-13 22:49:18 +02: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
Vinges541andAndrew 9c416aaacb fix(Core/Groups): finalize timed-out loot votes (#27486)
Co-authored-by: Andrew <[email protected]>
2026-09-13 13:02:28 -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
Axel Cocat cd8dc5775b feat(Core/Mail): add Mail.PushInboxOnDelivery to refresh stale mailboxes (#27508) 2026-09-13 11:16:23 -03:00
Crow 67317e09df fix(Core): Correct Spelling of WorldSession::isLogingOut() & Use PascalCase (#27238) 2026-09-13 15:58:46 +02: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
e39b3f6f28 fix(Core/Unit): clear moving flags before sending root (#27563)
Co-authored-by: sudlud <[email protected]>
Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
2026-09-13 07:32:01 +02:00
AlsoNotMehh f1bef3bc0a fix(Core/Movement): Fix pet pathing and chase angle against oversized targets (e.g. Brain of Yogg-Saron) (#27426) 2026-09-12 20:09:39 -03:00
github-actions[bot] 6447b1643c chore(DB): import pending files
Referenced commit(s): e9675bf3e0
2026-09-12 22:44:51 +00: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
mpfansandsudlud d93aa1eb30 fix(Core/Vehicle): avoid Vehicle-kit use-after-free in TeleportVehicle (#26116)
Co-authored-by: sudlud <[email protected]>
2026-09-12 23:09:33 +02:00
MacWarrior a20beb0a80 feat(Core/Scripting): Add spell aura exclusivity hook (#26565) 2026-09-12 22:33:58 +02:00
f7759071a0 fix(Scripts/SlavePens): Fixed the loot permissions for boss_ahune's chest in Slave Pens (#27117)
Co-authored-by: sogladev <[email protected]>
Co-authored-by: sudlud <[email protected]>
2026-09-12 22:17:00 +02:00
moostigre 275ce1e609 fix(Scripts/Silverpine): prevent duplicate Pyrewood Ambush events (#26832) 2026-09-12 21:47:29 +02:00
Saqra1 e826d9f6dc fix(Core/Pets): Resume chase after deferred casts (#27623) 2026-09-12 16:43:59 -03:00
隐如仙 568ea12bbe fix(Core/Movement): Prevent waypoints from passing through the ground when using SmoothTransition (#27107) 2026-09-12 21:22:11 +02:00
github-actions[bot] 8516fd49a6 chore(DB): import pending files
Referenced commit(s): b6f62f5228
2026-09-12 19:09:31 +00:00
sogladev b6f62f5228 fix(DB/Creature): set NO_PARRY_HASTEN for t7-t10 bosses (#27625) 2026-09-12 16:06:12 -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
github-actions[bot] 4a91be84ab chore(DB): import pending files
Referenced commit(s): 186dfc7fa1
2026-09-12 17:48:15 +00:00
Andrew 186dfc7fa1 fix(DB/Ulduar): correct 10-man and 25-man loot pools (#27624) 2026-09-12 14:47:05 -03:00
github-actions[bot] ae7ed2f096 chore(DB): import pending files
Referenced commit(s): 83ad15d755
2026-09-12 15:14:52 +00:00
Andrew 09c70f28a2 fix(Scripts/Ulduar): stop Flame Leviathan saving the raid on pull (#27622) 2026-09-12 12:13:28 -03:00
83ad15d755 fix(DB/Quest): Summon Lord Kragaru from the Serpent Statue (#27611)
Co-authored-by: Aokromes <[email protected]>
Co-authored-by: Dr-J <[email protected]>
Co-authored-by: Gultask <[email protected]>
2026-09-12 12:08:45 -03:00
sogladev c3e3d216bf fix(Core/Spells): allow paladin auras from different casters to coexist (#27509) 2026-09-12 16:57:59 +02:00
Saqra1 708403602a fix(Core/Spells): Prevent taunts from affecting totems (#27601) 2026-09-12 16:57:34 +02:00
Andrew f0f08f1331 fix(Scripts/Ulduar): cast Razorscale's Wing Buffet once per grounding (#27616) 2026-09-12 11:14:12 -03:00
Saqra1 74487848ea fix(Core/Pets): Stop moving for autocast channels (#27564) 2026-09-12 14:51:19 +02:00
Mark Klitgaard-BrodersenandAlsoNotMehh 553012d86f fix(Core/Spells): load all spell_custom_attr rows (#27365)
DatabaseWorkerPool::Query already advances to the first row as part of
its result guard, so `for (count = 0; result->NextRow(); ++count)` steps
past it and the first row is never applied. Use the do/while idiom that
the other 16 loaders in this file already use.

On a stock DB the skipped row is spell 53 (Backstab, rank 1), the lowest
spell_id in the table, which therefore never receives
SPELL_ATTR0_CU_REQ_CASTER_BEHIND_TARGET and can be cast from the front.
The startup line also under-reports by one.

The same fix was submitted independently as #27416, which also provided
the in-game confirmation.

Co-authored-by: AlsoNotMehh <[email protected]>
2026-09-12 14:43:18 +02:00
github-actions[bot] 01c58df5bd chore(DB): import pending files
Referenced commit(s): ab951fb735
2026-09-12 11:46:28 +00:00
moostigreandsudlud ab951fb735 fix(DB/Scholomance): guarantee one rare loot from Lord Alexei Barov (#27270)
Co-authored-by: sudlud <[email protected]>
2026-09-12 13:44:59 +02: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
github-actions[bot] 3ef3432cb6 chore(DB): import pending files
Referenced commit(s): 968cf32814
2026-09-12 00:17:15 +00:00
Pierre-Luc Brunet 968cf32814 fix(DB/SAI): drop Mogg's link to an undefined event (#27609) 2026-09-11 21:16:14 -03:00