Skip to content

Commit

Permalink
cree el slime agil
Browse files Browse the repository at this point in the history
  • Loading branch information
NahuelMarek committed Nov 18, 2024
1 parent 9f1501e commit b6b65dc
Show file tree
Hide file tree
Showing 8 changed files with 54 additions and 8 deletions.
2 changes: 1 addition & 1 deletion adminProyectiles.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ object administradorDeProyectiles {
self.sumarProyectil()
game.addVisual(nombreParaProyectil)
nombreParaProyectil.combinar()

try nombreParaProyectil.colisionar() catch e "YA NO EXISTE PROYECTIL"
}

// Mueve cada proyectil en la lista
Expand Down
2 changes: 2 additions & 0 deletions administradorDeJuego.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,9 @@ object pantalla {
estado=estadoNuevo

self.reproducirSonido()

}
method frenarEnemigo()= true
}

// =======================================
Expand Down
3 changes: 2 additions & 1 deletion administradorDeOleadas.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,15 @@ object administradorDeOleadas {
oleadaActual = oleadaNormal
}
method recibeDanioMago(danio){}
method frenarEnemigo()= true
}


// ===============================
// Oleada Normal: Configuración y gestión de una oleada estándar
// ===============================
object oleadaNormal {
var property enemigos = [/* slimeBasico */slimeDeMedioOriente]
var property enemigos = [slimeAgil]
var property cantidadEnemigos = 10
var property enemigosRestantes = cantidadEnemigos
var property enemigosGenerados = 0
Expand Down
Binary file added assets/s.slimeAgil.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions magos.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ class MagoTienda{
return mago
}
method recibeDanioMago(danio){}
method frenarEnemigo()= true
// method efectoDeInvocacion(){} //esto estaba porque antes los magos irlandeses interactuaban directamente con el contador de puntos
}

Expand Down
1 change: 1 addition & 0 deletions pala.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ object pala {
magoSeleccionado.eliminar()
}
method recibeDanioMago(danio){}
method frenarEnemigo()= true
}
// Me da ansiedad la pala
//⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣶⣶⣶⣤⣀⠀⠀⠀⠀⠀⠀
Expand Down
2 changes: 1 addition & 1 deletion proyectil.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ object proyectilNormal {

const objetosEnPosicion = game.getObjectsIn(proyectil.position()) + game.getObjectsIn(posicionEnFrente)

const hayColision = objetosEnPosicion.any({objeto => objeto.recibeDanioEnemigo(proyectil.danio())})
const hayColision = objetosEnPosicion.any({objeto => try objeto.recibeDanioEnemigo(proyectil.danio()) catch e false})

if (hayColision) {
proyectil.destruirse()
Expand Down
51 changes: 46 additions & 5 deletions slime.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import puntaje.puntaje
// ===============================
class Slime {
// Propiedades
const position
var property position
const property tipo
var property enMovimiento = true // Indica si el slime puede moverse
var property vida = tipo.vida()
Expand Down Expand Up @@ -53,7 +53,8 @@ class Slime {

method recibeDanioEnemigo(_danio) {
self.vida(self.vida() - _danio)
return true
tipo.accionAlRecibirDanio().apply(self)
return true
}

method combinarProyectil(_tipo){return false}
Expand Down Expand Up @@ -109,14 +110,17 @@ class Slime {
}
}
method estaMuerto()= {slime=>
if (slime.llegoACasa()) {
if (slime.llegoACasa()||slime.position().y()>4||slime.position().y()<0) {
game.sound("m.deathScreen.mp3").play()
casa.recibirDanio(slime.position().y())
slime.eliminar()
} else if (slime.sinVida()) {
game.sound("m.explosion.mp3").play()
slime.eliminar()
}
return slime.sinVida() || slime.llegoACasa()
}
method accionAlRecibirDanio() ={slime => return }
}

object slimeNinja {
Expand All @@ -128,6 +132,7 @@ class Slime {
method moverse()= slimeBasico.moverse()
method meFreno()=slimeBasico.meFreno()
method estaMuerto()=slimeBasico.estaMuerto()
method recibeDanioEnemigo(_danio) = slimeBasico.accionAlRecibirDanio()
}

object slimeGuerrero {
Expand All @@ -139,6 +144,7 @@ class Slime {
method moverse()= slimeBasico.moverse()
method meFreno()=slimeBasico.meFreno()
method estaMuerto()=slimeBasico.estaMuerto()
method recibeDanioEnemigo(_danio) = slimeBasico.accionAlRecibirDanio()
}

object slimeBlessed {
Expand All @@ -150,6 +156,7 @@ class Slime {
method moverse()= slimeBasico.moverse()
method meFreno()=slimeBasico.meFreno()
method estaMuerto()=slimeBasico.estaMuerto()
method recibeDanioEnemigo(_danio) = slimeBasico.accionAlRecibirDanio()
}


Expand All @@ -172,6 +179,7 @@ object slimeLadron {
}
}
method estaMuerto()=slimeBasico.estaMuerto()
method recibeDanioEnemigo(_danio) = slimeBasico.accionAlRecibirDanio()
}

object slimeDorado {
Expand All @@ -189,12 +197,13 @@ object slimeDorado {
puntaje.puntos(puntaje.puntos()+1000)
slime.eliminar()
}
return slime.sinVida() || slime.llegoACasa()
return slime.sinVida() || slime.llegoACasa()
}
method recibeDanioEnemigo(_danio) = slimeBasico.accionAlRecibirDanio()
}

object slimeDeMedioOriente{
const property danio = 500
const property danio = 250
const property vida= 180
method desplazamiento() = 1
const imagen="s.slimeMedioOriente.png"
Expand All @@ -215,4 +224,36 @@ object slimeDeMedioOriente{
slime.enMovimiento(true)
}}
method estaMuerto()=slimeBasico.estaMuerto()
method recibeDanioEnemigo(_danio) = slimeBasico.accionAlRecibirDanio()
}

object slimeAgil{
const property danio = 50
const property vida= 450
method desplazamiento() = 1
const imagen="s.slimeAgil.png"
method imagen() {return imagen}
method moverse()= slimeBasico.moverse()
method meFreno()=slimeBasico.meFreno()
method estaMuerto()= slimeBasico.estaMuerto()
method accionAlRecibirDanio() = {slime=>
if(slime.vida()<=self.vida()*0.5){
self.cambiarDeCarril().apply(slime)
}
}
method cambiarDeCarril()={slime=>
const posicionArriba= new MutablePosition(x = slime.position().x(), y = slime.position().y()+1)
const posicionAbajo= new MutablePosition(x = slime.position().x(), y = slime.position().y()-1)
const celA=game.getObjectsIn(posicionArriba)
const celAB=game.getObjectsIn(posicionAbajo)
const celdaArriba= [celA,posicionArriba]
const celdaAbajo= [celAB,posicionAbajo]
const posiciones = [celdaArriba,celdaAbajo]
posiciones.any({ celda => celda.get(0).all({objeto=>!objeto.frenarEnemigo()}) && self.moverAcarrilAledanio(slime, celda.get(1))})
}
method moverAcarrilAledanio(slime,carril){
if(carril.y()<5 && carril.y()>=0 ){
slime.position(carril)
}
}
}

0 comments on commit b6b65dc

Please sign in to comment.