LambdaHack- A game engine library for roguelike dungeon crawlers

Safe HaskellNone



Screen frames and animations.



data SingleFrame Source

The data sufficent to draw a single game screen frame.




sfLevel :: ![ScreenLine]

screen, from top to bottom, line by line

sfTop :: !Overlay

some extra lines to show over the top

sfBottom :: ![ScreenLine]

some extra lines to show at the bottom

sfBlank :: !Bool

display only sfTop, on blank screen

overlayOverlay :: SingleFrame -> SingleFrame Source

Overlays the sfTop and sfBottom fields onto the sfLevel field. The resulting frame has empty sfTop and sfBottom. To be used by simple frontends that don't display overlays in separate windowspanesscrolled views.

data Animation Source

Animation is a list of frame modifications to play one by one, where each modification if a map from positions to level map symbols.

type Frames = [Maybe SingleFrame] Source

Sequences of screen frames, including delays.

renderAnim :: X -> Y -> SingleFrame -> Animation -> Frames Source

Render animations on top of a screen frame.

twirlSplash :: (Point, Point) -> Color -> Color -> Animation Source

Attack animation. A part of it also reused for self-damage and healing.

blockHit :: (Point, Point) -> Color -> Color -> Animation Source

Attack that hits through a block.

blockMiss :: (Point, Point) -> Animation Source

Attack that is blocked.

deathBody :: Point -> Animation Source

Death animation for an organic body.

actorX :: Point -> Char -> Color -> Animation Source

Mark actor location animation.

swapPlaces :: (Point, Point) -> Animation Source

Swap-places animation, both hostile and friendly.

fadeout :: Bool -> Bool -> Int -> X -> Y -> Rnd Animation Source