Esse código é a base de um livro jogo. As interações básicas já foram implementadas e o que está faltando é definir a história.
Cada equipe (de até três pessoas) irá fazer o fork desse projeto e irá extender o projeto com o objetivo em criar o seu próprio livro jogo.
Requisitos:
- Sistema de Combate
- Interface com o usuário
- Leitura de arquivos para a criação da história
- Sistema de Personagem Elaborado
- Itens
- Atributos
- Vários tipos de Monstros
Na classe Event, é importante notar o método applyHistory (o qual é abstrato e deve ser implementado em toda classe que herdar de Evento) realiza a aplicação da descrição do evento para o personagem. Notem, o Evento em si é uma classe abstrata, o que possibilita a criação de diferentes tipos de eventos.
Um exemplo pode ser visto no trecho de código abaixo:
public void applyHistory(Character character) {
}
A classe Choice, a qual também é abstrata, define as opções que o player irá realizar a cada evento. Duas classes pré defininas que herdam de Choice são BattleChoice e BlankChoice. A primeira lida com as escolhas de batalha e deve ser implementada de forma a refletir como as iterações com os inimigos devem acontecer. Já a segunda, é um padrão para execução de escolhas, as quais devem ser implementadas e definidas durante o desenvolvimento do trabalho.
public void executeChoice(Character character) {
}
A classe Book faz o controle do fluxo da história, onde os eventos são tratados e tem sua interação com o personagem.
A classe Engine, controla a interação com o usuário e passa as entradas do mesmo para o livro. Quando o personagem avança nos eventos e faz uma escolha diversas coisas podem acontecer: uma batalha, tomar dano, ganhar um item e assim por diante.
Ja existe um personagem (Player) e um inimigo (Enemy), nos quais vocês podem implementar as lógicas relativas às interações do jogo e, além disso, criar suas próprias variações: novos inimigos, novos seres e personagens.
Vocês podem criar novos itens, instâncias, eventos e qualquer interação que acharem relevantes ao jogo.
Event eventoFinal = new BlankEvent("Você morreu porque o Duarte" +
"não mandou ir para a trilha.", new ArrayList<Choice>());
Collection escolhasIniciais = new ArrayList<Choice>();
Choice escolhaFinalTrilha = new BlankChoice("Segue a trilha", eventoFinal);
Choice escolhaFinalFloresta = new BlankChoice("Fica na floresta", eventoFinal);
escolhasIniciais.add(escolhaFinalTrilha);
escolhasIniciais.add(escolhaFinalFloresta);
Event eventoInitial = new BlankEvent("Você está em uma floresta. " +
"O Sensei Duarte falou para você ficar na floresta treinando "
, escolhasIniciais);
Book livro = new Book("A história da Rural", eventoInitial, new Player(10, 10));