-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
119 lines (114 loc) · 3.36 KB
/
app.js
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
new Vue({
el: "#app",
data: {
titulo: "O Matador de Monstros",
vidaMonstro: 100,
vidaJogador: 100,
emJogo: false,
historicoAcoes: [],
resultado: ''
},
computed: {
barraVidaMonstro() {
let color = 'green'
if (this.vidaMonstro < 20) {
color = 'red'
}
return {
width: `${this.vidaMonstro}%`,
backgroundColor: `${color}`,
height: '100%'
}
},
barraVidaJogador() {
let color = 'green'
if (this.vidaJogador < 20) {
color = 'red'
}
return {
width: `${this.vidaJogador}%`,
backgroundColor: `${color}`,
height: '100%'
}
},
jogoEmAndamento() {
return this.emJogo ? ((this.vidaMonstro === 0 || this.vidaJogador === 0) ? false : true) : false
},
},
methods: {
iniciarJogo() {
this.emJogo = true
this.vidaJogador = 100
this.vidaMonstro = 100
this.historicoAcoes = []
this.resultado = ''
},
atacar() {
let dano = this.obterDanoMonstro()
this.vidaJogador = this.vidaJogador - dano
this.registrarHistoricoAtaqueMonstro(dano)
dano = this.obterDanoJogador()
this.vidaMonstro = this.vidaMonstro - dano
this.registrarHistoricoAtaqueJogador(dano)
this.verificarFimDeJogo()
},
atacarComGolpeEspecial() {
let dano = this.obterDanoMonstro()
this.vidaJogador = this.vidaJogador - dano
this.registrarHistoricoAtaqueMonstro(dano)
dano = this.obterDanoEspecialJogador()
this.vidaMonstro = this.vidaMonstro - dano
this.registrarHistoricoAtaqueJogador(dano)
this.verificarFimDeJogo()
},
curar () {
let cura = this.obterCuraJogador()
this.vidaJogador = this.vidaJogador + cura
this.vidaJogador = this.vidaJogador > 100 ? 100 : this.vidaJogador
this.registrarHistoricoCuraJogador(cura)
let dano = this.obterDanoJogador()
this.vidaJogador = this.vidaJogador - dano
this.registrarHistoricoAtaqueMonstro(dano)
this.verificarFimDeJogo()
},
verificarFimDeJogo() {
this.vidaJogador = this.vidaJogador < 0 ? 0 : this.vidaJogador
this.vidaMonstro = this.vidaMonstro < 0 ? 0 : this.vidaMonstro
if (this.vidaJogador === 0) {
this.emJogo = false
this.resultado = "Você perdeu!"
return
}
if (this.vidaMonstro === 0) {
this.emJogo = false
this.resultado = "Você ganhou!"
return
}
},
desistir () {
this.emJogo = false
this.resultado = "Você desistiu do jogo!"
},
obterDanoJogador () {
return Math.floor(Math.random() * 6)
},
obterDanoEspecialJogador () {
return Math.floor(Math.random() * 16)
},
obterDanoMonstro () {
return Math.floor(Math.random() * 11)
},
obterCuraJogador () {
return Math.floor(Math.random() * 16)
},
registrarHistoricoAtaqueMonstro(dano) {
this.historicoAcoes.push({menssagem:`MONSTRO ATINGIU JOGADOR COM ${dano}`, estilo: "historico-ataque-monstro"})
},
registrarHistoricoAtaqueJogador(dano) {
this.historicoAcoes.push({menssagem:`JOGADOR ATINGIU MONSTRO COM ${dano}`, estilo: "historico-ataque-jogador"})
},
registrarHistoricoCuraJogador(cura) {
this.historicoAcoes.push({menssagem:`JOGADOR FOI CURADO EM ${cura}`, estilo: "historico-cura-jogador"})
}
}
});