Example #1
0
 internal void SendState(WebSocket client, byte p)
 {
     ToClient mess = new ToClient();
     mess.action = 3;
     mess.changex = new List<int>();
     mess.changey = new List<int>();
     mess.changefig = new List<int>();
     if (phase != PhaseType.Displacing)
         for (int i = 0; i < 14; i++)
         {
             for (int j = 0; j < 14; j++)
             {
                 Fig fig = field[i, j];
                 if (fig.fig != FigType.Null) {
                     mess.changex.Add(i);
                     mess.changey.Add(j);
                     if (p == 0)
                         mess.changefig.Add((int)fig.fig + fig.player * 100);
                     else {
                         if (fig.player == p) {
                             mess.changefig.Add((int)fig.fig);
                         } else if (fig.player == 0) {
                             mess.changefig.Add((int)FigType.Sinking);
                         } else {
                             mess.changefig.Add((int)FigType.Unknown);
                         }
                     }
                 }
             }
         }
     Send(mess, client);
     PhaseChange(phase, player, p);
     lock (event_log)
     {
         foreach (Event evt in event_log)
             Send(new ToClient
         {
             action = 2,
             log = evt
         }, client);
     }
 }
Example #2
0
 public void AddPlayer(WebSocket player, byte p)
 {
     players[p - 1] = player;
     Send(new ToClient
     {
         action = 0,
         you = p
     }, p);
     player.p = (byte)(p - 1);
     player.onmessage = new WebSocket.OnMessage(ProcessRequest);
     player.onerror = new WebSocket.OnError(ConnectionError);
     SendState(players[p-1], p);
 }
Example #3
0
 public void AddViewer(WebSocket viewer)
 {
     viewers.Add(viewer);
     viewer.onerror = new WebSocket.OnError(ConnectionError);
     viewer.onmessage = new WebSocket.OnMessage(ProcessViewerRequest);
     Send(new ToClient
     {
         action = 0,
         you = 0
     }, viewer);
     SendState(viewer, 0);
 }
Example #4
0
 private void Send(ToClient mess, WebSocket target)
 {
     string text = JsonConvert.SerializeObject(mess, Formatting.Indented, new JsonSerializerSettings
     {
         DefaultValueHandling = DefaultValueHandling.Ignore
     });
     target.Send(text);
 }