Skip to content

Commit

Permalink
Merge pull request #30 from obj1unq/MateoGiuffra-patch-1
Browse files Browse the repository at this point in the history
Update personajes.wlk
  • Loading branch information
MateoGiuffra authored Nov 22, 2023
2 parents bf89862 + 084ea3b commit 506a65b
Showing 1 changed file with 29 additions and 73 deletions.
102 changes: 29 additions & 73 deletions src/personajes.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ class Personaje {
const property llavesRotas = #{}
var property tieneVarita = false
var property nivel = nivelM
var property objAnterior = nada
var property puedeAgarrarVarita = false

var property ultimoObjGuardado = nada

method transformacion()

method estadoHabitual()
Expand All @@ -22,26 +24,26 @@ class Personaje {

method entrarEnZonaGuardias()

method image() = estado.image() + ".png"
method image() = "" + estado + "Con" + self.ultimoObjGuardado() + "" + ".png"

method colisionarCon(personaje) {
}

method llevaVarita(){
tieneVarita = true
estado.llevaVarita()
method tieneLlave() = ultimoObjGuardado.esLlave() // o objeto == llave
method tieneVarita() = ultimoObjGuardado.esVarita()
method tieneNada() = ultimoObjGuardado.esNada()

method guardar(objeto){
ultimoObjGuardado = objeto
}


method transformarse() {
estado = self.transformacion()
game.schedule(10000, {self.volverEstadoAnterior() })
game.schedule(10000, {estado = self.estadoHabitual() })
}

method volverEstadoAnterior(){
if (not estado.tieneNada()){
self.soltar()
}
self.estado(self.estadoHabitual())
}


method usarObjeto() {
const colisiones = objetosUsables.losQuePertenecen(game.colliders(self))
Expand All @@ -56,18 +58,14 @@ class Personaje {
}

method soltar(){
// si tiene el objeto del estado, entonces soltarlo, es decir, generarlo en la posicion actual
self.validarSoltar()
estado.objeto().generar(position)
estado.objeto(nada)

if (not self.tieneNada()){
ultimoObjGuardado.generar(position)
ultimoObjGuardado = nada
}
}


method validarSoltar() {
if (estado.objeto().esNada()) {
self.error("No tengo nada para soltar")
}
}

method validarAbrir(objetos) {
if (objetos.isEmpty()) {
Expand Down Expand Up @@ -95,8 +93,10 @@ class Personaje {

method repararLlave() {
self.validarReparar()
estado.objeto(llave)
self.soltar()
ultimoObjGuardado = llave
llavesRotas.clear()

}


Expand Down Expand Up @@ -173,17 +173,6 @@ class Personaje {
puedeAgarrarVarita = true
}

method obtenerVarita(){

tieneVarita = true
estado.objeto(varita)

}

method tieneLlave(){
return estado.tieneLlave()
}


method estaEnLaMismaPosicionQue(obstaculo){
return self.position() == obstaculo.position()
Expand Down Expand Up @@ -239,16 +228,6 @@ object harry inherits Personaje {

object sirius inherits Personaje {



// override method varitaEnMano() {
// return siriusConVarita
// }
//
// override method llaveEnMano() {
// return siriusConLlave
// }


method tirar(){
estado.objeto().position(position)
Expand Down Expand Up @@ -278,19 +257,12 @@ object sirius inherits Personaje {
// estados normal

class Estado {
var property objeto = nada

method image() = "" + self + "Con" + self.objeto() + ""
//var property objeto = nada
//method image() = "" + self + "Con" + self.objeto() + ""
method esPerseguible() = true
method puedeMoverse() = true
method puedePasar(puerta) = false
method llevaVarita() {
objeto = varita
}

method tieneLlave() = objeto.esLlave() // o objeto == llave
method tieneVarita() = objeto.esVarita()
method tieneNada() = objeto.esNada()


method entrarEnZonaGuardias(personaje){}

Expand All @@ -311,7 +283,7 @@ object harryHumano inherits Estado {


object harryInvisible inherits Estado {
override method image() = "harryInvisible"

override method esPerseguible() = false
}

Expand All @@ -323,9 +295,9 @@ object siriusHumano inherits Estado {}

object siriusPerro inherits Estado{

var property accion = ninguna

override method puedePasar(puerta) = true
override method esPerseguible() = accion.esPerseguible()
override method esPerseguible() = false


}
Expand All @@ -335,27 +307,11 @@ object siriusCongelado inherits Estado{
}


object ninguna{
method esPerseguible() = false
}
object ladrido{
method esPerseguible() = true
}

object nada inherits Objeto{

override method image(){}
method esLlave() = false
method esVarita() = false
method esNada() = true
method generar(me){}
}

object llave inherits Objeto{
override method image(){}
method esLlave() = true
method esVarita() = false
method esNada() = false
override method esNada() = true
method generar(me){}
}

Expand Down

0 comments on commit 506a65b

Please sign in to comment.