I added a stronger UFO with shields that can take multiple hits before being destroyed. To do this I added a new class (UFOStrongEntity) that extends the existing UFOEntity class.

The new class contains an array of UFO images that are changed as more and more damaged is done to the UFO until it is killed.
Some more changes.
I made some more changes to the main file in converting it to an Applet/JApplet
I changed references from Entoty to Entity2D
I added logic for a new smaller and more powerful UFO.

I cleaned up some of the code to display the player ship images from the Asteroid class and moved it into the PlayerEntity class.
A couple of things:

I found a bug with the scoring mechanism. Here I was adding the point values of "killed" enemies in the user defined collision method. Howewver, given some of the advanced enemies that are not killed with a simple call to their respective kill methods (e.g., the strong and shorty UFOs), their point values were prematurely added to the player's score each time the UFO was hit by a player shot regardless if the UFO was killed or not.

To correct this problem, I moved the scoring out of the user defined collision methed and added it to the respective kill methods of the enemy entities. Now, when an enemy entity truely dies, the point value of the enemy is added to the player's score.

Note that this further follows good object oriented design practices since each enemy knows how it should die (e.g., add its point value to the player's score and then clear its alive and visisble flags).

I also forgot to add the UFOShorty class to the repo in the last commit.
I fixed a bug with the powerups. When a collision was being processed for a powerup, the point value was being counted twice (e.g., a 250 point power up was being count as a 500 point powerup). I fixed the login in the user defined collision method that processes a collision between two entities.
I started to add comments to add the new logic for increased health and shields pwoerups.
I merged the other branches with the development branch

Merge branch 'testingrefactoredentityclasses' into development
I started to add logic to handle the increase health capacity powerup.
I added logic to increase the players health capacity from 10 to 20 iin the form of a powerup.

I still need to do the following:

1) Add respective powerups to increase health capacity from 20 to 40.
2) Add respective powerups to increase sheild powerups from 10 to 20 and from 20 to 40.
3) Add logic so that each powerup only spawns after a certain score has been reached.
4) Add logic so that once the player is equipped with an increase in capacity for either health or shields, it does not appear again.
I added powerups to increase the players health and shield capacity. Now, when the player begins the game, the player's ship has 10 units of health and shields. I added two power-up to increase both the ship's health and shield capacity from 10 to 20 and from 20 to 40.

When the power-ups appear is dependent on the player's score. After a certain score both power-ups to increase the health and shield capacity from 10 to 20 will begin to appear and the same goes for the power-ups to increase the ship's capacity from 20 to 40.

I also made some other power-ups appear when certain conditions are met. For instance only full health and full shield power-ups will appear if the player's health or shields are less than full. The firepower power-ups will not appear if the player has the maximum fire power.
I forgot to add the file for the class PowerupIncreasedShieldCapacity in the last commit.
I refactored the attribute classes. I added an initialize method to the IAttribute interace and eliminated the unused constructors from the different attribute classes. I also cleaned up the PlayerAttributes class by calling each attributes initialize method from within the PlayerAttribute class rather than calling the setValue and setLimit methods individually.

 also eliminted the AttributeBase class since it was not being used. I originally created this abstract class that implemented the IAttribute interface (as abstract methods) and let the specific player attributes (e.g., AttributeHealth) extend this base class. However, since there was no common logic in the AttributeBase class that was common to all attributes, I decided that this base class was no longer needed.
I added another thruster powerup. Now there are three different thruster powerup levels  (1, 2, 3) denoted by different images representing thruster levels (red exhaust for level 1, yellow for level 2 and blue for level three).
All of the changes that I added to development over the past few weeks are now ready to be merged with master.

Merge branch 'development'
After playing the game I changed the values of when the shield and health capacity increases will be spawned.

The levels are now:

25000 for health capacity increase from 10 to 20
100000 for health capacity increase from 20 to 40

15000 for shield capacity increase from 10 to 20
75000 for shield capacity increase from 20 to 40
I am now moving all of my development changes to master since they have been tested and seem to work without any known problems.

Merge branch 'development'