-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy patharqueiro.py
More file actions
32 lines (25 loc) · 1.33 KB
/
Copy patharqueiro.py
File metadata and controls
32 lines (25 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
from personagem import Personagem
import random
# Classe para o Arqueiro
class Arqueiro(Personagem):
def __init__(self, nome):
super().__init__(nome, vida=85, forca=12)
self.flechas = 5 # Flechas especiais do arqueiro
# Overloading do método atacar
def atacar(self, alvo, tipo="normal"):
if tipo == "normal": # Ataque normal
# Arqueiro tem menos chance de errar
if random.random() < 0.1: # 10% chance de errar
return f"{self.nome} errou o tiro!"
dano = self.forca # Dano base
if random.random() < 0.2: # Mais chance de crítico
dano *= 2
alvo.sofrer_dano(dano) # Aplica o dano ao alvo
return f"{self.nome} atirou em {alvo.nome} causando {dano} de dano!"
elif tipo == "preciso": # Ataque preciso consome flecha especial
if self.flechas <= 0: # Verifica se há flechas especiais
return f"{self.nome} não tem flechas especiais!"
self.flechas -= 1 # Custo da flecha especial
dano = self.forca * 3 # Ataque preciso causa muito mais dano
alvo.sofrer_dano(dano) # Aplica o dano ao alvo
return f"{self.nome} usou TIRO PRECISO causando {dano} de dano! (Flechas: {self.flechas})"