Jumpbacks and continue
This commit is contained in:
parent
dab6fadad4
commit
b7278d6afc
11 changed files with 59 additions and 44 deletions
|
@ -11,35 +11,37 @@ import RPGEngine.Render.Core ( Renderer )
|
|||
|
||||
-- A game is the base data container.
|
||||
data Game = Game {
|
||||
state :: State,
|
||||
levels :: [Level],
|
||||
player :: Player
|
||||
state :: State
|
||||
}
|
||||
|
||||
------------------------------- State --------------------------------
|
||||
|
||||
-- Code reusability
|
||||
data StateBase = StateBase {
|
||||
renderer :: Renderer Game,
|
||||
renderer :: Renderer State,
|
||||
inputHandler :: InputHandler Game
|
||||
}
|
||||
|
||||
-- Main menu
|
||||
data State = Menu { base :: StateBase }
|
||||
data State = Menu { base :: StateBase }
|
||||
-- Select the level you want to play
|
||||
| LevelSelection { base :: StateBase,
|
||||
levelList :: [FilePath],
|
||||
selector :: ListSelector }
|
||||
| LevelSelection { base :: StateBase,
|
||||
levelList :: [FilePath],
|
||||
selector :: ListSelector }
|
||||
-- Playing a level
|
||||
| Playing { base :: StateBase,
|
||||
level :: Level }
|
||||
| Playing { base :: StateBase,
|
||||
levels :: [Level],
|
||||
level :: Level,
|
||||
player :: Player,
|
||||
restart :: State }
|
||||
-- Paused while playing a level
|
||||
| Paused { base :: StateBase,
|
||||
level :: Level }
|
||||
| Paused { base :: StateBase,
|
||||
continue :: State }
|
||||
-- Won a level
|
||||
| Win { base :: StateBase }
|
||||
| Win { base :: StateBase }
|
||||
-- Lost a level
|
||||
| Lose { base :: StateBase }
|
||||
| Lose { base :: StateBase,
|
||||
restart :: State }
|
||||
|
||||
------------------------------- Level --------------------------------
|
||||
|
||||
|
|
Reference in a new issue