Refactored Player to be a member of MainGameState that is passed around, rather than a globally-accessible static singleton.