Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
 public void PlayerMoved(object source, PlayerMovedArgs p)
 {
     if (p.player1 == this)
     {
         string json = p.toSend;
         FinishedTaskEventArgs info = new FinishedTaskEventArgs(json, false);
         Finished(this, info);
     }
 }
Esempio n. 3
0
        public void FinishedTask(object source, FinishedTaskEventArgs info)
        {
            Task task = (Task)source;

            if (info.stopListening)
            {
                task.Finished -= this.FinishedTask;
            }
            ReplyReady(this, info);
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
        /// <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);
            }
        }