Pular para conteúdo

Apresentação 3

Descrição Geral

Esta terceira entrega consolida o desenvolvimento do nosso RPG inspirado em Senhor dos Anéis, integrando banco de dados relacional, lógica de jogo em Python e recursos avançados como triggers, procedures e sistema de quests. O projeto evoluiu desde a modelagem conceitual até a implementação de funcionalidades completas e automatizadas.


Contexto das Entregas Anteriores

  • Entrega 1: Modelagem do DER, MER, MR e Dicionário de Dados, definindo as entidades principais (jogadores, personagens, cenários, itens, NPCs, criaturas).
  • Entrega 2: Implementação da estrutura do banco (DDL), povoamento inicial (DML), consultas essenciais (DQL) e suporte a funcionalidades como combate, inventário, NPCs e navegação.

Funcionalidades Implementadas

  • Criação de personagens com classes distintas (Guerreiro, Mago, Arqueiro, Sacerdote)
  • Exploração de cenários e navegação entre ambientes
  • Sistema de inventário e gerenciamento de itens
  • Interação com NPCs (comerciantes, guias, quest givers)
  • Sistema de batalhas contra criaturas
  • Sistema de quests (missões principais, secundárias e épicas)
  • Salvamento automático do progresso do jogador

Recursos Avançados: Triggers e Procedures

Triggers

  1. Validação de Peso do Inventário (trg_check_inventory_weight)
  2. Garante que o peso total dos itens não ultrapasse a capacidade máxima do inventário.
  3. Concessão de XP ao Jogador Após Vitória (trg_grant_xp_on_victory)
  4. Ao vencer uma batalha, o jogador recebe XP automaticamente e pode subir de nível.
  5. Log de Alterações de Nível (trg_log_personagem_level_up)
  6. Registra toda alteração de nível dos personagens para auditoria.
  7. Início Automático de Quests (trg_auto_iniciar_quests)
  8. Quando o jogador sobe de nível, quests principais disponíveis são automaticamente iniciadas.
  9. Log de Movimentação do Jogador (trg_log_movimento)
  10. Registra cada vez que o jogador muda de cenário.

Procedures

  1. Batalha Completa (sp_executar_batalha)
  2. Executa toda a lógica de uma batalha entre jogador e criatura, registrando resultados e disparando triggers de XP.
  3. Transferência de Item (sp_transferir_item)
  4. Gerencia a transferência de itens entre personagens, validando posse e capacidade do inventário.
  5. Completar Quest (sp_completar_quest)
  6. Marca uma quest como concluída, concede recompensas e atualiza o progresso do jogador.
  7. Atualizar Progresso de Quest (sp_atualizar_progresso_quest)
  8. Atualiza o progresso de uma quest e chama a procedure de conclusão se necessário.

Passo a Passo para Rodar o Jogo

Pré-requisitos

  • Python 3.8 ou superior
  • PostgreSQL 12 ou superior
  • Dependências Python (instaladas via requirements.txt)

1. Clonar o repositório

git clone https://github.com/sbd1/2025.1-senhor_dos_aneis.git
cd 2025.1-senhor_dos_aneis

2. Instalar as dependências

pip install -r requirements.txt

3. Configurar o Banco de Dados

  • Crie um banco chamado senhor_dos_aneis no PostgreSQL.
  • Execute os scripts na seguinte ordem:
  • game/DDL.sql (criação das tabelas)
  • game/dml.sql (dados iniciais)
  • game/trigger_sp.sql (triggers e procedures)
  • game/quests.sql (sistema de quests)
  • Outros scripts opcionais: game/views.sql, game/adicionar_npcs_cenarios.sql, game/popular_cenarios.sql, game/teste_trigger.sql

No terminal do PostgreSQL (psql):

\c senhor_dos_aneis
\i caminho/para/game/DDL.sql
\i caminho/para/game/dml.sql
\i caminho/para/game/trigger_sp.sql
\i caminho/para/game/quests.sql

4. Configurar as credenciais do banco

No arquivo do jogo (ex: jogo.py), ajuste as credenciais de acesso ao banco conforme seu ambiente:

self.connection = psycopg2.connect(
    host="localhost",
    database="senhor_dos_aneis",
    user="SEU_USUARIO",
    password="SUA_SENHA",
    port="5432"
)

5. Executar o Jogo

No Linux

python3 game/jogo.py

No Windows

python game\jogo.py


Apresentação em Vídeo

A apresentação da segunda etapa pode ser acessada no link abaixo:

🔗 Assista ao vídeo

Entrega 2: Modelagem


Tabela de Versionamento

Versão Data Descrição Autor(es) Revisor(es)
1.0 07/07/2025 Inserção do vídeo Felipe das Neves Todos os Integrantes

"Mesmo a menor das pessoas pode mudar o curso do futuro." – Galadriel