Files
loop/src/Dodge/Annotation/Data.hs
T
2021-11-21 23:27:14 +00:00

27 lines
643 B
Haskell

{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Annotation.Data where
import Dodge.Data
import Dodge.Room
import Data.Tree
import Control.Monad.State
import Control.Lens
data Annotation g
= Lock Int
| Key Int
| Corridor
| AirlockAno
| FirstWeapon
| EndRoom
| OrAno [[Annotation g]]
| SpecificRoom (State g (Tree (Either Room Room)))
| BossAno Creature
| TreasureAno [Creature] [Item]
| AnoApplyInt Int (Int -> State g (Tree (Either Room Room)))
| SetLabel Int (State g Room)
| UseLabel Int (State g Room)
| ChainAnos [[Annotation g]]
makeLenses ''Annotation