-
Notifications
You must be signed in to change notification settings - Fork 0
/
streams.wlk
81 lines (57 loc) · 1.61 KB
/
streams.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
class Stream {
const invitados
method estaPegado() = self.nivelDeHype() > 60
method nivelDeHype() = invitados.sum(
{ invitado => invitado.popularidad() }
).min(100)
method ganancias() = self.viewers() * self.nivelDeHype()
method viewers()
}
class EpisodioCanal inherits Stream (invitados = []) {
var costoProduccion
override method ganancias() = super() - costoProduccion
}
class EpisodioHayAlgoAhi inherits EpisodioCanal {
var dia
method hayAnalisisSesudos() = dia.estaInteresante()
override method viewers() = if (self.hayAnalisisSesudos()) 10000 else 20000
override method nivelDeHype() = 100
}
class DiaEnLaRealidad {
var cantSucesos = 10
method sucesos(cantidad) {
cantSucesos = cantidad
}
method estaInteresante() = cantSucesos > 5
}
class EpisodioSonieQueVolaba inherits EpisodioCanal {
const canciones
override method viewers() = canciones * 10000
}
class SesionStreamerIndependiente inherits Stream {
var suscriptores
method frenesiDeSuscripciones() {
suscriptores *= 2
}
override method viewers() = (suscriptores * 1.randomUpTo(3)).truncate(0)
}
class SesionStreamDeCoscu inherits SesionStreamerIndependiente {
var momentoDelDia
override method viewers() = super() + momentoDelDia.genteConectada()
}
object maniana {
method genteConectada() = 1000
}
object tarde {
method genteConectada() = 5000
}
object noche {
method genteConectada() = 10000
}
object streamIvo inherits SesionStreamerIndependiente (
invitados = [],
suscriptores = 1200
) {
// BONUS: objeto heredando
// y dandole valor a los atributos heredados
}