Skip to content

Commit 92fc04d

Browse files
committed
feat: implentação de loot e novas porções
1 parent 8880670 commit 92fc04d

File tree

2 files changed

+57
-9
lines changed

2 files changed

+57
-9
lines changed

models/itens.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
1-
ITENS = {
2-
"pocao_pequena": {"nome": "Poção Pequena", "cura": 20},
3-
"pocao_media": {"nome": "Poção Média", "cura": 40},
4-
"pocao_grande": {"nome": "Poção Grande", "cura": 80},
5-
}
1+
from models.inventario import Item
2+
3+
4+
class PocaoCura(Item):
5+
def __init__(self):
6+
super().__init__("Poção de Cura", 30) # valor = cura
7+
8+
9+
class PocaoForca(Item):
10+
def __init__(self):
11+
super().__init__("Poção de Força", 0) # valor 0, buff será tratado no uso

utils/controle_missao.py

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from models.inventario import Inventario, Item
22
from models.inimigo import Goblin, Ladrao, Golem, Demonio
3+
from models.itens import PocaoCura, PocaoForca
34
import random
45

56
# =====================================================
@@ -220,6 +221,36 @@ def iniciar_missao(jogo):
220221
print(f"\n=== Fim da Missão ===\nResultado: {resultado}")
221222
jogo.logger.log_batalha(f"Resultado: {resultado}")
222223

224+
# 👉 Recompensa somente se vencer
225+
if resultado == "Vitória":
226+
recompensar_jogador(jogador, dificuldade)
227+
228+
229+
def recompensar_jogador(jogador, dificuldade):
230+
print("\n🎁 Recompensas da missão:")
231+
232+
dif = dificuldade.lower()
233+
234+
if dif == "fácil":
235+
jogador.adicionar_item(PocaoCura())
236+
print("→ 1x Poção de Cura")
237+
238+
elif dif == "média":
239+
jogador.adicionar_item(PocaoCura())
240+
jogador.adicionar_item(PocaoForca())
241+
print("→ 1x Poção de Cura")
242+
print("→ 1x Poção de Força")
243+
244+
elif dif == "difícil":
245+
jogador.adicionar_item(PocaoForca())
246+
jogador.adicionar_item(PocaoForca())
247+
print("→ 2x Poção de Força")
248+
249+
else:
250+
print("Nenhuma recompensa para essa dificuldade.")
251+
252+
print("✔ Recompensas adicionadas ao inventário!")
253+
223254

224255
# -----------------------------------------------------
225256
# USO DE ITENS DURANTE COMBATE
@@ -235,7 +266,10 @@ def usar_item_em_combate(jogador, jogo):
235266

236267
print("\n=== Inventário ===")
237268
for i, item in enumerate(inventario.itens, 1):
238-
print(f"[{i}] {item.nome} (cura {item.valor} HP)")
269+
if item.nome == "Poção de Força":
270+
print(f"[{i}] {item.nome} (+5 ATK)")
271+
else:
272+
print(f"[{i}] {item.nome} (cura {item.valor} HP)")
239273
print("[0] Cancelar")
240274

241275
op = input("> ").strip()
@@ -250,10 +284,18 @@ def usar_item_em_combate(jogador, jogo):
250284
print("Item inválido!")
251285
return
252286

253-
jogador.vida += item.valor
254-
print(f"Você usou {item.nome} e recuperou {item.valor} HP!")
287+
# Poção de força
288+
if item.nome == "Poção de Força":
289+
jogador.ataque += 5
290+
print("💥 Seu ataque aumentou em +5 temporariamente!")
291+
jogo.logger.log_batalha(f"{jogador.nome} usou Poção de Força (+5 ATK).")
292+
293+
# Poções de cura normais
294+
else:
295+
jogador.vida += item.valor
296+
print(f"Você usou {item.nome} e recuperou {item.valor} HP!")
297+
jogo.logger.log_batalha(f"{jogador.nome} usou {item.nome} (+{item.valor} HP).")
255298

256-
jogo.logger.log_batalha(f"{jogador.nome} usou {item.nome} (+{item.valor} HP).")
257299
inventario.remover_item(item)
258300

259301

0 commit comments

Comments
 (0)