-
Notifications
You must be signed in to change notification settings - Fork 0
/
Asteroids.cpp
193 lines (173 loc) · 46 KB
/
Asteroids.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
#include "00Names.hpp"
namespace Asteroids {
#pragma region ART
const uint8_t PROGMEM tank[] = {
0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x1b, 0xe6, 0x1b, 0xe6, 0x1b, 0xe6, 0x1b, 0xe6, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x1b, 0xe6, 0x1b, 0xe6, 0x1b, 0xe6, 0x1b, 0xe6, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x09, 0xc3, 0x09, 0xc3, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0xf8, 0x1f, 0xf8, 0x1f, 0x1b, 0xc6, 0x1b, 0xc6, 0x09, 0xc3, 0x09, 0xc3, 0x1b, 0xc6, 0x1b, 0xc6, 0xf8, 0x1f, 0xf8, 0x1f, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0xf8, 0x1f, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x09, 0xc3, 0x09, 0xc3, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0xf8, 0x1f, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xe6, 0x1b, 0xe6, 0x09, 0xc3, 0x09, 0xc3, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x09, 0xc3, 0x09, 0xc3, 0x09, 0xc3, 0x09, 0xc3, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x09, 0xc3, 0x09, 0xc3, 0x09, 0xc3, 0x09, 0xc3, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x09, 0xc3, 0x09, 0xc3, 0x09, 0xc3, 0x09, 0xc3, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x09, 0xc3, 0x09, 0xc3, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0xf8, 0x1f, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0xf8, 0x1f, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0xf8, 0x1f, 0xf8, 0x1f, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0xf8, 0x1f, 0xf8, 0x1f, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x1b, 0xc6, 0x1b, 0xc6, 0x1b, 0xc6, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x25, 0x89, 0x25, 0x89, 0x25, 0x89
};
const uint8_t PROGMEM asteroid[] = {
0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0xf8, 0x1f, 0xf8, 0x1f, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0xf8, 0x1f, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0xf8, 0x1f, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0xf8, 0x1f, 0xf8, 0x1f, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x4a, 0x69, 0x4a, 0x69, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x4a, 0x69, 0x4a, 0x69, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f
};
const uint8_t PROGMEM boom[] = {
0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfb, 0x40, 0xfb, 0x40, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfb, 0x40, 0xf8, 0x00, 0xf8, 0x00, 0xfb, 0x40, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfb, 0x40, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xfb, 0x40, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xfb, 0x40, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xfb, 0x40, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfb, 0x40, 0xfb, 0x40, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfb, 0x40, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xfb, 0x40, 0xfb, 0x40, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfb, 0x40, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xfb, 0x40, 0xfb, 0x40, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfb, 0x40, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xfb, 0x40, 0xfb, 0x40, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfb, 0x40, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xfb, 0x40, 0xfd, 0x00, 0xfd, 0x00, 0xfd, 0x00, 0xf8, 0x1f, 0xfb, 0x40, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfb, 0x40, 0xfb, 0x40, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xfd, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f
};
const uint8_t PROGMEM base[] = {
0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0x15, 0xc0, 0x15, 0xc0, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x15, 0xc0, 0x15, 0xc0, 0x15, 0xc0, 0x83, 0xf0, 0x00, 0x00, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x15, 0xc0, 0x15, 0xc0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0xf8, 0x00, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x01, 0xbf, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x00, 0x00, 0x01, 0xbf, 0x83, 0xf0, 0x01, 0xbf, 0x01, 0xbf, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x00, 0x00, 0x01, 0xbf, 0x01, 0xbf, 0x01, 0xbf, 0x01, 0xbf, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x00, 0x00, 0x9d, 0x76, 0x9d, 0x76, 0x9d, 0x76, 0x9d, 0x76, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x9d, 0x76, 0x9d, 0x76, 0x9d, 0x76, 0x9d, 0x76, 0x00, 0x00, 0x6b, 0x4d, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x83, 0xf0, 0x6b, 0x4d, 0x6b, 0x4d, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f
};
const uint8_t PROGMEM baseDamage[] = {
0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x15, 0xc0, 0x15, 0xc0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x15, 0xc0, 0x15, 0xc0, 0x15, 0xc0, 0x83, 0xf0, 0x00, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x15, 0xc0, 0x15, 0xc0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0xf8, 0x00, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x01, 0xbf, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x83, 0xf0, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x01, 0xbf, 0x83, 0xf0, 0x01, 0xbf, 0x01, 0xbf, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x01, 0xbf, 0x01, 0xbf, 0x01, 0xbf, 0x01, 0xbf, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0x00, 0x00, 0x9d, 0x76, 0x9d, 0x76, 0x9d, 0x76, 0x9d, 0x76, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x9d, 0x76, 0x9d, 0x76, 0x9d, 0x76, 0x9d, 0x76, 0x00, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x83, 0xf0, 0x00, 0x00, 0xf8, 0x00, 0xa9, 0x86, 0xa9, 0x86, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f
};
const uint8_t PROGMEM inactivePortal[] = {
0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0xc6, 0x18, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0x7b, 0xef, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f
};
#pragma endregion ART
const int MAX_TANK_SPEED = 128, MIN_FIRE_INTERVAL = 70, MAX_ASTEROID_SPEED = 128, MIN_ASTEROID_INTERVAL = 100;
const float BOOM_TIME = 0.25f;
uint16_t spawnRate, asteroidSpeed, tankSpeed, fireRate, score, baseHealth;
float baseDamagedTimer;
Vector<vec2f> bullets, asteroids;
Vector<Pair<vec2i, float>> booms;
vec2f pos, basep;
enum class GameState {
ASTEROIDS,
BOSS_FIGHT,
WIN,
EXPLORE,
DEATH
} gameState;
void start();
bool allInPlace() {
return false;
}
void killAll() {
for (int j = 0; j < asteroids.size(); j++) booms.push_back(Pair<vec2i, float>(asteroids[j], BOOM_TIME));
asteroids.clear();
bullets.clear();
}
float gameOverTimer, winTimer;
void gameOver() {
gameOverTimer = 1.5f;
gameState = GameState::DEATH;
killAll();
}
void update() {
#pragma region Opponents
static uint32_t spawnTimer;
baseDamagedTimer = max(baseDamagedTimer - deltaTime, 0.f);
if (millis() - spawnTimer > spawnRate && (gameState == GameState::ASTEROIDS || gameState == GameState::BOSS_FIGHT)) {
if (score >= 100 && gameState == GameState::ASTEROIDS) {
killAll();
basep = vec2f(random(oled::width - 32), -32);
gameState = GameState::BOSS_FIGHT;
spawnRate = 300;
asteroidSpeed = 40;
} else {
asteroids.push_back(vec2f(random(oled::width - 16), -16));
spawnTimer = millis();
}
}
for (int i = 0; i < asteroids.size(); i++) {
asteroids[i].y += deltaTime * asteroidSpeed;
if (asteroids[i].y > oled::height) asteroids.erase(i--);
else {
if (pos + 16 > asteroids[i] && pos < asteroids[i] + 16) gameOver();
for (int j = 0; j < bullets.size(); j++) {
if (bullets[j] >= asteroids[i] && bullets[j] <= asteroids[i] + 16) {
score++;
if (gameState == GameState::ASTEROIDS) {
fireRate = max(fireRate - 100, MIN_FIRE_INTERVAL);
tankSpeed = min(tankSpeed + 15, MAX_TANK_SPEED);
asteroidSpeed = min(asteroidSpeed + 5, MAX_ASTEROID_SPEED);
spawnRate = max(spawnRate - 100, MIN_ASTEROID_INTERVAL);
}
booms.push_back(Pair<vec2i, float>(asteroids[i], BOOM_TIME));
asteroids.erase(i--);
bullets.erase(j);
break;
}
}
}
}
if (gameState == GameState::BOSS_FIGHT) {
static int velX = 20;
basep.x += velX * deltaTime;
if (basep.x < 0 || basep.x > oled::width - 32) velX *= -1, basep.x += velX * deltaTime * 2;
basep.y += deltaTime * 30;
if (basep.y > oled::height) basep.y = -32;
if (pos + 16 > basep && pos < basep + 32) gameOver();
} else if (gameState == GameState::EXPLORE && pos + 16 > basep && pos < basep + 32) {
// TODO!
}
#pragma endregion Opponents
#pragma region Player
static uint32_t bulletTimer;
static vec2f playerVelocity;
playerVelocity += ((vec2f)joy * deltaTime * tankSpeed - playerVelocity) * deltaTime * 10.f;
if (gameState == GameState::ASTEROIDS || gameState == GameState::BOSS_FIGHT || gameState == GameState::EXPLORE) pos.x = constrain(pos.x + playerVelocity.x, 0, oled::width - 16);
if (gameState == GameState::EXPLORE) pos.y = constrain(pos.y + playerVelocity.y * deltaTime, 0, oled::height - 16);
if (buttonX.bPressed) bulletTimer = millis() - fireRate - 1;
if (buttonX.bHeld && (gameState == GameState::ASTEROIDS || gameState == GameState::BOSS_FIGHT) && millis() - bulletTimer > fireRate) {
bullets.push_back(pos + vec2f(8, 0));
bulletTimer = millis();
}
if (buttonY.bReleased) game = gameSelect;
for (int i = 0; i < bullets.size(); i++) {
bullets[i].y -= deltaTime * 70;
if (bullets[i].y < 0) bullets.erase(i--);
else if (gameState == GameState::BOSS_FIGHT && bullets[i] >= basep && bullets[i] <= basep + 32) {
bullets.erase(i--);
if (allInPlace()) {
baseHealth--;
baseDamagedTimer = 0.1;
if (baseHealth <= 0) gameState = GameState::WIN, winTimer = 1.5f, killAll();
}
}
}
#pragma endregion Player
#pragma region GameOverAndWin
for (int i = 0; i < booms.size(); i++) {
booms[i].second -= deltaTime;
if (booms[i].second < 0) booms.erase(i--);
}
if (winTimer > 0) { // Win Animation
winTimer = max(winTimer - deltaTime, 0.f);
if (int((winTimer + deltaTime) * 16) != int(winTimer * 16)) {
booms.push_back(Pair<vec2i, float>(basep + vec2i(random(32), random(32)) - 8, BOOM_TIME));
}
if (winTimer <= 0) gameState = GameState::EXPLORE;
}
if (gameOverTimer > 0) { // Game Over Animation
gameOverTimer -= deltaTime;
if (int((gameOverTimer + deltaTime) * 16) != int(gameOverTimer * 16) && gameOverTimer > 0.5) {
booms.push_back(Pair<vec2i, float>(pos + vec2i(random(16), random(16)) - 8, BOOM_TIME));
}
if (gameOverTimer <= 0) return start();
}
#pragma endregion GameOverAndWin
}
void draw() {
oled::clear();
for (auto& bullet : bullets) oled::fillRect(bullet - 1, vec2i(3), WHITE);
for (auto& pos : asteroids) oled::drawImage(pos, vec2i(16), asteroid, MAGENTA);
if (gameState == GameState::BOSS_FIGHT || gameState == GameState::EXPLORE) oled::drawImage(basep, vec2i(32), baseDamagedTimer ? baseDamage : base, MAGENTA);
if (gameState != GameState::DEATH || gameOverTimer > 1) oled::drawImage(pos, vec2i(16, 16), tank, MAGENTA);
for (auto boomE : booms) oled::drawImage(boomE.first, vec2i(16), boom + 16 * 16 * 2 * (boomE.second < 0.15), MAGENTA);
oled::setCursor(0, 0);
oled::println(format("%d", score));
if (tankSpeed == MAX_TANK_SPEED && asteroidSpeed == MAX_ASTEROID_SPEED && spawnRate == MIN_ASTEROID_INTERVAL && fireRate == MIN_FIRE_INTERVAL) gui::rightText("Death screen!");
}
void start() {
bullets.clear();
asteroids.clear();
booms.clear();
fireRate = 500;
spawnRate = 1000;
asteroidSpeed = 40;
tankSpeed = 50;
score = 0;
gameOverTimer = winTimer = -1;
baseHealth = 50;
gameState = GameState::ASTEROIDS;
pos = vec2f(oled::width / 2.f - 8, oled::height - 16);
game = Game(update, draw);
}
}