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