{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Item.Attachment.Data
    where
import Geometry.Data

import Control.Lens
import qualified Data.Sequence as Seq

data ItAttachment 
    = ItScope 
        {_scopePos        :: Point2 -- ^ a camera offset
        ,_scopeZoomChange :: Int
        ,_scopeZoom       :: Float 
        ,_scopeIsCamera   :: Bool   -- ^ if the camera offset is also the center of vision
        }
    | ItFuse {_itFuseTime :: Int}
    | ItMode {_itMode :: Int}
    | ItCharMode {_itCharMode :: Seq.Seq Char }
    | ItTargetPos { _itTargetPos :: Point2 }
    | ItInt { _itInt :: Int }
    | NoItAttachment

makeLenses ''ItAttachment
