aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2014_12_26_04_world.sql4
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp26
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/oculus.h12
3 files changed, 42 insertions, 0 deletions
diff --git a/sql/updates/world/2014_12_26_04_world.sql b/sql/updates/world/2014_12_26_04_world.sql
new file mode 100644
index 00000000000..90ee138a237
--- /dev/null
+++ b/sql/updates/world/2014_12_26_04_world.sql
@@ -0,0 +1,4 @@
+UPDATE `creature_text` SET `TextRange` = 3 WHERE `entry` = 27656 AND `groupid` = 0;
+DELETE FROM `creature_text` WHERE `entry` = 27447 AND `groupid` = 4;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextID`, `TextRange`, `comment`) VALUES
+(27447, 4, 0, 'Intruders, your victory will be short-lived. I am Commander Varos Cloudstrider. My drakes control the skies and protect this conduit. I will see to it personally that the Oculus does not fall into your hands!', 14, 0, 100, 0, 0, 13648, 31812, 3, 'Varos Cloudstrider SAY_VAROS_INTRO_TEXT');
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
index 0665bfd240c..ed902dba260 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
@@ -192,6 +192,7 @@ class instance_oculus : public InstanceMapScript
FreeDragons();
if (Creature* varos = instance->GetCreature(VarosGUID))
varos->SetPhaseMask(1, true);
+ events.ScheduleEvent(EVENT_VAROS_INTRO, 15000);
}
break;
case DATA_VAROS:
@@ -209,6 +210,7 @@ class instance_oculus : public InstanceMapScript
{
eregos->SetPhaseMask(1, true);
GreaterWhelps();
+ events.ScheduleEvent(EVENT_EREGOS_INTRO, 5000);
}
}
break;
@@ -267,6 +269,28 @@ class instance_oculus : public InstanceMapScript
}
}
+ void Update(uint32 diff) override
+ {
+ events.Update(diff);
+
+ while (uint32 eventId = events.ExecuteEvent())
+ {
+ switch (eventId)
+ {
+ case EVENT_VAROS_INTRO:
+ if (Creature* varos = instance->GetCreature(VarosGUID))
+ varos->AI()->Talk(SAY_VAROS_INTRO_TEXT);
+ break;
+ case EVENT_EREGOS_INTRO:
+ if (Creature* eregos = instance->GetCreature(EregosGUID))
+ eregos->AI()->Talk(SAY_EREGOS_INTRO_TEXT);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
void GreaterWhelps()
{
for (ObjectGuid guid : GreaterWhelpList)
@@ -289,6 +313,8 @@ class instance_oculus : public InstanceMapScript
ObjectGuid EregosCacheGUID;
GuidList GreaterWhelpList;
+
+ EventMap events;
};
InstanceScript* GetInstanceScript(InstanceMap* map) const override
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.h b/src/server/scripts/Northrend/Nexus/Oculus/oculus.h
index 268cdb54e3e..d1144df9486 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.h
+++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.h
@@ -79,6 +79,18 @@ enum OculusSpells
SPELL_DEATH_SPELL = 50415
};
+enum InstanceTexts
+{
+ SAY_EREGOS_INTRO_TEXT = 0,
+ SAY_VAROS_INTRO_TEXT = 4
+};
+
+enum InstanceEvents
+{
+ EVENT_VAROS_INTRO = 1,
+ EVENT_EREGOS_INTRO
+};
+
enum Misc
{
POINT_MOVE_OUT = 1