Untitled
unknown
plain_text
a month ago
1.3 kB
6
Indexable
import random
class Personagem:
def __init__(self, nome, hp, ataque):
self.nome = nome
self.hp = hp
self.ataque = ataque
def esta_vivo(self):
return self.hp > 0
def receber_dano(self, dano):
self.hp -= dano
if self.hp < 0:
self.hp = 0
def atacar(self, alvo):
print(f"\n{self.nome} ataca {alvo.nome}")
alvo.receber_dano(self.ataque)
print(f"{alvo.nome} sofreu {self.ataque} de dano. HP restante: {alvo.hp}")
class Guerreiro(Personagem):
def __init__(self, nome, hp, ataque, defesa):
super().__init__(nome, hp, ataque)
self.defesa = defesa
def receber_dano(self, dano):
dano_real = max(0, dano - self.defesa)
super().receber_dano(dano_real)
if dano - dano_real > 0:
print(f"\n{self.nome} usou o escudo e bloqueou o ataque!")
class Mago(Personagem):
def atacar(self, alvo):
dano = self.ataque
print(f"\n{self.nome} lança uma magia em {alvo.nome}")
if random.random() < 0.30:
dano *= 2
print("\nATAQUE CRÍTICO\n")
alvo.receber_dano(dano)
print(f"{alvo.nome} sofreu {self.ataque} de dano. HP restante: {alvo.hp}")
Editor is loading...
Leave a Comment