Skip to content

Commit

Permalink
Refactor: Arreglamos Lesionado y mostramos datos en Consola.
Browse files Browse the repository at this point in the history
Co-authored-by: mariagalindez <mgalindez@fi.uba.ar>
Co-authored-by: agus-germi <agerminario@fi.uba.ar>
  • Loading branch information
3 people committed Dec 14, 2023
1 parent 358e86f commit 177b0be
Show file tree
Hide file tree
Showing 11 changed files with 95 additions and 56 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@
import edu.fiuba.algo3.interfaz.vistas.botones.BotonJugarTurno;
import edu.fiuba.algo3.modelo.Juego;
import javafx.scene.control.Label;
import javafx.scene.control.Separator;
import javafx.scene.image.Image;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.CornerRadii;
import javafx.scene.layout.VBox;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.paint.ImagePattern;
import javafx.scene.text.Font;
Expand All @@ -22,6 +20,15 @@ public ContenedorConsola(Juego juego) {
Label nombreJugador = new Label("Jugador le toca tirar");
Label numeroDeDado = new Label("Avances");

Label datos = new Label("\nDatos del jugador Actual");
Label estado = new Label("Estado actual:");
Label energiaActual = new Label("Energia :");
Label seniority = new Label("Seniority jugador:");

Separator separador = new Separator();
separador.setPrefWidth(200);
separador.setStyle("-fx-background-color: black; -fx-border-width: 0 0 1 0; -fx-border-color: GRAY;");

Font estiloLetra = Font.loadFont("file:" + System.getProperty("user.dir") + "/fuentes/Cinzel-Black.ttf", 20);
nombreJugador.setFont(estiloLetra);
nombreJugador.setStyle("-fx-text-fill: orange");
Expand All @@ -30,6 +37,19 @@ public ContenedorConsola(Juego juego) {
numeroDeDado.setFont(estiloLetra);
numeroDeDado.setStyle("-fx-text-fill: orange");

//------------ Datos del jugador ----------- //

Font estiloLetra2 = Font.loadFont("file:" + System.getProperty("user.dir") + "/fuentes/Cinzel-Black.ttf", 15);
datos.setFont(estiloLetra2);
datos.setStyle("-fx-text-fill: orange");
estado.setFont(estiloLetra2);
estado.setStyle("-fx-text-fill: orange");
energiaActual.setFont(estiloLetra2);
energiaActual.setStyle("-fx-text-fill: orange");
seniority.setFont(estiloLetra2);
seniority.setStyle("-fx-text-fill: orange");


BotonJugarTurno botonJugarTurno = new BotonJugarTurno("Jugar Turno", juego);

Image imagenFondo = new Image("file:" + System.getProperty("user.dir") + "/imagenes/tableroYConsola/Consola.jpg");
Expand All @@ -40,7 +60,7 @@ public ContenedorConsola(Juego juego) {

this.setBackground(background);

this.getChildren().addAll(turnoActual, nombreJugador, numeroDeDado, botonJugarTurno);
this.getChildren().addAll(turnoActual, nombreJugador, numeroDeDado, botonJugarTurno, separador, datos, seniority, estado, energiaActual);
this.setAlignment(Pos.CENTER);
}

Expand All @@ -52,14 +72,26 @@ public void actualizar(String nombreJugadorActual, int ronda) {
nombreJugador.setText("Jugador " + nombreJugadorActual + " le toca tirar");
}

public void actualizar(String seniorityID) {
//poner logica
}
public void actualizar(int energia, String estadoID, String seniorityID) {
Label seniority = (Label) this.getChildren().get(6);
Label estado = (Label) this.getChildren().get(7);
Label energiaActual = (Label) this.getChildren().get(8);

public void actualizar(int energia, String estadoID) {
//poner logica
seniority.setText("Seniority jugador: " + seniorityID);
estado.setText("Estado: " + estadoID);
energiaActual.setText("Energia: " + energia);
}

/*public void actualizar(int energia, String estadoID) {
Label estado = (Label) this.getChildren().get(7);
Label energiaActual = (Label) this.getChildren().get(8);
estado.setText("Estado: " + estadoID);
energiaActual.setText("Energia: " + energia);
//this.getChildren().add(7, estado);
//this.getChildren().add(8, energiaActual);
}*/

public void actualizar(int ultimoNumeroTirado){
Label numeroDeDado = (Label) this.getChildren().get(2);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ public void actualizar(String nombre, Celda celdaAnterior, Celda celdaActual) {
} else {
int i = 0;
while (celdaAnterior != celdaActual) {
celdaAnterior = celdaAnterior.celdaSiguiente();
int finalX = celdaAnterior.getX();
int finalY = celdaAnterior.getY();

Expand All @@ -89,26 +90,8 @@ public void actualizar(String nombre, Celda celdaAnterior, Celda celdaActual) {
}
);
timeline.getKeyFrames().add(keyFrame);
celdaAnterior = celdaAnterior.celdaSiguiente();
i++;
}
/*
for (int i = 0; i < avances; i++) {
int finalX = celdaSiguiente.getX();
int finalY = celdaSiguiente.getY();
KeyFrame keyFrame = new KeyFrame(
Duration.millis(i * retrasoEntreIteracionesEnMilisegundos),
event -> {
setConstraints(jugador, finalX, finalY);
}
);
timeline.getKeyFrames().add(keyFrame);
celdaSiguiente = celdaSiguiente.celdaSiguiente();
}
*/

timeline.play();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,17 +57,18 @@ public void actualizar(String nombreJugadorActual, int ronda) {
this.contenedorConsola.actualizar(nombreJugadorActual, ronda);
}

public void actualizar(String seniorityID) {
this.contenedorConsola.actualizar(seniorityID);
public void actualizar(int energia, String estadoID, String seniorityID) {
this.contenedorConsola.actualizar(energia, estadoID, seniorityID);
}

public void actualizar(int energia, String ID) {
this.contenedorConsola.actualizar(energia, ID);
public void actualizar(String equipamientoID) {
//lol
}

public void actualizar(String nombreJugador, boolean hayGanador) {
String textoFinal;
String rutaImagen;
//this.contenedorTablero.actualizar(nombreJugador, celdaAnterior, celdaActual);

if (hayGanador) {
textoFinal = "¡GANADOR " + "\"" + nombreJugador + "\"" + "!";
Expand Down
30 changes: 11 additions & 19 deletions src/main/java/edu/fiuba/algo3/modelo/Gladiador.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import edu.fiuba.algo3.modelo.seniorities.Seniority;
import edu.fiuba.algo3.modelo.celdas.Celda;
import org.apache.logging.log4j.Logger;

import java.util.ArrayList;


Expand Down Expand Up @@ -37,73 +36,66 @@ public void mejorarSeniority(int turnos) {
this.seniority = this.seniority.ascender(turnos);
this.estado = this.seniority.aumentarEnergia(this.estado);
logger.info("Se ha mejorado la seniority.");
notificarObservadores(this.seniority);

}

public boolean totalmenteEquipado() { return this.equipamiento.equipoCompleto(); }

public void recibirImpacto(Fiera fiera) {
this.estado = this.equipamiento.recibirAtaque(this.estado);
logger.info("Es atacado por un animal en casilla y pierde energía 10");
notificarObservadores(this.estado);

}

public void recibirImpacto(Bacanal bacanal) {
this.estado = bacanal.modificarEnergia(this.estado);
logger.info("El jugador asiste a un Bacanal y saca 4 puntos de energía por cada a trago tomado.");
notificarObservadores(this.estado);
}

public void recibirImpacto(Lesion lesion) {
this.estado = new Lesionado(this.estado.getEnergia());
logger.info("Se ha recibido un impacto de tipo Lesion");
notificarObservadores(this.estado);
}

public void recibirImpacto(Comida comida) {
this.estado = comida.modificarEnergia(this.estado);
logger.info("Se ha encontrado un choripan, se incrementan 15 puntos");
notificarObservadores(this.estado);
}

public void recibirImpacto(Potenciador potenciador) {
this.equipamiento = this.equipamiento.mejorarEquipamiento(potenciador);
logger.info("Mejorando equipamiento.");
notificarObservadores(this.equipamiento);
}

public void recibirImpacto(Vacio vacio) {
logger.info("El destino jugara con ti otro turno, descansa");
}

public Celda mover(Celda futuraCelda, int turnos) throws TurnoPerdidoError {
public Celda mover(Celda futuraCelda, int turnos) {
notificarObservadores(this.estado, this.seniority);
//notificarObservadores(this.equipamiento);

this.estado = this.estado.avanzar(futuraCelda, this, logger);
this.mejorarSeniority(turnos);
return this.celdaActual;
}

public void mover(Celda nuevaCelda) {
public Estado mover(Celda nuevaCelda) {
this.celdaActual = nuevaCelda;
this.celdaActual = celdaActual.afectar(this);
return this.estado;
}


// -------------------------------- PRIVADOS -------------------------------- //
private void notificarObservadores(Seniority seniority) {
for (Observador observador : super.observadores) {
observador.actualizar(seniority.getID());
}
}

private void notificarObservadores(Estado estado) {
for (Observador observador : super.observadores) {
observador.actualizar(estado.getEnergia(), estado.getID());
private void notificarObservadores(Estado estado, Seniority seniority) {
for (Observador observador : this.observadores) {
observador.actualizar(estado.getEnergia(), estado.getID(), seniority.getID());
}
}

private void notificarObservadores(Equipamiento equipamiento) {
for (Observador observador : super.observadores) {
for (Observador observador : this.observadores) {
observador.actualizar(equipamiento.getID());
}
}
Expand Down
1 change: 1 addition & 0 deletions src/main/java/edu/fiuba/algo3/modelo/Juego.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ public void finalizarJuego() {
public void agregarObservadorAJugadores(Observador observador) {
for (Jugador jugador : this.jugadores) {
jugador.agregarObservador(observador);
jugador.agregarObservadorAGladiador(observador);
}
}

Expand Down
4 changes: 4 additions & 0 deletions src/main/java/edu/fiuba/algo3/modelo/Jugador.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ public String getNombre() {
return this.nombre;
}

public void agregarObservadorAGladiador(Observador observador){
this.gladiador.agregarObservador(observador);
}

// -------------------------------- PRIVADOS -------------------------------- //

private void notificarObservadores(String nombre, Celda celdaAnterior, Celda celdaActual, int avances) {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/edu/fiuba/algo3/modelo/Observador.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public interface Observador {

public void actualizar(String nombreJugador, boolean hayGanador);

public void actualizar(String seniorityID);
public void actualizar(String equipamientoID);

public void actualizar(int energia, String ID);
public void actualizar(int energia, String ID, String seniorityID);
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,5 @@ public class Lesion implements Afectante {

public void afectar(Gladiador gladiador){
gladiador.recibirImpacto(this);

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public Lesionado(int energia){
public Estado reducirEnergia(int energia) {
return this;
}

public Estado avanzar(Celda _futuraCelda, Gladiador _gladiador, Logger logger) {
// No avanza
logger.error("Lady Gago lesionado.");
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/edu/fiuba/algo3/modelo/estados/Sano.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ public Sano(int energia) {

public Estado avanzar(Celda futuraCelda, Gladiador gladiador, Logger logger) {
logger.info("Movimiento exitoso.");
gladiador.mover(futuraCelda);
return this;
return gladiador.mover(futuraCelda);
}

public Estado reducirEnergia(int energia) {
this.energiaActual -= energia;
if (this.energiaActual <= SIN_ENERGIA) {

return new Cansado();
}
return this;
Expand Down
26 changes: 26 additions & 0 deletions src/main/test/edu/fiuba/algo3/entregas/CasosDeUsoSemana1Test.java
Original file line number Diff line number Diff line change
Expand Up @@ -352,4 +352,30 @@ public void test12AlPasarTreintaTurnosYnadieLlegaAlaMetaSeTerminoElJuego() {

Assertions.assertThrows(PasaronTreintaRondasYnoHuboGanadorError.class,()-> juego.jugarTurnoDeJugadorActual(dado));
}

@Test
public void test13AlCaerEnCeldaConLesionPierdeSiguienteTurno(){
Logger logger = LogManager.getLogger();

ArrayList<Celda> celdas = new ArrayList<>();

celdas.add(new CeldaInicial(0,0,logger, "", "", ""));
celdas.add(new CeldaComun(0,1, new Vacio(), new Lesion(), logger, "", "", ""));
celdas.add(new CeldaComun(0,1, new Vacio(), new Vacio(), logger, "", "", ""));
celdas.add(new CeldaFinal(0,1, logger, "", "", ""));

Tablero tablero = new Tablero(1,1);
tablero.armarMapa(celdas);
Gladiador gladiador = new Gladiador(logger, tablero.getCeldaInicial());

Celda celdaFutura = tablero.getCeldaInicial().celdaSiguiente();

gladiador.mover(celdaFutura, 1); //cae en lesion

celdaFutura = celdaFutura.celdaSiguiente();

Celda celdaActual = gladiador.mover(celdaFutura, 1);
Assertions.assertNotSame(celdaFutura, celdaActual);
}
}

0 comments on commit 177b0be

Please sign in to comment.