This commit is contained in:
2022-07-27 12:49:23 +01:00
parent 6554d219dc
commit 8d17ce66e9
106 changed files with 2911 additions and 2678 deletions
+20 -19
View File
@@ -1,4 +1,3 @@
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
@@ -8,16 +7,18 @@ module Dodge.Data.Item.Use (
module Dodge.Data.Item.HeldUse,
module Dodge.Data.Item.HeldScroll,
module Dodge.Data.Item.UseDelay,
module Dodge.Data.Item.Use.Consumption,
) where
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
import Dodge.Data.Hammer
import Dodge.Data.Item.HeldScroll
import Dodge.Data.Item.HeldUse
import Dodge.Data.Item.Use.Consumption
import Dodge.Data.Item.Use.Equipment
import Dodge.Data.Item.UseDelay
import GHC.Generics
data ItemUse
= RightUse
@@ -27,24 +28,26 @@ data ItemUse
, _useHammer :: HammerPosition
, _useAim :: AimParams
, _heldScroll :: HeldScroll
, _heldConsumption :: HeldConsumption
}
| LeftUse
{ _lUse :: Luse
, _useDelay :: UseDelay
, _useHammer :: HammerPosition
, _eqEq :: Equipment
, _leftConsumption :: LeftConsumption
}
| ConsumeUse
{ _cUse :: Cuse
, _useAmount :: ItAmount
}
| EquipUse
{ _eqEq :: Equipment
}
| NoUse
deriving (Eq, Ord, Show, Read, Generic)
instance ToJSON ItemUse where
toEncoding = genericToEncoding defaultOptions
instance FromJSON ItemUse
| CraftUse
{_useAmount :: ItAmount}
deriving (Eq, Show, Read)
data AimParams = AimParams
{ _aimWeight :: Int
, _aimRange :: Float
@@ -53,28 +56,26 @@ data AimParams = AimParams
, _aimHandlePos :: Float
, _aimMuzPos :: Float
}
deriving (Eq, Ord, Show, Read, Generic)
instance ToJSON AimParams where
toEncoding = genericToEncoding defaultOptions
instance FromJSON AimParams
deriving (Eq, Ord, Show, Read)
data AimStance
= TwoHandTwist
| TwoHandFlat
| OneHand
| LeaveHolstered
deriving (Eq, Show, Ord, Enum, Read, Generic)
instance ToJSON AimStance where
toEncoding = genericToEncoding defaultOptions
instance FromJSON AimStance
deriving (Eq, Show, Ord, Enum, Read)
data ItZoom = ItZoom
{ _itZoomMax :: Float
, _itZoomMin :: Float
, _itZoomFac :: Float
}
deriving (Eq, Ord, Show, Read, Generic)
instance ToJSON ItZoom where
toEncoding = genericToEncoding defaultOptions
instance FromJSON ItZoom
deriving (Eq, Ord, Show, Read)
makeLenses ''ItemUse
makeLenses ''AimParams
makeLenses ''ItZoom
deriveJSON defaultOptions ''ItemUse
deriveJSON defaultOptions ''AimParams
deriveJSON defaultOptions ''AimStance
deriveJSON defaultOptions ''ItZoom