- Java 94.5%
- Python 5.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| ferramentas | ||
| javadungeon-core | ||
| javadungeon-gui | ||
| javadungeon-terminal | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| javadungeon_logo.png | ||
| LICENSE | ||
| pom.xml | ||
| README.md | ||
Java Dungeon
Um RPG de terminal feito em Java, inspirado nas regras do D&D 5e. Crie seu herói, entre no Coliseu, enfrente monstros cada vez mais perigosos, gaste o ouro na loja do Artkk e torça para a Tiamat não aparecer.
O repositório tem três módulos: o core, com as regras do jogo independentes de interface, a interface de terminal e a interface gráfica em JavaFX.
Funcionalidades
- Criação de personagem com 3 raças (Humano, Elfo, Anão) e 3 classes (Guerreiro, Mago, Ladino), perícias, proficiências, idiomas e atributos por arranjo padrão, compra de pontos ou rolagem 4d6.
- Progressão do nível 1 ao 20 com tabela de XP, aumento de atributos, especializações e habilidades de classe por nível.
- Combate em turnos com iniciativa, ação e ação bônus, críticos, vantagem e desvantagem, salvaguardas, Ataque Extra, Surto de Ação, Ataque Furtivo e muito mais.
- Grimório do mago com 30 magias, do truque ao 9º círculo, espaços de magia e magias que ficam mais fortes em círculos maiores.
- Modo Coliseu com 21 monstros, do Rato Gigante ao Gladiador, sorteio de acordo com o nível do personagem, recompensas em XP e ouro e uma chance secreta de 0,0000000001% de enfrentar a Tiamat.
- Loja do Artkk, um anão de pele azul que vende poções, armas e armaduras, encanta equipamentos até +3, compra seus itens e aluga o quarto dos fundos para descansar.
- 3 saves independentes, um por personagem.
Requisitos
- Java 17 ou superior
- Maven 3.9 ou superior, só para compilar
Como jogar
O jeito mais fácil é baixar os jars na página de Releases do repositório e rodar com Java 17 ou superior:
java -jar javadungeon-gui-1.1.1-beta.jar
java -jar javadungeon-terminal-1.1.1-beta.jar
O jar da interface gráfica já traz o JavaFX e funciona no Windows, no Linux e no Mac.
Para compilar a partir do código:
mvn clean package
java -jar javadungeon-gui/target/javadungeon-gui-1.1.1-beta.jar
java -jar javadungeon-terminal/target/javadungeon-terminal-1.1.1-beta.jar
Os saves ficam na pasta saves/, dentro da pasta de onde o jogo foi executado. As duas interfaces usam os mesmos saves.
Usando o core em outro projeto
As regras não dependem do terminal, então dá para construir outra interface (Swing, JavaFX, web...) em cima delas. O pacote é publicado no registro Maven do Cosmos:
<repositories>
<repository>
<id>cosmos</id>
<url>https://cosmos.simioni.dev.br/api/packages/caio/maven</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>dev.abyssdev</groupId>
<artifactId>javadungeon-core</artifactId>
<version>1.1.1-beta</version>
</dependency>
</dependencies>
Exemplo de uma luta conduzida por outra interface:
Combate combate = new Combate(personagem, monstro, new Dado());
mostraEventos(combate.inicia());
while (!combate.isEncerrado()) {
AcaoCombate.Tipo escolha = perguntaAoJogador(combate.getAcoesDisponiveis());
mostraEventos(combate.executa(AcaoCombate.de(escolha)));
}
new Coliseu(new Dado()).aplicaResultado(personagem, monstro, combate.getResultado());
Estrutura do projeto
javadungeon/
├── pom.xml POM pai: versões e configurações comuns
├── javadungeon-core Regras, publicado no registro Maven
│ └── models, combate, loja, save, utils (Dado, Sanitizacao), Config
├── javadungeon-terminal Interface de terminal, gera o jar executável
│ └── telas, Terminal, Jogo, Main e as artes ASCII
└── javadungeon-gui Interface gráfica em JavaFX
└── gui e as pastas resources/gui/imagens e resources/gui/fontes
O core não conhece nenhuma interface. O terminal e a interface gráfica dependem dele.
Testes
mvn test
Os testes usam um dado "viciado" (DadoFixo) para que as lutas tenham resultados previsíveis.
Próximos passos
- Imagens para os monstros que ainda mostram o "not found" e retratos das classes na criação de personagem.
- Ficha completa do personagem e troca de equipamento na interface gráfica.
Licença
O código está sob a licença MIT.
Créditos
Este trabalho inclui material do System Reference Document 5.1 ("SRD 5.1") da Wizards of the Coast LLC, disponível em https://dnd.wizards.com/resources/systems-reference-document. O SRD 5.1 é licenciado sob a Creative Commons Attribution 4.0 International License, disponível em https://creativecommons.org/licenses/by/4.0/legalcode.
As estatísticas da Tiamat são uma adaptação própria e não fazem parte do SRD.
Feito por AbyssDev