,----------------------------. |CustomerData | |----------------------------| |+String Name | ,----------------------. ,---------------------------. ,-------------------. ,----. ,-------. |+Int SpawnTime | |EventBus | |Utils | |IGameEventProcessor| |Game| |Program| |+Char StartPlatform | |----------------------| |---------------------------| |-------------------| |----| |-------| |+Char EndPlatform | |-GameEventBus eventBus| |+GetLevelFilePath() | `-------------------' | | | | |+Bool IsNextLevel | |{static} GetBus() | |+CreateStrideFromFilename()| | `----' `-------' |+Int DropOffTime | `----------------------' `---------------------------' | |+Int PointsForDelivery | | |+(Float,Float) SpawnPosition| | `----------------------------' | | ,--------------------------------. | |Player | | ,-----------------------. |--------------------------------| ,------. |StateMachine | |+Entity Entity | |GameUI| |-----------------------| |+DynamicShape PlayerDynamicShape| |------| |+IGameState ActiveState| |+ApplyGravity() | | | |+SwitchState() | |+LandPlayer() | `------' `-----------------------' |+Move() | `--------------------------------' ,-------------. |GameStateType| ,---------------------------------. |-------------| |StateTransformer | |GameRunning, | |---------------------------------| |GamePaused, | |{static} TransformStringToState()|--|MainMenu, | |{static} TransformStateToString()| |ChooseLevel, | `---------------------------------' |GameOver | `-------------' ,----------. |IGameState| |----------| `----------' | ,-----------. ,--------. ,----------. ,-----------. ,--------. |ChooseLevel| |GameOver| |GamePaused| |GameRunning| |MainMenu| |-----------| |--------| |----------| |-----------| |--------| | | | | | | |+SetLevel()| | | `-----------' `--------' `----------' `-----------' `--------' ,------------------------------. |Level | ,----------------------. |------------------------------| |LevelController | |+Dictionary ImageDictionary | ,------. |----------------------| |+List Platforms | |Entity| |{static} GetInstance()| |+List Customers | |------| |+GetLevelNames() | |+Obstacles | | | |+GetLevelFileNames() | |+List PlatformNamesText | `------' |+SwitchLevel() | |+AnimationContainer explosions| | |+NextLevel() | |+Player Player | | `----------------------' |+InitializeLevel() | | |+EndGame() | | `------------------------------' | | | | | ,--------------------------. | ,----------------------. | |Customer | | |Reader | | |--------------------------| | |----------------------| ,------------------. |+CustomerData customerData| ,--------------. |+String Name | |Platform | |+FlipDirection() | |LevelCreator | |+List Platforms | |------------------| |+MoveAroundPlatform() | |--------------|---|+Char[,] MapData | |+char PlatformChar| |+MoveTowardsPlayer() | |+CreateLevel()| |+Dictionary LegendData| `------------------' |+PickUp() | `--------------' |+List CustomerData | |+DropOff() | |+ReadFile() | |+ShouldDespawn() | `----------------------' `--------------------------'