Refactored world runner.
[hollow-plutonium.git] / Alien.hs
blob96b0c73959622770d99ad49b968a169ee171ea0b
1 module Alien where
3 data Alien = Alien {
4 level :: Level,
5 memory :: ()
8 mkAlien :: Id -> Coord -> StdGen -> Level -> Piece
9 mkAlien id xy rng lv = thinkAlien rng al p where
10 p = Piece {
11 pieceId = id,
12 pieceType = Monster,
13 position = repeat xy,
14 graphics = repeat undefined,
15 operations = empty,
16 transfer = \p c -> p
19 thinkAlien :: StdGen -> Level -> () -> Piece -> Piece
20 thinkAlien rng lv mem p = p { transfer = state0 } where
21 state0 c = p { transfer = state1 }
22 state1 c = p { transfer = state0 }
23 state2 c = thinkAlien rng' lv mem (p { transfer = state' }) where
24 (coin, rng') = random rng
25 state' = if coin then state0 else state1