# RedCore

Gabriel Capella, 8962078 

João Herique Luciano, 8535957

EP2 MAC0463


O jogo desenvolvido nesse projeto foi um estilo brick-break onde o objetivo é
avançar de fases atingindo o núcleo vermelho dentro das camadas de blocos.
Os blocos em questão podem ser destrúidos ao serem atingidos pela(s) bola(s)
em jogo.

Satisfazendo alguns requisitos do trabalho, foram implementadas as seguin-
tes funcionalidades:
- Power ups-downs: aumento/diminuição da pá; bolas múltiplas (até 3);
salvar o nível do jogo; super-bola, capaz de destruir
qualquer tipo de bloco.
- Fases aleatórias: as fases são geradas aleatoriamente, no sentido de
variação do tamanho, cor e velocidade de rotação dos blocos.
- Blocos móveis: os blocos se movem ao redor do núcleo.
- Mais de um tipo de bloco: existem dois tipos de blocos (normais e 
indestrutiveis).

Alguns detalhes que devem ser mencionados sobre a implementação:

- Os power ups colidem com a bola, podendo ser jogados para fora do mapa
  (isso foi proposital para aumentar a dificuldade)
- O nível salvo pelo jogo reduz em 1 para cada 12 horas sem jogar
  (queremos que o jogador jogue sempre que possível)
- O jogo não tem pausa (propositalmente, também), pois o objetivo
  é conquistar o máximo de níveis possíveis numa jogatina

### Power-ups:
- Aumento/diminuição da pá (power-up azul): tem 50% de chance de aumentar
  ou de diminuir a pá (diminuir pela metade e aumentar para o dobro do tamanho).
  A pá volta ao seu tamanho normal depois de um tempo.
- Bolas múltiplas (power-up rosa): aumenta o número de bolas no jogo para 3.
- Salvamento do nível (power-up verde): salva o nível atual do jogo
- Super-bola (power-up): a bola pode destruir tanto os blocos normais
  quanto o bloco indestrutível. Ela volta ao normal depois de destruir
  um bloco indestrutível.

### Desenvolvimento
Para o desenvolvimento do jogo, foi utilizada o framework cocos2d-x,
em C++, e o DoxyDoc (para Sublime Text) para a documentação do código.
O jogo foi desenvolvido para Android, e testado em um celular Motorola
G4 com Android 7.0. O cocos2d foi utilizado devido à sua simplicidade
de programação e entendimento da ferramenta.

### Fases Aleatórias
Para deixar o jogo mais legal criamos fases aletórias. São infinitas fases.

Comforme o nível são geradas são geradas fases na seguinte sequência: 1 fase
de uma camada, 2 de duas camada, 3 de 3 camadas, até 8 fases de 8. Quando a
oitava fase de 8 camadas é completa, o tamanho da camada é dividido por 1.5
e o ciclo se repete, mas agora com no máximo 12 camadas. 

Fases com o a mesma quantidade de camadas são destintas pois a probabilidade
de blocos indestrutíveis aumenta conforme o jogador chega mais perto da
última.

### Observações
NÃO RODA NO EMULADOR! Isso ocorre pelo fato da maioria do jogo ser feito em c++.


## Build .apk
Antes de montar o arquivo você deve configurar o arquivo `proj.android-studio/local.properties` (colocar o local da SDK).
Para montar o APK do jogo (irá fazer o dowload de aproximadamente 350mb):

```
./build
```

### Link para o repositório

https://git.capella.pro/capella/RedCore/