private static void SetSeason_OnCommand(CommandEventArgs e) { Mobile from = e.Mobile; if (e.Length >= 1) { Region reg = from.Region; if (reg == null || !(reg is ISeasons)) { from.SendMessage("You are not in a region that supports Seasons."); from.SendMessage("To set the Map Season, use {0}SetMapSeason", CommandSystem.Prefix); } else { try { ISeasons sreg = reg as ISeasons; sreg.Season = (Season)Enum.Parse(typeof(Season), (e.GetString(0).Trim()), true); from.SendMessage("Season has been set to {0}.", sreg.Season.ToString()); } catch { from.SendMessage("Format: SetSeason < Spring | Summer | Autumn/Fall | Winter | Desolation >"); } } } else { from.SendMessage("Format: SetSeason < Spring | Summer | Autumn/Fall | Winter | Desolation >"); } }
public static void UpdateSeasons() { // Define the actual season Season actualSeason = Season.Summer; // Scriptiz : saisons basées sur un cycle int week = GetWeekNumber(DateTime.Today); switch (week % 8) { case 0: case 1: actualSeason = Season.Winter; break; case 2: case 3: actualSeason = Season.Spring; break; case 4: case 5: actualSeason = Season.Summer; break; case 6: case 7: actualSeason = Season.Autumn; break; default: actualSeason = Season.Summer; break; } if (week > 49) { actualSeason = Season.Winter; } // Scriptiz : saisons basées sur les saisons IRL /* * int month = DateTime.Today.Month; * switch (month) * { * case 12: * case 1: * case 2: * actualSeason = Season.Winter; * break; * case 3: * case 4: * case 5: * actualSeason = Season.Spring; * break; * case 6: * case 7: * case 8: * actualSeason = Season.Summer; * break; * case 9: * case 10: * case 11: * actualSeason = Season.Autumn; * break; * default: * actualSeason = Season.Summer; * break; * } */ Console.WriteLine("[SeasonManager] Actual season is " + actualSeason + "."); int count = 0; foreach (Map m in Map.Maps) { if (m == null || m == Map.Internal) { continue; } // Si c'est la felucca d'origine on laisse Desolation ! if (m == Map.Felucca) { m.Season = (int)Season.Desolation; } else { m.Season = (int)actualSeason; } count++; } Console.WriteLine("Season updated for " + count + " on " + Map.Maps.Length + " maps."); count = 0; foreach (Region r in Region.Regions) { if (r == null || !(r is ISeasons)) { continue; } ISeasons s = r as ISeasons; s.Season = actualSeason; count++; } Console.WriteLine("Season updated for " + count + " on " + Region.Regions.Count + " regions."); }