-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpersonagem.py
More file actions
46 lines (33 loc) · 1.33 KB
/
Copy pathpersonagem.py
File metadata and controls
46 lines (33 loc) · 1.33 KB
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
import random
# Classe base para os personagens
# Cada personagem tem nome, vida e força
class Personagem:
def __init__(self, nome, vida, forca):
self.nome = nome
self.vida = vida
self.forca = forca
#---------------Método para atacar outro personagem----------------#
# Calcula o dano e aplica ao alvo
def atacar(self, alvo):
if random.random() < 0.2: # 20% chance de errar
return f"{self.nome} errou o ataque!"
dano = self.forca
if random.random() < 0.1: # 10% chance de crítico
dano *= 2
alvo.vida -= dano # Aplica o dano ao alvo
return f"{self.nome} atacou {alvo.nome} causando {dano} de dano!"
#---------------Método para sofrer dano----------------#
# Reduz a vida do personagem ao sofrer dano
# Se a vida chegar a 0, o personagem morre
def sofrer_dano(self, valor):
self.vida -= valor
if self.vida < 0:
self.vida = 0
#---------------Método para verificar se está vivo----------------#
# Retorna True se a vida for maior que 0
def esta_vivo(self):
return self.vida > 0
#---------------Método para mostrar status----------------#
# Retorna uma string com o nome e vida atual do personagem
def mostrar_status(self):
return f"{self.nome}: {self.vida}HP"