-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathintensa.wlk
96 lines (79 loc) · 1.96 KB
/
intensa.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
91
92
93
94
95
96
object intensamente {
var property intensidadLimite = 10
const personas = []
method agregar(p){
personas.add(p)
}
method cantidadPorExplotar() = personas.count{p=>p.porExplotar()}
method todosViven(evento) {
personas.forEach{p=>p.vivir(evento)}
}
}
class Persona {
var property edad
const emociones = []
method esAdolescente() = edad.between(12,19)
method tenerEmocion(nueva){
emociones.add(nueva)
}
method porExplotar() =
emociones.all{e=>e.puedeLiberarse()}
method vivir(evento){
emociones.forEach{e=>e.intentarLiberarse(evento)}
}
}
class Emocion{
var cantidadEventos = 0
var property intensidad
method puedeLiberarse() =
intensidad > intensamente.intensidadLimite() and
self.condicionAdicional()
method condicionAdicional()
method intentarLiberarse(evento) {
if(self.puedeLiberarse())
self.liberarse(evento)
cantidadEventos +=1
}
method liberarse(evento){
self.intensidad( intensidad - evento.impacto())
}
}
class Ansiedad inherits Furia{
override method liberarse(evento) { }
}
class Furia inherits Emocion(intensidad=100){
const palabrotas = []
override method condicionAdicional() =
palabrotas.any{p=>p.size() >= 7}
override method liberarse(evento){
super(evento)
palabrotas.remove(palabrotas.first())
}
method aprender(pal){
palabrotas.add(pal)
}
}
class Alegria inherits Emocion{
override method condicionAdicional() =
cantidadEventos.even()
override method intensidad(valor){
intensidad = valor.abs()
}
}
class Tristeza inherits Emocion {
var property causa = "melancolia"
override method condicionAdicional() =
causa != "melancolia"
override method liberarse(evento){
super(evento)
causa= evento.descripcion()
}
}
class OtraEmocion inherits Emocion {
override method condicionAdicional() =
cantidadEventos > intensidad
}
class Evento{
var property impacto
var property descripcion
}