Skip to content

Commit 80dbc63

Browse files
rebase: alterei algo que não devia, voltado ao certo.
1 parent 5c7e31c commit 80dbc63

File tree

1 file changed

+9
-172
lines changed

1 file changed

+9
-172
lines changed

models/jogo.py

Lines changed: 9 additions & 172 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
11
from __future__ import annotations
2-
import os
3-
import json
4-
from models.aventura_classes import Guerreiro, Mago
5-
from equipamentos import PocaoDeVida
62

73
from utils import controle_personagem
84
from utils import controle_missao
@@ -25,187 +21,28 @@ def __init__(self) -> None:
2521
# Estado do personagem
2622
self.personagem = {"nome": None, "arquetipo": None}
2723

28-
# menu personagem
29-
def menu_personagem(self):
30-
"""
31-
Menu dedicado às operações relacionadas ao personagem:
32-
criar, ver, inventário, criação de itens.
33-
"""
34-
while True:
35-
print("\n=== Menu de Personagem ===")
36-
print("[1] Criar personagem")
37-
print("[2] Ver personagem")
38-
print("[3] Checar inventário")
39-
print("[4] Criar item")
40-
print("[5] Usar item")
41-
print("[6] Adicionar item ao inventário")
42-
print("[0] Voltar ao menu principal")
24+
# Objeto completo do personagem (classe Guerreiro/Mago)
25+
self.personagem_obj = None
4326

4427
# Estado da missão
4528
self.missao_config = {"dificuldade": "Fácil", "cenario": "Trilha"}
4629

4730
# Repositório de salvamento (importado do módulo utils/salvamento)
4831
self.repo = salvamento.repo
4932

50-
elif op == "2":
51-
self.ver_personagem()
52-
53-
elif op == "3":
54-
self.checar_inventario()
55-
56-
elif op == "5":
57-
self.usar_item_personagem()
58-
59-
elif op == "6":
60-
item = print("Informe o nome do item a adicionar:")
61-
self.personagem.adicionar_item(item)
62-
63-
elif op == "0":
64-
break
65-
66-
else:
67-
print("Opção inválida. Tente novamente.")
33+
# Últimos caminhos usados
34+
self._ultimo_save = None
35+
self._ultimo_load = None
6836

6937
# ================================================================
7038
# ROTAS (encaminham chamadas a módulos externos)
7139
# ================================================================
7240

7341
def criar_personagem(self) -> None:
74-
"""
75-
Fluxo interativo de criação de personagem jogável.
76-
77-
Responsável por instanciar e armazenar um objeto de personagem (Guerreiro ou Mago)
78-
com base na entrada do usuário. Garante consistência entre `personagem_obj`
79-
e o dicionário de metadados `self.personagem`.
80-
81-
Rules:
82-
- O nome é obrigatório.
83-
- A classe é escolhida entre as opções implementadas (1 ou 2).
84-
- Nenhum dado é persistido neste estágio.
85-
86-
Side effects:
87-
- Cria `self.personagem_obj`
88-
- Atualiza `self.personagem["nome"]` e `self.personagem["arquetipo"]`
89-
"""
90-
print("=== Criação de Personagem ===")
91-
nome = input("Digite o nome do seu personagem: ").strip()
92-
93-
print("\nEscolha uma classe:")
94-
print("[1] Guerreiro - Alta vida e defesa, ataque físico forte.")
95-
print("[2] Mago - Usa mana e ataques mágicos poderosos.")
96-
97-
while True:
98-
escolha = input("> ").strip()
99-
if escolha == "1":
100-
personagem = Guerreiro(nome)
101-
break
102-
elif escolha == "2":
103-
personagem = Mago(nome)
104-
break
105-
else:
106-
print("Opção inválida. Escolha 1 ou 2.")
107-
108-
print("\nPersonagem criado com sucesso!")
109-
print(f"Nome: {personagem.nome}")
110-
print(f"Classe: {'Guerreiro' if isinstance(personagem, Guerreiro) else 'Mago'}")
111-
print(f"Vida: {personagem.vida}")
112-
print(f"Ataque: {personagem.ataque}")
113-
print(f"Defesa: {personagem.defesa}")
114-
print(f"Mana: {personagem.mana}")
115-
116-
self.personagem_obj = personagem
117-
self.personagem["nome"] = nome
118-
self.personagem["arquetipo"] = (
119-
"Guerreiro" if isinstance(personagem, Guerreiro) else "Mago"
120-
)
121-
122-
123-
# =====================================================
124-
# VER PERSONAGEM
125-
# =====================================================
126-
def ver_personagem(self):
127-
if not self.personagem_obj:
128-
print("Nenhum personagem criado ainda.")
129-
return
130-
131-
p = self.personagem_obj
132-
print("\n=== Personagem Atual ===")
133-
print(f"Nome: {p.nome}")
134-
print(f"Vida: {p.vida}")
135-
print(f"Ataque: {p.ataque}")
136-
print(f"Defesa: {p.defesa}")
137-
if hasattr(p, "mana"):
138-
print(f"Mana: {p.mana}")
139-
140-
# =====================================================
141-
# CHECAR INVENTÁRIO
142-
# =====================================================
143-
def checar_inventario(self):
144-
if not self.personagem_obj:
145-
print("Nenhum personagem criado.")
146-
return
147-
148-
inventario = self.personagem_obj.inventario
149-
150-
print("\n=== Inventário ===")
151-
if not inventario:
152-
print("(vazio)")
153-
else:
154-
for i, item in enumerate(inventario, 1):
155-
print(f"{i}. {item}")
156-
157-
158-
# =====================================================
159-
# USAR ITEM
160-
# =====================================================
161-
def usar_item_personagem(self):
162-
if not self.personagem_obj:
163-
print("Nenhum personagem criado.")
164-
return
165-
166-
nome_item = input("Digite o nome do item a ser usado: ").strip()
167-
resultado = self.personagem_obj.usar_item(nome_item)
168-
print(resultado)
169-
170-
# =====================================================
171-
# ========== MENU PRINCIPAL ===========================
172-
# =====================================================
173-
174-
def menu_principal(self) -> None:
175-
"""
176-
Loop principal de execução do jogo.
177-
178-
Exibe o menu principal e redireciona o fluxo para os submenus:
179-
criação de personagem, missões, salvar/carregar e saída.
180-
181-
Este método bloqueia a execução até que o usuário escolha sair.
182-
"""
183-
while True:
184-
print("\n=== MENU PRINCIPAL ===")
185-
print("[1] Criar novo personagem")
186-
print("[2] Ver informações do personagem")
187-
print("[3] Missão")
188-
print("[4] Salvar Jogo (simulado)")
189-
print("[5] Carregar Jogo (simulado)")
190-
print("[0] Sair")
191-
192-
opcao = input("> ").strip()
193-
194-
if opcao == "1":
195-
self.criar_personagem()
196-
elif opcao == "2":
197-
self.ver_personagem()
198-
elif opcao == "3":
199-
self.menu_missao()
200-
elif opcao == "4":
201-
self.menu_salvar()
202-
elif opcao == "5":
203-
self.menu_carregar()
204-
elif opcao == "0":
205-
print("Saindo do jogo...")
206-
break
207-
else:
208-
print("Opção inválida. Tente novamente.")
42+
try:
43+
controle_personagem.criar_personagem(self)
44+
except Exception as e:
45+
print(f"[ERRO] criar_personagem: {e}")
20946

21047
def ver_personagem(self) -> None:
21148
try:

0 commit comments

Comments
 (0)