mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-18 11:25:42 +00:00
fix(Scripts/RuinsOfAhnQiraj): Improve Kurinnaxx (#12136)
This commit is contained in:
@@ -26,7 +26,6 @@ enum Spells
|
||||
SPELL_SANDTRAP = 25648,
|
||||
SPELL_ENRAGE = 26527,
|
||||
SPELL_SUMMON_PLAYER = 26446,
|
||||
SPELL_TRASH = 3391, // Should perhaps be triggered by an aura? Couldn't find any though
|
||||
SPELL_WIDE_SLASH = 25814
|
||||
};
|
||||
|
||||
@@ -34,13 +33,12 @@ enum Events
|
||||
{
|
||||
EVENT_MORTAL_WOUND = 1,
|
||||
EVENT_SANDTRAP = 2,
|
||||
EVENT_TRASH = 3,
|
||||
EVENT_WIDE_SLASH = 4
|
||||
EVENT_WIDE_SLASH = 3
|
||||
};
|
||||
|
||||
enum Texts
|
||||
{
|
||||
SAY_KURINAXX_DEATH = 5, // Yelled by Ossirian the Unscarred
|
||||
SAY_KURINAXX_DEATH = 5 // Yell by 'Ossirian the Unscarred'
|
||||
};
|
||||
|
||||
class boss_kurinnaxx : public CreatureScript
|
||||
@@ -50,25 +48,22 @@ public:
|
||||
|
||||
struct boss_kurinnaxxAI : public BossAI
|
||||
{
|
||||
boss_kurinnaxxAI(Creature* creature) : BossAI(creature, DATA_KURINNAXX)
|
||||
{
|
||||
}
|
||||
boss_kurinnaxxAI(Creature* creature) : BossAI(creature, DATA_KURINNAXX) {}
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
_Reset();
|
||||
_enraged = false;
|
||||
events.ScheduleEvent(EVENT_MORTAL_WOUND, 8000);
|
||||
events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(8000, 10000));
|
||||
events.ScheduleEvent(EVENT_SANDTRAP, urand(5000, 15000));
|
||||
events.ScheduleEvent(EVENT_TRASH, 1000);
|
||||
events.ScheduleEvent(EVENT_WIDE_SLASH, 11000);
|
||||
events.ScheduleEvent(EVENT_WIDE_SLASH, urand(10000, 15000));
|
||||
}
|
||||
|
||||
void DamageTaken(Unit*, uint32& /*damage*/, DamageEffectType, SpellSchoolMask) override
|
||||
{
|
||||
if (!_enraged && HealthBelowPct(30))
|
||||
{
|
||||
DoCast(me, SPELL_ENRAGE);
|
||||
DoCastSelf(SPELL_ENRAGE);
|
||||
_enraged = true;
|
||||
}
|
||||
}
|
||||
@@ -77,7 +72,9 @@ public:
|
||||
{
|
||||
_JustDied();
|
||||
if (Creature* Ossirian = me->GetMap()->GetCreature(instance->GetGuidData(DATA_OSSIRIAN)))
|
||||
{
|
||||
sCreatureTextMgr->SendChat(Ossirian, SAY_KURINAXX_DEATH, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -96,28 +93,23 @@ public:
|
||||
{
|
||||
case EVENT_MORTAL_WOUND:
|
||||
DoCastVictim(SPELL_MORTALWOUND);
|
||||
events.ScheduleEvent(EVENT_MORTAL_WOUND, 8000);
|
||||
events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(8000, 10000));
|
||||
break;
|
||||
case EVENT_SANDTRAP:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100, true))
|
||||
{
|
||||
target->CastSpell(target, SPELL_SANDTRAP, true);
|
||||
else if (Unit* victim = me->GetVictim())
|
||||
victim->CastSpell(victim, SPELL_SANDTRAP, true);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_SANDTRAP, urand(5000, 15000));
|
||||
break;
|
||||
case EVENT_WIDE_SLASH:
|
||||
DoCast(me, SPELL_WIDE_SLASH);
|
||||
events.ScheduleEvent(EVENT_WIDE_SLASH, 11000);
|
||||
break;
|
||||
case EVENT_TRASH:
|
||||
DoCast(me, SPELL_TRASH);
|
||||
events.ScheduleEvent(EVENT_WIDE_SLASH, 16000);
|
||||
DoCastSelf(SPELL_WIDE_SLASH);
|
||||
events.ScheduleEvent(EVENT_WIDE_SLASH, urand(12000, 15000));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user