diff --git a/entorno.wlk b/entorno.wlk index b6336ce..8daff49 100644 --- a/entorno.wlk +++ b/entorno.wlk @@ -6,6 +6,20 @@ import jefe.* object entorno { method limpiarEntorno() { game.allVisuals().forEach({visible => game.removeVisual(visible)}) + administradorVidas.mostrarVidas() + } + + method volverAlHub() { + const jefesHub = [jefeDePrueba, jefeGato] + + game.allVisuals().forEach({visible => game.removeVisual(visible)}) + administradorVidas.mostrarVidas() + + game.addVisual(morcilla) + + jefesHub.forEach({jefe => jefe.posicionPrevia()}) + + // Comprobar si se derrotaron 2, que aparezca el malo malĂ­simo } } @@ -61,12 +75,15 @@ class BossFight { turnoMorcilla = false game.removeVisual(cartelAtaque) - const duracionCinematica = 2000 + const duracionCinematica = 1500 morcilla.atacar() jefe.disminuirVida() if(jefe.derrotado()) - self.finalizarBatalla() + { + game.say(jefe, "ah la pucha") + game.schedule(1000, { self.finalizarBatalla() }) + } else game.schedule(duracionCinematica, { self.etapaDefensa() }) } @@ -76,19 +93,16 @@ class BossFight { morcilla.activarMovimiento() duracionTurnoJefe = jefe.ataque() - game.schedule(duracionTurnoJefe+100, { self.habilitarAtaque() }) + game.schedule(duracionTurnoJefe+50, { self.habilitarAtaque() }) } method finalizarBatalla() { jefeEnBatalla = false game.boardGround("stock_fondo2.png") - entorno.limpiarEntorno() - game.addVisual(morcilla) + entorno.volverAlHub() + morcilla.enBatalla(false) morcilla.activarMovimiento() - - jefe.posicionPrevia() - game.addVisual(jefe) } } diff --git a/jefe.wlk b/jefe.wlk index b307ad5..a95aef4 100644 --- a/jefe.wlk +++ b/jefe.wlk @@ -9,10 +9,14 @@ class JefeInteractuable{ const property image var property vida = 5 - const posInicial = position + const posInicial = new PositionMejorada (x = position.x(), y = position.y()) method posicionPrevia() { - position = posInicial + if(!self.derrotado()) + { + position = posInicial + game.addVisual(self) + } } method posicionBatalla() { @@ -72,12 +76,12 @@ class JefeGato inherits JefeInteractuable { method ataque() { const opcion = (0.randomUpTo(2)).roundUp() - //if(opcion == 1) + if(opcion == 1) return self.ataque1() - //else if(opcion == 2) - //return self.ataque2() - //else - // return 0 + else if(opcion == 2) + return self.ataque2() + else + return 0 } method ataque1() { diff --git a/main.wpgm b/main.wpgm index c12156c..3123204 100644 --- a/main.wpgm +++ b/main.wpgm @@ -16,7 +16,7 @@ program MorcillaGame { game.addVisual(jefeGato) game.addVisual(morcilla) - administradorVidas.definirVidas() + administradorVidas.mostrarVidas() game.showAttributes(morcilla) game.showAttributes(jefeGato) @@ -27,8 +27,8 @@ program MorcillaGame { keyboard.a().onPressDo({ morcilla.caminarIzquierda(1) }) keyboard.space().onPressDo({ morcilla.saltar(1000) }) - game.whenCollideDo(jefeDePrueba, {personaje => personaje.iniciarPeleaMorcilla(jefeDePrueba)}) - game.whenCollideDo(jefeGato, {personaje => personaje.iniciarPeleaMorcilla(jefeGato)}) + game.whenCollideDo(jefeDePrueba, {personaje => if(personaje === morcilla){personaje.iniciarPeleaMorcilla(jefeDePrueba)}}) + game.whenCollideDo(jefeGato, {personaje => if(personaje === morcilla){personaje.iniciarPeleaMorcilla(jefeGato)}}) game.start() } diff --git a/morcilla.wlk b/morcilla.wlk index c8a3cec..1f3b87d 100644 --- a/morcilla.wlk +++ b/morcilla.wlk @@ -163,7 +163,7 @@ object administradorVidas { const vidas = [vida1, vida2, vida3, vida4, vida5] - method definirVidas() { + method mostrarVidas() { vidas.forEach({sprite => if(sprite.id() <= vidaMaximaMorcilla){game.addVisual(sprite)}}) }