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); } }
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(); } }
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); }
public static LogicArrayList <AvatarDuelRankingEntry> GetLastSeasonAvatarDuelRankingList(LogicLong avatarId) { return(ScoringManager.GetRankingList <AvatarDuelRankingEntry>(ScoringManager.m_lastSeason?.AvatarDuelRankingList, avatarId)); }
public static LogicArrayList <AvatarRankingEntry> GetAvatarRankingList(LogicLong avatarId) { return(ScoringManager.GetRankingList <AvatarRankingEntry>(ScoringManager.m_currentSeason.AvatarRankingList, avatarId)); }
public static LogicArrayList <AllianceRankingEntry> GetLastSeasonAllianceRankingList(int villageType, LogicLong allianceId) { return(ScoringManager.GetRankingList <AllianceRankingEntry>(ScoringManager.m_lastSeason?.AllianceRankingList[villageType], allianceId)); }