-- Separated locking concerns in Player class to separate abstract superclass
-- Added projectile class
-- Added FireProjectileAbility as a trait