Project-based on an RPG universe. Its primary purpose is to solidify the OOP
and SOLID
concepts. In the universe of this project, almost all beings that roam these lands belong to a defined race.
The various races (src/Races) define the characteristics of the characters within the game since its creation, such as their life points and dexterity. However, there are feral beings called monsters that don't have a specific race but can fight (src/Monster.ts & src/Dragon.ts).
Some beings also have energy. When training the use of energy, they start to have an archetype (src/Archetypes). In general, archetypes define a character's vocation, skills, and worldview: how they face situations, explore dungeons, or face monsters. As examples of present archetypes, we can mention warrior, mage, and necromancer.
Most beings are considered fighters (src/Fighter). On many occasions, fights can happen between different beings like characters and monsters (src/Battle).
In this project, I was able to:
- Implement in TypeScript: Classes, Instances, Attributes, and methods;
- Use inheritance to derive from other classes;
- Use composition to share code between different classes;
- Define abstract classes;
- Override methods;
- Apply solid principles.
TypeScript | Node.JS | Docker |
---|---|---|
- Clone the repository and enter it
git clone [email protected]:ImVictorM/POO-Dungeons-and-Dragons.git && cd POO-Dungeons-and-Dragons
You must have docker and docker-compose installed
- Get the containers running
docker-compose up -d
- Enter the node container
docker exec -it trybers_and_dragons bash
- Install the dependencies
npm install