Skip to content

Commit

Permalink
Funciona combinar (faltaria un tercer proyectil "superProyectil" para…
Browse files Browse the repository at this point in the history
… cuando hay 2 de hielo)
  • Loading branch information
NicolasSchkurko committed Nov 9, 2024
1 parent f56c066 commit ffdc969
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 3 deletions.
4 changes: 4 additions & 0 deletions adminProyectiles.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ object administradorDeProyectiles {
proyectiles.forEach({ proyectil => proyectil.colisionar() })
}

method combinarProyectiles() {
proyectiles.forEach({ proyectil => proyectil.combinar() })
}

// Elimina un proyectil de la lista
method destruirProyectil(proyectil) {
proyectiles.remove(proyectil)
Expand Down
5 changes: 4 additions & 1 deletion administradorDeJuego.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,10 @@ object configuracion {
game.onTick(tiempoDinero, "aumentar dinero", { puntaje.sumarPuntos() })
game.onTick(tiempoDisparo, "disparar", { administradorDeMagos.disparar() })
game.onTick(tiemposProyectiles, "moverDisparos", { administradorDeProyectiles.moverProyectiles() })
game.onTick(tiemposProyectiles, "impactarDisparos", { administradorDeProyectiles.impactarProyectiles() })
game.onTick(tiemposProyectiles, "impactarDisparos", {
administradorDeProyectiles.impactarProyectiles()
administradorDeProyectiles.combinarProyectiles()
})
game.onTick((tiemposProyectiles/3)-5, "frame", {administradorDeProyectiles.cambiarFrame()})
}

Expand Down
1 change: 1 addition & 0 deletions cursor.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,6 @@ object cursor {
method frenarEnemigo() = false
method recibeDanioEnemigo(_danio) { return false }
method recibeDanioMago(_danio) { return false }
method combinarProyectil(_tipo){return false}
method matarSlime(){return false}
}
2 changes: 2 additions & 0 deletions magos.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ class Mago {

method recibeDanioEnemigo(_danio) { return false }

method combinarProyectil(_tipo){return false}

method recibeDanioMago(_danio) {
self.vida(self.vida() - _danio)
}
Expand Down
28 changes: 26 additions & 2 deletions proyectil.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,19 @@ import administradorDeEnemigos.administradorDeEnemigos
// ===============================
class Proyectil {
// Propiedades
const property tipo
var property tipo
const position = new MutablePosition()
const property danio = tipo.danio()
var frame = 0
var imagen = tipo.imagenes().get(0)
var texto = ""

// Métodos públicos
method position() = position
method image() = imagen
method frenarEnemigo() = false
method sePuedeSuperponer() = true
method text() = texto

// Método de movimiento
method mover() {
Expand All @@ -41,12 +43,32 @@ class Proyectil {
const objetoEnFrente = game.getObjectsIn(posicionEnFrente)
const colisionFrente = objetoEnFrente.any({ objeto => objeto.recibeDanioEnemigo(danio) })
const colisionCelda = objetoEnMiCelda.any({ objeto => objeto.recibeDanioEnemigo(danio) })

if (colisionFrente || colisionCelda) {
self.destruirse()
}
}

method combinar(){
const objetoEnMiCelda = game.getObjectsIn(self.position())
const posicionEnFrente = new MutablePosition(x = position.x() + 1, y = position.y())
const objetoEnFrente = game.getObjectsIn(posicionEnFrente)
const colisionFrente = objetoEnFrente.any({ objeto => objeto.combinarProyectil(tipo) && objeto != self })
const colisionCelda = objetoEnMiCelda.any({ objeto => objeto.recibeDanioEnemigo(danio) && objeto != self })
if (colisionFrente) {
self.destruirse()
}
}

method combinarProyectil(_tipo){
if (_tipo.identity()==tipo.identity()){
tipo = tipo.combinar()
texto = "Soy un combineta"
return true
}
return _tipo.identity()==tipo.identity()
}

// Métodos para recibir daño
method recibeDanioEnemigo(_danio) {return false}
method recibeDanioMago(_danio) { }
Expand Down Expand Up @@ -81,6 +103,7 @@ object proyectilNormal {
const property imagenes = ["p.proyectilFuego - frame1.png", "p.proyectilFuego - frame2.png", "p.proyectilFuego - frame3.png"]
method danio() = 50
method destruirse() = true
method combinar() = proyectilPenetrante
}


Expand All @@ -92,5 +115,6 @@ object proyectilPenetrante {
const property imagenes = ["p.proyectilHielo-frame1.png", "p.proyectilHielo-frame2.png", "p.proyectilHielo-frame3.png"]
method danio() = 25
method destruirse() = false
method combinar() = proyectilPenetrante

}
3 changes: 3 additions & 0 deletions slime.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ class Slime {
return true
}

method combinarProyectil(_tipo){return false}


// Comprobación de estado de vida y eliminación
method estaMuerto() {
if (self.llegoACasa()) {
Expand Down

0 comments on commit ffdc969

Please sign in to comment.