コード例 #1
0
        void MedirDistancia()
        {
            peticion.Text = "Selecciona planeta de origen...";
            Planeta p1 = ObtenerPlanetaPulsado();

DeNuevo:
            peticion.Text = "Selecciona planeta de destino...";
            Planeta p2 = ObtenerPlanetaPulsado();

            if (p2 == p1)
            {
                goto DeNuevo;
            }

            if (p1 == null || p2 == null)
            {
                return;
            }

            double distancia = Cliente.CalcularDistancia(p1, p2);

            MessageBox.Show("La distancia de ambos planetas es de " +
                            distancia + " años luz.\r\n\r\nUna flota enviada en este turno, llegaría en el turno " +
                            (numeroRondaActual + (int)Math.Round(distancia)) + ".", "Distancia", MessageBoxButtons.OK);

            this.Invoke(new EventHandler(EnviarFlota), new object[] { null, null }); //Enviar ataque
        }
コード例 #2
0
        void SimularBatalla()
        {
            peticion.Text = "Selecciona planeta de origen...";
            Planeta p1 = ObtenerPlanetaPulsado();

DeNuevo:
            peticion.Text = "Selecciona planeta de destino...";
            Planeta p2 = ObtenerPlanetaPulsado();

            if (p2 == p1)
            {
                goto DeNuevo;
            }

            if (Clientes.Count == 1)
            {
                this.Invoke(new DelegadoSimularBatalla(simularBatalla), new object[] { p1, p2, Clientes[0] });
            }
            else if (clienteActual != null)
            {
                this.Invoke(new DelegadoSimularBatalla(simularBatalla), new object[] { p1, p2, clienteActual });
            }

            this.Invoke(new EventHandler(EnviarFlota), new object[] { null, null }); //Enviar ataque
        }
コード例 #3
0
 private Planeta ObtenerPlanetaPulsado()
 {
     PlanetaPulsado = null;
     Esperar        = new AutoResetEvent(false);
     Esperar.WaitOne();
     return(PlanetaPulsado);
 }
コード例 #4
0
 private void ClicPlaneta(Mapa mapa, Planeta planeta)
 {
     PlanetaPulsado = planeta;
     if (Esperar != null)
     {
         Esperar.Set();
     }
 }
コード例 #5
0
        private void SobrePlaneta(Mapa mapa, Planeta planeta)
        {
            imagenPlaneta.Image = planeta.Imagen;

            Info.Text = string.Format("Nombre del planeta: {0}\r\nLocalizazión: {1}", planeta.Name, planeta.Localizacion);
            if (planeta.Dueño != null)
            {
                Info.Text += string.Format("\r\nDueño: {1}\r\nNaves: {2}\r\nProducción: {3}\r\nTecnología militar: {4}"
                                           , planeta.Name, planeta.Dueño.Nombre, planeta.Naves, planeta.Produccion, planeta.TecnologiaMilitar);
            }
        }
コード例 #6
0
        private void EnviarFlota()
        {
            bCancelarHerramienta.Visible = true;

otroPlaneta:
            peticion.Text = "Selecciona planeta de origen de la flota...";
            Planeta origen = ObtenerPlanetaPulsado();

            if (origen.Dueño != clienteActual)
            {
                goto otroPlaneta;
            }

DeNuevo:
            peticion.Text = "Selecciona planeta de destino...";
            Planeta destino = ObtenerPlanetaPulsado();

            if (origen == destino)
            {
                goto DeNuevo;
            }

            peticion.Text = "Número de naves";
            int naves = ObtenerNumeroIntroducido();

            if (origen.Naves >= naves)
            {
                clienteActual.EnviarFlota(origen, destino, naves, numeroRondaActual);
            }
            else
            {
                if (MessageBox.Show(
                        "No hay suficientes naves en el planeta.\r\n\r\n¿Enviar todas las naves que quedan? (" +
                        origen.Naves + " naves)", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk)
                    == DialogResult.Yes)
                {
                    clienteActual.EnviarFlota(origen, destino, origen.Naves, numeroRondaActual);
                }
            }

            mapa.Refresh();

            this.Invoke(new EventHandler(EnviarFlota), new object[] { null, null }); //Enviar ataque
        }
コード例 #7
0
        private void simularBatalla(Planeta p1, Planeta p2, Cliente jugador)
        {
            SimularBatalla bat = new SimularBatalla(p1, p2, clienteActual);

            bat.Show();
        }
コード例 #8
0
 private void FueraPlaneta(Mapa mapa, Planeta planeta)
 {
     imagenPlaneta.Image = null;
     Info.Text           = string.Empty;
 }