void TDefense::studentAction() { QPoint *myTarget = myStudent->getTarget(); studentShoot(myTarget); for (int i = 0; i < myStudentBullets.size(); i++) { Bullet *curBullet = myStudentBullets[i]; double bX = curBullet->getX(); double bY = curBullet->getY(); double bVX = curBullet->getVX(); double bVY = curBullet->getVY(); int bHeight = curBullet->getImage().height(); int bWidth = curBullet->getImage().width(); curBullet->move(); curBullet->setVX(bVX); curBullet->setVY(bVY); for (int j = 0; j < myProblems.size(); j++) { Problem *secondProblem = myProblems[j]; if (curBullet->intersects(secondProblem)) { secondProblem->health--; if (secondProblem->health == 0) { funds += 10; myProblems.remove(j); numEnemiesShot++; } studentShotFired = false; studentBulletAdded = false; } else if ((bY <= 0 && bVY < 0) || (bX <= 0 && bVX < 0 || (gpHeight <= (bY + bHeight)) && bY > 0 && bVY > 0) || ((gpWidth == (bX + bWidth)) && bVX > 0 && bVX > 0)) { studentShotFired = false; studentBulletAdded = false; } // end else if if (!studentShotFired && myStudentBullets.size() > 0) { myStudentBullets.remove(i); } // end if } // end inner for for (int j = 0; j < myAssignments.size(); j++) { Assignment *secondAssignment = myAssignments[j]; if (curBullet->intersects(secondAssignment)) { secondAssignment->health--; secondAssignment->setImage(assignment2); if (secondAssignment->health == 0) { funds += 20; myAssignments.remove(j); numEnemiesShot++; } studentShotFired = false; studentBulletAdded = false; } else if ((bY <= 0 && bVY < 0) || (bX <= 0 && bVX < 0 || (gpHeight <= (bY + bHeight)) && bY > 0 && bVY > 0) || ((gpWidth == (bX + bWidth)) && bVX > 0 && bVX > 0)) { studentShotFired = false; studentBulletAdded = false; } // end else if if (!studentShotFired && myStudentBullets.size() > 0) { myStudentBullets.remove(i); } // end if } // end inner for for (int j = 0; j < myPapers.size(); j++) { Paper *secondPaper = myPapers[j]; if (curBullet->intersects(secondPaper)) { secondPaper->health--; switch (secondPaper->health) { case 4: secondPaper->setImage(paper2); break; case 3: secondPaper->setImage(paper3); break; case 2: secondPaper->setImage(paper4); break; case 1: secondPaper->setImage(paper5); break; } if (secondPaper->health == 0) { funds += 40; myPapers.remove(j); numEnemiesShot++; } studentShotFired = false; studentBulletAdded = false; } else if ((bY <= 0 && bVY < 0) || (bX <= 0 && bVX < 0 || (gpHeight <= (bY + bHeight)) && bY > 0 && bVY > 0) || ((gpWidth == (bX + bWidth)) && bVX > 0 && bVX > 0)) { studentShotFired = false; studentBulletAdded = false; } // end else if if (!studentShotFired && myStudentBullets.size() > 0) { myStudentBullets.remove(i); } // end if } // end inner for for (int j = 0; j < myMidterms.size(); j++) { Midterm *secondMidterm = myMidterms[j]; if (curBullet->intersects(secondMidterm)) { secondMidterm->health--; switch (secondMidterm->health) { case 17: secondMidterm->setImage(midterm4); break; case 16: secondMidterm->setImage(midterm3); break; case 15: secondMidterm->setImage(midterm2); break; case 14: secondMidterm->setImage(midterm1); break; case 13: secondMidterm->setImage(midtermC); break; case 12: secondMidterm->setImage(midterm5); break; case 11: secondMidterm->setImage(midterm4); break; case 10: secondMidterm->setImage(midterm3); break; case 9: secondMidterm->setImage(midterm2); break; case 8: secondMidterm->setImage(midterm1); break; case 7: secondMidterm->setImage(midtermB); break; case 6: secondMidterm->setImage(midterm5); break; case 5: secondMidterm->setImage(midterm4); break; case 4: secondMidterm->setImage(midterm3); break; case 3: secondMidterm->setImage(midterm2); break; case 2: secondMidterm->setImage(midterm1); break; case 1: secondMidterm->setImage(midtermA); break; } if (secondMidterm->health == 0) { funds += 300; myMidterms.remove(j); numEnemiesShot++; } studentShotFired = false; studentBulletAdded = false; } else if ((bY <= 0 && bVY < 0) || (bX <= 0 && bVX < 0 || (gpHeight <= (bY + bHeight)) && bY > 0 && bVY > 0) || ((gpWidth == (bX + bWidth)) && bVX > 0 && bVX > 0)) { studentShotFired = false; studentBulletAdded = false; } // end else if if (!studentShotFired && myStudentBullets.size() > 0) { myStudentBullets.remove(i); } // end if } // end inner for } // end outer for } // end method