{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE StrictData #-} module Dodge.Creature.State.Data where --import Geometry import Geometry.Data import Color import Control.Lens import qualified Data.IntSet as IS data CreatureDropType = DropAll | DropAmount Int | DropSpecific [Int] data CrSpState = Barrel { _piercedPoints :: [Point2]} | GenCr deriving (Eq,Show,Ord) data Faction = GenericFaction Int | ZombieFaction | EncircleFlock | ChaseCritters | SpawnedBy Int | NoFaction | ColorFaction Color | PlayerFaction deriving (Eq,Show) data CrGroup = LoneWolf | Swarm { _swarm :: IS.IntSet , _crGroupID :: Int } | CrGroupID { _crGroupID :: Int } | ShieldGroup deriving (Eq, Show) makeLenses ''CrSpState