I made some big changes to this latest version. Since I was adding more and more powerups for the player, the player entity class was becoming a bit bloated. Rather than continuing to add powerups in this manner and add to the bloat, I refactored how powerups were added to the game.

Now, when a new powerup is added, both a Powerup and an Attribute class is created representing the new powerup rather than adding it to the player entity class. See the code for details.