{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE StrictData #-} module Dodge.Creature.Stance.Data where import Geometry.Data import Control.Lens data Stance = Stance {_carriage :: Carriage ,_posture :: Posture ,_strideLength :: Int } deriving (Eq,Ord,Show,Read) data Carriage = Walking { _strideAmount :: Int , _currentFoot :: FootForward } | Standing | Floating | Flying | Boosting Point2 deriving (Eq,Ord,Show,Read) data FootForward = LeftForward | RightForward | WasLeftForward | WasRightForward deriving (Eq,Ord,Show,Read) data Posture = Aiming | AtEase deriving (Eq,Ord,Show,Read) makeLenses ''Stance makeLenses ''Carriage makeLenses ''Posture