#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_WIDTH 128
#define OLED_HEIGHT 64
Adafruit_SSD1306 oled(OLED_WIDTH, OLED_HEIGHT, &Wire, -1);
const int plus1 = 2;
const int plus3 = 3;
const int plus5 = 4;
const int minus1 = 10;
const int minus3 = 9;
const int minus5 = 8;
const int reset25 = 5;
const int reset30 = 7;
const int reset0 = 6;
const int singledigi = 30;
const int doubledigi = 50;
int life25 = 25;
int life30 = 30;
int life0 = 0;
int delaypress = 250;
int currentlife=0;
int State_plus1 = 0;
int State_plus3 = 0;
int State_plus5 = 0;
int State_minus1 = 0;
int State_minus3 = 0;
int State_minus5 = 0;
int State_reset25 = 0;
int State_reset30 = 0;
int State_reset0 = 0;
void setup() {
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed")); while (true);}
delay(1000);
oled.clearDisplay();
oled.setTextSize(3);
oled.setTextColor(WHITE);
oled.setCursor(20, 20);
oled.println("LIFE");
oled.setCursor(0, 42);
oled.println("COUNTER");
oled.setTextSize(1);
oled.setCursor(0, 0);
oled.println(" BY ALB");
oled.display();
pinMode(plus1, INPUT);
pinMode(plus3, INPUT);
pinMode(plus5, INPUT);
pinMode(minus1, INPUT);
pinMode(minus3, INPUT);
pinMode(minus5, INPUT);
pinMode(reset25, INPUT);
pinMode(reset30, INPUT);
pinMode(reset0, INPUT);
}
void display_life(){
delay(delaypress);
oled.clearDisplay();
oled.setTextSize(6);
if (currentlife <= 0) {currentlife=0;};
if (currentlife > 99) {currentlife=0;};
if (currentlife < 10) {oled.setCursor(doubledigi, 20);} else {oled.setCursor(singledigi, 20);};
oled.println(currentlife);
oled.setCursor(0, 0);
oled.setTextSize(1);
oled.println("Current DAMAGE:");
oled.display();
}
void loop() {
State_plus1 = digitalRead(plus1);
State_plus3 = digitalRead(plus3);
State_plus5 = digitalRead(plus5);
State_minus1 = digitalRead(minus1);
State_minus3 = digitalRead(minus3);
State_minus5 = digitalRead(minus5);
State_reset30 = digitalRead(reset30);
State_reset25 = digitalRead(reset25);
State_reset0 = digitalRead(reset0);
if (State_reset30 == HIGH) {currentlife=life30; display_life();}
if (State_reset25 == HIGH) {currentlife=life25; display_life();}
if (State_reset0 == HIGH) {currentlife=life0; display_life();}
if (State_plus1 == HIGH) {currentlife=currentlife+1; display_life();}
if (State_plus3 == HIGH) {currentlife=currentlife+3; display_life();}
if (State_plus5 == HIGH) {currentlife=currentlife+5; display_life();}
if (State_minus1 == HIGH) {currentlife=currentlife-1; display_life();}
if (State_minus3 == HIGH) {currentlife=currentlife-3; display_life();}
if (State_minus5 == HIGH) {currentlife=currentlife-5; display_life();}
}