Ejemplo n.º 1
0
        private async Task <bool> DoSimulation()
        {
            if (!await mInitializeTask)
            {
                return(false);
            }

            while (!mCancellationTokenSource.Token.IsCancellationRequested)
            {
                lock (mLock)
                {
                    var wNow     = DateTime.UtcNow;
                    var wStats   = mBuildingRepository.GetStats();
                    var wElapsed = wNow.Subtract(wStats.StartTime).TotalMilliseconds *wStats.Speed;
                    wStats.StartTime      = wNow;
                    wStats.SimulationTime = wStats.SimulationTime.AddMilliseconds(wElapsed);
                    wStats.PlayTime      += wElapsed;

                    DoSimulation(wStats, wElapsed);

                    mBuildingRepository.SaveChanges();
                }

                await Task.Delay(100);
            }

            return(true);
        }
Ejemplo n.º 2
0
 public BuildingStats GetStats()
 {
     return(BuildingRepository.GetStats());
 }