Skip to content

Commit

Permalink
saque el chequeo que hacia el administradorDeEnemigos de si la column…
Browse files Browse the repository at this point in the history
…a donde spawnean los slimes esta ocupada antes de generar un enemigo
  • Loading branch information
NahuelMarek committed Dec 2, 2024
1 parent 63c7c3a commit f18b2d1
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 17 deletions.
16 changes: 8 additions & 8 deletions administradorDeEnemigos.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -12,31 +12,31 @@ object administradorDeEnemigos {
// Propiedades
var nombreEnemigo = 10000
var enemigos = #{}

// Métodos de Consulta
method enemigos() = enemigos
method columnaOcupada() = enemigos.filter({ enemigo => enemigo.position().x() == 14 }).size() == 5 // Verifica si la columna de posición x=14 está ocupada por 5 enemigos
// method columnaOcupada() = enemigos.filter({ enemigo => enemigo.position().x() == 14 }).size() == 5 // Verifica si la columna de posición x=14 está ocupada por 5 enemigos
method nombre() = nombreEnemigo
method pocosEnemigosEnPantalla() = administradorDeOleadas.enemigosVivos() < maxEnemigosEnPantalla

// Genera un nuevo nombre para los enemigos
method sumarEnemigo() { nombreEnemigo += 1 }

// Genera un nuevo enemigo del tipo especificado, si hay espacio en la columna
// Genera un nuevo enemigo del tipo especificado, si hay espacio en la columna
method generarEnemigo(tipo) {
if (not self.columnaOcupada() && self.pocosEnemigosEnPantalla()) {
if (/* not self.columnaOcupada() && */ self.pocosEnemigosEnPantalla()) {
const posicionTemporal = new MutablePosition(x = 14, y = 0.randomUpTo(5).truncate(0))
var nombreParaEnemigo = self.nombre()
var nombreParaEnemigo = self.nombre()

/* Solo genera el enemigo si la posición temporal está vacía */
if (game.getObjectsIn(posicionTemporal).isEmpty()) {

nombreParaEnemigo = new Slime(position = posicionTemporal, tipo = tipo)
enemigos.add(nombreParaEnemigo) /* Añade el nuevo enemigo a la colección de enemigos activos */

self.sumarEnemigo() /* Incrementa el contador de enemigos en el administrador */
administradorDeOleadas.sumarEnemigo() /* Notifica al administrador de oleadas */

return game.addVisual(nombreParaEnemigo) /* Muestra al enemigo en el juego */
} else {
return /* No genera el enemigo si la posición está ocupada */
Expand Down
13 changes: 5 additions & 8 deletions administradorDeJuego.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,6 @@ object pantalla {
method image() = estado.imagen()

var property estado = portada
var sonido = estado.sonido()
method estado()=estado

method reproducirSonido(){
Expand Down Expand Up @@ -156,8 +155,8 @@ object fondo{
// =======================================

object sonidoPartida{
var property sonido = "pvz8bit.mp3"
var sonidoFinal="TEARS.mp3"
const sonido = "pvz8bit.mp3"
const sonidoFinal="TEARS.mp3"
var musicaActual=musica1
const musica1 = game.sound(sonido)
const musica2 = game.sound(sonidoFinal)
Expand Down Expand Up @@ -198,20 +197,18 @@ object configuracion {
const tiemposProyectiles = 600
const tiempoDisparo = 3000
const tiempoDinero = 750
const tiempoMuerte = 1000
const tiempoMoverEnemigo = 1000

//ticks que usa el juego
const tickParaMoverEnemigos = game.tick(tiempoMoverEnemigo,{administradorDeEnemigos.moverEnemigos()},false)
const tickParaAumentarDinero = game.tick(tiempoDinero, { puntaje.sumarPuntos() },false)
const tickParaDisparar= game.tick(tiempoDisparo, { administradorDeMagos.disparar()},false)
const tickParaMoverYColisionarDisparos= game.tick(tiemposProyectiles, { administradorDeProyectiles.moverProyectiles() administradorDeProyectiles.impactarProyectiles() },false)
const tickParaMoverYColisionarDisparos= game.tick(tiemposProyectiles, { administradorDeProyectiles.moverProyectiles()
administradorDeProyectiles.impactarProyectiles() },false)
const tickParaCambiarFrames= game.tick((tiemposProyectiles/3)-5, {administradorDeProyectiles.cambiarFrame()},false)
const tickParaCambiarFramesEnemigos= game.tick((tiempoMoverEnemigo/3)-5, {administradorDeEnemigos.cambiarFrame()},false)


var property sonido = "pvz8bit.mp3"
var musica = game.sound(self.sonido()) // El reproductor de música es constante; solo cambia el archivo de sonido
// El reproductor de música es constante; solo cambia el archivo de sonido
method iniciarMusica() {sonidoPartida.iniciarMusica()}
// Método para detener la música de fondo
method detenerMusica() {
Expand Down
2 changes: 1 addition & 1 deletion magos.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ class MagoTienda{
method text() = costo.toString() + "$"

method textColor() = "ffec00ff"

method puedeGenerarMago(){
if(puntaje.puntos() < costo){
throw new DomainException(message="No hay suficiente dinero para comprar esta Mago")
Expand Down

0 comments on commit f18b2d1

Please sign in to comment.