示例#1
0
        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 >");
            }
        }
示例#2
0
        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.");
        }