mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-16 10:30:27 +00:00
fix(Scripts/Karazhan): Implement Aran's Atiesh interaction (#17692)
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
--
|
||||
DELETE FROM `areatrigger_scripts` WHERE `entry` = 4216;
|
||||
INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES
|
||||
(4216, 'at_karazhan_atiesh_aran');
|
||||
@@ -16,6 +16,7 @@
|
||||
*/
|
||||
|
||||
#include "GameObject.h"
|
||||
#include "Player.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "SpellAuras.h"
|
||||
@@ -41,7 +42,6 @@ enum Texts
|
||||
|
||||
enum Spells
|
||||
{
|
||||
//Spells
|
||||
SPELL_FROSTBOLT = 29954,
|
||||
SPELL_FIREBALL = 29953,
|
||||
SPELL_ARCMISSLE = 29955,
|
||||
@@ -69,37 +69,38 @@ enum Spells
|
||||
|
||||
SPELL_SUMMON_BLIZZARD = 29969, // Activates the Blizzard NPC
|
||||
|
||||
SPELL_SHADOW_PYRO = 29978
|
||||
SPELL_SHADOW_PYRO = 29978,
|
||||
|
||||
SPELL_ATIESH_VISUAL = 31796
|
||||
};
|
||||
|
||||
enum Creatures
|
||||
{
|
||||
NPC_SHADOW_OF_ARAN = 18254
|
||||
NPC_SHADOW_OF_ARAN = 18254
|
||||
};
|
||||
|
||||
enum SuperSpell
|
||||
{
|
||||
SUPER_FLAME = 0,
|
||||
SUPER_FLAME = 0,
|
||||
SUPER_BLIZZARD,
|
||||
SUPER_AE,
|
||||
};
|
||||
|
||||
enum Groups
|
||||
{
|
||||
GROUP_DRINKING = 0
|
||||
GROUP_DRINKING = 0
|
||||
};
|
||||
|
||||
enum Misc
|
||||
{
|
||||
ACTION_ATIESH_REACT = 1
|
||||
};
|
||||
|
||||
Position const roomCenter = {-11158.f, -1920.f};
|
||||
|
||||
struct boss_shade_of_aran : public BossAI
|
||||
{
|
||||
boss_shade_of_aran(Creature* creature) : BossAI(creature, DATA_ARAN)
|
||||
{
|
||||
scheduler.SetValidator([this]
|
||||
{
|
||||
return !me->HasUnitState(UNIT_STATE_CASTING);
|
||||
});
|
||||
}
|
||||
boss_shade_of_aran(Creature* creature) : BossAI(creature, DATA_ARAN), _atieshReaction(false) { }
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
@@ -139,6 +140,20 @@ struct boss_shade_of_aran : public BossAI
|
||||
return me->GetDistance2d(roomCenter.GetPositionX(), roomCenter.GetPositionY()) < 45.0f;
|
||||
}
|
||||
|
||||
void SetGUID(ObjectGuid guid, int32 id) override
|
||||
{
|
||||
if (id == ACTION_ATIESH_REACT && !_atieshReaction)
|
||||
{
|
||||
Talk(SAY_ATIESH);
|
||||
_atieshReaction = true;
|
||||
if (Unit* atieshOwner = ObjectAccessor::GetUnit(*me, guid))
|
||||
{
|
||||
me->PauseMovement(3000);
|
||||
me->SetFacingToObject(atieshOwner);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (who && who->isTargetableForAttack() && me->GetReactState() != REACT_PASSIVE)
|
||||
@@ -442,6 +457,7 @@ private:
|
||||
bool _frostCooledDown;
|
||||
bool _drinking;
|
||||
bool _hasDrunk;
|
||||
bool _atieshReaction;
|
||||
};
|
||||
|
||||
// 30004 - Flame Wreath
|
||||
@@ -522,9 +538,32 @@ class spell_flamewreath_aura : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
class at_karazhan_atiesh_aran : public AreaTriggerScript
|
||||
{
|
||||
public:
|
||||
at_karazhan_atiesh_aran() : AreaTriggerScript("at_karazhan_atiesh_aran") { }
|
||||
|
||||
bool OnTrigger(Player* player, AreaTrigger const* /*areaTrigger*/) override
|
||||
{
|
||||
if (InstanceScript* instance = player->GetInstanceScript())
|
||||
{
|
||||
if (player->HasAura(SPELL_ATIESH_VISUAL))
|
||||
{
|
||||
if (Creature* aran = instance->GetCreature(DATA_ARAN))
|
||||
{
|
||||
aran->AI()->SetGUID(player->GetGUID(), ACTION_ATIESH_REACT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_shade_of_aran()
|
||||
{
|
||||
RegisterKarazhanCreatureAI(boss_shade_of_aran);
|
||||
RegisterSpellScript(spell_flamewreath);
|
||||
RegisterSpellScript(spell_flamewreath_aura);
|
||||
new at_karazhan_atiesh_aran();
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ const Position OptionalSpawn[] =
|
||||
ObjectData const creatureData[] =
|
||||
{
|
||||
{ NPC_ATTUMEN_THE_HUNTSMAN, DATA_ATTUMEN },
|
||||
{ NPC_SHADE_OF_ARAN, DATA_ARAN },
|
||||
{ NPC_MIDNIGHT, DATA_MIDNIGHT },
|
||||
{ NPC_DOROTHEE, DATA_DOROTHEE },
|
||||
{ NPC_TITO, DATA_TITO },
|
||||
|
||||
@@ -97,6 +97,7 @@ enum KZCreatures
|
||||
NPC_ATTUMEN_THE_HUNTSMAN_MOUNTED = 16152,
|
||||
NPC_MIDNIGHT = 16151,
|
||||
NPC_NIGHTBANE = 17225,
|
||||
NPC_SHADE_OF_ARAN = 16524,
|
||||
|
||||
// Trash
|
||||
NPC_COLDMIST_WIDOW = 16171,
|
||||
|
||||
Reference in New Issue
Block a user