From 655c604c543c5accb84bec47d507f37ebf723f57 Mon Sep 17 00:00:00 2001 From: MNVallone Date: Thu, 10 Oct 2024 14:09:52 -0300 Subject: [PATCH] Arreglo bug de acumulacion de magos amarillos --- cursor.wlk | 5 --- magos.wlk | 85 ++++++++++++++++++++++++++++----------------------- main.wpgm | 1 - pruebas.wtest | 36 +++++++++++++++++++--- puntaje.wlk | 13 ++++---- zombie.wlk | 4 +-- 6 files changed, 87 insertions(+), 57 deletions(-) diff --git a/cursor.wlk b/cursor.wlk index d446c7a..f06f0c3 100644 --- a/cursor.wlk +++ b/cursor.wlk @@ -20,9 +20,4 @@ object cursor { method moverseArriba() = if (self.position().y()<4) position.goUp(1) method moverseAbajo() = if (self.position().y()>0) position.goDown(1) - method noEstaViva() = vida < 0 - - method morir(){ - if (self.noEstaViva()){ game.say(self, "Durisimo Helmano")} // Delego la resonsabilidad de morir a pepita - } } diff --git a/magos.wlk b/magos.wlk index 5b3b3f7..1285861 100644 --- a/magos.wlk +++ b/magos.wlk @@ -1,60 +1,66 @@ import puntaje.* -class MagoPiedra { - //nota de nico: es una nuez >:( +class MagoFuego { const position - const property tipo = "piedra" - var property vida = 300 - var property imagen = "magoPiedra.png" + const property tipo = "fuego" + var property vida = 100 + var property danio = 40 + var property imagen = "magoFuego.png" method position() = position method image() = imagen - method recibeDanio(danio) { - self.vida(self.vida() - danio) + method recibeDanio(_danio) { + self.vida(self.vida() - _danio) } - - method sigueViva(){ + + method sigueViva(){ if (vida <= 0) game.removeVisual(self) } - + method queSoy() = "mago" } -class MagoFuego { +class MagoHealer { const position - const property tipo = "fuego" + const property tipo = "girasol" var property vida = 100 - var property imagen = "magoFuego.png" + var property imagen = "magoHealer.png" method position() = position + + method danio() = 0 method image() = imagen - method recibeDanio(danio) { - self.vida(self.vida() - danio) + method recibeDanio(_danio) { + self.vida(self.vida() - _danio) } - + method sigueViva(){ - if (vida <= 0) game.removeVisual(self) - } + if (vida <= 0 && game.hasVisual(self)){ // agregue el game.has visual porque sino restaba girasoles hasta que lo elimine el garbage collector + game.removeVisual(self) + puntaje.quitarMagoHealer() + } + } + method queSoy() = "mago" } -class Patapum { +class MagoHielo { const position - const property tipo = "patapum" - var property vida = 1 - var property imagen = "magoEnojado.png" //hacer mago musulman + const property tipo = "cactus" + var property vida = 100 + var property imagen = "magoHielo.png" method position() = position method image() = imagen - method recibeDanio(danio) { - self.vida(self.vida() - danio) + method recibeDanio(_danio) { + self.vida(self.vida() - _danio) } method sigueViva(){ @@ -64,11 +70,14 @@ class Patapum { method queSoy() = "mago" } -class MagoHielo { +class MagoPiedra { + //nota de nico: es una nuez >:( const position - const property tipo = "cactus" - var property vida = 100 - var property imagen = "magoHielo.png" + const property tipo = "piedra" + var property vida = 300 + var property imagen = "magoPiedra.png" + + method danio() = 0 method position() = position @@ -85,18 +94,18 @@ class MagoHielo { method queSoy() = "mago" } -class MagoHealer { +class Patapum { const position - const property tipo = "girasol" - var property vida = 50 - var property imagen = "magoHealer.png" + const property tipo = "patapum" + var property vida = 1 + var property imagen = "magoEnojado.png" //hacer mago musulman method position() = position method image() = imagen - method recibeDanio(danio) { - self.vida(self.vida() - danio) + method recibeDanio(_danio) { + self.vida(self.vida() - _danio) } method sigueViva(){ @@ -116,8 +125,8 @@ class MagoEnojado { method image() = imagen - method recibeDanio(danio) { - self.vida(self.vida() - danio) + method recibeDanio(_danio) { + self.vida(self.vida() - _danio) } method sigueViva(){ @@ -188,7 +197,7 @@ object magoHealerTienda { } method efectoDeInvocacion(){ - puntaje.sumarGirasol() + puntaje.sumarMagoHealer() } } @@ -235,4 +244,4 @@ object magoEnojadoTienda { method efectoDeInvocacion(){} } -const pepe = new MagoFuego(position = game.at(0, 0)) \ No newline at end of file +// const pepe = new MagoFuego(position = game.at(0, 0)) \ No newline at end of file diff --git a/main.wpgm b/main.wpgm index 90e368e..729d7b9 100644 --- a/main.wpgm +++ b/main.wpgm @@ -44,7 +44,6 @@ program cursorGame { game.onCollideDo(cursor, {elemento => game.say(elemento, "Duro de Cojones")}) game.onCollideDo(cursor, {elemento => cursor.perderVida(elemento.danio())}) */ - game.onTick(3000, "matar cursor", {if (cursor.noEstaViva()){cursor.morir()}}) game.onTick(1000, "aumentar dinerro", {puntaje.sumarPuntos()}) /* diff --git a/pruebas.wtest b/pruebas.wtest index 96d60f7..76aa594 100644 --- a/pruebas.wtest +++ b/pruebas.wtest @@ -1,9 +1,35 @@ -/*import pepita.* +import magos.* +import game.* +describe "group of tests for magos" { -describe "group of tests for pepita" { + test "Mago Fuego tiene vida" { + const mago = new MagoFuego(position = game.at(0,0)) + assert.equals(100, mago.vida()) + } + + test "Mago Fuego tiene daño" { + const mago = new MagoFuego(position = game.at(0,0)) + assert.equals(40, mago.danio()) + } + + test "Mago Healer tiene vida" { + const mago = new MagoHealer(position = game.at(0,0)) + assert.equals(100, mago.vida()) + } - test "pepita has initial energy" { - assert.equals(2, pepita.vida()) + test "Mago Healer no tiene daño" { + const mago = new MagoHealer(position = game.at(0,0)) + assert.equals(0, mago.danio()) } + test "Mago Piedra tiene vida" { + const mago = new MagoPiedra(position = game.at(0,0)) + assert.equals(300, mago.vida()) + } + + test "Mago Piedra no tiene daño" { + const mago = new MagoPiedra(position = game.at(0,0)) + assert.equals(0, mago.danio()) + } + -} */ \ No newline at end of file +} \ No newline at end of file diff --git a/puntaje.wlk b/puntaje.wlk index 5f61da3..29147fe 100644 --- a/puntaje.wlk +++ b/puntaje.wlk @@ -5,22 +5,23 @@ method position() = game.at(7, 5) var property puntos = 50 -var property cantidadDeGirasoles = 0 +var property cantidadDeMagosHealer = 0 method sumarPuntos(){ - self.puntos(puntos + 10 * (1 + cantidadDeGirasoles)) + self.puntos(puntos + 10 * (1 + cantidadDeMagosHealer)) } method restarPuntos(costo){ self.puntos(puntos - costo) } -method sumarGirasol(){ - self.cantidadDeGirasoles(cantidadDeGirasoles + 1) +method sumarMagoHealer(){ + cantidadDeMagosHealer += 1 } -method quitarGirasol(){ - self.cantidadDeGirasoles(cantidadDeGirasoles - 1) +method quitarMagoHealer(){ + cantidadDeMagosHealer -= 1 + if (cantidadDeMagosHealer <=0) cantidadDeMagosHealer = 0 } diff --git a/zombie.wlk b/zombie.wlk index e2b01f4..b117c60 100644 --- a/zombie.wlk +++ b/zombie.wlk @@ -35,6 +35,6 @@ class ZombiesNormales { } -const jose = new ZombiesNormales(position= new MutablePosition(x=10, y=0.randomUpTo(5).truncate(0))) +//const jose = new ZombiesNormales(position= new MutablePosition(x=10, y=0.randomUpTo(5).truncate(0))) -const otroZombie = new ZombiesNormales(position= new MutablePosition(x=3, y=3)) \ No newline at end of file +//const otroZombie = new ZombiesNormales(position= new MutablePosition(x=3, y=3)) \ No newline at end of file