diff options
| -rw-r--r-- | .github/README.md | 1 | ||||
| -rw-r--r-- | data/sql/updates/db_world/2025_11_18_02.sql | 5 | ||||
| -rw-r--r-- | src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp | 36 |
3 files changed, 20 insertions, 22 deletions
diff --git a/.github/README.md b/.github/README.md index a9fc21a90c..3a9e654d62 100644 --- a/.github/README.md +++ b/.github/README.md @@ -4,6 +4,7 @@ [](https://www.codefactor.io/repository/github/azerothcore/azerothcore-wotlk) [](https://stackoverflow.com/questions/tagged/azerothcore?sort=newest "Ask / browse questions here") [](https://discord.gg/gkt4y2x "Our community hub on Discord") +[](https://www.bountyhub.dev/bounties?repo=azerothcore) ## Build Status diff --git a/data/sql/updates/db_world/2025_11_18_02.sql b/data/sql/updates/db_world/2025_11_18_02.sql new file mode 100644 index 0000000000..15aac3ed2f --- /dev/null +++ b/data/sql/updates/db_world/2025_11_18_02.sql @@ -0,0 +1,5 @@ +-- 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 +(17, 0, 43997, 0, 0, 31, 1, 3, 24533, 0, 0, 0, 0, '', 'target must be \'Dragonflayer Defender\''); 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); |
