14 lines
444 B
Haskell
14 lines
444 B
Haskell
module Dodge.WorldEffect where
|
|
import Dodge.Data
|
|
import Dodge.Placement.Instance.Terminal
|
|
|
|
import Control.Lens
|
|
|
|
doWorldEffect :: WorldEffect -> World -> World
|
|
doWorldEffect we = case we of
|
|
NoWorldEffect -> id
|
|
SetTrigger bool tid -> triggers . ix tid .~ bool
|
|
SetLSCol col lsid -> lightSources . ix lsid . lsParam . lsCol .~ col
|
|
AccessTerminal mtmid -> accessTerminal mtmid
|
|
WorldEffects wes -> \w -> foldr doWorldEffect w wes
|