Example #1
0
 public void OnDisable()
 {
     Token.MoveToken -= MoveToken;
     NextTurn         = null;
     StartGame        = null;
     Board.instance.region1.MakeMove = null;
     Board.instance.region2.MakeMove = null;
     Board.instance.region3.MakeMove = null;
     Board.instance.region4.MakeMove = null;
     currentActivatedeRegion         = null;
     activeRegionList.Clear();
 }
Example #2
0
 public void SetMode()
 {
     if (GameManager.instance.currentGameType == GameType.LocalMode)
     {
         NextTurn  += NextTurnLocalMode;
         StartGame += StartGameOfTypeLocal;
         Board.instance.region1.MakeMove += Board.instance.region1.MakeMoveLocalMode;
         Board.instance.region2.MakeMove += Board.instance.region2.MakeMoveLocalMode;
         Board.instance.region3.MakeMove += Board.instance.region3.MakeMoveLocalMode;
         Board.instance.region4.MakeMove += Board.instance.region4.MakeMoveLocalMode;
     }
     else if (GameManager.instance.currentGameType == GameType.VsComputer)
     {
         NextTurn  += NextTurnVsComputerMode;
         StartGame += StartGameOfTypeVsComputer;
         Board.instance.region1.MakeMove += Board.instance.region1.MakeMoveVsComputerMode;
         Board.instance.region2.MakeMove += Board.instance.region2.MakeMoveVsComputerMode;
         Board.instance.region3.MakeMove += Board.instance.region3.MakeMoveVsComputerMode;
         Board.instance.region4.MakeMove += Board.instance.region4.MakeMoveVsComputerMode;
     }
 }
Example #3
0
 public void ShowEndGameScreen(StartGameDelegate onStartGame)
 {
     _gameEndScreen.Show(
         () => onStartGame(),
         () => onStartGame());
 }
Example #4
0
        // Подключиться к серверу
        private void connectButton_Click(object sender, EventArgs e)
        {
            try
            {
                m_ClientReady = m_ServerReady = false;
                new ServerConnectForm(this).ShowDialog();
                if (IpConnect != "")
                {
                    ChannelServices.RegisterChannel(new TcpChannel(8081), false);

                    m_FromClient = (FromClientTransmittor)Activator.GetObject(typeof(FromClientTransmittor), "tcp://" + IpConnect + ":8080/FromClientTransmittor");

                    // Установить свой сервер для получения ответа от сервера
                    m_FromServer    = new FromServerTransmittor();
                    m_RefFromServer = RemotingServices.Marshal(m_FromServer, "FromServerTransmittor");

                    // Обработка события на запрос о ничьей
                    m_FromServer.ToClientRemiEvent += ToClientRemiEvent;

                    // Обработка события на сообщение о сдаче сервера
                    m_FromServer.ToClientDeliverEvent += ToClientDeliverEvent;

                    // Обработка очередного хода сервера
                    m_FromServer.ToClientStepEvent += ToClientStepEvent;

                    // Обработка события на готовность клиента играть
                    m_FromServer.ToClientReadyEvent += ToClientReadyEvent;

                    // Обработка события на отключение клиента
                    m_FromServer.ToClientDisableEvent += ToClientDisableEvent;

                    // Получение сетевого адреса клиента (вида tcp://xxx.xxx.xxx.xxx:8081)
                    IPAddress ip   = Dns.GetHostEntry(Dns.GetHostName()).AddressList[Dns.GetHostEntry(Dns.GetHostName()).AddressList.Length - 1];
                    string    addr = "tcp://" + ip + ":8081";

                    var cb = new AsyncCallback(StartGameQuery);
                    var d  = new StartGameDelegate(m_FromClient.StartGame);
                    d.BeginInvoke(addr, cb, null);

                    m_WhoStep                = ObjectType.Cross;
                    m_TypePlayer             = TypePlayer.Client;
                    serverButton.Visible     = connectButton.Visible = false;
                    disconnectButton.Visible = true;
                    textBoxNetInfo.Text      = "Соединение с сервером установлено\r\n";
                }
            }
            catch
            {
                MessageBox.Show("Подключение к серверу не установлено.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                ChannelServices.UnregisterChannel(ChannelServices.RegisteredChannels[0]);
                try
                {
                    if (m_RefFromClient != null)
                    {
                        RemotingServices.Unmarshal(m_RefFromClient);
                        RemotingServices.Disconnect(m_FromClient);
                    }
                }
// ReSharper disable EmptyGeneralCatchClause
                catch { }
// ReSharper restore EmptyGeneralCatchClause

                try
                {
                    if (m_RefFromServer != null)
                    {
                        RemotingServices.Unmarshal(m_RefFromServer);
                        RemotingServices.Disconnect(m_FromServer);
                    }
                }
// ReSharper disable EmptyGeneralCatchClause
                catch { }
// ReSharper restore EmptyGeneralCatchClause
            }
        }