Um RPG no terminal, no qual você será um herói em uma terra de fantasia cheia de aventuras e mistérios. Como personagem, você poderá viajar para diversas regioes do barão Odlareg e batalhar com um número grande de criaturas e inimigos que buscam destruir a paz do mundo.
Seu herói terá um acervo de habilidades e leveis e o desempenho dele em batalha dependerá de seus atributos.
Na janela principal do sistema o usuário poderá escolher entre opções como, por exemplo:
- Procurar batalha:
- irá encontrar um monstro que ao ser derrotado, dará XP e itens que poderão ser usados pelo usuário.
- Viajar para outra região:
- Muda os monstros os quais o herói poderá enfrentar, aumentando/diminuindo a dificuldade e as recompensas de acordo.
- Treinar
- Um treinamento onde o herói poderá ficar mais forte sem correr riscos.
- Lojinha
- Uma lista de opções na qual o herói pode comprar itens em geral.
Cada uma dessas janelas terá novas opções para o usuário interagir:
-
Procurar batalha:
- Usar Habilidade;
- Lista de habilidades;
- Usar poção;
- Fugir.
-
Viajar para outra região:
- Lista de regiões para onde ele pode viajar, com restrição de level.
- Existe um total de 5 regiões.
-
Inimigos
- Existe um total de 5 inimigos por região.
-
Pocoes
- Existem 4 poções
- recupera pouca vida;
- recupera média vida;
- recupera muita vida;
- aumenta força durante a batalha.
- Existem 4 poções
- Salvar o estado do jogo, para o usuário poder continuar seu progresso;
- Novos itens como armaduras ou armas;
- Novas classes de herói com habilidades diferentes;
- Um modo história.
Classe principal do sistema, ela que coordena todas as interações entre o jogador e relações entre os objetos do jogo, possui características de estado que servem para organizar o fluxo do jogo (menus e ações do usuário) e como isso afeta o restante das classes. Essa classe possui os seguintes atributos:
- hero - Guarda o objeto que corresponde ao herói da aventura;
- regions - Lista com todas as regiões que podem ser visitadas;
- currentRegion - Região onde o usuário está em dado momento;
- state - Informa em qual modo o usuario está (batalha/ataque/shop/atributos).
Ela lidará com a inicialização dos atributos e a interface do usuário. Ela se comporta como comunicadora entre os objetos e os relaciona. Ao iniciar o jogo o usuário terá as seguintes opções.
- Começar;
- Como Jogar?;
- Sobre; Cada um desses menus levará o usuário a um lugar diferente dentro da aplicação.
Ao começar o jogo é requerido escrever o nome, uma breve descrição e os atributos iniciais do seu herói. Depois dessa "configuração inicial" o usuário terá acesso a uma árvore de menus que é o modo no qual interage-se com o sistema Entre as opções que poderão ser escolhidas é possivel encontrar:
- Mapa: Menu que permite que o herói viaje pelo reino, trocando de regiões;
- Procurar batalha: Menu que permite que o herói enfrente seus inimigos. Ao escolher essa opção, um inimigo irá aparecer e o modo batalha será iniciado. Nesse modo batalha existem mais menus que orientam as ações do usuário (atacar, usar item, tentar fugir);
- Ir ao Shopping: Permite que o usuário visualize, interaja e compre items usando seus recursos.
Depois de passar por todas as regiões disponíveis e sobreviver a incontáveis batalhas, o jogador poderá enfrentar o Boss final. Caso seja vitorioso, o jogo irá ser completado e o reino viverá em paz.
Caso o resultado da batalha seja negativo, isso é, o herói for derrotado ele morrerá e todo o progresso será reiniciado.
O inimigo que será enfrentado depende da região em que o herói se encontra e em variáveis aleatórias que podem resultar em inimigos mais fortes ou mais fracos, variando de acordo com a sorte. Em cada região, um determinado número fixo de inimigos precisam ser derrotados antes que o o jogador possa enfrentar o "chefe" dessa região, e o "chefe" final só poderá ser enfrentado caso a vitória seja obtida no confronto com o chefe de todas as regiões.
Existem itens que possuem efeitos temporários (que duram apenas durante uma batalha) e itens que possuem efeitos permanentes enquanto sendo usados.
####### Potions São itens cujo efeito duram apenas uma batalha, podem influenciar nos atributos do herói, como força ou pontos de vida.
####### Weapons São itens que podem ser equipados, isso é, influenciam os cálculos de batalha enquanto estão sendo utilizados.
Exibe informações que podem ajudar o usuário a utilizar a aplicação, uma área de perguntas e respostas em respeito a usabilidade.
Mostra a motivação por trás do desenvolvimento (aprender e aplicar conceitos de programação orientadada a objetos), e também informações adicionais sobre a equipe que desenvolveu o jogo.
Inimigos que nosso heroi irá enfrentar em sua jornada, cada inimigo possui as seguintes caracteristicas:
- loot - itens que o heroi obterá ao derrotar o inimigo.
Classe mais genérica que indica qualquer personagem, do jogo, seja Herói ou inimigo. Possui os atributos mais gerais, são eles:
- name - string com o nome do personagem;
- description - string com uma descrição da história do personagem e algum detalhe relevante;
- attributes - lista com os atributos do personagem, que indicarão o desempenho e as características do personagem em batalha;
- skills - lista com as habilidades do personagem, indicarão os tipos de ataques dos personagens em batalha;
- experience - indica a experiência do personagem, ou seja, a quantidade de pontos adquiridos pelo personagem. Tal pontuação é usada para obter o level dos personagens.
Possui as ações que o personagem realiza, como atacar por exemplo:
- attack - Com base nos seus atributos e itens ele calcula uma quantidade chamada "damage" que é enviada para o adversário, esse pontos podem possivelmente diminuir os pontos de vida do adversário;
- defend - Recebe uma quantidade pontos de "damage" e com base nos seus atributos calcula o quanto de vida a Persona irá perder ao receber aquele ataque;
- getters e setters para os atributos.
Será o personagem do(s) jogador(es) no RPG, todo heroi também é uma pessoa, por isso existe uma relação de herança com a classe persona com os seguintes atributos específicos:
- items - Lista com os itens que o herói possui;
- level - inteiro que armazena o nível do personagem;
- money - inteiro que armazena a quantidade de dinheiro do personagem.
- useItem - Usa um item que está contido em sua lista de itens;
- getters e setters para os atributos.
Classe que contém o os atributos de personagem, tais atributos alteram o desempenho de personagem durante a batalha e também alguns pontos do gameplay. Até agora os atributos definidos são:
- Strenght - Força do personagem, atributo usado em batalhas para definir o dano inflingido pelo personagem em ataque especificos (que serão definidos);
- Health - Vida do personagem, indica o quanto de dano o personagem pode receber.
- Carisma - Carisma do Personagem, indica a habilidade de persuasão em dialogos além de aumentar as chances de fuga em batalha.
- Luck - Sorte, basicamente indica a chance de loot de alguns itens após a morte de inimigos.
- getDamage - com base nos atributos calcula quantidade de 'dano' que vai ser causado;
- getDefense - com base nos atributos calcula quantidade de 'defesa' (quantidade de dano que vai ser suportada);
- getters e setters.
Indica as habilidades especiais do personagem, tais habilidades são usadas para inflingir dano durante as batalhas. Possui os seguintes atributos:
- effect - String que indica o efeito da habilidade em batalha;
- name - String com o nome da habilidade em batalha;
- description - String com uma descrição user-friendly para o jogador;
- basicDamage - inteiro que será usado como parâmetro para o cálculo do dano da habilidade.
- use - Usa uma habilidade, que dependendo da habilidade pode causar dano ou afetar outros atributos;
- getters e setters.
Representa a região em que o herói se encontra, cada região possui inimigos diferentes e afeta o jogo de maneira diferente.
- name - String com o nome da região em que o usario se encontra;
- description - String com a descricão da região;
- minLevel - Level mínimo que o herói deve possuir antes de entrar nessa região;
- enemies - Lista de inimigos que podem ser encontrados nessa região.
- getEnemy - retorna um inimigo que o herói irá enfrentar.
- getters e setters.