private void leerTramaPropiedades(String origen, String destino, String segundoByte) { string propiedadComprada = segundoByte.Substring(3, 5); int posicionPropiedad = board.GetHousePositionFromBits(propiedadComprada); if (jugadorLocal.GetIdAsString() != destino) { byte origenByte = Convert.ToByte(origen); int origenNumber = Convert.ToInt32(origenByte); HouseSquare propiedad = (HouseSquare)board.GetSquares()[posicionPropiedad]; Trace.WriteLine("Owner: " + origenNumber); Trace.WriteLine("Player: " + board.getPlayer(origenNumber).getID()); propiedad.setOwner(origenNumber); this.BeginInvoke((MethodInvoker) delegate() { lbxHistoria.Items.Add("Jugador " + origen + " compró la propiedad " + board.GetSquares()[posicionPropiedad].getName()); }); this.comPort.Write(Instruccion.FormarTrama( Instruccion.FormarPrimerByte(origen, destino, Instruccion.PrimerByte.PROPIEDADES), Convert.ToByte("000" + propiedadComprada, 2) ), 0, 4); } else { this.BeginInvoke((MethodInvoker) delegate() { lbxPropiedades.Items.Add(posicionPropiedad + " " + board.GetSquares()[posicionPropiedad].getName()); lbxHistoria.Items.Add("Compré la propiedad " + board.GetSquares()[posicionPropiedad].getName()); }); } }
private void leerTramaTirarDados(String origen, String destino, String segundoByte) { string dado1Str = segundoByte.Substring(2, 3); string dado2Str = segundoByte.Substring(5, 3); int dado1 = Convert.ToInt32(dado1Str, 2); Trace.WriteLine("Dado 1: " + dado1); int dado2 = Convert.ToInt32(dado2Str, 2); Trace.WriteLine("Dado 2: " + dado2); if (jugadorLocal.GetIdAsString() != destino) { this.BeginInvoke((MethodInvoker) delegate() { this.btnRollDices.Enabled = false; this.btnFinalizarTurno.Enabled = false; lbxHistoria.Items.Add("Jugador que le toca: " + origen); }); dice1.Image = (Image)Properties.Resources.ResourceManager.GetObject("dado" + dado1); dice2.Image = (Image)Properties.Resources.ResourceManager.GetObject("dado" + dado2); // Actualizamos la posicion del jugador que se esta moviendo var jugadorMoviendose = board.getPlayer(Convert.ToInt32(origen, 2)); Trace.WriteLine("Actualizando posicion del jugador que se movio. Id: " + jugadorMoviendose.getID()); if ((ultimoOrigen == origen) && (dado1 == dado2)) { dobles++; if (dobles == 3) { dobles = 0; jugadorMoviendose.SetPoisitionX(9); jugadorMoviendose.SetPoisitionY(360); jugadorMoviendose.setIsInJail(true); } } else { dobles = 0; int newPosition = Board.normalizePosition(jugadorMoviendose.getCurrentPosition() + dado1 + dado2); if (jugadorMoviendose.getCurrentPosition() > newPosition) { jugadorMoviendose.getMoney().addMoney(200); } jugadorMoviendose.setPosition(newPosition); Square pos = board.GetSquares()[newPosition]; jugadorMoviendose.SetPoisitionX(pos.GetPositionX()); jugadorMoviendose.SetPoisitionY(pos.GetPositionY()); if (pos.GetType() == typeof(HouseSquare)) { HouseSquare posHouse = (HouseSquare)pos; pos = (HouseSquare)pos; if ((posHouse.getOwner() != jugadorMoviendose.getID()) && (posHouse.getOwner() >= 0)) { Trace.WriteLine(jugadorMoviendose, jugadorMoviendose.getName() + " lost " + posHouse.getRent() + " money to " + board.getPlayer(posHouse.getOwner()).getName()); jugadorMoviendose.getMoney().substractMoney(posHouse.getRent()); board.getPlayer(posHouse.getOwner()).getMoney().addMoney(posHouse.getRent()); Trace.WriteLine("Owner money: " + board.getPlayer(posHouse.getOwner()).getMoney().getMoney()); actualizarDatosJugadorLocal(); } } Trace.WriteLine(String.Format("Posicion del jugador {0}: {1}, {2} (Casilla: {3})", jugadorMoviendose.getID(), jugadorMoviendose.GetPositionX(), jugadorMoviendose.GetPositionY(), newPosition)); } tablero.Invalidate(); this.comPort.Write(Instruccion.FormarTrama( Instruccion.FormarPrimerByte(origen, destino, Instruccion.PrimerByte.TIRAR_DADOS), Instruccion.FormarSegundoByteDados(dado1Str, dado2Str) ), 0, 4); } else if (jugadorLocal.GetIdAsString() == origen) { if (jugadorLocal.getIsInJail()) { this.BeginInvoke((MethodInvoker) delegate() { this.btnRollDices.Enabled = false; this.btnFinalizarTurno.Enabled = true; lbxHistoria.Items.Add("Carcel"); }); } else { if (dado1 != dado2) { // Aqui deberiamos hacer las acciones que si de comprar, etc this.BeginInvoke((MethodInvoker) delegate() { this.btnFinalizarTurno.Enabled = true; }); } else if (dado1 == dado2) { this.BeginInvoke((MethodInvoker) delegate() { this.btnRollDices.Enabled = true; this.btnFinalizarTurno.Enabled = false; lbxHistoria.Items.Add("Dobles"); }); } } } else if (jugadorLocal.GetIdAsString() == destino) { Trace.WriteLine(String.Format("Jugador local: {0} Destino: {1}", jugadorLocal.GetIdAsString(), destino)); this.BeginInvoke((MethodInvoker) delegate() { this.btnRollDices.Enabled = true; lbxHistoria.Items.Add("SOY YO: " + jugadorLocal.GetIdAsString()); }); } else // Creo que nunca llegara hasta aqui { Trace.WriteLine("No creo que pase"); } }