public void OnEvent(Event evt) { switch (evt.Type) { case AudioEvent.PLAY_SOUND: { AudioEvent audioEvent = (AudioEvent)evt; audioPlayer.PlayEvent(audioEvent.ToString(), audioEvent.Volume); break; } case AudioEvent.STOP_SOUND: { AudioEvent audioEvent = (AudioEvent)evt; audioPlayer.StopEvent(audioEvent.ToString()); break; } case AudioEvent.PAUSE_SOUND: { AudioEvent audioEvent = (AudioEvent)evt; audioPlayer.PauseEvent(audioEvent.ToString()); break; } case NewEntityEvent.NEW_ENTITY: { NewEntityEvent newEntityEvent = (NewEntityEvent)evt; Entity entity = Game.World.Entities[newEntityEvent.EntityID]; if (entity.Type == "player") { OnAttach(entity); int lifes = playerEntity[HealthBehavior.Key_Lifes]; hud.Reset(lifes); } break; } case DestroyEntityEvent.DESTROY_ENTITY: { DestroyEntityEvent destroyEntityEvent = (DestroyEntityEvent)evt; Entity entity = Game.World.Entities[destroyEntityEvent.EntityID]; if (entity.Type == "player") { OnDetach(); } break; } case GameStateChangedEvent.GAME_STATE_CHANGED: { GameStateChangedEvent stateChangedEvent = (GameStateChangedEvent)evt; onGameStateChanged(stateChangedEvent.NewState); break; } } }