aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjoschiwald <joschiwald.trinity@gmail.com>2017-11-26 13:21:26 +0100
committerShauren <shauren.trinity@gmail.com>2021-08-24 12:46:53 +0200
commitc94c561b85c9512fa67978512d53cc7b85e5f531 (patch)
tree208c70de7ebeed873ebafe4af817b39119ce7dc1 /src
parent246699a173d53bf53b3f2d2e3e8d2b6ba71bfc33 (diff)
Scripts/Misc: Fixed hover movement for Stormcaller Brundir
(cherry picked from commit e9aba10695cdf3520c6ae61815610051502b6f0b)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp25
1 files changed, 7 insertions, 18 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
index ee658a38263..0a33987d591 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
@@ -132,9 +132,6 @@ enum Misc
DATA_PHASE_3 = 1
};
-#define FLOOR_Z 427.28f
-#define FINAL_FLIGHT_Z 435.0f
-
class boss_steelbreaker : public CreatureScript
{
public:
@@ -475,7 +472,7 @@ class boss_stormcaller_brundir : public CreatureScript
_Reset();
Initialize();
me->RemoveAllAuras();
- me->SetDisableGravity(false);
+ me->SetHover(false);
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_INTERRUPT, false); // Should be interruptable unless overridden by spell (Overload)
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_STUN, false); // Reset immumity, Brundir should be stunnable by default
}
@@ -546,10 +543,6 @@ class boss_stormcaller_brundir : public CreatureScript
if (Steelbreaker->IsAlive())
Steelbreaker->AI()->DoAction(ACTION_SUPERCHARGE);
}
-
- // Prevent to have Brundir somewhere in the air when he die in Air phase
- if (me->GetPositionZ() > FLOOR_Z)
- me->GetMotionMaster()->MoveFall();
}
void KilledUnit(Unit* who) override
@@ -597,9 +590,7 @@ class boss_stormcaller_brundir : public CreatureScript
DoCast(me, SPELL_LIGHTNING_TENDRILS);
DoCast(me, SPELL_LIGHTNING_TENDRILS_VISUAL);
me->AttackStop();
- //me->SetLevitate(true);
- me->GetMotionMaster()->Initialize();
- me->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), FINAL_FLIGHT_Z);
+ me->SetHover(true);
events.DelayEvents(35000);
events.ScheduleEvent(EVENT_FLIGHT, 2500);
events.ScheduleEvent(EVENT_ENDFLIGHT, 32500);
@@ -607,24 +598,22 @@ class boss_stormcaller_brundir : public CreatureScript
break;
case EVENT_FLIGHT:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
- me->GetMotionMaster()->MovePoint(0, target->GetPositionX(), target->GetPositionY(), FINAL_FLIGHT_Z);
+ me->GetMotionMaster()->MovePoint(0, *target);
events.ScheduleEvent(EVENT_FLIGHT, 6000);
break;
case EVENT_ENDFLIGHT:
me->GetMotionMaster()->Initialize();
- me->GetMotionMaster()->MovePoint(0, 1586.920166f, 119.848984f, FINAL_FLIGHT_Z);
+ me->GetMotionMaster()->MovePoint(0, 1586.920166f, 119.848984f, me->GetPositionZ());
events.CancelEvent(EVENT_FLIGHT);
events.CancelEvent(EVENT_ENDFLIGHT);
events.ScheduleEvent(EVENT_LAND, 4000);
break;
case EVENT_LAND:
- me->GetMotionMaster()->Initialize();
- me->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), FLOOR_Z);
+ me->SetHover(false);
events.CancelEvent(EVENT_LAND);
events.ScheduleEvent(EVENT_GROUND, 2500);
break;
case EVENT_GROUND:
- //me->SetLevitate(false);
me->RemoveAurasDueToSpell(SPELL_LIGHTNING_TENDRILS);
me->RemoveAurasDueToSpell(SPELL_LIGHTNING_TENDRILS_VISUAL);
DoStartMovement(me->GetVictim());
@@ -636,11 +625,11 @@ class boss_stormcaller_brundir : public CreatureScript
{
float x = float(irand(-25, 25));
float y = float(irand(-25, 25));
- me->GetMotionMaster()->MovePoint(0, me->GetPositionX() + x, me->GetPositionY() + y, FLOOR_Z);
+ me->GetMotionMaster()->MovePoint(0, me->GetPositionX() + x, me->GetPositionY() + y, me->GetPositionZ());
// Prevention to go outside the room or into the walls
if (Creature* trigger = me->FindNearestCreature(NPC_WORLD_TRIGGER, 100.0f, true))
if (me->GetDistance(trigger) >= 50.0f)
- me->GetMotionMaster()->MovePoint(0, trigger->GetPositionX(), trigger->GetPositionY(), FLOOR_Z);
+ me->GetMotionMaster()->MovePoint(0, *trigger);
}
events.ScheduleEvent(EVENT_MOVE_POSITION, urand(7500, 10000));
break;