-
Notifications
You must be signed in to change notification settings - Fork 0
/
card.h
63 lines (47 loc) · 1.26 KB
/
card.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#ifndef CARD_H
#define CARD_H
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include "point.h"
#define CARD_WIDTH 15
#define CARD_HEIGHT 9
enum Status {
NO_STATUS,
BURNED,
FROZEN,
POISONED
};
enum Element {
NO_ELEMENT,
FIRE,
ICE,
POISON,
};
enum Render_Mode {
TEXT_MODE,
COLOR_MODE
};
typedef struct _card {
int power;
bool arrows[5];
enum Element element;
enum Status status;
} Card;
// Retorna uma nova carta com dados aleatórios
Card card_new_random(void);
// Retorna uma carta padrão. (SEM STATUS, SEM ELEMENTO, SEM SETAS e PODER 0)
Card card_new_default(void);
// Faz a fusão entre as cartas copiando a carta antiga para a nova e somando os poderes
Card card_fusion(const Card m_next_card, const Card m_old_card);
// Retorna o elemento formatado para imprimir na carta
char* card_get_element(const size_t m_element);
// Retorna o status formatado para imprimir na carta
char* card_get_status(const size_t m_status);
// Retorna uma cor de acordo com o elemento passado
char* card_get_color_element(const size_t m_element);
// Retorna uma cor de acordo com o status passado
char* card_get_color_status(const size_t m_status);
// Imprime dados da carta
void card_log(const Card m_card);
#endif // CARD_H