aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2023_10_02_00_world.sql139
-rw-r--r--src/server/scripts/BrokenIsles/zone_mardum.cpp78
2 files changed, 217 insertions, 0 deletions
diff --git a/sql/updates/world/master/2023_10_02_00_world.sql b/sql/updates/world/master/2023_10_02_00_world.sql
new file mode 100644
index 00000000000..5ee84086271
--- /dev/null
+++ b/sql/updates/world/master/2023_10_02_00_world.sql
@@ -0,0 +1,139 @@
+SET @CGUID := 6000139;
+
+SET @NPCTEXTID := 560007;
+
+-- Creature
+DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+1;
+INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES
+(@CGUID+0, 99917, 1481, 7705, 7740, '0', 5464, 0, 0, 1, 756.76739501953125, 2401.420166015625, -60.9138259887695312, 1.067818880081176757, 120, 0, 0, 27954, 0, 0, NULL, NULL, NULL, NULL, 51536), -- Sevis Brightflame (Area: Molten Shore - Difficulty: 0) CreateObject1
+(@CGUID+1, 99914, 1481, 7705, 7740, '0', 5461, 0, 0, 0, 758.97222900390625, 2403.007080078125, -60.9143829345703125, 1.19526827335357666, 120, 0, 0, 2485, 3801, 0, NULL, NULL, NULL, NULL, 51536); -- Ashtongue Mystic (Area: Molten Shore - Difficulty: 0) CreateObject1
+
+DELETE FROM `creature_addon` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+1;
+INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `StandState`, `AnimTier`, `VisFlags`, `SheathState`, `PvpFlags`, `emote`, `aiAnimKit`, `movementAnimKit`, `meleeAnimKit`, `visibilityDistanceType`, `auras`) VALUES
+(@CGUID+0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); -- Sevis Brightflame
+
+-- Creature Template
+UPDATE `creature_template` SET `ScriptName` = 'npc_sevis_brightflame_coilskar_gateway_private' WHERE `entry` = 99917;
+
+-- Creature Template Addon
+DELETE FROM `creature_template_addon` WHERE `entry` = 99914;
+INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `StandState`, `AnimTier`, `VisFlags`, `SheathState`, `PvpFlags`, `emote`, `aiAnimKit`, `movementAnimKit`, `meleeAnimKit`, `visibilityDistanceType`, `auras`) VALUES
+(99914, 0, 0, 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, ''); -- Ashtongue Mystic
+
+-- Creature text
+DELETE FROM `creature_text` WHERE `CreatureID` = 99917;
+INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `SoundPlayType`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
+(99917, 0, 0, '$n, hurry! You don\'t have much time.', 12, 0, 100, 3, 0, 55345, 0, 101658, 5, 'Sevis Brightflame to Player'),
+(99917, 1, 0, 'Sevis looks down at the dying broken mystic.', 16, 0, 100, 3, 0, 55345, 0, 101659, 5, 'Sevis Brightflame to Player'),
+(99917, 2, 0, 'I will see you at the final gateway.', 12, 0, 100, 1, 0, 55347, 1, 101662, 0, 'Sevis Brightflame to Player');
+
+-- Creature Movement
+DELETE FROM `creature_template_movement` WHERE `CreatureId` = 99914;
+INSERT INTO `creature_template_movement` (`CreatureId`, `Ground`, `Swim`, `Flight`, `Rooted`, `Chase`, `Random`, `InteractionPauseTimer`) VALUES
+(99914, 0, 0, 1, 1, 0, 0, NULL);
+
+-- Objective completion effect
+DELETE FROM `quest_objectives_completion_effect` WHERE `ObjectiveID` = 280770;
+INSERT INTO `quest_objectives_completion_effect` (`ObjectiveID`, `GameEventID`, `SpellID`, `ConversationID`, `UpdatePhaseShift`, `UpdateZoneAuras`) VALUES
+(280770, NULL, NULL, NULL, 1, 0);
+
+-- Gossip & text
+DELETE FROM `npc_text` WHERE `ID` = @NPCTEXTID+0;
+INSERT INTO `npc_text` (`ID`, `Probability0`, `Probability1`, `Probability2`, `Probability3`, `Probability4`, `Probability5`, `Probability6`, `Probability7`, `BroadcastTextId0`, `BroadcastTextId1`, `BroadcastTextId2`, `BroadcastTextId3`, `BroadcastTextId4`, `BroadcastTextId5`, `BroadcastTextId6`, `BroadcastTextId7`, `VerifiedBuild`) VALUES
+(@NPCTEXTID+0, 1, 0, 0, 0, 0, 0, 0, 0, 101660, 0, 0, 0, 0, 0, 0, 0, 51536); -- 99917 (Sevis Brightflame)
+
+DELETE FROM `gossip_menu` WHERE (`MenuID`=19017 AND `TextID`=@NPCTEXTID+0);
+INSERT INTO `gossip_menu` (`MenuID`, `TextID`, `VerifiedBuild`) VALUES
+(19017, @NPCTEXTID+0, 51536); -- 99917 (Sevis Brightflame)
+
+-- Scene
+DELETE FROM `scene_template` WHERE `SceneId`=1077;
+INSERT INTO `scene_template` (`SceneId`, `Flags`, `ScriptPackageID`, `Encrypted`) VALUES
+(1077, 20, 1468, 0);
+
+Update `scene_template` SET `ScriptName` = 'scene_enter_the_illidari_coilskar' WHERE `SceneId` = 1077;
+
+-- Serverside Spell
+DELETE FROM `serverside_spell` WHERE `Id` = 184562;
+INSERT INTO `serverside_spell` (`Id`, `DifficultyID`, `CategoryId`, `Dispel`, `Mechanic`, `Attributes`, `AttributesEx`, `AttributesEx2`, `AttributesEx3`, `AttributesEx4`, `AttributesEx5`, `AttributesEx6`, `AttributesEx7`, `AttributesEx8`, `AttributesEx9`, `AttributesEx10`, `AttributesEx11`, `AttributesEx12`, `AttributesEx13`, `AttributesEx14`, `Stances`, `StancesNot`, `Targets`, `TargetCreatureType`, `RequiresSpellFocus`, `FacingCasterFlags`, `CasterAuraState`, `TargetAuraState`, `ExcludeCasterAuraState`, `ExcludeTargetAuraState`, `CasterAuraSpell`, `TargetAuraSpell`, `ExcludeCasterAuraSpell`, `ExcludeTargetAuraSpell`, `CasterAuraType`, `TargetAuraType`, `ExcludeCasterAuraType`, `ExcludeTargetAuraType`, `CastingTimeIndex`, `RecoveryTime`, `CategoryRecoveryTime`, `StartRecoveryCategory`, `StartRecoveryTime`, `InterruptFlags`, `AuraInterruptFlags1`, `AuraInterruptFlags2`, `ChannelInterruptFlags1`, `ChannelInterruptFlags2`, `ProcFlags`, `ProcFlags2`, `ProcChance`, `ProcCharges`, `ProcCooldown`, `ProcBasePPM`, `MaxLevel`, `BaseLevel`, `SpellLevel`, `DurationIndex`, `RangeIndex`, `Speed`, `LaunchDelay`, `StackAmount`, `EquippedItemClass`, `EquippedItemSubClassMask`, `EquippedItemInventoryTypeMask`, `ContentTuningId`, `SpellName`, `ConeAngle`, `ConeWidth`, `MaxTargetLevel`, `MaxAffectedTargets`, `SpellFamilyName`, `SpellFamilyFlags1`, `SpellFamilyFlags2`, `SpellFamilyFlags3`, `SpellFamilyFlags4`, `DmgClass`, `PreventionType`, `AreaGroupId`, `SchoolMask`, `ChargeCategoryId`) VALUES
+(184562, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 'Enter the Illidari: Coilskar - Legion Gateway Kill Credit', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+
+DELETE FROM `serverside_spell_effect` WHERE `SpellID` = 184562 AND `EffectIndex` IN (0, 1);
+INSERT INTO `serverside_spell_effect` (`SpellID`, `EffectIndex`, `DifficultyID`, `Effect`, `EffectAura`, `EffectAmplitude`, `EffectAttributes`, `EffectAuraPeriod`, `EffectBonusCoefficient`, `EffectChainAmplitude`, `EffectChainTargets`, `EffectItemType`, `EffectMechanic`, `EffectPointsPerResource`, `EffectPosFacing`, `EffectRealPointsPerLevel`, `EffectTriggerSpell`, `BonusCoefficientFromAP`, `PvpMultiplier`, `Coefficient`, `Variance`, `ResourceCoefficient`, `GroupSizeBasePointsCoefficient`, `EffectBasePoints`, `EffectMiscValue1`, `EffectMiscValue2`, `EffectRadiusIndex1`, `EffectRadiusIndex2`, `EffectSpellClassMask1`, `EffectSpellClassMask2`, `EffectSpellClassMask3`, `EffectSpellClassMask4`, `ImplicitTarget1`, `ImplicitTarget2`) VALUES
+(184562, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94406, 0, 0, 0, 0, 0, 0, 0, 1, 0),
+(184562, 1, 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0);
+
+-- Phasing
+DELETE FROM `phase_area` WHERE `PhaseId` IN (5464, 5461) AND `AreaId` = 7705;
+INSERT INTO `phase_area` (`AreaId`, `PhaseId`, `Comment`) VALUES
+(7705, 5464, 'Sevis Brightflame at Coilskar Gateway'),
+(7705, 5461, 'Ashtongue Mystic (for sacrifice) at Coilskar Gateway');
+
+-- Condition
+DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId`=14 AND `SourceGroup` = 19015 AND `SourceEntry` = 27769); -- Ashtongue Mystic text after sacrifice
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(14, 19015, 27769, 0, 0, 48, 0, 280770, 0, 1, 0, 0, 0, '', 'Show gossip text if player has quest objective done: Soul sacrificed');
+
+DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId`=15 AND `SourceGroup` = 19015 AND `SourceEntry` = 0); -- Ashtongue Mystic gossip menu option
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(15, 19015, 0, 0, 0, 48, 0, 280770, 0, 1, 1, 0, 0, '', 'Show gossip menu option if player has not quest objective done: Soul sacrificed');
+
+DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId`=14 AND `SourceGroup` = 19017 AND `SourceEntry` = 27773); -- Sevis Brightflame text after sacrifice
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(14, 19017, 27773, 0, 0, 48, 0, 280770, 0, 1, 0, 0, 0, '', 'Show gossip text if player has quest objective done: Soul sacrificed');
+
+DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId`=13 AND `SourceGroup` = 1 AND `SourceEntry` = 191664);
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(13, 1, 191664, 0, 0, 31, 0, 3, 24021, 0, 0, 0, 0, '', 'Spell: Enter the Illidari: Shivarra - Soul Missiles 02 - can only hit "ELM general purpose bunny"');
+
+DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId`=26 AND `SourceGroup` = 5464 AND `SourceEntry` = 0); -- Sevis Brightflame
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `Comment`) VALUES
+(26, 5464, 0, 0, 0, 47, 0, 40379, 8, 0, 0, 'Apply Phase 5464 if Quest 40379 is in progress'),
+(26, 5464, 0, 0, 0, 48, 0, 280771, 0, 1, 1, 'Apply Phase 5464 if Questobjective 280771 (Coilskar forces) is not rewarded');
+
+DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId`=26 AND `SourceGroup` = 5461 AND `SourceEntry` = 0); -- Ashtongue Mystic
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `Comment`) VALUES
+(26, 5461, 0, 0, 0, 47, 0, 40379, 2|8|64, 0, 0, 'Apply Phase 5461 if Quest 40379 is complete | in progress | rewarded'),
+(26, 5461, 0, 0, 0, 48, 0, 280770, 0, 1, 1, 'Apply Phase 5461 if Questobjective 280770 (Soul sacrificed) is not rewarded');
+
+-- Ashtongue Mystic smart ai
+SET @ENTRY := 99914;
+UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = @ENTRY;
+DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = @ENTRY;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@ENTRY, 0, 0, 0, 62, 0, 100, 0, 19015, 0, 0, 0, 86, 196724, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On gossip action Mystic, thank you for you... (0) from menu 19015 selected - Gossip player: Cast spell 196724 at Self'),
+(@ENTRY, 0, 1, 0, 62, 0, 100, 0, 19015, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'On gossip action Mystic, thank you for you... (0) from menu 19015 selected - Gossip player: Close gossip'),
+(@ENTRY, 0, 2, 0, 54, 0, 100, 0, 0, 0, 0, 0, 80, 9991400, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On just summoned - Self: Start timed action list id #Ashtongue Mystic #0 (9991400) (update out of combat)');
+
+ -- Timed list 9991400 smart ai
+SET @ENTRY := 9991400;
+DELETE FROM `smart_scripts` WHERE `source_type` = 9 AND `entryOrGuid` = @ENTRY;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@ENTRY, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 137, 25111, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 0 seconds - Self: Plays SpellVisual with SpellVisualKitId: 25111, KitType: 0 for 0 ms'),
+(@ENTRY, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 128, 9256, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 0 seconds - Self: Plays Anim with ID 9256'),
+(@ENTRY, 9, 2, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 85, 159474, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'After 1 seconds - Self: Cast spell 159474 on self'),
+(@ENTRY, 9, 3, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 11, 191664, 0, 0, 0, 0, 0, 10, 7000364, 24021, 0, 0, 0, 0, 0, 'After 1 seconds - cast: (Enter the Illidari: Shivarra - Soul Missiles 02) - to Entry/Guid'),
+(@ENTRY, 9, 4, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 11, 191664, 0, 0, 0, 0, 0, 10, 7000364, 24021, 0, 0, 0, 0, 0, 'After 2 seconds - cast: (Enter the Illidari: Shivarra - Soul Missiles 02) - to Entry/Guid'),
+(@ENTRY, 9, 5, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 11, 191664, 0, 0, 0, 0, 0, 10, 7000364, 24021, 0, 0, 0, 0, 0, 'After 1 seconds - cast: (Enter the Illidari: Shivarra - Soul Missiles 02) - to Entry/Guid');
+
+-- SendEvent: 47548
+SET @EVENTID := 47548;
+DELETE FROM `event_script_names` WHERE `Id` = @EVENTID;
+INSERT INTO `event_script_names` (`Id`, `ScriptName`) VALUES
+(@EVENTID, 'SmartEventTrigger');
+
+DELETE FROM `smart_scripts` WHERE `source_type` = 3 AND `entryOrGuid` = @EVENTID;
+INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
+(@EVENTID, 3, 0, 0, 87, 0, 100, 0, 0, 0, 0, 0, 33, 99914, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'On SendEvent: 47548 - reward QuestObjective "Soul sacrificed" - to Invoker'),
+(@EVENTID, 3, 1, 0, 87, 0, 100, 0, 0, 0, 0, 0, 12, 99914, 3, 60000, 0, 1, 0, 8, 0, 0, 0, 758.9722, 2403.0070, -60.91438, 1.1952, 'On SendEvent: 47548 - spawn Ashtongue Mystic - to position');
+
+-- Path for Sevis Brightflame Coilskar Gateway
+SET @ENTRY := 99917;
+SET @PATHOFFSET := 0;
+SET @PATH := @ENTRY * 100 + @PATHOFFSET;
+DELETE FROM `waypoint_data` WHERE `id`= @PATH;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`) VALUES
+(@PATH, 0, 768.1684, 2414.826, -60.3881, NULL, 0, 1),
+(@PATH, 1, 795.434, 2450.884, -58.21667, NULL, 0, 1),
+(@PATH, 2, 806.4601, 2463.714, -58.40237, NULL, 0, 1),
+(@PATH, 3, 818.092, 2477.028, -59.66295, NULL, 0, 1);
diff --git a/src/server/scripts/BrokenIsles/zone_mardum.cpp b/src/server/scripts/BrokenIsles/zone_mardum.cpp
index dbbb5e7f088..d7ae8bdf32d 100644
--- a/src/server/scripts/BrokenIsles/zone_mardum.cpp
+++ b/src/server/scripts/BrokenIsles/zone_mardum.cpp
@@ -854,6 +854,82 @@ struct at_enter_the_illidari_ashtongue_allari_killcredit : AreaTriggerAI
}
};
+enum ETICoilskarIntroData
+{
+ NPC_SEVIS_BRIGHTFLAME_COILSKAR = 99917,
+ SAY_SEVIS_SAY_MEET_AT_LAST_GATEWAY = 2,
+
+ PATH_SEVIS_BRIGHTFLAME_COILSKAR = 9991700
+};
+
+// 1077 - Enter the Illidari: Coilskar
+class scene_enter_the_illidari_coilskar : public SceneScript
+{
+public:
+ scene_enter_the_illidari_coilskar() : SceneScript("scene_enter_the_illidari_coilskar") { }
+
+ void OnSceneStart(Player* player, uint32 /*sceneInstanceID*/, SceneTemplate const* /*sceneTemplate*/) override
+ {
+ PhasingHandler::OnConditionChange(player);
+ Creature* sevisObject = GetClosestCreatureWithOptions(player, 30.0f, { .CreatureId = NPC_SEVIS_BRIGHTFLAME_COILSKAR, .IgnorePhases = true });
+ if (!sevisObject)
+ return;
+
+ sevisObject->SummonPersonalClone(sevisObject->GetPosition(), TEMPSUMMON_MANUAL_DESPAWN, 0s, 0, 0, player);
+ }
+};
+
+// 99917 - Sevis Brightflame (Coilskar Gateway)
+struct npc_sevis_brightflame_coilskar_gateway_private : public ScriptedAI
+{
+ npc_sevis_brightflame_coilskar_gateway_private(Creature* creature) : ScriptedAI(creature) { }
+
+ void JustAppeared() override
+ {
+ TempSummon* summon = me->ToTempSummon();
+ if (!summon)
+ return;
+
+ Unit* summoner = summon->GetSummonerUnit();
+ if (!summoner)
+ return;
+
+ me->SetFacingToObject(summoner);
+ me->DespawnOrUnsummon(14s);
+
+ _scheduler.Schedule(1s, [this](TaskContext task)
+ {
+ Talk(SAY_SEVIS_SAY_MEET_AT_LAST_GATEWAY, me);
+
+ task.Schedule(2s, [this](TaskContext task)
+ {
+ me->SendPlaySpellVisualKit(SPELL_VISUAL_KIT_SEVIS_MOUNT, 0, 0);
+ me->SetMountDisplayId(DISPLAY_ID_SEVIS_MOUNT);
+
+ task.Schedule(3s, [this](TaskContext /*task*/)
+ {
+ me->GetMotionMaster()->MovePath(PATH_SEVIS_BRIGHTFLAME_COILSKAR, false);
+ });
+ });
+ });
+ }
+
+ void UpdateAI(uint32 diff) override
+ {
+ _scheduler.Update(diff);
+ }
+
+private:
+ TaskScheduler _scheduler;
+};
+
+CreatureAI* SevisBrightflameCoilskarGatewayAISelector(Creature* creature)
+{
+ if (creature->IsPrivateObject())
+ return new npc_sevis_brightflame_coilskar_gateway_private(creature);
+ return new NullCreatureAI(creature);
+};
+
void AddSC_zone_mardum()
{
// Creature
@@ -868,6 +944,7 @@ void AddSC_zone_mardum()
// AISelector
new FactoryCreatureScript<CreatureAI, &KaynSunfuryNearLegionBannerAISelector>("npc_kayn_sunfury_ashtongue_intro");
new FactoryCreatureScript<CreatureAI, &SevisBrightflameAshtongueGatewayAISelector>("npc_sevis_brightflame_ashtongue_gateway_private");
+ new FactoryCreatureScript<CreatureAI, &SevisBrightflameCoilskarGatewayAISelector>("npc_sevis_brightflame_coilskar_gateway_private");
// AreaTrigger
RegisterAreaTriggerAI(at_enter_the_illidari_ashtongue_allari_killcredit);
@@ -878,6 +955,7 @@ void AddSC_zone_mardum()
// Scene
new scene_demonhunter_intro();
new scene_enter_the_illidari_ashtongue();
+ new scene_enter_the_illidari_coilskar();
// Spells
RegisterSpellScript(spell_demon_hunter_intro_aura);