@startuml GameLogic state "GameLogic State" as GameJamDungeon_GameLogic_State { state "GameStarted" as GameJamDungeon_GameLogic_State_GameStarted state "Playing" as GameJamDungeon_GameLogic_State_Playing { state "AskForTeleport" as GameJamDungeon_GameLogic_State_AskForTeleport state "FloorClearedDecisionState" as GameJamDungeon_GameLogic_State_FloorClearedDecisionState state "InventoryOpened" as GameJamDungeon_GameLogic_State_InventoryOpened state "MinimapOpen" as GameJamDungeon_GameLogic_State_MinimapOpen state "Paused" as GameJamDungeon_GameLogic_State_Paused state "Resuming" as GameJamDungeon_GameLogic_State_Resuming } state "Quit" as GameJamDungeon_GameLogic_State_Quit } GameJamDungeon_GameLogic_State_AskForTeleport --> GameJamDungeon_GameLogic_State_FloorClearedDecisionState : FloorExitReached GameJamDungeon_GameLogic_State_AskForTeleport --> GameJamDungeon_GameLogic_State_Playing : HideAskForTeleport GameJamDungeon_GameLogic_State_FloorClearedDecisionState --> GameJamDungeon_GameLogic_State_FloorClearedDecisionState : GoToNextFloor GameJamDungeon_GameLogic_State_FloorClearedDecisionState --> GameJamDungeon_GameLogic_State_Playing : HideFloorClearMenu GameJamDungeon_GameLogic_State_GameStarted --> GameJamDungeon_GameLogic_State_Playing : Initialize GameJamDungeon_GameLogic_State_InventoryOpened --> GameJamDungeon_GameLogic_State_Playing : CloseInventory GameJamDungeon_GameLogic_State_MinimapOpen --> GameJamDungeon_GameLogic_State_Playing : MiniMapButtonReleased GameJamDungeon_GameLogic_State_Paused --> GameJamDungeon_GameLogic_State_Resuming : UnpauseGame GameJamDungeon_GameLogic_State_Playing --> GameJamDungeon_GameLogic_State_AskForTeleport : AskForTeleport GameJamDungeon_GameLogic_State_Playing --> GameJamDungeon_GameLogic_State_InventoryOpened : OpenInventory GameJamDungeon_GameLogic_State_Playing --> GameJamDungeon_GameLogic_State_MinimapOpen : MiniMapButtonPressed GameJamDungeon_GameLogic_State_Playing --> GameJamDungeon_GameLogic_State_Paused : PauseGame GameJamDungeon_GameLogic_State_Playing --> GameJamDungeon_GameLogic_State_Playing : GoToOverworld GameJamDungeon_GameLogic_State_Playing --> GameJamDungeon_GameLogic_State_Quit : GameOver GameJamDungeon_GameLogic_State_Resuming --> GameJamDungeon_GameLogic_State_Playing : PauseMenuTransitioned GameJamDungeon_GameLogic_State : OnIsPaused() → SetPauseMode GameJamDungeon_GameLogic_State_FloorClearedDecisionState : OnGoToNextFloor → LoadNextFloor GameJamDungeon_GameLogic_State_GameStarted : OnInitialize → StartGame GameJamDungeon_GameLogic_State_InventoryOpened : OnEnter → OpenInventory GameJamDungeon_GameLogic_State_InventoryOpened : OnExit → HideInventory GameJamDungeon_GameLogic_State_MinimapOpen : OnEnter → ShowMiniMap GameJamDungeon_GameLogic_State_MinimapOpen : OnExit → HideMiniMap GameJamDungeon_GameLogic_State_Paused : OnEnter → ShowPauseMenu GameJamDungeon_GameLogic_State_Paused : OnExit → ExitPauseMenu GameJamDungeon_GameLogic_State_Playing : OnGoToOverworld → GoToOverworld GameJamDungeon_GameLogic_State_Quit : OnEnter → ShowLostScreen GameJamDungeon_GameLogic_State_Resuming : OnExit → HidePauseMenu [*] --> GameJamDungeon_GameLogic_State_GameStarted @enduml