ヒダカ様のスケッチがベースとなっていますが、独自の改修がしてあります。改修内容は下記のとおりです。
- バグルドライバーへの対応
- クリティカルストライク(クリティカルフィニッシュ)時にランダムで会心(快心?)の一発になるようにした
- 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(); }
0 件のコメント:
コメントを投稿