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 override void Decode(ByteStream stream) { this.CurrentSeasonDocument = CouchbaseDocument.Decode <SeasonDocument>(stream); if (stream.ReadBoolean()) { this.LastSeasonDocument = CouchbaseDocument.Decode <SeasonDocument>(stream); } }
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(); } }
public static void OnScoringSyncMessageReceived(ScoringSyncMessage message) { ScoringManager.m_currentSeason = message.CurrentSeasonDocument; ScoringManager.m_lastSeason = message.LastSeasonDocument; }