more code (was too big for one post)
also if anyone can help with how do display colons on the 4 didgit display would be a great held
robotdyn displays with backpack - using tm1637.h library
//Capturing red
while(defusing && team == 0 )
{
cls();
if(team==0)lcd.print(" CAPTURING ZONE");
lcd.setCursor(0,1);
unsigned int percent=0;
unsigned long xTime=millis(); //start disabling time
while(defusing)
{
keypad.getKey();
//check if game time runs out during the disabling
aTime= millis()- iTime;
if((minutos-aTime/60000==0 && 59-((aTime/1000)%60)==0) || minutos-aTime/60000>4000000000){
endGame = true;
}
timeCalcVar = (millis()- xTime)%1000;
if( timeCalcVar >= 0 && timeCalcVar <= 20)
{
digitalWrite(REDLED, HIGH);
digitalWrite(REDRELAY, LOW);
if(soundEnable)tone(tonepin,alarmTone1,200);
}
if(timeCalcVar >= 480 && timeCalcVar <= 500)
{
if(soundEnable)tone(tonepin,alarmTone2,200);
digitalWrite(REDLED, LOW);
digitalWrite(REDRELAY, HIGH);
}
unsigned long seconds= millis() - xTime;
percent = (seconds)/(ACTIVATESECONDS*10);
drawBar(percent);
if(percent >= 100)
{
digitalWrite(GREENLED, LOW);
digitalWrite(GREENRELAY, HIGH);
team=2;
iZoneTime=millis();
delay(1000);
break;
}
}
cls();
digitalWrite(REDLED, LOW);
digitalWrite(REDRELAY, HIGH);
}
//getting to green zone
while(cancelando && team == 0 )
{
cls();
if(team==0)lcd.print(" CAPTURING ZONE");
lcd.setCursor(0,1);
unsigned int percent=0;
unsigned long xTime=millis(); //start disabling time
while(cancelando)
{
keypad.getKey();
//check if game time runs out during the disabling
aTime= millis()- iTime;
if((minutos-aTime/60000==0 && 59-((aTime/1000)%60)==0) || minutos-aTime/60000>4000000000){
endGame = true;
}
timeCalcVar = (millis()- xTime)%1000;
if( timeCalcVar >= 0 && timeCalcVar <= 20)
{
digitalWrite(GREENLED, HIGH);
digitalWrite(GREENRELAY, LOW);
if(soundEnable)tone(tonepin,alarmTone1,200);
}
if(timeCalcVar >= 480 && timeCalcVar <= 500)
{
if(soundEnable)tone(tonepin,alarmTone2,200);
digitalWrite(GREENLED, LOW);
digitalWrite(GREENRELAY, HIGH);
}
unsigned long seconds= millis() - xTime;
percent = (seconds)/(ACTIVATESECONDS*10);
drawBar(percent);
if(percent >= 100)
{
digitalWrite(GREENLED, LOW);
digitalWrite(GREENRELAY, HIGH);
team=1;
iZoneTime=millis();
delay(1000);
break;
}
}
cls();
digitalWrite(GREENLED, LOW);
digitalWrite(GREENRELAY, HIGH);
}
}
}
void gameOver(){
if(team==1)greenTime+=millis()-iZoneTime;
if(team==2)redTime+=millis()-iZoneTime;
digitalWrite(GREENLED, LOW);
digitalWrite(GREENRELAY, HIGH);
digitalWrite(REDLED, LOW);
digitalWrite(REDRELAY, HIGH);
while(!defusing){
keypad.getKey();
if(defusing){
keypad.getKey();
break;
}
lcd.clear();
lcd.setCursor(3,0);
lcd.print("TIME OVER!");
lcd.setCursor(0,1);
//check who team win the base
if(greenTime>redTime){
//greenteam wins
lcd.print(" GREEN TEAM WINS");
digitalWrite(GREENLED, HIGH);
digitalWrite(GREENRELAY, LOW);
}
else{
//redteam wins
lcd.print(" RED TEAM WINS");
digitalWrite(REDLED, HIGH);
digitalWrite(REDRELAY, LOW);
}
delay(3000);
keypad.getKey();
if(defusing){
keypad.getKey();
break;
}
cls();
lcd.print("Red Time:");
lcd.setCursor(5,1);
printTimeDom(redTime,false);
delay(3000);
keypad.getKey();
if(defusing){
break;
}
cls();
lcd.print("Green Time:");
lcd.setCursor(5,1);
printTimeDom(greenTime,false);
delay(3000);
keypad.getKey();
if(defusing){
keypad.getKey();
break;
}
}
cls();
delay(100);
lcd.print("Play Again?");
lcd.setCursor(0,1);
lcd.print("A : Yes B : No");
while(1)
{
var = keypad.waitForKey();
if(var == 'a' ){
tone(tonepin,2400,30);
cls();
domination();
break;
}
if(var == 'b' ){
tone(tonepin,2400,30);
menuPrincipal();
break;
}
}
}