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