Skip to content

fix(Scripts/IcecrownCitadel): Gas Cloud detonates on contact - #27147

Open
EricksOliveira wants to merge 4 commits into
azerothcore:masterfrom
EricksOliveira:FixOozeRed
Open

fix(Scripts/IcecrownCitadel): Gas Cloud detonates on contact#27147
EricksOliveira wants to merge 4 commits into
azerothcore:masterfrom
EricksOliveira:FixOozeRed

Conversation

@EricksOliveira

Copy link
Copy Markdown
Contributor

In the Professor Putricide encounter the Gas Cloud fixates a player with Gaseous
Bloat and chases them, but nothing in the code or the world DB ever cast Expunged
Gas, so it never detonated: it just kept meleeing and re-fixated on someone else.

Gaseous Bloat now procs on the cloud's own auto attack against the player carrying
it and fires Expunged Gas, scaled by the stacks left at contact. The bloat is
consumed by the detonation, and the cloud stops and despawns instead of picking a
new target. Expunged Gas also gets ALWAYS_HIT, since the dbc doesn't give it that
attribute and the detonation could miss, unlike Ooze Eruption on the green ooze.
Immunities still apply. The pending SQL shares the damage across everyone hit, the
same way Ooze Eruption does.

Two things worth a maintainer's eye. The despawn follows the ticket and not retail,
where the add survives its detonation and the raid kills it, so it needs a sign off.
And heroic deals the same damage as normal, because 70701 has no difficulty variants
and the formula only separates 10 from 25; that's the upstream TrinityCore formula
and I'd rather not invent heroic values.

Changes Proposed:

This PR proposes changes to:

  • Core (units, players, creatures, game systems).
  • Scripts (bosses, spell scripts, creature scripts).
  • Database (SAI, creatures, etc).

AI-assisted Pull Requests

Important

Using AI tools to prepare pull requests is allowed, but it must be disclosed and it must follow our AC guidelines for AI Agentic Engineering (link below).

You are expected to fully understand the changes you submit and to be able to explain and justify them when maintainers ask.

  • AI tools (e.g. Claude, ChatGPT, or similar) were used entirely or partially to prepare this pull request. If checked, specify which tools and models below.
    • Tools/models used: Opus5
  • I have read and understood the AC guidelines for AI Agentic Engineering

Issues Addressed:

SOURCE:

The changes have been validated through:

  • Live research (checked on live servers, e.g Classic WotLK, Retail, etc.)
  • Sniffs (remember to share them with the open source community!)
  • Video evidence, knowledge databases or other public sources (e.g forums, Wowhead, etc.)
  • The changes promoted by this pull request come partially or entirely from another project (cherry-pick). Cherry-picks must be committed using the proper --author tag in order to be accepted, thus crediting the original authors, unless otherwise unable to be found

Tests Performed:

This PR has been:

  • Tested in-game by the author.
  • Tested in-game by other community members/someone else other than the author/has been live on production servers.
  • This pull request requires further testing and may have edge cases to be tested.

How to Test the Changes:

  • This pull request can be tested by following the reproduction steps provided in the linked issue
  • This pull request requires further testing. Provide steps to test your changes. If it requires any specific setup e.g multiple players please specify it as well.

Known Issues and TODO List:

  • [ ]
  • [ ]

How to Test AzerothCore PRs

When a PR is ready to be tested, it will be marked as [WAITING TO BE TESTED].

You can help by testing PRs and writing your feedback here on the PR's page on GitHub. Follow the instructions here:

http://www.azerothcore.org/wiki/How-to-test-a-PR

REMEMBER: when testing a PR that changes something generic (i.e. a part of code that handles more than one specific thing), the tester should not only check that the PR does its job (e.g. fixing spell XXX) but especially check that the PR does not cause any regression (i.e. introducing new bugs).

For example: if a PR fixes spell X by changing a part of code that handles spells X, Y, and Z, we should not only test X, but we should test Y and Z as well.

EricksOliveira and others added 2 commits August 14, 2026 13:07
The Gas Cloud fixates a player with Gaseous Bloat and chases them, but nothing
in the code or the world DB ever cast Expunged Gas, so the contact detonation
never happened and the add just re-fixated on someone else.

Gaseous Bloat now procs on the cloud's own melee auto attack against the player
carrying it and casts Expunged Gas, with damage scaled by the stacks left at the
moment of contact. The bloat is consumed by the detonation and the cloud stops
and despawns instead of picking a new target, which follows the ticket rather
than retail, where the add survives and the raid kills it.

Expunged Gas also gets ALWAYS_HIT, since the dbc doesn't give it that attribute
and the detonation could miss or be resisted in testing, unlike the equivalent
Ooze Eruption on the green ooze. Immunities are unaffected.

The world DB update pins the Gaseous Bloat proc flags to the melee auto attack
taken flag, which is also what keeps its own damage ticks from detonating, and
shares the Expunged Gas damage across everyone hit, like Ooze Eruption.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The dbc already carries ProcFlags 8 on all four Gaseous Bloat variants, and
LoadSpellProcs falls back to the dbc value while the spell_proc column stays 0,
so the update changed nothing at runtime.

It also disagreed with the auto-generated SpellProcTestData.h snapshot, which
records 0 for those ids, and undid part of the normalisation that set those
columns to 0 in the first place.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@EricksOliveira

Copy link
Copy Markdown
Contributor Author

Self-review — FixOozeRed → upstream/master

Outcome 3 findings — 1 fixed, 2 dismissed — 2 rounds, stopped by author before a third

Caveat the fix from round 1 was re-reviewed in round 2; nothing was fixed after round 2, so no fix is left unreviewed

Reviewed b97829318 (FixOozeRed vs upstream/master, merge-base diff — 3 files, +58 −4)

By Claude Code (Claude Agent SDK), claude-opus-5 — self-review v1.0, 2026-08-14

Testing in-game on 10N by the author: detonation fires on contact, damage scales with the remaining stacks, no miss, cloud despawns after. Volatile Ooze re-tested and unchanged. 25-man and heroic not tested. Build, lint and tests not run by this review; the codestyle linters cannot run on this machine (no Python interpreter), so both rounds checked the style rules by hand.

Review details (2 rounds)

Intent In the ICC Professor Putricide encounter, the Gas Cloud (37562) fixates a player with Gaseous Bloat (70672 and its difficulty variants) and chases them; when it catches that player it must detonate with Expunged Gas (70701), damaging the raid scaled by the stacks left at contact, then despawn. The Volatile Ooze (37697) must keep behaving as it does today.

Project rules .agents/docs/self-review-rules.md found and applied (regression depth by reach, SQL predicate side effects, in-game testing recorded above).

Excluded from the reviewers .agents/plans/ and this report.

Round 1 — ce5d7c1ff, 1 finding

  1. rev_1786650055537512600.sql:5UPDATE spell_proc SET ProcFlags = 8 is a no-op: the dbc already carries 8 on all four ids and LoadSpellProcs falls back to it while the column is 0; the comment claimed the opposite, and the update desynced the auto-generated SpellProcTestData.h snapshot → fixed in b97829318 (update and comment removed, spell_custom_attr kept)

Round 2 — b97829318, 2 findings

  1. boss_professor_putricide.cpp:1062Is25ManRaid() collapses 10N/10H and 25N/25H, so heroic gets normal-mode detonation damage (~3.3k per raider on 25H against ~250k for the paired Ooze Eruption) → dismissed: this is the upstream TrinityCore formula, 70701 has no difficulty variants in the dbc, and there is no source for heroic values, so any multiplier would be invented. Left for maintainer tuning and flagged in the PR description.
  2. rev_1786650055537512600.sql:2-3 — comment reads as if Ooze Eruption were raid-wide too, while its radius is 10 yards → dismissed: the "exactly like" attaches to the preceding clause, the damage split, which is accurate; the raid-wide reach is asserted about 70701 only, so nothing false is stated about 70492.

Round 2 also verified, without producing findings: the proc fires only on the cloud's own auto attack against its own fixated target; the dbc ProcFlags dependency left after round 1's fix holds for all four ids; removing the aura inside OnProc is free of lifetime issues; the ALWAYS_HIT correction is needed rather than redundant; the Volatile Ooze chain is untouched; no leftovers or style violations in the added lines.

@github-actions github-actions Bot added DB related to the SQL database CORE Related to the core Script Refers to C++ Scripts for the Core file-cpp Used to trigger the matrix build labels Aug 14, 2026
@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro Plus

Run ID: a493b310-b532-482f-849a-2b91754048bb

📥 Commits

Reviewing files that changed from the base of the PR and between 7d9027d and b978293.

📒 Files selected for processing (3)
  • data/sql/updates/pending_db_world/rev_1786650055537512600.sql
  • src/server/game/Spells/SpellInfoCorrections.cpp
  • src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp

📝 Walkthrough

Walkthrough

The update configures spell 70701 with custom attributes and the always-hit correction. Gas Cloud AI now handles Expunged Gas detonation separately, restricts proc handling to the originating cloud, calculates raid-size damage, consumes Gaseous Bloat, and despawns after detonation.

Merge Risk: ⚪ Minimal · up to b9782

The PR adds the missing Gas Cloud detonation behavior and related spell/database updates; no actionable merge-blocking risk remains based on the supplied evidence.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Updated comment for clarity regarding cloud detonation behavior.
@EricksOliveira
EricksOliveira requested a review from PkllonG August 14, 2026 16:19
@PkllonG

PkllonG commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Testing
image

Comment thread src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp Outdated
@PkllonG

PkllonG commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Tested

@EricksOliveira
EricksOliveira requested a review from PkllonG August 14, 2026 16:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CORE Related to the core DB related to the SQL database file-cpp Used to trigger the matrix build Script Refers to C++ Scripts for the Core

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ICC] Professor Putricide - Red Ooze (Volatile Ooze) does not explode on player contact

2 participants