Este projeto é uma implementação de um sistema de jogos de interpretação de papéis (RPG) chamado Trybers and Dragons (T&D). Aqui, aplicamos os princípios da arquitetura SOLID e os princípios de Programação Orientada a Objetos (POO) em uma estrutura de jogo.
No universo de Trybers and Dragons, os personagens pertencem a diferentes raças e possuem arquétipos que definem suas habilidades e visão de mundo. Este projeto se concentra em criar as classes e interfaces necessárias para representar esses elementos fundamentais do jogo.
- Raça (Race): Classe abstrata que define as características básicas de uma raça, como nome e destreza.
- Arquétipo (Archetype): Classe abstrata que representa os talentos especiais de um personagem, como nome, ataque especial e custo energético.
- Personagem (Character): Classe que combina uma raça e um arquétipo para criar um personagem único, com atributos como pontos de vida, força e energia.
- Energia (Energy): Interface que define o tipo e a quantidade de energia de um ser, podendo ser mana ou stamina.
- Lutador (Fighter): Interface que define os atributos e métodos de um ser capaz de lutar, como pontos de vida, força e ataques.
- Lutador Simples (SimpleFighter): Interface que define os atributos e métodos básicos de um ser capaz de lutar, adequado para personagens menos complexos.
- Monstro (Monster): Classe que representa uma criatura bestial que ataca outros seres, implementando a interface SimpleFighter.
- Batalha (Battle): Classe abstrata que representa uma batalha genérica, com métodos para iniciar e resolver uma luta.
- PVP (Player versus Player): Classe que herda de Battle e representa uma batalha entre personagens, onde dois jogadores se enfrentam diretamente.
- PVE (Player versus Environment): Classe que herda de Battle e representa uma batalha entre um personagem e um ou mais monstros.
Para utilizar este projeto, siga as instruções de instalação e execução abaixo:
- Clone o repositório do projeto.
- Instale as dependências necessárias utilizando o comando
npm install
. - Execute o projeto utilizando o comando
npm start
. - Siga as instruções específicas para cada funcionalidade ou classe implementada.
Este projeto foi desenvolvido como parte do curso de Desenvolvimento de Software da Trybe.