Example #1
0
 static void UpdateState(Request request)
 {
     if (request.Status == RequestStatus.UPDATE_STATE && request.DataType == DataType.JSON) {
         state = JsonConvert.DeserializeObject<State>(request.Data);
         map.Update(state.Changes);
         if(!chatOpen) {
             Write();
         }
         protocol.Send(new Response(ResponseStatus.OK));
     }
 }
Example #2
0
        static void UpdateState(params StateChange[] changes)
        {
            var state = new State(null, null, changes, null);

            foreach (var client in clients.Where(c => c.IsLoggedIn)) {
                state.Player = client.Player;
                string data = JsonConvert.SerializeObject(state);
                Request(client, new Request(RequestStatus.UPDATE_STATE, DataType.JSON, data));
            }
        }
Example #3
0
 static void StartGame(Request request)
 {
     if (request.Status == RequestStatus.START) {
         state = JsonConvert.DeserializeObject<State>(request.Data);
         map = Map.Load(state.MapString);
         Write();
         gameStarted = true;
         protocol.Send(new Response(ResponseStatus.OK));
     }
 }
Example #4
0
        static void StartGame()
        {
            if (!gameStarted) {
                gameStarted = true;

                map = Map.Load();

                Client[] loggedInClients;
                lock (clients) {
                    loggedInClients = clients.Where(c => c.IsLoggedIn).ToArray();
                }

                var players = new List<Player>();
                for (int i = 0; i < loggedInClients.Length; i++) {
                    var client = loggedInClients[i];

                    var player = new Player(Player.IdCounter++, 20, 20, 0, Player.icons.ElementAt(i));
                    players.Add(player);
                    client.Player = player;
                }

                Player[] playerArray = players.ToArray();

                State state = new State(null, map.MapToString(), null, playerArray);

                foreach (var client in loggedInClients) {
                    state.Player = client.Player;
                    string data = JsonConvert.SerializeObject(state);
                    Request(client, new Request(RequestStatus.START, DataType.JSON, data));
                }

                map.Changed += (map, changes) => {
                    UpdateState(changes);
                };

                map.Start(playerArray);
            }
        }