LambdaHack-0.5.0.0: A game engine library for roguelike dungeon crawlers

Game.LambdaHack.Common.Time

Description

Game time and speed.

Synopsis

# Documentation

data Time Source

Game time in ticks. The time dimension. One tick is 1 microsecond (one millionth of a second), one turn is 0.5 s.

Instances

 Bounded Time Enum Time Eq Time Ord Time Show Time Binary Time

Start of the game time, or zero lenght time interval.

At least once per clip all moves are resolved and a frame or a frame delay is generated. Currently one clip is 0.1 s, but it may change, and the code should not depend on this fixed value.

One turn is 0.5 s. The code may depend on that. Actors at normal speed (2 m/s) take one turn to move one tile (1 m by 1 m).

An infinitesimal time period.

Absolute time addition, e.g., for summing the total game session time from the times of individual games.

Absolute time negation. To be used for reversing time flow, e.g., for comparing absolute times in the reverse order.

timeFit :: Time -> Time -> Int Source

How many time intervals of the latter kind fits in an interval of the former kind.

How many time intervals of the latter kind cover an interval of the former kind (rounded up).

newtype Delta a Source

One-dimentional vectors. Introduced to tell apart the 2 uses of Time: as an absolute game time and as an increment.

Constructors

 Delta a

Instances

 Functor Delta Bounded a => Bounded (Delta a) Enum a => Enum (Delta a) Eq a => Eq (Delta a) Ord a => Ord (Delta a) Show a => Show (Delta a) Binary a => Binary (Delta a)

Shifting an absolute time by a time vector.

Time time vector between the second and the first absolute times. The arguments are in the same order as in the underlying scalar subtraction.

Time time vector between the second and the first absolute times. The arguments are in the same order as in the underlying scalar subtraction.

Reverse a time vector.

Scale the time vector by an `Int` scalar value.

Represent the main 10 thresholds of a time range by digits, given the total length of the time range.

The number of time ticks it takes to walk 1 meter at the given speed.

data Speed Source

Speed in meters per 1 million seconds (m/Ms). Actors at normal speed (2 m/s) take one time turn (0.5 s) to make one step (move one tile, which is 1 m by 1 m).

Instances

 Eq Speed Ord Speed Show Speed Binary Speed

Constructor for content definitions.

Pretty-printing of speed in the format used in content definitions.

No movement possible at that speed.

Normal speed (2 m/s) that suffices to move one tile in one turn.

Scale speed by an `Int` scalar value.

Divide a time vector.