Skip to content

Commit

Permalink
Avance
Browse files Browse the repository at this point in the history
  • Loading branch information
Juanter134 committed Nov 6, 2024
1 parent f8e7117 commit 495cc12
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 15 deletions.
47 changes: 43 additions & 4 deletions entorno.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class Proyectiles {
const id

method direccionIzquierda(velocidad) {
game.whenCollideDo(self, {=> morcilla.perderVida()})
game.onCollideDo(self, {elemento => elemento.perderVida()})
game.addVisual(self)
game.onTick(velocidad, "proyectilIzquierda" + id, {self.movimientoIzquierda(velocidad)})
}
Expand All @@ -34,7 +34,7 @@ class Proyectiles {
}

method direccionDerecha(velocidad) {
game.whenCollideDo(self, {=> morcilla.perderVida()})
game.onCollideDo(self, {elemento => elemento.perderVida()})
game.addVisual(self)
game.onTick(velocidad, "proyectilDerecha" + id, {self.movimientoDerecha(velocidad)})
}
Expand All @@ -47,6 +47,38 @@ class Proyectiles {
game.removeTickEvent("proyectilDerecha" + id)
}
}

method direccionDiagonalAbajoDerecha(velocidad) {
game.onCollideDo(self, {elemento => elemento.perderVida()})
game.addVisual(self)
game.onTick(velocidad, "proyectilDiagonalAbajoDerecha" + id, {self.movimientoDiagonalAbajoDerecha(velocidad)})
}

method movimientoDiagonalAbajoDerecha(velocidad) {
position.goRightMejorado(1, 30)
position.goDownMejorado(1, 40)
if(position.x() == 30)
{
game.removeVisual(self)
game.removeTickEvent("proyectilDiagonalAbajoDerecha" + id)
}
}

method direccionDiagonalAbajoIzquierda(velocidad) {
game.onCollideDo(self, {elemento => elemento.perderVida()})
game.addVisual(self)
game.onTick(velocidad, "proyectilDiagonalAbajoDerecha" + id, {self.movimientoDiagonalAbajoIzquierda(velocidad)})
}

method movimientoDiagonalAbajoIzquierda(velocidad) {
position.goLeftMejorado(1, 30)
position.goDownMejorado(1, 40)
if(position.x() == 30)
{
game.removeVisual(self)
game.removeTickEvent("proyectilDiagonalAbajoIzquierda" + id)
}
}
}


Expand All @@ -57,6 +89,8 @@ class Visual {
const property image
}

const derrota = new Visual (position = game.origin(), image = "celda_gris.png")

const cartelAtaque = new Visual (position = new Position(x=17, y=20), image = "proto_cartel_ataque.png")


Expand All @@ -68,6 +102,7 @@ class BossFight {
game.boardGround("arena_de_jefe.png")
entorno.limpiarEntorno()
game.addVisual(morcilla)
morcilla.enBatalla(true)

jefe.posicionBatalla()
game.addVisual(jefe)
Expand Down Expand Up @@ -102,7 +137,11 @@ class BossFight {
}

method finalizarBatalla() {

game.boardGround("stock_fondo.png")
entorno.limpiarEntorno()
game.addVisual(morcilla)
morcilla.enBatalla(false)
morcilla.activarMovimiento() // habría que también tener seteado los lugares de el resto de npc en la zona
}
}

Expand Down Expand Up @@ -164,4 +203,4 @@ class ProyectilJefe1 inherits Proyectiles {
method image() = "ataque_prueba.png"
}

const jefeDePrueba = new JefeDePrueba (position = new PositionMejorada(x=30, y=2), image = "celda_roja.png")
const jefeDePrueba = new JefeDePrueba (position = new PositionMejorada(x=10, y=2), image = "celda_roja.png")
4 changes: 1 addition & 3 deletions main.wpgm
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@ program MorcillaGame {
keyboard.a().onPressDo({ morcilla.caminarIzquierda(1) })
keyboard.space().onPressDo({ morcilla.saltar(1000) })

keyboard.j().onPressDo({ bossFightDePrueba.iniciarPelea() })

game.whenCollideDo(morcilla, {jefe => game.say(jefeDePrueba, "Estas colisionando")})
game.onCollideDo(jefeDePrueba, {personaje => personaje.iniciarPeleaMorcilla()})

game.start()
}
31 changes: 23 additions & 8 deletions morcilla.wlk
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import wollok.game.*
import general.*
import entorno.*

object morcilla {
var property position = new PositionMejorada(x=0, y=2)
Expand Down Expand Up @@ -74,25 +75,39 @@ object morcilla {
var inmunidadActiva = false
var property puedeAtacar = false
var derrotado = false
var enBatalla = false

method enBatalla(estado){
enBatalla = estado
}

method iniciarPeleaMorcilla(){
if(!enBatalla){ // Un pequeño problema es que una vez que se activa el method podés activar la pelea en cualquier momento
game.say(self, "Pulsa J para iniciar battalla")
keyboard.j().onPressDo({ bossFightDePrueba.iniciarPelea() })
}
}

method perderVida() {
vidas = (vidas-1).max(0)
game.say(self, "Ay!")
if (!inmunidadActiva){
vidas = (vidas-1).max(0)
game.say(self, "Ay!")

self.obtenerInmunidad(300)
self.obtenerInmunidad(300)

if(vidas < 1)
self.derrota()
if(vidas < 1)
self.derrota()
}
}

method obtenerInmunidad(duracion) {
inmunidadActiva = true
game.schedule(100, {inmunidadActiva = false})
game.schedule(duracion, {inmunidadActiva = false})
}

method derrota() {
derrotado = true
game.say(self, "Ya perdí :(")
game.addVisual(derrota)
}

method derrotado() = derrotado
Expand All @@ -103,7 +118,7 @@ object morcilla {

method posicionDeAtaque() {
movimientoActivo = false
position = new PositionMejorada (x=17, y=2)
position = new PositionMejorada (x=15, y=2)
}

method activarMovimiento() {
Expand Down

0 comments on commit 495cc12

Please sign in to comment.