public void Execute(ICommandable com) { info = com.Execute(this.details); int mult_Info = info.Get_Multi_Info(); if (mult_Info == (int)MultiplayInfo.No_Multiplay) { string json = info.GetJson(); FinishedTaskEventArgs finalInfo = new FinishedTaskEventArgs(json, true); Finished(this, finalInfo); } else if (mult_Info < (int)MultiplayInfo.Play_Request) { multi_manag.MultiplayReady += new MultiplayManager.MultiplayReadyHandler(MultiplayReady); multi_manag.PlayerMoved += new MultiplayManager.PlayerMovedHandler(PlayerMoved); multi_manag.EndGame += new MultiplayManager.EndGameHandler(EndGame); if (mult_Info == (int)MultiplayInfo.First_Request) { multi_manag.FirstGameRequest(this); } else if (mult_Info == (int)MultiplayInfo.Second_Request) { multi_manag.SecondGameRequest(this); } } else if (mult_Info == (int)MultiplayInfo.Play_Request) { multi_manag.PlayRequest(this); } else // mult_Info == MultiplayInfo.Close_Request { multi_manag.CloseRequest(this); } }
public void PlayerMoved(object source, PlayerMovedArgs p) { if (p.player1 == this) { string json = p.toSend; FinishedTaskEventArgs info = new FinishedTaskEventArgs(json, false); Finished(this, info); } }
public void FinishedTask(object source, FinishedTaskEventArgs info) { Task task = (Task)source; if (info.stopListening) { task.Finished -= this.FinishedTask; } ReplyReady(this, info); }
public void MultiplayReady(object source, MultiplayArgs a) { MultiplayManager manag = (MultiplayManager)source; if (a.t1 == this || a.t2 == this) { manag.MultiplayReady -= this.MultiplayReady; string json = info.GetJson(); FinishedTaskEventArgs finalInfo = new FinishedTaskEventArgs(json, false); Finished(this, finalInfo); } }
public void EndGame(object source, MultiplayArgs a) { MultiplayManager manag = (MultiplayManager)source; if (a.t1 == this || a.t2 == this) { manag.PlayerMoved -= this.PlayerMoved; manag.EndGame -= this.EndGame; FinishedTaskEventArgs info = new FinishedTaskEventArgs("", true); Finished(this, info); } }
/// <summary> /// A function to be called when a reply is ready to be sent back to /// the client. It handles the event ReplyReady. /// </summary> /// <param name="source"> The object that triggered the event</param> /// <param name="info">An instance of FinishedTaskEventArgs, /// which inherits from EventArgs, and contains the string /// to send back to the client</param> public void ReplyReady(object source, FinishedTaskEventArgs info) { TaskHandler handler = (TaskHandler)source; if (info.toSend != "") { byte[] data = new byte[5096]; data = Encoding.ASCII.GetBytes(info.toSend); int bytes = Encoding.ASCII.GetByteCount(info.toSend); client.Send(data, bytes, SocketFlags.None); } }