fix(Scripts/ZulGurub): Priestess Jeklik intro (#12109)
* fix(Core/ZulGurub): Priestess Jeklik intro * ? * sniffed values
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
--
|
||||||
|
SET @ENTRY := 14517;
|
||||||
|
SET @PATH := @ENTRY*10;
|
||||||
|
UPDATE `creature_template_movement` SET `Flight` = 2 WHERE `CreatureId` = @ENTRY;
|
||||||
|
|
||||||
|
DELETE FROM `waypoint_data` WHERE `id` = @PATH;
|
||||||
|
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES
|
||||||
|
(@PATH, 1, -12291.88, -1380.0778, 144.90173, 2.286381244659423828, 0, 2, 0, 100, 0),
|
||||||
|
(@PATH, 2, -12273.857, -1407.774, 132.22281, 0, 0, 2, 0, 100, 0);
|
||||||
@@ -97,6 +97,13 @@ Position const SpawnBat[6] =
|
|||||||
{ -12293.6220f, -1380.2640f, 144.8304f, 5.483f }
|
{ -12293.6220f, -1380.2640f, 144.8304f, 5.483f }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum Misc
|
||||||
|
{
|
||||||
|
PATH_JEKLIK_INTRO = 145170
|
||||||
|
};
|
||||||
|
|
||||||
|
Position const homePosition = { -12291.9f, -1380.08f, 144.902f, 2.28638f };
|
||||||
|
|
||||||
struct boss_jeklik : public BossAI
|
struct boss_jeklik : public BossAI
|
||||||
{
|
{
|
||||||
boss_jeklik(Creature* creature) : BossAI(creature, DATA_JEKLIK) { }
|
boss_jeklik(Creature* creature) : BossAI(creature, DATA_JEKLIK) { }
|
||||||
@@ -106,7 +113,9 @@ struct boss_jeklik : public BossAI
|
|||||||
DoCastSelf(SPELL_GREEN_CHANNELING);
|
DoCastSelf(SPELL_GREEN_CHANNELING);
|
||||||
me->SetHover(false);
|
me->SetHover(false);
|
||||||
me->SetDisableGravity(false);
|
me->SetDisableGravity(false);
|
||||||
|
me->SetReactState(REACT_PASSIVE);
|
||||||
_Reset();
|
_Reset();
|
||||||
|
SetCombatMovement(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustDied(Unit* /*killer*/) override
|
void JustDied(Unit* /*killer*/) override
|
||||||
@@ -117,22 +126,31 @@ struct boss_jeklik : public BossAI
|
|||||||
|
|
||||||
void EnterEvadeMode(EvadeReason why) override
|
void EnterEvadeMode(EvadeReason why) override
|
||||||
{
|
{
|
||||||
const Position homePos = me->GetHomePosition();
|
me->GetMotionMaster()->Clear();
|
||||||
me->NearTeleportTo(homePos.GetPositionX(), homePos.GetPositionY(), homePos.GetPositionZ(), homePos.GetOrientation());
|
me->SetHomePosition(homePosition);
|
||||||
|
me->NearTeleportTo(homePosition.GetPositionX(), homePosition.GetPositionY(), homePosition.GetPositionZ(), homePosition.GetOrientation());
|
||||||
BossAI::EnterEvadeMode(why);
|
BossAI::EnterEvadeMode(why);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnterCombat(Unit* /*who*/) override
|
void EnterCombat(Unit* /*who*/) override
|
||||||
{
|
{
|
||||||
_EnterCombat();
|
|
||||||
Talk(SAY_AGGRO);
|
Talk(SAY_AGGRO);
|
||||||
me->RemoveAurasDueToSpell(SPELL_GREEN_CHANNELING);
|
me->RemoveAurasDueToSpell(SPELL_GREEN_CHANNELING);
|
||||||
me->SetHover(true);
|
me->SetHover(true);
|
||||||
me->SetDisableGravity(true);
|
me->SetDisableGravity(true);
|
||||||
me->AddUnitState(UNIT_STATE_IGNORE_PATHFINDING);
|
DoCastSelf(SPELL_BAT_FORM, true);
|
||||||
DoCastSelf(SPELL_BAT_FORM);
|
|
||||||
events.SetPhase(PHASE_ONE);
|
|
||||||
|
|
||||||
|
me->GetMotionMaster()->MovePath(PATH_JEKLIK_INTRO, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PathEndReached(uint32 /*pathId*/) override
|
||||||
|
{
|
||||||
|
me->SetHover(false);
|
||||||
|
me->SetDisableGravity(false);
|
||||||
|
_EnterCombat();
|
||||||
|
SetCombatMovement(true);
|
||||||
|
me->SetReactState(REACT_AGGRESSIVE);
|
||||||
|
events.SetPhase(PHASE_ONE);
|
||||||
events.ScheduleEvent(EVENT_CHARGE_JEKLIK, urand(10000, 20000), PHASE_ONE);
|
events.ScheduleEvent(EVENT_CHARGE_JEKLIK, urand(10000, 20000), PHASE_ONE);
|
||||||
events.ScheduleEvent(EVENT_PIERCE_ARMOR, urand(5000, 15000), PHASE_ONE);
|
events.ScheduleEvent(EVENT_PIERCE_ARMOR, urand(5000, 15000), PHASE_ONE);
|
||||||
events.ScheduleEvent(EVENT_BLOOD_LEECH, urand(5000, 15000), PHASE_ONE);
|
events.ScheduleEvent(EVENT_BLOOD_LEECH, urand(5000, 15000), PHASE_ONE);
|
||||||
@@ -146,8 +164,6 @@ struct boss_jeklik : public BossAI
|
|||||||
if (events.IsInPhase(PHASE_ONE) && !HealthAbovePct(50))
|
if (events.IsInPhase(PHASE_ONE) && !HealthAbovePct(50))
|
||||||
{
|
{
|
||||||
me->RemoveAurasDueToSpell(SPELL_BAT_FORM);
|
me->RemoveAurasDueToSpell(SPELL_BAT_FORM);
|
||||||
me->SetHover(false);
|
|
||||||
me->SetDisableGravity(false);
|
|
||||||
DoResetThreat();
|
DoResetThreat();
|
||||||
events.SetPhase(PHASE_TWO);
|
events.SetPhase(PHASE_TWO);
|
||||||
events.CancelEventGroup(PHASE_ONE);
|
events.CancelEventGroup(PHASE_ONE);
|
||||||
|
|||||||
Reference in New Issue
Block a user