diff options
-rw-r--r-- | sql/updates/world/master/2023_10_02_00_world.sql | 139 | ||||
-rw-r--r-- | src/server/scripts/BrokenIsles/zone_mardum.cpp | 78 |
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); |