Meteor defense project

Dependencies:   N5110 mbed

Revision:
38:c66a69c1a6de
Parent:
37:45da88e36d1d
Child:
39:f92b93efbc72
--- a/GameEngine/GameEngine.cpp	Mon Apr 24 11:11:39 2017 +0000
+++ b/GameEngine/GameEngine.cpp	Mon Apr 24 23:30:54 2017 +0000
@@ -24,17 +24,18 @@
 }
 void GameEngine::init(int w) {
     NumberOfLife = 3; //3 life on every wave
+    weap.init();
     _d1.droneInit(20, 46, 0, 42); //drone1 is taking left side pixel 0 to 42.
     _d2.droneInit(62, 46, 42, 84); //drone2 is taking right side pixel 42 to 83;
-    weap.init();
     spa.init(w);
     //printf("init completed \n");
 }
 void GameEngine::update(Gamepad &pad, N5110 &lcd) {
+    weap.init();
     _d1.droneScan(Array2, charArray2, lcd);
     _d2.droneScan(Array2, charArray2, lcd);
     drawSpawn(lcd); 
-    drawLaserPlayer(pad, lcd);
+    laser_and_bomb(pad, lcd);
     bombAndShield(pad, lcd);
     checkGameRule(pad, lcd);
 }
@@ -45,14 +46,13 @@
         while (_gui.upgrading == 1) {
             //printf("laserDamage = %i \n",weap._laserDamage);
             //go to the main upgrade page with all the values (from Weapon) as reference.
-            _gui.upgrades(weap._laserDamage, weap._bombDamage, weap._bombR, weap._bombCooldown, _d1._droneDamage, _d1._droneRange, weap._shieldCapacity, weap._shieldRegenRate, pad, lcd); 
+            _gui.upgrades(weap._laserDamage, weap._bombDamage, weap._bombRange, weap._bombCooldown, weap._droneDamage, weap._droneRange, weap._shieldCapacity, weap._shieldRegenRate, weap._cannonDamage, weap._cannonCapacity, weap._cannonRegenRate, pad, lcd); 
             //printf("_gui.saveTheData = %d",_gui.saveTheData);
             if (_gui.saveTheData == 1) {
                 Data _upgrades = _gui.savedata(); //saving data
                 //_gui.testingtest(_upgrades);  //code used to test the struct
                 weap.setVar(_upgrades.up, _upgrades.up1);
                 weap.setVar(_upgrades.u1p, _upgrades.u1p1);
-                weap.testtest();
                 //printf("TESTING up = %d, up1 = %d, u1p = %d, u1p1 = %d \n",_upgrades.up,_upgrades.up1,_upgrades.u1p,_upgrades.u1p1); 
                 _gui.saveTheData = 0;
                 _gui.upgrading = 0; //get out of while loop after done upgrading
@@ -84,21 +84,25 @@
     }
     spa.updateSpawn(Array, Array2, charArray, charArray2, lcd); 
 }
-void GameEngine::drawLaserPlayer(Gamepad &pad, N5110 &lcd) {
+void GameEngine::laser_and_bomb(Gamepad &pad, N5110 &lcd) {
     weap.drawPlayer(pad, lcd);
+    weap.cannon_Cooldown();
+    weap.cannon_Meter(lcd);
     //draw a line for the laser when button is pressed
     if (pad.buttonhold_A == 1) {
         //printf("hi, button is working \n");
         weap.weaponMath(pad);
-        weap.drawLaser(Array2, charArray2, lcd);
+        weap.laser_Main(Array2, charArray2, lcd);
         
         //cannon can only be fired when the laser is switched on.
-        if ( pad.check_event(Gamepad::Y_PRESSED)) { //press button to set flag (fire the cannon)
-            fireInTheHole_flag = 1; 
+        if ( weap._cannon > 320) { //when sufficient cost, check for button Y.
+            if ( pad.check_event(Gamepad::Y_PRESSED)) { //press button to set flag (fire the cannon)
+                fireInTheHole_flag = 1; 
+            }
         }
     }
     if ( fireInTheHole_flag == 1) {
-        weap.cannon(lcd);    
+        weap.cannon_main(lcd);    
     }
     if ( weap.cannon_Firing == 0) { //clear flag when cannon is done 
         fireInTheHole_flag = 0;
@@ -148,7 +152,6 @@
     }
 }
 void GameEngine::bombAndShield(Gamepad &pad, N5110 &lcd) { 
-    weap.init();
     weap.bombCooldown(Array2, pad, lcd);
     if (pad.check_event(Gamepad::X_PRESSED)) {
         //to prevent from detonating the bomb at instant when button X is accidentally pressed