Add GameMode enum and PlayerGameModeChangeEvent

I will correct this.