このブログに複数あるオリジナルガシャット関係の記事のうち、スケッチ関係の記事を見る方が多いようなので、ベラボーマンガシャットのスケッチ全文を公開します。
ヒダカ様の
スケッチがベースとなっていますが、独自の改修がしてあります。改修内容は下記のとおりです。
- バグルドライバーへの対応
- クリティカルストライク(クリティカルフィニッシュ)時にランダムで会心(快心?)の一発になるようにした
- LEDの点滅時間を最大25秒まで対応できるようにした
- ゲームクリアーかゲームオーバーの音声がランダムで鳴るようにした
- 武器への対応
- 「キメワザ」音の再生中にボタンを押してもクリティカルストライクに移行しないようにした
なお、このスケッチで使用しているDFPlayer-Mini-mp3ライブラリは現在非推奨となっているらしいので、現行のDFRobotDFPlayerMiniライブラリに対応させるにはこのスケッチを更に改修する必要があります。
以下、ベラボーマンガシャットのスケッチです。
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
#include <Adafruit_NeoPixel.h>
#define BUTTON_1_PIN 5
#define BUTTON_2_PIN 4
#define BUTTON_3_PIN 6
#define LED_PIN 7
#define NUM_OF_LED 1
#define GASHAT_OFF 0
#define GASHAT_NAME 1
#define GAME_CLEAR 2
#define GAME_OVER 3
#define LEVEL_1 4
#define LEVEL_2 5
#define LEVEL_3 6
#define GASHAT_IN 7
#define GASHAT_OUT 8
#define DRIVER_CLOSE 9
#define CRITICAL_STRIKE 10
#define CRITICAL_READY 11
#define CRITICAL_FINISH 12
#define GENRE 13
#define LEVEL_X 14 // バグルドライバー変身
#define CRITICAL_STRIKE_KAI 15 // クリティカルストライク会心の一発
#define CRITICAL_FINISH_KAI 16 // クリティカルフィニッシュ会心の一発
#define WEAPON_C_READY 17 // 武器クリティカル待機音
#define N_BUTTON 3
#define BT1_ON LOW
#define BT1_OFF HIGH
#define BT2_ON LOW
#define BT2_OFF HIGH
#define BT3_ON LOW // HIGH→LOW
#define BT3_OFF HIGH // LOW→HIGH
#define LED_PATTERN 250 // 25秒にするため200→250
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUM_OF_LED, LED_PIN, NEO_GRB + NEO_KHZ400);
SoftwareSerial mySerial(2, 3); // RX, TX
const uint8_t OFF_OFF_OFF[] = {BT1_OFF, BT2_OFF, BT3_OFF};
const uint8_t ON_OFF_OFF[] = {BT1_ON, BT2_OFF, BT3_OFF};
const uint8_t OFF_ON_OFF[] = {BT1_OFF, BT2_ON, BT3_OFF};
const uint8_t OFF_OFF_ON[] = {BT1_OFF, BT2_OFF, BT3_ON };
const uint8_t ON_ON_OFF[] = {BT1_ON, BT2_ON, BT3_OFF};
const uint8_t ON_OFF_ON[] = {BT1_ON, BT2_OFF, BT3_ON };
const uint8_t OFF_ON_ON[] = {BT1_OFF, BT2_ON, BT3_ON };
const uint8_t ON_ON_ON[] = {BT1_ON, BT2_ON, BT3_ON };
const uint8_t LED_GASHAT_NAME[][3] PROGMEM = {
{ 0, 0, 32},{ 0, 0, 64},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0, 64},
{ 0, 0,128},{ 0, 0, 64},{ 0, 0, 64},{ 0, 0, 32},{ 0, 0, 16},{ 0, 0, 0},
{ 0, 0, 0},{ 16, 32, 64},{ 24, 64,128},{ 16, 32, 64},{ 24, 64,128},{ 16, 32, 64},
{ 8, 16, 32},{ 16, 32, 64},{ 24, 64,128},{ 16, 32, 64},{ 24, 64,128},{ 16, 32, 64},
{ 8, 16, 32},{ 16, 32, 64},{ 8, 16, 32},{ 0, 0, 0},{ 16, 32, 64},{ 24, 64,128},
{ 16, 32, 64},{ 24, 64,128},{ 16, 32, 64},{ 8, 16, 32},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_GAME_CLEAR[][3] PROGMEM = {
{ 8, 16, 32},{ 12, 24, 64},{ 24, 64,128},{ 12, 24, 64},{ 24, 64,128},{ 12, 24, 64},
{ 24, 64,128},{ 12, 24, 64},{ 0, 0, 0},{ 12, 24, 64},{ 12, 24, 64},{ 24, 64,128},
{ 12, 24, 64},{ 0, 0, 0},{ 24, 64,128},{ 12, 24, 64},{ 24, 64,128},{ 12, 24, 64},
{ 24, 64,128},{ 12, 24, 64},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},
{ 12, 24, 64},{ 12, 24, 64},{ 12, 24, 64},{ 12, 24, 64},{ 8, 16, 32},{ 8, 16, 32},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_GAME_OVER[][3] PROGMEM = {
{ 16, 0, 0},{128, 0, 0},{ 64, 0, 0},{ 0, 0, 0},{128, 0, 0},{ 64, 0, 0},
{ 0, 0, 0},{128, 0, 0},{ 64, 0, 0},{128, 0, 0},{ 64, 0, 0},{ 0, 0, 0},
{128, 0, 0},{ 64, 0, 0},{128, 0, 0},{ 64, 0, 0},{128, 0, 0},{ 64, 0, 0},
{128, 0, 0},{ 64, 0, 0},{128, 0, 0},{ 64, 0, 0},{128, 0, 0},{ 64, 0, 0},
{128, 0, 0},{ 64, 0, 0},{128, 0, 0},{ 96, 0, 0},{ 72, 0, 0},{ 64, 0, 0},
{ 48, 0, 0},{ 32, 0, 0},{ 16, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_GASHAT_LEVEL1[][3] PROGMEM = {
{ 0, 0, 16},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},
{ 0, 0, 64},{ 0, 0, 0},{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},
{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0, 32},
{ 0, 0, 16},{ 0, 0, 8},{ 0, 0, 0},{ 8, 16, 32},{ 24, 64,128},{ 8, 16, 32},
{ 24, 64,128},{ 12, 32, 64},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 12, 32, 64},
{ 0, 0, 0},{ 24, 64,128},{ 16, 32, 64},{ 8, 16, 32},{ 24, 64,128},{ 0, 0, 0},
{ 12, 32, 64},{ 24, 64,128},{ 12, 32, 64},{ 24, 64,128},{ 24, 64,128},{ 0, 0, 0},
{ 24, 64,128},{ 16, 32, 64},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 0, 0, 0},
{ 24, 64,128},{ 12, 32, 64},{ 24, 64,128},{ 16, 32, 64},{ 24, 64,128},{ 24, 64,128},
{ 24, 64,128},{ 24, 64,128},{ 0, 0, 0},{ 24, 64,128},{ 0, 0, 0},{ 24, 64,128},
{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 0, 0, 0},{ 24, 64,128},{ 24, 64,128},
{ 24, 48, 96},{ 24, 48, 96},{ 16, 32, 64},{ 16, 32, 64},{ 16, 32, 64},{ 16, 32, 64},
{ 12, 24, 48},{ 12, 24, 48},{ 8, 16, 32},{ 8, 16, 32},{ 4, 8, 16},{ 4, 8, 16},
{ 0, 0, 0},{ 16, 32, 64},{ 8, 16, 32},{ 0, 0, 0},{ 24, 64,128},{ 24, 64,128},
{ 8, 16, 32},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},
{ 27, 54,108},{ 24, 48, 96},{ 21, 42, 84},{ 18, 36, 72},{ 16, 32, 64},{ 8, 16, 32},
{ 6, 12, 24},{ 3, 6, 12},{ 24, 64,128},{ 16, 32, 64},{ 8, 16, 32},{ 24, 64,128},
{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},
{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},
{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},
{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 24, 64,128},{ 18, 48, 96},
{ 12, 32, 64},{ 8, 16, 32},{ 0, 0, 0},{ 0, 0, 0},{ 12, 24, 48},{ 8, 16, 32},
{ 6, 12, 24},{ 3, 6, 12},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_GASHAT_LEVEL2[][3] PROGMEM = {
{ 0, 0, 16},{ 0, 0,128},{ 0, 0, 64},{ 0, 0, 0},{ 0, 0,128},{ 0, 0, 64},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0, 64},{ 0, 0, 64},{ 0, 0,128},
{ 0, 0, 64},{ 0, 0, 32},{ 0, 0, 0},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},
{ 0, 0, 0},{ 0, 0,128},{ 0, 0,128},{ 0, 0, 64},{ 0, 0, 0},{ 0, 0,128},
{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 0},{ 0, 0, 32},{ 0, 0,128},
{ 0, 0, 64},{ 0, 0, 32},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},
{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},
{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},
{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},
{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},
{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 64},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0, 96},{ 0, 0, 80},{ 0, 0, 64},{ 0, 0, 48},
{ 0, 0, 32},{ 0, 0, 16},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_GASHAT_LEVEL3[][3] PROGMEM = {
{128, 0, 0},{ 64, 0, 0},{ 32, 0, 0},{128, 0, 0},{108, 0, 0},{ 88, 0, 0},
{ 68, 0, 0},{ 48, 0, 0},{ 28, 0, 0},{ 20, 0, 0},{ 8, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},
{128, 0, 0},{ 64, 0, 0},{ 32, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},
{128, 0, 0},{128, 0, 0},{108, 0, 0},{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},
{ 36, 0, 0},{ 18, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{128,128, 0},{128,128, 0},{ 64, 64, 0},{ 32, 32, 0},{ 0, 0, 0},{128,128, 0},
{128,128, 0},{ 64, 64, 0},{ 32, 32, 0},{ 0, 0, 0},{128,128, 0},{128,128, 0},
{ 64, 64, 0},{ 32, 32, 0},{ 0, 0, 0},{128,128, 0},{128,128, 0},{ 64, 64, 0},
{ 32, 32, 0},{ 0, 0, 0},{128,128, 0},{128,128, 0},{ 64, 64, 0},{ 32, 32, 0},
{ 0, 0, 0},{128,128, 0},{128,128, 0},{ 64, 64, 0},{ 32, 32, 0},{ 0, 0, 0},
{128,128, 0},{128,128, 0},{ 64, 64, 0},{ 32, 32, 0},{ 0, 0, 0},{128,128, 0},
{128,128, 0},{ 64, 64, 0},{ 32, 32, 0},{ 0, 0, 0},{128,128, 0},{128,128, 0},
{ 64, 64, 0},{ 32, 32, 0},{ 0, 0, 0},{128,128, 0},{128,128, 0},{ 64, 64, 0},
{ 32, 32, 0},{ 0, 0, 0},{128,128, 0},{128,128, 0},{ 64, 64, 0},{ 32, 32, 0},
{ 0, 0, 0},{128,128, 0},{128,128, 0},{ 64, 64, 0},{ 32, 32, 0},{ 0, 0, 0},
{128,128, 0},{128,128, 0},{ 64, 64, 0},{ 32, 32, 0},{ 0, 0, 0},{128,128, 0},
{128,128, 0},{ 64, 64, 0},{ 32, 32, 0},{ 0, 0, 0},{128,128, 0},{128,128, 0},
{ 64, 64, 0},{ 32, 32, 0},{ 0, 0, 0},{128,128, 0},{128,128, 0},{ 64, 64, 0},
{ 32, 32, 0},{ 0, 0, 0},{128,128, 0},{128,128, 0},{ 64, 64, 0},{ 32, 32, 0},
{ 0, 0, 0},{128,128, 0},{128,128, 0},{ 64, 64, 0},{ 32, 32, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 64},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0, 96},{ 0, 0, 80},{ 0, 0, 64},{ 0, 0, 48},
{ 0, 0, 32},{ 0, 0, 16},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_GASHAT_IN[][3] PROGMEM = {
{ 0, 0, 16},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},
{ 0, 0, 64},{ 0, 0, 0},{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},
{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0, 32},
{ 0, 0, 16},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_GASHAT_OUT[][3] PROGMEM = {
{ 0, 0, 64},{ 0, 0,128},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},{ 0, 0,128},
{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 96},{ 0, 0, 80},
{ 0, 0, 64},{ 0, 0, 48},{ 0, 0, 32},{ 0, 0, 16},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_DRIVER_CLOSE[][3] PROGMEM = {
{ 0, 0, 64},{ 0, 0,128},{ 0, 0,128},{ 0, 0, 0},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 96},
{ 0, 0, 64},{ 0, 0, 32},{ 0, 0, 16},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_CRITICAL_STRIKE[][3] PROGMEM = {
{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{108, 0, 0},
{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},{ 48, 0, 0},{ 32, 0, 0},
{ 24, 0, 0},{ 12, 0, 0},{128, 0, 0},{108, 0, 0},{ 96, 0, 0},{ 84, 0, 0},
{ 72, 0, 0},{ 60, 0, 0},{ 48, 0, 0},{ 32, 0, 0},{ 24, 0, 0},{ 12, 0, 0},
{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{108, 0, 0},
{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},{ 48, 0, 0},{ 36, 0, 0},
{ 24, 0, 0},{ 12, 0, 0},{ 0, 0,128},{ 0, 0,128},{ 64, 64,128},{ 64, 64,128},
{ 0, 0, 64},{ 0, 0, 64},{ 64, 0,128},{ 64, 0,128},{ 64, 0, 64},{ 64, 0, 64},
{128, 0,128},{128, 0,128},{128, 0, 64},{128, 0, 64},{128, 0, 0},{128, 0, 0},
{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},{128, 64, 0},{128, 64, 0},
{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},{ 64,128, 0},{ 64,128, 0},
{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},{ 0, 64, 0},{ 0, 64, 0},
{ 0,128, 64},{ 0,128, 64},{ 0,128,128},{ 0,128,128},{ 0, 64, 64},{ 0, 64, 64},
{ 0, 64,128},{128, 0, 0},{ 64, 0, 0},{128, 0, 0},{128, 0, 0},{108, 0, 0},
{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},{ 48, 0, 0},{ 36, 0, 0},
{ 24, 0, 0},{ 12, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_CRITICAL_READY[][3] PROGMEM = {
{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},
{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},{128, 64, 0},{128, 64, 0},
{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},{ 64,128, 0},{ 64,128, 0},
{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},{ 0, 64, 0},{ 0, 64, 0},
{ 0,128, 64},{ 0,128, 64},{ 0,128,128},{ 0,128,128},{ 0, 64, 64},{ 0, 64, 64},
{ 0, 64,128},{ 0, 64,128},{ 0, 0,128},{ 0, 0,128},{ 64, 64,128},{ 64, 64,128},
{ 0, 0, 64},{ 0, 0, 64},{ 64, 0,128},{ 64, 0,128},{ 64, 0, 64},{ 64, 0, 64},
{128, 0,128},{128, 0,128},{128, 0, 64},{128, 0, 64},{128, 0, 0},{128, 0, 0},
{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},{128, 64, 0},{128, 64, 0},
{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},{ 64,128, 0},{ 64,128, 0},
{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},{ 0, 64, 0},{ 0, 64, 0},
{ 0,128, 64},{ 0,128, 64},{ 0,128,128},{ 0,128,128},{ 0, 64, 64},{ 0, 64, 64},
{ 0, 64,128},{ 0, 64,128},{ 0, 0,128},{ 0, 0,128},{ 64, 64,128},{ 64, 64,128},
{ 0, 0, 64},{ 0, 0, 64},{ 64, 0,128},{ 64, 0,128},{ 64, 0, 64},{ 64, 0, 64},
{128, 0,128},{128, 0,128},{128, 0, 64},{128, 0, 64},{128, 0, 0},{128, 0, 0},
{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},{128, 64, 0},{128, 64, 0},
{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},{ 64,128, 0},{ 64,128, 0},
{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},{ 0, 64, 0},{ 0, 64, 0},
{ 0,128, 64},{ 0,128, 64},{ 0,128,128},{ 0,128,128},{ 0, 64, 64},{ 0, 64, 64},
{ 0, 64,128},{ 0, 64,128},{ 0, 0,128},{ 0, 0,128},{ 64, 64,128},{ 64, 64,128},
{ 0, 0, 64},{ 0, 0, 64},{ 64, 0,128},{ 64, 0,128},{ 64, 0, 64},{ 64, 0, 64},
{128, 0,128},{128, 0,128},{128, 0, 64},{128, 0, 64},{128, 0, 0},{128, 0, 0},
{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},{128, 64, 0},{128, 64, 0},
{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},{ 64,128, 0},{ 64,128, 0},
{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},{ 0, 64, 0},{ 0, 64, 0},
{ 0,128, 64},{ 0,128, 64},{ 0,128,128},{ 0,128,128},{ 0, 64, 64},{ 0, 64, 64},
{ 0, 64,128},{ 0, 64,128},{ 0, 0,128},{ 0, 0,128},{ 64, 64,128},{ 64, 64,128},
{ 0, 0, 64},{ 0, 0, 64},{ 64, 0,128},{ 64, 0,128},{ 64, 0, 64},{ 64, 0, 64},
{128, 0,128},{128, 0,128},{128, 0, 64},{128, 0, 64},{128, 0, 0},{128, 0, 0},
{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},{128, 64, 0},{128, 64, 0},
{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},{ 64,128, 0},{ 64,128, 0},
{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},{ 0, 64, 0},{ 0, 64, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_CRITICAL_FINISH[][3] PROGMEM = {
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},
{128, 0, 0},{108, 0, 0},{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},
{ 48, 0, 0},{ 32, 0, 0},{ 24, 0, 0},{ 12, 0, 0},{128, 0, 0},{108, 0, 0},
{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},{ 48, 0, 0},{ 32, 0, 0},
{ 24, 0, 0},{ 12, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},
{128, 0, 0},{108, 0, 0},{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},
{ 48, 0, 0},{ 36, 0, 0},{ 24, 0, 0},{ 12, 0, 0},{ 0, 0,128},{ 0, 0,128},
{ 64, 64,128},{ 64, 64,128},{ 0, 0, 64},{ 0, 0, 64},{ 64, 0,128},{ 64, 0,128},
{ 64, 0, 64},{ 64, 0, 64},{128, 0,128},{128, 0,128},{128, 0, 64},{128, 0, 64},
{128, 0, 0},{128, 0, 0},{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},
{128, 64, 0},{128, 64, 0},{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},
{ 64,128, 0},{ 64,128, 0},{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},
{ 0, 64, 0},{ 0, 64, 0},{ 0,128, 64},{ 0,128, 64},{ 0,128,128},{ 0,128,128},
{ 0, 64, 64},{ 0, 64, 64},{ 0, 64,128},{128, 0, 0},{ 64, 0, 0},{128, 0, 0},
{128, 0, 0},{108, 0, 0},{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},
{ 48, 0, 0},{ 36, 0, 0},{ 24, 0, 0},{ 12, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_GENRE[][3] PROGMEM = {
{ 16, 16, 0},{ 64, 64, 0},{128,128, 0},{ 72, 72, 0},{ 32, 32, 0},{128,128, 0},
{ 64, 64, 0},{ 16, 16, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_GASHAT_LEVELX[][3] PROGMEM = {
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{128, 0, 0},{ 64, 0, 0},{ 32, 0, 0},{128, 0, 0},{108, 0, 0},
{ 88, 0, 0},{ 68, 0, 0},{ 48, 0, 0},{ 28, 0, 0},{ 20, 0, 0},{ 8, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},
{128, 0, 0},{128, 0, 0},{ 64, 0, 0},{ 32, 0, 0},{ 0, 0, 0},{128, 0, 0},
{128, 0, 0},{128, 0, 0},{128, 0, 0},{108, 0, 0},{ 96, 0, 0},{ 84, 0, 0},
{ 72, 0, 0},{ 36, 0, 0},{ 18, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{128, 0, 0},{128, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 64},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},{ 0, 0,128},
{ 0, 0,128},{ 0, 0,128},{ 0, 0, 96},{ 0, 0, 80},{ 0, 0, 64},{ 0, 0, 48},
{ 0, 0, 32},{ 0, 0, 16},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_CRITICAL_STRIKE_KAI[][3] PROGMEM = {
{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{108, 0, 0},
{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},{ 48, 0, 0},{ 32, 0, 0},
{ 24, 0, 0},{ 12, 0, 0},{128, 0, 0},{108, 0, 0},{ 96, 0, 0},{ 84, 0, 0},
{ 72, 0, 0},{ 60, 0, 0},{ 48, 0, 0},{ 32, 0, 0},{ 24, 0, 0},{ 12, 0, 0},
{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{108, 0, 0},
{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},{ 48, 0, 0},{ 36, 0, 0},
{ 24, 0, 0},{ 12, 0, 0},{ 0, 0,128},{ 0, 0,128},{ 64, 64,128},{ 64, 64,128},
{ 0, 0, 64},{ 0, 0, 64},{ 64, 0,128},{ 64, 0,128},{ 64, 0, 64},{ 64, 0, 64},
{128, 0,128},{128, 0,128},{128, 0, 64},{128, 0, 64},{128, 0, 0},{128, 0, 0},
{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},{128, 64, 0},{128, 64, 0},
{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},{ 64,128, 0},{ 64,128, 0},
{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},{ 0, 64, 0},{ 0, 64, 0},
{ 0,128, 64},{ 0,128, 64},{ 0,128,128},{ 0,128,128},{ 0, 64, 64},{ 0, 64, 64},
{ 0, 64,128},{128, 0, 0},{ 64, 0, 0},{128, 0, 0},{128, 0, 0},{108, 0, 0},
{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},{ 48, 0, 0},{ 36, 0, 0},
{ 24, 0, 0},{ 12, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_CRITICAL_FINISH_KAI[][3] PROGMEM = {
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},
{128, 0, 0},{108, 0, 0},{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},
{ 48, 0, 0},{ 32, 0, 0},{ 24, 0, 0},{ 12, 0, 0},{128, 0, 0},{108, 0, 0},
{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},{ 48, 0, 0},{ 32, 0, 0},
{ 24, 0, 0},{ 12, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},
{128, 0, 0},{108, 0, 0},{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},
{ 48, 0, 0},{ 36, 0, 0},{ 24, 0, 0},{ 12, 0, 0},{ 0, 0,128},{ 0, 0,128},
{ 64, 64,128},{ 64, 64,128},{ 0, 0, 64},{ 0, 0, 64},{ 64, 0,128},{ 64, 0,128},
{ 64, 0, 64},{ 64, 0, 64},{128, 0,128},{128, 0,128},{128, 0, 64},{128, 0, 64},
{128, 0, 0},{128, 0, 0},{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},
{128, 64, 0},{128, 64, 0},{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},
{ 64,128, 0},{ 64,128, 0},{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},
{ 0, 64, 0},{ 0, 64, 0},{ 0,128, 64},{ 0,128, 64},{ 0,128,128},{ 0,128,128},
{ 0, 64, 64},{ 0, 64, 64},{ 0, 64,128},{128, 0, 0},{ 64, 0, 0},{128, 0, 0},
{128, 0, 0},{108, 0, 0},{ 96, 0, 0},{ 84, 0, 0},{ 72, 0, 0},{ 60, 0, 0},
{ 48, 0, 0},{ 36, 0, 0},{ 24, 0, 0},{ 12, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
const uint8_t LED_WEAPON_C_READY[][3] PROGMEM = {
{ 0, 0, 16},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},
{ 0, 0, 64},{ 0, 0, 0},{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},
{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0,128},{ 0, 0, 64},{ 0, 0, 32},
{ 0, 0, 16},{ 0, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},
{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},{128, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},
{128, 64, 0},{128, 64, 0},{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},
{ 64,128, 0},{ 64,128, 0},{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},
{ 0, 64, 0},{ 0, 64, 0},{ 0,128, 64},{ 0,128, 64},{ 0,128,128},{ 0,128,128},
{ 0, 64, 64},{ 0, 64, 64},{ 0, 64,128},{ 0, 64,128},{ 0, 0,128},{ 0, 0,128},
{ 64, 64,128},{ 64, 64,128},{ 0, 0, 64},{ 0, 0, 64},{ 64, 0,128},{ 64, 0,128},
{ 64, 0, 64},{ 64, 0, 64},{128, 0,128},{128, 0,128},{128, 0, 64},{128, 0, 64},
{128, 0, 0},{128, 0, 0},{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},
{128, 64, 0},{128, 64, 0},{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},
{ 64,128, 0},{ 64,128, 0},{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},
{ 0, 64, 0},{ 0, 64, 0},{ 0,128, 64},{ 0,128, 64},{ 0,128,128},{ 0,128,128},
{ 0, 64, 64},{ 0, 64, 64},{ 0, 64,128},{ 0, 64,128},{ 0, 0,128},{ 0, 0,128},
{ 64, 64,128},{ 64, 64,128},{ 0, 0, 64},{ 0, 0, 64},{ 64, 0,128},{ 64, 0,128},
{ 64, 0, 64},{ 64, 0, 64},{128, 0,128},{128, 0,128},{128, 0, 64},{128, 0, 64},
{128, 0, 0},{128, 0, 0},{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},
{128, 64, 0},{128, 64, 0},{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},
{ 64,128, 0},{ 64,128, 0},{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},
{ 0, 64, 0},{ 0, 64, 0},{ 0,128, 64},{ 0,128, 64},{ 0,128,128},{ 0,128,128},
{ 0, 64, 64},{ 0, 64, 64},{ 0, 64,128},{ 0, 64,128},{ 0, 0,128},{ 0, 0,128},
{ 64, 64,128},{ 64, 64,128},{ 0, 0, 64},{ 0, 0, 64},{ 64, 0,128},{ 64, 0,128},
{ 64, 0, 64},{ 64, 0, 64},{128, 0,128},{128, 0,128},{128, 0, 64},{128, 0, 64},
{128, 0, 0},{128, 0, 0},{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},
{128, 64, 0},{128, 64, 0},{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},
{ 64,128, 0},{ 64,128, 0},{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},
{ 0, 64, 0},{ 0, 64, 0},{ 0,128, 64},{ 0,128, 64},{ 0,128,128},{ 0,128,128},
{ 0, 64, 64},{ 0, 64, 64},{ 0, 64,128},{ 0, 64,128},{ 0, 0,128},{ 0, 0,128},
{ 64, 64,128},{ 64, 64,128},{ 0, 0, 64},{ 0, 0, 64},{ 64, 0,128},{ 64, 0,128},
{ 64, 0, 64},{ 64, 0, 64},{128, 0,128},{128, 0,128},{128, 0, 64},{128, 0, 64},
{128, 0, 0},{128, 0, 0},{ 64, 0, 0},{ 64, 0, 0},{128, 64, 64},{128, 64, 64},
{128, 64, 0},{128, 64, 0},{128, 128, 0},{128,128, 0},{ 64, 64, 0},{ 64, 64, 0},
{ 64,128, 0},{ 64,128, 0},{ 0,128, 0},{ 0,128, 0},{ 64,128, 64},{ 64,128, 64},
{ 0, 64, 0},{ 0, 64, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},
{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0},{ 0, 0, 0}
};
void setup () {
mySerial.begin (9600);
mp3_set_serial (mySerial); //set softwareSerial for DFPlayer-mini mp3 module
mp3_set_volume (25);
pinMode(BUTTON_1_PIN, INPUT_PULLUP);
pinMode(BUTTON_2_PIN, INPUT_PULLUP);
pinMode(BUTTON_3_PIN, INPUT_PULLUP);
pixels.begin();
pixels.show();
}
uint8_t before_state[] = {BT1_OFF, BT2_OFF, BT3_OFF};
uint8_t current_state[] = {BT1_OFF, BT2_OFF, BT3_OFF};
boolean single_mode_flag = false;
boolean critical_mode_flag = false;
uint8_t randNumber = 0; // ランダム再生対応
/* uint8_t game_clear_flag = 0; ランダム再生のため未使用に */
uint8_t action = GASHAT_OFF;
uint8_t led_index = 0;
uint8_t wait = 0; // LED点灯のタイムラグ対応
int slot_in_time = 0; // スロット挿入時間
uint8_t s_process_ID = 0; // 待機処理判別 0:なし 1:キメワザスロット 2:キースラッシャー 3:ガシャコンウェポン
boolean slot_in_flag = false; // スロット挿入フラグ
void loop(){
current_state[0] = digitalRead(BUTTON_1_PIN);
current_state[1] = digitalRead(BUTTON_2_PIN);
current_state[2] = digitalRead(BUTTON_3_PIN);
if(memcmp(before_state, OFF_OFF_OFF, N_BUTTON) == 0){
if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){
wait = 1;
action = set_action(LEVEL_1);
}else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){
wait = 1;
action = set_action(GASHAT_IN);
}else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){
if(single_mode_flag == false){
wait = 1;
action = set_action(GASHAT_NAME);
}else{
randNumber = random(2); // ランダム再生
if(randNumber == 0){
wait = 1; // LED点灯のタイムラグ対応
action = set_action(GAME_CLEAR);
}else{
wait = 1;
action = set_action(GAME_OVER);
}
}
single_mode_flag = !single_mode_flag;
}else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){
slot_in_time = 0;
slot_in_flag = true;
wait = 1;
action = set_action(GASHAT_IN);
}else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){
wait = 1;
action = set_action(LEVEL_1);
}else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){
wait = 1;
action = set_action(GASHAT_IN);
}else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){
critical_mode_flag = true; // 武器挿入時にフラグを真に
slot_in_time = 0;
slot_in_flag = true;
wait = 1;
action = set_action(WEAPON_C_READY);
}
}else if(memcmp(before_state, ON_OFF_OFF, N_BUTTON) == 0){
if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){
s_process_ID = 0;
slot_in_flag = false; // 引抜時にフラグを偽に
critical_mode_flag = false;
wait = 1;
action = set_action(GASHAT_OUT);
}else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){
if(s_process_ID == 3 && slot_in_time >= 40){ // 武器挿入から2秒以上経過しているか
randNumber = random(2);
if(randNumber == 0){
wait = 1;
action = set_action(CRITICAL_FINISH);
}else{
wait = 1;
action = set_action(CRITICAL_FINISH_KAI);
}
s_process_ID = 0; // 次回ループ時に実行しないように
}else{
;
}
}else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){
if(critical_mode_flag == false){
wait = 1;
action = set_action(LEVEL_2);
}else{
if(s_process_ID == 3 && slot_in_time >= 40){
randNumber = random(2);
if(randNumber == 0){
wait = 1;
action = set_action(CRITICAL_FINISH);
}else{
wait = 1;
action = set_action(CRITICAL_FINISH_KAI);
}
s_process_ID = 0;
}else{
;
}
}
}else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){
;
}else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){
wait = 1;
action = set_action(LEVEL_2);
}
}else if(memcmp(before_state, OFF_ON_OFF, N_BUTTON) == 0){
if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){
s_process_ID = 0;
slot_in_flag = false;
critical_mode_flag = false;
wait = 1;
action = set_action(GASHAT_OUT);
}else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){
if(s_process_ID == 2 && slot_in_time >= 40){
wait = 1;
action = set_action(GENRE);
s_process_ID = 0;
}else{
;
}
}else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){
if(critical_mode_flag == false){
wait = 1;
action = set_action(LEVEL_3);
}else{
if(s_process_ID == 2 && slot_in_time >= 40){
wait = 1;
action = set_action(GENRE);
s_process_ID = 0;
}else{
;
}
}
}else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){
;
}else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){
wait = 1;
action = set_action(LEVEL_X); // バグルドライバー対応
}else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){
wait = 1;
action = set_action(LEVEL_3);
}
}else if(memcmp(before_state, OFF_OFF_ON, N_BUTTON) == 0){
if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){
wait = 1;
action = set_action(LEVEL_1);
}else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){
wait = 1;
action = set_action(GASHAT_IN);
}else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){
if(critical_mode_flag == false){
wait = 1;
action = set_action(CRITICAL_READY);
}else{
randNumber = random(2);
if(randNumber == 0){
wait = 1;
action = set_action(CRITICAL_STRIKE);
}else{
wait = 1;
action = set_action(CRITICAL_STRIKE_KAI);
}
}
critical_mode_flag = !critical_mode_flag;
}
}else if(memcmp(before_state, ON_ON_OFF, N_BUTTON) == 0){
if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){
s_process_ID = 0;
slot_in_flag = false;
critical_mode_flag = false;
wait = 1;
action = set_action(GASHAT_OUT);
}else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){
if(critical_mode_flag == false){ // 武器対応
wait = 1;
action = set_action(DRIVER_CLOSE);
}else{
if(slot_in_time >= 40){
randNumber = random(2);
if(randNumber == 0){
wait = 1;
action = set_action(CRITICAL_FINISH);
}else{
wait = 1;
action = set_action(CRITICAL_FINISH_KAI);
}
}else{
s_process_ID = 3;
}
}
}else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){
if(critical_mode_flag == false){
wait = 1;
action = set_action(DRIVER_CLOSE);
}else{
if(slot_in_time >= 40){
wait = 1;
action = set_action(GENRE);
}else{
s_process_ID = 2;
}
}
}else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){
if(s_process_ID >= 1 && slot_in_time >= 40){
switch(s_process_ID){
case 1:
wait = 1;
action = set_action(CRITICAL_READY);
critical_mode_flag = !critical_mode_flag;
break;
case 2:
wait = 1;
action = set_action(GENRE);
break;
case 3:
randNumber = random(2);
if(randNumber == 0){
wait = 1;
action = set_action(CRITICAL_FINISH);
}else{
wait = 1;
action = set_action(CRITICAL_FINISH_KAI);
}
break;
}
s_process_ID = 0;
}else{
;
}
}else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){
;
}else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){
if(slot_in_time >= 40){
if(critical_mode_flag == false){
wait = 1;
action = set_action(CRITICAL_READY);
}else{
randNumber = random(2);
if(randNumber == 0){
wait = 1;
action = set_action(CRITICAL_STRIKE);
}else{
wait = 1;
action = set_action(CRITICAL_STRIKE_KAI);
}
}
critical_mode_flag = !critical_mode_flag;
}else{
s_process_ID = 1;
}
}
}else if(memcmp(before_state, ON_OFF_ON, N_BUTTON) == 0){
if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){
s_process_ID = 0;
slot_in_flag = false;
critical_mode_flag = false;
wait = 1;
action = set_action(GASHAT_OUT);
}else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){
s_process_ID = 0;
slot_in_flag = false;
critical_mode_flag = false;
wait = 1;
action = set_action(GASHAT_OUT);
}else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){
;
}else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){
if(critical_mode_flag == false){
wait = 1;
action = set_action(LEVEL_2);
}else{
;
}
}
}else if(memcmp(before_state, OFF_ON_ON, N_BUTTON) == 0){
if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){
s_process_ID = 0;
slot_in_flag = false;
critical_mode_flag = false;
wait = 1;
action = set_action(GASHAT_OUT);
}else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){
s_process_ID = 0;
slot_in_flag = false;
critical_mode_flag = false;
wait = 1;
action = set_action(GASHAT_OUT);
}else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){
;
}else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){
if(critical_mode_flag == false){
wait = 1;
action = set_action(LEVEL_3);
}else{
;
}
}
}else if(memcmp(before_state, ON_ON_ON, N_BUTTON) == 0){
if(memcmp(current_state, OFF_OFF_OFF, N_BUTTON) == 0){
s_process_ID = 0;
slot_in_flag = false;
critical_mode_flag = false;
wait = 1;
action = set_action(GASHAT_OUT);
}else if(memcmp(current_state, ON_OFF_OFF, N_BUTTON) == 0){
randNumber = random(2);
if(randNumber == 0){
wait = 1;
action = set_action(CRITICAL_FINISH);
}else{
wait = 1;
action = set_action(CRITICAL_FINISH_KAI);
}
}else if(memcmp(current_state, OFF_ON_OFF, N_BUTTON) == 0){
wait = 1;
action = set_action(GENRE);
}else if(memcmp(current_state, OFF_OFF_ON, N_BUTTON) == 0){
s_process_ID = 0;
slot_in_flag = false;
critical_mode_flag = false;
wait = 1;
action = set_action(GASHAT_OUT);
}else if(memcmp(current_state, ON_ON_OFF, N_BUTTON) == 0){
;
}else if(memcmp(current_state, ON_OFF_ON, N_BUTTON) == 0){
randNumber = random(2);
if(randNumber == 0){
wait = 1;
action = set_action(CRITICAL_FINISH);
}else{
wait = 1;
action = set_action(CRITICAL_FINISH_KAI);
}
}else if(memcmp(current_state, OFF_ON_ON, N_BUTTON) == 0){
wait = 1;
action = set_action(GENRE);
}else if(memcmp(current_state, ON_ON_ON, N_BUTTON) == 0){
if(s_process_ID >= 1 && slot_in_time >= 40){
switch(s_process_ID){
case 1:
wait = 1;
action = set_action(CRITICAL_READY);
critical_mode_flag = !critical_mode_flag;
break;
case 2:
wait = 1;
action = set_action(GENRE);
break;
case 3:
randNumber = random(2);
if(randNumber == 0){
wait = 1;
action = set_action(CRITICAL_FINISH);
}else{
wait = 1;
action = set_action(CRITICAL_FINISH_KAI);
}
break;
}
s_process_ID = 0;
}else{
;
}
}
}
if(wait >= 1) { // 0.1秒毎に実行するように
flash_led(action);
wait = 0;
}else{
wait++;
}
before_state[0] = current_state[0];
before_state[1] = current_state[1];
before_state[2] = current_state[2];
if(slot_in_flag == true){ // スロット挿入時間処理
if(slot_in_time < 5000){
slot_in_time++;
}else{
slot_in_time = 0;
}
}
delay(50); // 武器認識率向上のため100→50
}
uint8_t set_action(uint8_t action){
mp3_play(action);
led_index = 0;
return action;
}
void flash_led(uint8_t action){
switch(action){
case GASHAT_NAME:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_GASHAT_NAME[led_index][0])),
pgm_read_byte(&(LED_GASHAT_NAME[led_index][1])),
pgm_read_byte(&(LED_GASHAT_NAME[led_index][2]))));
break;
case GAME_CLEAR:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_GAME_CLEAR[led_index][0])),
pgm_read_byte(&(LED_GAME_CLEAR[led_index][1])),
pgm_read_byte(&(LED_GAME_CLEAR[led_index][2]))));
break;
case GAME_OVER:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_GAME_OVER[led_index][0])),
pgm_read_byte(&(LED_GAME_OVER[led_index][1])),
pgm_read_byte(&(LED_GAME_OVER[led_index][2]))));
break;
case LEVEL_1:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_GASHAT_LEVEL1[led_index][0])),
pgm_read_byte(&(LED_GASHAT_LEVEL1[led_index][1])),
pgm_read_byte(&(LED_GASHAT_LEVEL1[led_index][2]))));
break;
case LEVEL_2:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_GASHAT_LEVEL2[led_index][0])),
pgm_read_byte(&(LED_GASHAT_LEVEL2[led_index][1])),
pgm_read_byte(&(LED_GASHAT_LEVEL2[led_index][2]))));
break;
case LEVEL_3:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_GASHAT_LEVEL3[led_index][0])),
pgm_read_byte(&(LED_GASHAT_LEVEL3[led_index][1])),
pgm_read_byte(&(LED_GASHAT_LEVEL3[led_index][2]))));
break;
case GASHAT_IN:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_GASHAT_IN[led_index][0])),
pgm_read_byte(&(LED_GASHAT_IN[led_index][1])),
pgm_read_byte(&(LED_GASHAT_IN[led_index][2]))));
break;
case GASHAT_OUT:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_GASHAT_OUT[led_index][0])),
pgm_read_byte(&(LED_GASHAT_OUT[led_index][1])),
pgm_read_byte(&(LED_GASHAT_OUT[led_index][2]))));
break;
case DRIVER_CLOSE:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_DRIVER_CLOSE[led_index][0])),
pgm_read_byte(&(LED_DRIVER_CLOSE[led_index][1])),
pgm_read_byte(&(LED_DRIVER_CLOSE[led_index][2]))));
break;
case CRITICAL_STRIKE:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_CRITICAL_STRIKE[led_index][0])),
pgm_read_byte(&(LED_CRITICAL_STRIKE[led_index][1])),
pgm_read_byte(&(LED_CRITICAL_STRIKE[led_index][2]))));
break;
case CRITICAL_READY:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_CRITICAL_READY[led_index][0])),
pgm_read_byte(&(LED_CRITICAL_READY[led_index][1])),
pgm_read_byte(&(LED_CRITICAL_READY[led_index][2]))));
break;
case CRITICAL_FINISH:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_CRITICAL_FINISH[led_index][0])),
pgm_read_byte(&(LED_CRITICAL_FINISH[led_index][1])),
pgm_read_byte(&(LED_CRITICAL_FINISH[led_index][2]))));
break;
case GENRE:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_GENRE[led_index][0])),
pgm_read_byte(&(LED_GENRE[led_index][1])),
pgm_read_byte(&(LED_GENRE[led_index][2]))));
break;
case LEVEL_X:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_GASHAT_LEVELX[led_index][0])),
pgm_read_byte(&(LED_GASHAT_LEVELX[led_index][1])),
pgm_read_byte(&(LED_GASHAT_LEVELX[led_index][2]))));
break;
case CRITICAL_STRIKE_KAI:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_CRITICAL_STRIKE_KAI[led_index][0])),
pgm_read_byte(&(LED_CRITICAL_STRIKE_KAI[led_index][1])),
pgm_read_byte(&(LED_CRITICAL_STRIKE_KAI[led_index][2]))));
break;
case CRITICAL_FINISH_KAI:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_CRITICAL_FINISH_KAI[led_index][0])),
pgm_read_byte(&(LED_CRITICAL_FINISH_KAI[led_index][1])),
pgm_read_byte(&(LED_CRITICAL_FINISH_KAI[led_index][2]))));
break;
case WEAPON_C_READY:
pixels.setPixelColor(0, pixels.Color(pgm_read_byte(&(LED_WEAPON_C_READY[led_index][0])),
pgm_read_byte(&(LED_WEAPON_C_READY[led_index][1])),
pgm_read_byte(&(LED_WEAPON_C_READY[led_index][2]))));
break;
case GASHAT_OFF:
default:
pixels.setPixelColor(0, pixels.Color(0,0,0));
}
if(led_index < LED_PATTERN){
led_index++;
}else{
pixels.setPixelColor(0, pixels.Color(0,0,0));
}
pixels.show();
}