/// <summary> /// Loads the events time table and initializes all cached event information /// </summary> public void LoadTable(bool isAdjustedTable) { logger.Info("Loading Event Time Table"); try { this.EventTimeTable = MegaserverEventTimeTable.LoadTable(isAdjustedTable); } catch (Exception ex) { logger.Error(ex); logger.Info("Error loading Event Time Table, re-creating table"); MegaserverEventTimeTable.CreateTable(isAdjustedTable); this.EventTimeTable = MegaserverEventTimeTable.LoadTable(isAdjustedTable); } try { logger.Info("Loading world event locations"); foreach (var worldEvent in this.EventTimeTable.WorldEvents) { if (!this.eventInformationCache.ContainsKey(worldEvent.ID)) { // Get event details for the current event var dynamicEvent = this.service.GetDynamicEventDetails(worldEvent.ID); // Ensure that the service returned event data for the current event if (dynamicEvent == null) { logger.Warn("Failed to load event data for event with ID '{0}'", worldEvent.ID); continue; } // Get map details for the current event // TODO: consider specifying a language (default: English) dynamicEvent.Map = this.service.GetMap(dynamicEvent.MapId); // Ensure that the service returned map data for the current event if (dynamicEvent.Map == null) { logger.Warn("Failed to load map data for event with ID '{0}'", worldEvent.ID); continue; } this.eventInformationCache.Add(worldEvent.ID, dynamicEvent); } // Set the event location name worldEvent.Location = this.eventInformationCache[worldEvent.ID].Map.MapName; } } catch (Exception ex) { // If something goes wrong with the API, don't crash, but log the error logger.Error(ex); } }
/// <summary> /// Loads the events time table and initializes all cached event information /// </summary> public void LoadTable(bool isAdjustedTable) { logger.Info("Loading Event Time Table"); try { this.EventTimeTable = MegaserverEventTimeTable.LoadTable(isAdjustedTable); } catch (Exception ex) { logger.Error(ex); logger.Info("Error loading Event Time Table, re-creating table"); MegaserverEventTimeTable.CreateTable(isAdjustedTable); this.EventTimeTable = MegaserverEventTimeTable.LoadTable(isAdjustedTable); } }
/// <summary> /// Loads the world events time table file /// </summary> /// <returns>The loaded event time table data</returns> public static MegaserverEventTimeTable LoadTable(bool adjustedTimes) { string filename; if (adjustedTimes) { filename = AdjustedFilename; } else { filename = StandardFilename; } XmlSerializer deserializer = new XmlSerializer(typeof(MegaserverEventTimeTable)); TextReader reader = new StreamReader(filename); object obj = deserializer.Deserialize(reader); MegaserverEventTimeTable loadedData = (MegaserverEventTimeTable)obj; reader.Close(); return(loadedData); }
/// <summary> /// Creates the world events time table file /// </summary> /// <returns></returns> public static void CreateTable(bool adjustedTimes) { string filename; MegaserverEventTimeTable tt = new MegaserverEventTimeTable(); tt.WorldEvents = new List <WorldEvent>(); if (adjustedTimes) { #region Adjusted times tt.WorldEvents.Add(new WorldEvent() { Name = "Megadestroyer", ID = new Guid("C876757A-EF3E-4FBE-A484-07FF790D9B05"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(0, 30, 0), new EventTimespan(3, 30, 0), new EventTimespan(6, 30, 0), new EventTimespan(9, 30, 0), new EventTimespan(12, 30, 0), new EventTimespan(15, 30, 0), new EventTimespan(18, 30, 0), new EventTimespan(21, 30, 0) }, Duration = new EventTimespan(0, 12, 0), WarmupDuration = new EventTimespan(0, 2, 0), WaypointCode = "[&BM0CAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Tequatl", ID = new Guid("568A30CF-8512-462F-9D67-647D69BEFAED"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(0, 0, 0), new EventTimespan(3, 0, 0), new EventTimespan(7, 0, 0), new EventTimespan(11, 30, 0), new EventTimespan(16, 0, 0), new EventTimespan(19, 0, 0) }, Duration = new EventTimespan(0, 15, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BNABAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Karka Queen", ID = new Guid("F479B4CF-2E11-457A-B279-90822511B53B"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(2, 3, 0), new EventTimespan(6, 3, 0), new EventTimespan(10, 33, 0), new EventTimespan(15, 3, 0), new EventTimespan(18, 3, 0), new EventTimespan(23, 3, 0) }, Duration = new EventTimespan(0, 5, 0), WarmupDuration = new EventTimespan(0, 5, 0), WaypointCode = "[&BNcGAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Evolved Jungle Wurm", ID = new Guid("5A22EAD4-8302-4DA3-A450-3FC051BD6A3C"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(1, 0, 0), new EventTimespan(4, 0, 0), new EventTimespan(8, 0, 0), new EventTimespan(12, 30, 0), new EventTimespan(17, 0, 0), new EventTimespan(20, 0, 0) }, Duration = new EventTimespan(0, 15, 0), WarmupDuration = new EventTimespan(0, 10, 0), WaypointCode = "[&BKoBAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Shatterer", ID = new Guid("03BF176A-D59F-49CA-A311-39FC6F533F2F"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(1, 8, 0), new EventTimespan(4, 8, 0), new EventTimespan(7, 8, 0), new EventTimespan(13, 8, 0), new EventTimespan(13, 8, 0), new EventTimespan(19, 8, 0), new EventTimespan(22, 8, 0) }, Duration = new EventTimespan(0, 7, 0), WarmupDuration = new EventTimespan(0, 6, 0), WaypointCode = "[&BE4DAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Claw of Jormag", ID = new Guid("0464CB9E-1848-4AAA-BA31-4779A959DD71"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(2, 33, 0), new EventTimespan(5, 33, 0), new EventTimespan(8, 33, 0), new EventTimespan(11, 33, 0), new EventTimespan(14, 33, 0), new EventTimespan(17, 33, 0), new EventTimespan(20, 33, 0), new EventTimespan(23, 33, 0) }, Duration = new EventTimespan(0, 17, 0), WarmupDuration = new EventTimespan(0, 3, 0), WaypointCode = "[&BHoCAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Modniir Ulgoth", ID = new Guid("E6872A86-E434-4FC1-B803-89921FF0F6D6"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(1, 30, 0), new EventTimespan(4, 30, 0), new EventTimespan(7, 30, 0), new EventTimespan(10, 30, 0), new EventTimespan(13, 30, 0), new EventTimespan(16, 30, 0), new EventTimespan(19, 30, 0), new EventTimespan(22, 30, 0) }, Duration = new EventTimespan(0, 4, 0), WarmupDuration = new EventTimespan(0, 15, 0), WaypointCode = "[&BLEAAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Inquest Golem Mark II", ID = new Guid("9AA133DC-F630-4A0E-BB5D-EE34A2B306C2"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(2, 4, 0), new EventTimespan(5, 4, 0), new EventTimespan(8, 4, 0), new EventTimespan(11, 4, 0), new EventTimespan(14, 4, 0), new EventTimespan(17, 4, 0), new EventTimespan(20, 4, 0), new EventTimespan(23, 4, 0) }, Duration = new EventTimespan(0, 6, 0), WarmupDuration = new EventTimespan(0, 2, 0), WaypointCode = "[&BNQCAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Taidha Covington", ID = new Guid("242BD241-E360-48F1-A8D9-57180E146789"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(0, 15, 0), new EventTimespan(3, 15, 0), new EventTimespan(6, 15, 0), new EventTimespan(9, 15, 0), new EventTimespan(12, 15, 0), new EventTimespan(15, 15, 0), new EventTimespan(18, 15, 0), new EventTimespan(21, 15, 0) }, Duration = new EventTimespan(0, 4, 0), WarmupDuration = new EventTimespan(0, 15, 0), WaypointCode = "[&BNQCAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Jungle Wurm", ID = new Guid("C5972F64-B894-45B4-BC31-2DEEA6B7C033"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(1, 15, 0), new EventTimespan(3, 15, 0), new EventTimespan(5, 15, 0), new EventTimespan(7, 15, 0), new EventTimespan(9, 15, 0), new EventTimespan(11, 15, 0), new EventTimespan(13, 15, 0), new EventTimespan(15, 15, 0), new EventTimespan(17, 15, 0), new EventTimespan(19, 15, 0), new EventTimespan(21, 15, 0), new EventTimespan(23, 15, 0) }, Duration = new EventTimespan(0, 5, 0), WarmupDuration = new EventTimespan(0, 2, 0), WaypointCode = "[&BEEFAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Shadow Behemoth", ID = new Guid("31CEBA08-E44D-472F-81B0-7143D73797F5"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(1, 46, 0), new EventTimespan(3, 46, 0), new EventTimespan(5, 46, 0), new EventTimespan(7, 46, 0), new EventTimespan(9, 46, 0), new EventTimespan(11, 46, 0), new EventTimespan(13, 46, 0), new EventTimespan(15, 46, 0), new EventTimespan(17, 46, 0), new EventTimespan(19, 46, 0), new EventTimespan(21, 46, 0), new EventTimespan(23, 46, 0) }, Duration = new EventTimespan(0, 9, 0), WarmupDuration = new EventTimespan(0, 1, 0), WaypointCode = "[&BPwAAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Fire Elemental", ID = new Guid("33F76E9E-0BB6-46D0-A3A9-BE4CDFC4A3A4"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(0, 54, 0), new EventTimespan(2, 54, 0), new EventTimespan(4, 54, 0), new EventTimespan(6, 54, 0), new EventTimespan(8, 54, 0), new EventTimespan(10, 54, 0), new EventTimespan(12, 54, 0), new EventTimespan(14, 54, 0), new EventTimespan(16, 54, 0), new EventTimespan(18, 54, 0), new EventTimespan(20, 54, 0), new EventTimespan(22, 54, 0) }, Duration = new EventTimespan(0, 3, 0), WarmupDuration = new EventTimespan(0, 9, 0), WaypointCode = "[&BEYAAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Frozen Maw", ID = new Guid("F7D9D427-5E54-4F12-977A-9809B23FBA99"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(0, 17, 0), new EventTimespan(2, 17, 0), new EventTimespan(4, 17, 0), new EventTimespan(6, 17, 0), new EventTimespan(8, 17, 0), new EventTimespan(10, 17, 0), new EventTimespan(12, 17, 0), new EventTimespan(14, 17, 0), new EventTimespan(16, 17, 0), new EventTimespan(18, 17, 0), new EventTimespan(20, 17, 0), new EventTimespan(22, 17, 0) }, Duration = new EventTimespan(0, 3, 30), WarmupDuration = new EventTimespan(0, 2, 0), WaypointCode = "[&BH4BAAA=]" }); #endregion filename = AdjustedFilename; } else { #region Standard times tt.WorldEvents.Add(new WorldEvent() { Name = "Megadestroyer", ID = new Guid("C876757A-EF3E-4FBE-A484-07FF790D9B05"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(0, 30, 0), new EventTimespan(3, 30, 0), new EventTimespan(6, 30, 0), new EventTimespan(9, 30, 0), new EventTimespan(12, 30, 0), new EventTimespan(15, 30, 0), new EventTimespan(18, 30, 0), new EventTimespan(21, 30, 0) }, Duration = new EventTimespan(0, 12, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BM0CAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Tequatl", ID = new Guid("568A30CF-8512-462F-9D67-647D69BEFAED"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(0, 0, 0), new EventTimespan(3, 0, 0), new EventTimespan(7, 0, 0), new EventTimespan(11, 30, 0), new EventTimespan(16, 0, 0), new EventTimespan(19, 0, 0) }, Duration = new EventTimespan(0, 15, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BNABAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Karka Queen", ID = new Guid("F479B4CF-2E11-457A-B279-90822511B53B"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(2, 0, 0), new EventTimespan(6, 0, 0), new EventTimespan(10, 30, 0), new EventTimespan(15, 0, 0), new EventTimespan(18, 0, 0), new EventTimespan(23, 0, 0) }, Duration = new EventTimespan(0, 5, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BNcGAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Evolved Jungle Wurm", ID = new Guid("5A22EAD4-8302-4DA3-A450-3FC051BD6A3C"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(1, 0, 0), new EventTimespan(4, 0, 0), new EventTimespan(8, 0, 0), new EventTimespan(12, 30, 0), new EventTimespan(17, 0, 0), new EventTimespan(20, 0, 0) }, Duration = new EventTimespan(0, 15, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BKoBAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Shatterer", ID = new Guid("03BF176A-D59F-49CA-A311-39FC6F533F2F"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(1, 0, 0), new EventTimespan(4, 0, 0), new EventTimespan(7, 0, 0), new EventTimespan(13, 0, 0), new EventTimespan(13, 0, 0), new EventTimespan(19, 0, 0), new EventTimespan(22, 0, 0) }, Duration = new EventTimespan(0, 7, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BE4DAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Claw of Jormag", ID = new Guid("0464CB9E-1848-4AAA-BA31-4779A959DD71"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(2, 30, 0), new EventTimespan(5, 30, 0), new EventTimespan(8, 30, 0), new EventTimespan(11, 30, 0), new EventTimespan(14, 30, 0), new EventTimespan(17, 30, 0), new EventTimespan(20, 30, 0), new EventTimespan(23, 30, 0) }, Duration = new EventTimespan(0, 17, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BHoCAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Modniir Ulgoth", ID = new Guid("E6872A86-E434-4FC1-B803-89921FF0F6D6"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(1, 30, 0), new EventTimespan(4, 30, 0), new EventTimespan(7, 30, 0), new EventTimespan(10, 30, 0), new EventTimespan(13, 30, 0), new EventTimespan(16, 30, 0), new EventTimespan(19, 30, 0), new EventTimespan(22, 30, 0) }, Duration = new EventTimespan(0, 8, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BLEAAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Inquest Golem Mark II", ID = new Guid("9AA133DC-F630-4A0E-BB5D-EE34A2B306C2"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(2, 0, 0), new EventTimespan(5, 0, 0), new EventTimespan(8, 0, 0), new EventTimespan(11, 0, 0), new EventTimespan(14, 0, 0), new EventTimespan(17, 0, 0), new EventTimespan(20, 0, 0), new EventTimespan(23, 0, 0) }, Duration = new EventTimespan(0, 7, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BNQCAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Taidha Covington", ID = new Guid("242BD241-E360-48F1-A8D9-57180E146789"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(0, 0, 0), new EventTimespan(3, 0, 0), new EventTimespan(6, 0, 0), new EventTimespan(9, 0, 0), new EventTimespan(12, 0, 0), new EventTimespan(15, 0, 0), new EventTimespan(18, 0, 0), new EventTimespan(21, 0, 0) }, Duration = new EventTimespan(0, 10, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BNQCAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Jungle Wurm", ID = new Guid("C5972F64-B894-45B4-BC31-2DEEA6B7C033"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(1, 15, 0), new EventTimespan(3, 15, 0), new EventTimespan(5, 15, 0), new EventTimespan(7, 15, 0), new EventTimespan(9, 15, 0), new EventTimespan(11, 15, 0), new EventTimespan(13, 15, 0), new EventTimespan(15, 15, 0), new EventTimespan(17, 15, 0), new EventTimespan(19, 15, 0), new EventTimespan(21, 15, 0), new EventTimespan(23, 15, 0) }, Duration = new EventTimespan(0, 8, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BEEFAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Shadow Behemoth", ID = new Guid("31CEBA08-E44D-472F-81B0-7143D73797F5"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(1, 45, 0), new EventTimespan(3, 45, 0), new EventTimespan(5, 45, 0), new EventTimespan(7, 45, 0), new EventTimespan(9, 45, 0), new EventTimespan(11, 45, 0), new EventTimespan(13, 45, 0), new EventTimespan(15, 45, 0), new EventTimespan(17, 45, 0), new EventTimespan(19, 45, 0), new EventTimespan(21, 45, 0), new EventTimespan(23, 45, 0) }, Duration = new EventTimespan(0, 10, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BPwAAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Fire Elemental", ID = new Guid("33F76E9E-0BB6-46D0-A3A9-BE4CDFC4A3A4"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(0, 45, 0), new EventTimespan(2, 45, 0), new EventTimespan(4, 45, 0), new EventTimespan(6, 45, 0), new EventTimespan(8, 45, 0), new EventTimespan(10, 45, 0), new EventTimespan(12, 45, 0), new EventTimespan(14, 45, 0), new EventTimespan(16, 45, 0), new EventTimespan(18, 45, 0), new EventTimespan(20, 45, 0), new EventTimespan(22, 45, 0) }, Duration = new EventTimespan(0, 8, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BEYAAAA=]" }); tt.WorldEvents.Add(new WorldEvent() { Name = "Frozen Maw", ID = new Guid("F7D9D427-5E54-4F12-977A-9809B23FBA99"), ActiveTimes = new List <EventTimespan>() { new EventTimespan(0, 15, 0), new EventTimespan(2, 15, 0), new EventTimespan(4, 15, 0), new EventTimespan(6, 15, 0), new EventTimespan(8, 15, 0), new EventTimespan(10, 15, 0), new EventTimespan(12, 15, 0), new EventTimespan(14, 15, 0), new EventTimespan(16, 15, 0), new EventTimespan(18, 15, 0), new EventTimespan(20, 15, 0), new EventTimespan(22, 15, 0) }, Duration = new EventTimespan(0, 5, 0), WarmupDuration = new EventTimespan(0, 0, 0), WaypointCode = "[&BH4BAAA=]" }); #endregion filename = StandardFilename; } XmlSerializer serializer = new XmlSerializer(typeof(MegaserverEventTimeTable)); TextWriter textWriter = new StreamWriter(filename); serializer.Serialize(textWriter, tt); textWriter.Close(); }