diff --git a/assets/fondoB.png b/assets/fondoB.png index 12bbe5e..55c1f7e 100644 Binary files a/assets/fondoB.png and b/assets/fondoB.png differ diff --git a/assets/palancag.gif b/assets/palancag.gif new file mode 100644 index 0000000..b25e109 Binary files /dev/null and b/assets/palancag.gif differ diff --git a/src/nivelx.wlk b/src/nivelx.wlk index eb2021f..ff6aef7 100644 --- a/src/nivelx.wlk +++ b/src/nivelx.wlk @@ -142,7 +142,9 @@ object nivelM inherits NivelDeJuego { game.onTick(500, "caminataGuardias", {guardiasPerseguidores.perseguir()}) } - override method siguiente(){} // hay que agregarle que nivle le sigue + override method siguiente(){ + return nivelB + } // hay que agregarle que nivle le sigue override method terminarAccionNivel(){ game.removeTickEvent("caminataGuardias") @@ -228,6 +230,8 @@ object nivelC inherits NivelDeJuego{ override method image() = "fondoJuego.png" + + override method celdas(){ return [[m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m], @@ -260,46 +264,54 @@ object nivelC inherits NivelDeJuego{ } + override method siguiente(){} + + override method terminarAccionNivel(){ + game.removeTickEvent("caminataGuardias") + } +} + + +object nivelB inherits NivelDeJuego{ + + override method image() = "fondoB.png" + + override method celdas(){ + return + [[_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _], + [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _], + [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _], + [_, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, _, _], + [_, p, _, _, _, _, _, _, _, _, p, _, _, _, _, _, _, _, _, _, _, gp, _, _, _, _, _, p, _, _], + [_, p, _, _, _, _, _, _, _, _, p, _, _, _, _, _, _, _, _, _, _, _, _, _, gp, _, _, p, _, _], + [_, p, _, _, _, _, _, _, _, _, p, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, p, _, _], + [_, p, _, _, _, _, _, _, _, _, p, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, p, p, p], + [p, p, _, _, _, _, _, _, _, _, p, p, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, p, p, p], + [_, h, s, _, _, _, _, _, _, _, p, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, f, _], + [p, p, _, _, _, _, _, _, _, _, p, _, _, _, _, _, _, _, _, _, _, _, _, _, _, p, p, p, p, p, p, p], + [_, p, _, _, _, _, _, _, _, _, p, p, _, _, _, _, _, _, _, _, _, _, _, _, p, p, p, p, p, _, _], + [_, p, _, _, _, _, _, _, _, _, p, _, _, _, _, _, pu, pu, pu, pu, pu, pu, pu, p, p, p, p, p, _, _], + [_, p, _, o, _, _, _, _, _, _, p, _, p, _, _, _, pu, _, pu, _, pu, _, pu, pu, _, pu, _, p, _, _], + [_, p, _, _, _, _, _, _, _, _, p, tn, p, _, _, _, pu, pu, pu, pu, pu, pu, pu, p, pu, _, pa, p, _, _], + [_, p, _, _, _, _, _, _, _, _, _, pu, p, _, _, _, _, _, _, _, _, _, _, p, _, _, _, p, _, _], + [_, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, _, _], + [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _] + ].reverse() + } + + override method accionDeNivel(){ + game.onTick(800, "movimientoPuas", {caminoDePuas.activarMovimiento()}) + } + override method siguiente(){ return nivelM } + + override method terminarAccionNivel(){ + game.removeTickEvent("movimientoPuas") + } } -// -//object nivelB inherits Nivel{ -// -// override method fondo() = "fondoB.png" -// -// override method celdas(){ -// return -// [[_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _], -// [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _], -// [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _], -// [_, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, _, _], -// [_, p, _, _, _, _, _, _, _, _, p, _, _, _, _, _, _, _, _, _, _, gp, _, _, _, _, _, p, _, _], -// [_, p, _, _, _, _, _, _, _, _, p, _, _, _, _, _, _, _, _, _, _, _, _, _, gp, _, _, p, _, _], -// [_, p, _, _, _, _, _, _, _, _, p, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, p, _, _], -// [_, p, _, _, _, _, _, _, _, _, p, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, p, p, p], -// [p, p, _, _, _, _, _, _, _, _, p, p, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, p, p, p], -// [_, h, s, _, _, _, _, _, _, _, p, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _], -// [p, p, _, _, _, _, _, _, _, _, p, _, _, _, _, _, _, _, _, _, _, _, _, _, _, p, p, p, p, p, p, p], -// [_, p, _, _, _, _, _, _, _, _, p, p, _, _, _, _, _, _, _, _, _, _, _, _, p, p, p, p, p, _, _], -// [_, p, _, _, _, _, _, _, _, _, p, _, _, _, _, _, pu, pu, pu, pu, pu, pu, pu, p, p, p, p, p, _, _], -// [_, p, _, o, _, _, _, _, _, _, p, _, p, _, _, _, pu, _, pu, _, pu, _, pu, pu, _, pu, _, p, _, _], -// [_, p, _, _, _, _, _, _, _, _, p, tn, p, _, _, _, pu, pu, pu, pu, pu, pu, pu, p, pu, _, pa, p, _, _], -// [_, p, _, _, _, _, _, _, _, _, _, pu, p, _, _, _, _, _, _, _, _, _, _, p, _, _, _, p, _, _], -// [_, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, p, _, _], -// [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _] -// ].reverse() -// } -// -// override method accionDeGuardias(){ -// game.onTick(800, "movimientoPuas", {caminoDePuas.activarMovimiento()}) -// } -// -// override method siguiente(){ -// return nivelM -// } -//} + object _{ @@ -391,11 +403,29 @@ object cf{ object ss{ + method generar(position){ + const sensor = new SensorCofre(position = position, objetoApuntado = cofre) + game.addVisual(sensor) + objetosUsables.agregarObjeto(sensor) + } +} + +object sp{ + +// method generar(position){ +// const sensor = new SensorPuerta(position = position, objetoApuntado = puertaNivelM) +// game.addVisual(sensor) +// objetosUsables.agregarObjeto(sensor) +// } +} + +object sl { + method generar(position){ - const sensor = new SensorCofre(position = position) - game.addVisual(sensor) - objetosUsables.agregarObjeto(sensor) - } + const sensor = new SensorPuerta(position = position, objetoApuntado = palanca) + game.addVisual(sensor) + objetosUsables.agregarObjeto(sensor) + } } @@ -473,11 +503,21 @@ object pu { } } +object dn { + method generar(position){ + const pua = new Pua(position = position) + game.addVisual(pua) + } +} + object pa { method generar(position){ - palanca.position(position) - game.addVisual(palanca) + const palanc = new Palanca (position = position) + game.addVisual(palanc) } } +object pl { + +} \ No newline at end of file diff --git a/src/objetosUtiles.wlk b/src/objetosUtiles.wlk index 28955e8..376fd80 100644 --- a/src/objetosUtiles.wlk +++ b/src/objetosUtiles.wlk @@ -10,11 +10,8 @@ class Objeto { method abrir(personaje){} method colisionarCon(personaje){} - method esSolidoPara(personaje){ - return false - } + method esSolidoPara(personaje) = false - } @@ -88,9 +85,8 @@ class Cofre inherits Objeto{ } - override method esSolidoPara(personaje){ - return true - } + override method esSolidoPara(personaje) = true + method estaAbierto(){ return estado.estaAbierto() } @@ -113,42 +109,158 @@ object abierto{ } } +class Sensor{ + + const objetoApuntado + var property position = game.at(0,0) + method colisionarCon(personaje){} + method esSolidoPara(personaje) = false + method serUsado(personaje){} + method abrir(personaje){ + objetoApuntado.abrir(personaje) + } + + +} + +class SensorCofre inherits Sensor { + + override method serUsado(personaje){ + personaje.obtenerVarita() + cerrado.contenido(vacio) + } +} + +class SensorPuerta inherits Sensor{ + +} + +class SensorPalanca inherits Sensor{ + + override method serUsado(personaje){ + palanca.serUsado(personaje) + } + +} + +object palanca inherits Palanca{} object cofre inherits Cofre{} +object vacio{} +object puerta inherits Puerta{} + +class Palanca { -class SensorCofre { + var property position = game.at(0,0) + var property estado = palancaApagada - var property position - method colisionarCon(personaje){} - method esSolidoPara(personaje) = false - method abrir(personaje){ - cofre.abrir(personaje) + method image(){ + return estado.image() + } + + method colisionarCon(personaje){ } + + method esSolidoPara(personaje) = true + + method puedePasar(personaje) = false + method serUsado(personaje){ - personaje.obtenerVarita() - cerrado.contenido(vacio) + estado.serUsado() + } + + method cambiarEstado(){ + estado = estado.serCambiado() } } -object vacio{} +object palancaPrendida{ + + method image(){ + return "palancag.gif" + } + + method serUsado(){ + + } + + method serCambiado(){ + return palancaApagada + } +} -object palanca { +object palancaApagada{ + + method image(){ + return "palanca off.png" + } + + method serUsado(){ + palanca.cambiarEstado() + puerta.abrir() + } + + method prenderse(){ + palanca.cambiarEstado() + } + + method serCambiado(){ + return palancaPrendida + } + +} +class Puerta { + var property position = game.at(0,0) + var property estado = puertaCerrada method image(){ - return "palanca off.png" + return estado.image() } method colisionarCon(personaje){ } - method esSolidoPara(personaje) { - return true + method esSolidoPara(personaje) = estado.esSolidoPara(personaje) + + method puedePasar(personaje) = estado.puedePasar() + + method serUsado(personaje){ + estado.serUsado() } - method puedePasar(personaje) = false + method cambiarEstado(){ + estado = estado.serCambiado() + } + + method abrir(){ + self.cambiarEstado() + } +} + +object puertaCerrada{ + + method image(){ + return "puerta.png" + } method serUsado(){ - + puerta.abrir() + } + + method serCambiado(){ + return puertaAbierta + } +} + +object puertaAbierta{ + + method serUsado(){ + + } + + method serCambiado(){ + return puertaCerrada } } +