void Sync() { if (players.Count == 0) { return; } var movedPlayers = new List <RPC.Player>(); lock (players) { foreach (var player in players.Values) { if (!player.isPositionChanged) { continue; } var playerRpc = new RPC.Player(player.Uid, player.Position, player.Score, player.Scale); movedPlayers.Add(playerRpc); player.isPositionChanged = false; } } if (movedPlayers.Count == 0) { return; } var syncRpc = new Sync(new SyncPayload(movedPlayers)); var syncJson = JsonConvert.SerializeObject(syncRpc); broadcast(syncJson); }
void PlayerSmallerTimer() { var random = new Random(); var timer = new Timer(100); timer.Elapsed += (_, __) => { if (players.Count == 0) { return; } var movedPlayers = new List <RPC.Player>(); lock (players) { foreach (var player in players.Values) { if (player.Scale <= 1) { continue; } player.Scale -= 0.005f; if (player.Scale < 1.0f) { player.Scale = 1.0f; } var playerRpc = new RPC.Player(player.Uid, player.Position, player.Score, player.Scale); movedPlayers.Add(playerRpc); player.isPositionChanged = false; } } if (movedPlayers.Count != 0) { Console.WriteLine("<< Smaller"); var syncRpc = new Sync(new SyncPayload(movedPlayers)); var syncJson = JsonConvert.SerializeObject(syncRpc); broadcast(syncJson); } }; timer.Start(); }