-
Notifications
You must be signed in to change notification settings - Fork 0
/
tile.cpp
84 lines (68 loc) · 1.89 KB
/
tile.cpp
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//
// Created by ajeszny on 29.03.24.
//
#include "tile.h"
Tile::Tile(const char* path, hood_card_descr::hood_type t, hood_card_descr::hood_color h) {
_tpath = path;
_owner = nullptr;
_hood = Hood(h, t);
_c = nullptr;
_unitclock = 0;
taken = false;
hero = 1 * (t == hood_card_descr::ACE||t == hood_card_descr::TWO|| t >= hood_card_descr::TEN);
maxunitcap = (11 - (int)t)* (t != hood_card_descr::ACE&&t != hood_card_descr::TWO&& t < hood_card_descr::TEN) +//Regular units
hero;//Heroes
}
const char *Tile::get_path() {
return _tpath.c_str();
}
void Tile::set_type(hood_card_descr::hood_type tp) {
_hood.set_type(tp);
}
const char *Tile::get_hood() {
return _hood.get_path();
}
tile_saveable Tile::get_tile_info() {
return _hood.get_tile_info();
}
void Tile::increment() {
if (_hood.get_tile_info().type == hood_card_descr::KING) {
_hood.set_type(hood_card_descr::NONE);
return;
}
_hood.set_type((hood_card_descr::hood_type)(_hood.get_tile_info().type + 1));
}
void Tile::realign(hood_card_descr::hood_color n) {
_hood.set_color(n);
}
const char *Tile::get_owner() {
return _hood.get_owner();
}
void Tile::setchar(Character *c) {
_c = c;
}
Character *Tile::getchar() {
return _c;
}
///Keeps _unitclock on the same level when maxed out
void Tile::update() {
if (_unitclock != maxunitcap) {
_unitclock++;
}
}
bool Tile::take_hero() {
if (_unitclock == maxunitcap&&hero) {
if (_hood.get_tile_info().type == hood_card_descr::ACE||_hood.get_tile_info().type == hood_card_descr::TWO|| _hood.get_tile_info().type >= hood_card_descr::TEN) {
if (taken) {
return false;
}
taken = true;
}
_unitclock = 0;
return true;
}
return false;
}
hood_card_descr::hood_color Tile::get_alignment() {
return _hood.get_color();
}