Esempio n. 1
0
        private static void Update()
        {
            while (true)
            {
                Task t1 = ((ScoringSeason)ScoringManager.m_currentSeason).Update();
                Task t2 = ((ScoringSeason)ScoringManager.m_lastSeason)?.Update();

                t1.Wait();
                t2?.Wait();

                if (((ScoringSeason)ScoringManager.m_currentSeason).IsEnded())
                {
                    DateTime utcTime = DateTime.UtcNow.AddMonths(1);

                    ScoringManager.m_lastSeason    = ScoringManager.m_currentSeason;
                    ScoringManager.m_currentSeason = ScoringManager.LoadOrCreateSeason(new LogicLong(utcTime.Year, utcTime.Month));
                }

                for (int i = 1, count = ServerManager.GetServerCount(26); i < count; i++)
                {
                    ServerMessageManager.SendMessage(new ScoringSyncMessage
                    {
                        CurrentSeasonDocument = ScoringManager.m_currentSeason,
                        LastSeasonDocument    = ScoringManager.m_lastSeason,
                    }, 26, i);
                }

                Thread.Sleep(2000);
            }
        }
Esempio n. 2
0
        public static void Init()
        {
            ScoringManager.m_diamondPrizes = new LogicArrayList <int>();
            ScoringManager.m_diamondPrizes.Add(50000);
            ScoringManager.m_diamondPrizes.Add(30000);
            ScoringManager.m_diamondPrizes.Add(15000);

            if (ServerCore.Id == 0)
            {
                DateTime seasonTime     = DateTime.UtcNow.AddMonths(1);
                DateTime lastSeasonTime = seasonTime.AddMonths(-1);

                ScoringManager.m_currentSeason = ScoringManager.LoadOrCreateSeason(new LogicLong(seasonTime.Year, seasonTime.Month));
                ScoringManager.m_lastSeason    = ScoringManager.LoadSeason(new LogicLong(lastSeasonTime.Year, lastSeasonTime.Month));
                ScoringManager.m_thread        = new Thread(ScoringManager.Update);
                ScoringManager.m_thread.Start();
            }
        }
Esempio n. 3
0
        private static ScoringSeason LoadOrCreateSeason(LogicLong id)
        {
            ScoringSeason scoringSeason = ScoringManager.LoadSeason(id);

            if (scoringSeason == null)
            {
                IOperationResult <string> result = ServerScoring.SeasonDatabase.Insert(id, CouchbaseDocument.Save(scoringSeason = new ScoringSeason(id))).Result;

                if (!result.Success)
                {
                    throw result.Exception;
                }

                scoringSeason.NextCheckTime = DateTime.UtcNow.Date.AddDays(1);
                scoringSeason.Init();
            }

            return(scoringSeason);
        }
Esempio n. 4
0
 public static LogicArrayList <AvatarDuelRankingEntry> GetLastSeasonAvatarDuelRankingList(LogicLong avatarId)
 {
     return(ScoringManager.GetRankingList <AvatarDuelRankingEntry>(ScoringManager.m_lastSeason?.AvatarDuelRankingList, avatarId));
 }
Esempio n. 5
0
 public static LogicArrayList <AvatarRankingEntry> GetAvatarRankingList(LogicLong avatarId)
 {
     return(ScoringManager.GetRankingList <AvatarRankingEntry>(ScoringManager.m_currentSeason.AvatarRankingList, avatarId));
 }
Esempio n. 6
0
 public static LogicArrayList <AllianceRankingEntry> GetLastSeasonAllianceRankingList(int villageType, LogicLong allianceId)
 {
     return(ScoringManager.GetRankingList <AllianceRankingEntry>(ScoringManager.m_lastSeason?.AllianceRankingList[villageType], allianceId));
 }