diff options
| -rw-r--r-- | data/sql/updates/db_world/2025_11_18_02.sql (renamed from data/sql/updates/pending_db_world/rev_1763493580706323221.sql) | 1 | ||||
| -rw-r--r-- | src/server/game/Spells/SpellInfoCorrections.cpp | 7 | ||||
| -rw-r--r-- | src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp | 36 |
3 files changed, 22 insertions, 22 deletions
diff --git a/data/sql/updates/pending_db_world/rev_1763493580706323221.sql b/data/sql/updates/db_world/2025_11_18_02.sql index a68108c119..15aac3ed2f 100644 --- a/data/sql/updates/pending_db_world/rev_1763493580706323221.sql +++ b/data/sql/updates/db_world/2025_11_18_02.sql @@ -1,3 +1,4 @@ +-- DB update 2025_11_18_01 -> 2025_11_18_02 -- DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 17) AND (`SourceGroup` = 0) AND (`SourceEntry` = 43997) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 31) AND (`ConditionTarget` = 1) AND (`ConditionValue1` = 3) AND (`ConditionValue2` = 24533) AND (`ConditionValue3` = 0); INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES diff --git a/src/server/game/Spells/SpellInfoCorrections.cpp b/src/server/game/Spells/SpellInfoCorrections.cpp index 623c43f1e1..d3322349b4 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -5131,6 +5131,13 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->ChannelInterruptFlags &= ~AURA_INTERRUPT_FLAG_TURNING; }); + // Summon Scourged Captive + ApplySpellFix({ 51597 }, [](SpellInfo* spellInfo) + { + spellInfo->Effects[EFFECT_0].BasePoints = 1; + spellInfo->Effects[EFFECT_0].DieSides = 0; + }); + // The Green Tower ApplySpellFix({ 18097 }, [](SpellInfo* spellInfo) { diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp index 78e10f8074..1a240ce158 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp @@ -59,7 +59,6 @@ enum Misc EVENT_SPELL_EYE_BEAM = 4, EVENT_SPELL_LIGHTNING_BREATH = 5, EVENT_SPELL_POISON_CLOUD = 6, - EVENT_SPELL_TURN_FLESH = 7, EVENT_TURN_FLESH_REAL = 9, EVENT_TURN_BONES_REAL = 10, EVENT_KILL_TALK = 11 @@ -77,9 +76,7 @@ public: struct boss_tharon_jaAI : public BossAI { - boss_tharon_jaAI(Creature* creature) : BossAI(creature, DATA_THARON_JA) - { - } + boss_tharon_jaAI(Creature* creature) : BossAI(creature, DATA_THARON_JA) { } void Reset() override { @@ -88,15 +85,23 @@ public: me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true); me->SetDisplayId(me->GetNativeDisplayId()); me->CastSpell(me, SPELL_CLEAR_GIFT, true); + + ScheduleHealthCheckEvent(55, [&] { + Talk(SAY_FLESH); + me->GetThreatMgr().ResetAllThreat(); + me->CastSpell((Unit*)nullptr, SPELL_TURN_FLESH, false); + + events.Reset(); + events.ScheduleEvent(EVENT_TURN_FLESH_REAL, 3s); + }, false); } void JustEngagedWith(Unit* who) override { Talk(SAY_AGGRO); BossAI::JustEngagedWith(who); - events.ScheduleEvent(EVENT_SPELL_CURSE_OF_LIFE, 5s); - events.ScheduleEvent(EVENT_SPELL_SHADOW_VOLLEY, 8s, 10s); - events.ScheduleEvent(EVENT_SPELL_TURN_FLESH, 1s); + events.ScheduleEvent(EVENT_SPELL_CURSE_OF_LIFE, 13s, 24s); + events.ScheduleEvent(EVENT_SPELL_SHADOW_VOLLEY, 6s, 29s); } void KilledUnit(Unit* /*victim*/) override @@ -144,24 +149,11 @@ public: { case EVENT_SPELL_CURSE_OF_LIFE: DoCastRandomTarget(SPELL_CURSE_OF_LIFE, 0, 30.0f, false); - events.ScheduleEvent(EVENT_SPELL_CURSE_OF_LIFE, 13s); + events.ScheduleEvent(EVENT_SPELL_CURSE_OF_LIFE, 11s, 28s); break; case EVENT_SPELL_SHADOW_VOLLEY: DoCastAOE(SPELL_SHADOW_VOLLEY); - events.ScheduleEvent(EVENT_SPELL_SHADOW_VOLLEY, 9s); - break; - case EVENT_SPELL_TURN_FLESH: - if (me->HealthBelowPct(50)) - { - Talk(SAY_FLESH); - me->GetThreatMgr().ResetAllThreat(); - me->CastSpell((Unit*)nullptr, SPELL_TURN_FLESH, false); - - events.Reset(); - events.ScheduleEvent(EVENT_TURN_FLESH_REAL, 3s); - return; - } - events.ScheduleEvent(EVENT_SPELL_TURN_FLESH, 1s); + events.ScheduleEvent(EVENT_SPELL_SHADOW_VOLLEY, 6s, 29s); break; case EVENT_TURN_FLESH_REAL: DoCastSelf(SPELL_DUMMY, true); |
