Files
loop/src/Dodge/Data/ComposedItem.hs
T

73 lines
1.6 KiB
Haskell

{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.ComposedItem where
import Dodge.Data.AmmoType
import Control.Lens
import Dodge.Data.Item
import Linear
import qualified Linear.Quaternion as Q
data ItemLink
= AmmoInLink Int AmmoType
| TriggerLink
| AmmoModLink
| AmmoTargetingLink
| AmmoPayloadLink
| AmmoEffectLink
| WeaponScopeLink
| WeaponTargetingLink
| JoystickLink
| RemoteScreenLink
| RemoteDetonatorLink
| SmokeReducerLink
-- | AugmentedHUDLink
| FunctionChangeLink
| MakeAutoLink
| ProjectileStabiliserLink
| UnderBarrelSlotLink
| UnderBarrelPlatformLink
| GrenadeHitEffectLink
| SFLink {_sfLink :: ItemStructuralFunction}
deriving (Eq, Ord, Show, Read)
data ItemStructuralFunction
= UnloadedWeaponSF
| HeldPlatformSF
| UnderBarrelSlotSF
| UnderBarrelPlatformSF
| EquipmentPlatformSF
| GadgetPlatformSF
| WeaponScopeSF
| WeaponTargetingSF
| IntroScanSF
| TriggerSF
| ARHUDSF
| AmmoMagSF AmmoType
| RemoteScreenSF
| JoystickSF
| RemoteDetonatorSF
| SmokeReducerSF
| NoSF
| AmmoModifierSF AmmoType
| AmmoTargetingSF AmmoType
| AmmoPayloadSF AmmoType
| AmmoEffectSF AmmoType
| FunctionChangeSF
| MakeAutoSF
| ProjectileStabiliserSF
| GrenadeHitEffectSF
| ToggleSF
| MapperSF
| LaserWeaponSF
deriving (Eq, Ord, Show, Read)
type CItem = (Item, ItemStructuralFunction)
type OItem = (Item, ItemStructuralFunction, (V3 Float,Q.Quaternion Float))
makeLenses ''ItemLink