Skip to content

sergiojunior13/tp-pds1

Repository files navigation

Trabalho Prático da disciplina PDS I (Programação e Desenvolvimento de Software 1)

Screenshot/GIF do jogo

Esse TP é inspirado no jogo Slay the Spire. Foi feito em C, utilizando principalmente a bibioteca Allegro, responsável por criar a janela, lidar com o input do teclado, etc.

Instalação

Esse jogo foi testado e feito primariamente em Linux. Não é garantida uma boa execução em outros sistemas operacionais.

Baixe o jogo pré-compilado da Release mais recente no GitHub, de acordo com seu sistema operacional: https://github.com/sergiojunior13/tp-pds1/releases/tag/v1.0.0

Caso deseje você mesmo compilar o projeto, siga os passos abaixo:

Instalação (Linux)

Baixe o repositório rodando o comando abaixo:

git clone https://github.com/sergiojunior13/tp-pds1.git
cd tp-pds1

Agora, é necessário instalar as bibliotecas do Allegro.

1. Distribuições baseadas no Debian (Debian, Mint, Ubuntu)

Rode os seguintes comandos:

sudo apt update
sudo apt install -y liballegro5-dev liballegro-image5-dev liballegro-ttf5-dev

2. Outras distribuições

Acesse a Wiki do Allegro e siga as instruções para seu SO: https://github.com/liballeg/allegro_wiki/wiki/Quickstart#installation


Agora, é preciso compilar o projeto. Para isto, certifique-se que possui o gcc instalado com o comando: gcc --version.

Para compilar, rode este comando (se possuir o make):

make build

Se não, rode este:

gcc main.c utils.c renderer.c entities/player/player.c \
    entities/enemy/enemy.c entities/card/card.c core/core.c \
    images/load-images.c images/animation.c -o build.out -I. -lm \
    $(pkg-config --cflags --libs allegro-5 allegro_main-5 allegro_font-5 allegro_image-5 allegro_primitives-5 allegro_ttf-5)

Finalmente, para executar o jogo, rode:

./build.out

Como jogar

Este jogo se dá por turnos, alternados entre o jogador e os inimigos. Quando é o turno do jogador, ele deve selecionar e jogar cartas, que podem dar danos no inimigo, dar escudo ao jogador, ou fornecer algum efeito especial.

É possível jogar cartas enquanto a energia do jogador possibilitar.

A energia do jogador é iniciada com 3 ao início de cada turno do jogador.

Cada carta gasta uma certa quantidade de energia, e para jogá-la, é necessário possuir energia suficiente.

Se o jogador/inimigo possuir pontos de escudo, ao sofrer um ataque, o dano é impedido pelo escudo. Porém, se a quantidade de dano for maior que a de escudo, o dano restante ainda será aplicado à criatura.

Para usar as cartas de ataque, é necessário primeiro selecionar a carta, e depois selecionar o inimigo que se deseja atacar.

As cartas especiais, ao serem jogadas, além do efeito descrito na carta, fazem com que toda a mão do jogador seja descartada e depois é gerada uma outra mão instantaneamente. Além disso, essas cartas não necessitam de energia para serem jogadas.

Durante todo o jogo, o jogador usa um deck de 20 cartas. Em cada turno do jogador, são selecionadas 5 cartas do deck para a mão do jogador. Ao usar uma carta, ela vai para a pilha de descarte, e ao final do turno, as cartas não usadas também vão para lá. Quando não houver cartas suficientes no deck, as cartas da pilha de descarte formam um novo deck de cartas.

Os pontos de escudo tanto do inimigo quanto do jogador são zerados a cada turno.

O jogo possui 11 fases. Ao derrotar todos os inimigos de uma fase, o jogador passa para a próxima fase.

Em cada fase, exceto a última, há uma chance de ser gerado até 1 inimigo forte, que possui mais vida, ataque e defesa. Este inimigo possui uma cor mais avermelhada.

Na última fase, a 11ª, é gerado o Boss do jogo. Ele possui 150 pontos de vida, e ataques e defesas mais fortes que os demais inimigos. Ao derrotá-lo, o jogador vence o jogo, e o jogo termina.

Controles

Este TP é controlado somente do teclado. Veja o que cada tecla faz abaixo:

  • Q: Encerra o programa;
  • <- (Left Arrow): Foca no inimigo/carta à esquerda;
  • -> (Right Arrow): Foca no inimigo/carta à direita;
  • Enter: Usa/seleciona a carta/inimigo;
  • Esc: Encerra o turno do jogador e passa para o turno para inimigo.

Cheats (Debug)

  • Space: Zera a vida dos inimigos;
  • X: Reduz a vida do jogador a 1.

About

Trabalho prático da disciplina Programação e Desenvolvimento de Software I de um jogo inspirado em Splay the Spire.

Resources

Stars

Watchers

Forks

Contributors