@startuml GameLogic state "GameLogic State" as Zennysoft_Game_Ma_GameLogic_State { state "MenuBackdrop" as Zennysoft_Game_Ma_GameLogic_State_MenuBackdrop state "Playing" as Zennysoft_Game_Ma_GameLogic_State_Playing { state "AskForTeleport" as Zennysoft_Game_Ma_GameLogic_State_AskForTeleport state "FloorClearedDecisionState" as Zennysoft_Game_Ma_GameLogic_State_FloorClearedDecisionState state "InventoryOpened" as Zennysoft_Game_Ma_GameLogic_State_InventoryOpened state "MinimapOpen" as Zennysoft_Game_Ma_GameLogic_State_MinimapOpen state "Paused" as Zennysoft_Game_Ma_GameLogic_State_Paused state "Resuming" as Zennysoft_Game_Ma_GameLogic_State_Resuming } state "Quit" as Zennysoft_Game_Ma_GameLogic_State_Quit } Zennysoft_Game_Ma_GameLogic_State_AskForTeleport --> Zennysoft_Game_Ma_GameLogic_State_FloorClearedDecisionState : FloorExitReached Zennysoft_Game_Ma_GameLogic_State_AskForTeleport --> Zennysoft_Game_Ma_GameLogic_State_Playing : HideAskForTeleport Zennysoft_Game_Ma_GameLogic_State_FloorClearedDecisionState --> Zennysoft_Game_Ma_GameLogic_State_FloorClearedDecisionState : GoToNextFloor Zennysoft_Game_Ma_GameLogic_State_FloorClearedDecisionState --> Zennysoft_Game_Ma_GameLogic_State_Playing : HideFloorClearMenu Zennysoft_Game_Ma_GameLogic_State_FloorClearedDecisionState --> Zennysoft_Game_Ma_GameLogic_State_Playing : SaveGame Zennysoft_Game_Ma_GameLogic_State_InventoryOpened --> Zennysoft_Game_Ma_GameLogic_State_Playing : CloseInventory Zennysoft_Game_Ma_GameLogic_State_MenuBackdrop --> Zennysoft_Game_Ma_GameLogic_State_MenuBackdrop : Initialize Zennysoft_Game_Ma_GameLogic_State_MenuBackdrop --> Zennysoft_Game_Ma_GameLogic_State_Playing : StartGame Zennysoft_Game_Ma_GameLogic_State_MinimapOpen --> Zennysoft_Game_Ma_GameLogic_State_Playing : MiniMapButtonReleased Zennysoft_Game_Ma_GameLogic_State_Paused --> Zennysoft_Game_Ma_GameLogic_State_Resuming : UnpauseGame Zennysoft_Game_Ma_GameLogic_State_Playing --> Zennysoft_Game_Ma_GameLogic_State_AskForTeleport : AskForTeleport Zennysoft_Game_Ma_GameLogic_State_Playing --> Zennysoft_Game_Ma_GameLogic_State_InventoryOpened : OpenInventory Zennysoft_Game_Ma_GameLogic_State_Playing --> Zennysoft_Game_Ma_GameLogic_State_MinimapOpen : MiniMapButtonPressed Zennysoft_Game_Ma_GameLogic_State_Playing --> Zennysoft_Game_Ma_GameLogic_State_Paused : PauseGame Zennysoft_Game_Ma_GameLogic_State_Playing --> Zennysoft_Game_Ma_GameLogic_State_Playing : GoToOverworld Zennysoft_Game_Ma_GameLogic_State_Playing --> Zennysoft_Game_Ma_GameLogic_State_Quit : GameOver Zennysoft_Game_Ma_GameLogic_State_Resuming --> Zennysoft_Game_Ma_GameLogic_State_Playing : PauseMenuTransitioned Zennysoft_Game_Ma_GameLogic_State : OnIsPaused() → SetPauseMode Zennysoft_Game_Ma_GameLogic_State_FloorClearedDecisionState : OnGoToNextFloor → LoadNextFloor Zennysoft_Game_Ma_GameLogic_State_FloorClearedDecisionState : OnSaveGame → SaveGame Zennysoft_Game_Ma_GameLogic_State_InventoryOpened : OnEnter → OpenInventory Zennysoft_Game_Ma_GameLogic_State_InventoryOpened : OnExit → HideInventory Zennysoft_Game_Ma_GameLogic_State_MinimapOpen : OnEnter → ShowMiniMap Zennysoft_Game_Ma_GameLogic_State_MinimapOpen : OnExit → HideMiniMap Zennysoft_Game_Ma_GameLogic_State_Paused : OnEnter → ShowPauseMenu Zennysoft_Game_Ma_GameLogic_State_Paused : OnExit → ExitPauseMenu Zennysoft_Game_Ma_GameLogic_State_Playing : None → StartGame Zennysoft_Game_Ma_GameLogic_State_Playing : OnGoToOverworld → GoToOverworld Zennysoft_Game_Ma_GameLogic_State_Quit : OnEnter → ShowLostScreen Zennysoft_Game_Ma_GameLogic_State_Resuming : OnExit → HidePauseMenu [*] --> Zennysoft_Game_Ma_GameLogic_State_MenuBackdrop @enduml