-
Notifications
You must be signed in to change notification settings - Fork 0
/
personajes.wlk
94 lines (74 loc) · 2.14 KB
/
personajes.wlk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import configuraciones.*
import wollok.game.*
import enemigos.*
import equipamientos.*
import direcciones.*
import pisos.*
object caballero {
var property position = game.at(24,2)
var property image = "caballeroEspalda.png"
var property direccion = izquierda
var property nombre = "caballero"
var property vida = 10
var property estaVivo = true
var property disparoLaFlecha = false
var property habitacionDelCaballero = 1
const equipamiento = #{}
method moverse(nuevaDireccion) {
self.direccion(nuevaDireccion)
nuevaDireccion.direc(self)
nuevaDireccion.image(self)
}
method rebote(direc){
direc.direccionOpuesta(self)
if (self.vida() > 0){
game.schedule(0, {self.image("rojo" + self.image())})
}
}
method agregarEquipo(e) { equipamiento.add(e) }
method puedeAgarrar(objeto) = objeto.estaEnRango(self) and !self.tieneElElemento(objeto)
method agarrar(equipo) {
if (self.puedeAgarrar(equipo)){
botonesE.forEach {boton => game.removeVisual(boton)}
self.agregarEquipo(equipo)
equipo.serAgarrado()
}
}
method tieneElElemento(elem) = equipamiento.contains(elem)
method tocaBorde() {}
method cambiaVida(cantidad) {
vida += cantidad
vida = (self.vida()).min(10)
barraDeVida.cambiaVida(self.vida())
if (self.vida() == 0) {
self.perder()
}
}
method muerto(flecha){
if(!(flecha.tirador() == self.toString())){
self.estaVivo(false)
game.schedule(0, {self.image(self.nombre()+"Muerto.png")})
game.removeVisual(flecha)
game.schedule(2000, {game.addVisual(fondoSiPerdes)})
game.schedule(2001, {game.stop()})
}
}
method perder() {
self.estaVivo(false)
game.schedule(0, {self.image(self.nombre()+"Muerto.png")})
game.schedule(2000, {game.addVisual(fondoSiPerdes)})
game.schedule(2001, {game.stop()})
}
}
object barraDeVida {
var image = "Vidas10.png"
var property position = game.at(65,32)
var property vidaActual = caballero.vida()
method image() = image
method cambiaVida(vida) {
if (vida != -1) {
image = "Vidas" + vida.toString() + ".png"
}
self.vidaActual(vida)
}
}