60 lines
1.6 KiB
Haskell
60 lines
1.6 KiB
Haskell
{-# LANGUAGE LambdaCase #-}
|
|
module Dodge.Item.AimStance (aStance) where
|
|
|
|
import Dodge.Data.Item
|
|
--import Dodge.Data.ComposedItem
|
|
--import Dodge.Data.DoubleTree
|
|
import Control.Lens
|
|
import Dodge.Data.AimStance
|
|
|
|
--aStance :: LocationLDT ItemLink ComposedItem -> AimStance
|
|
--aStance loc = case loc ^. locLDT . ldtValue . _1 . itType of
|
|
aStance :: Item -> AimStance
|
|
aStance itm = case itm ^. itType of
|
|
HELD hit -> heldAimStance hit
|
|
_ -> OneHand
|
|
|
|
heldAimStance :: HeldItemType -> AimStance
|
|
heldAimStance = \case
|
|
BANGSTICK{} -> OneHand
|
|
REWINDER -> OneHand
|
|
TIMESTOPPER -> OneHand
|
|
TIMESCROLLER -> OneHand
|
|
PISTOL -> OneHand
|
|
MACHINEPISTOL -> OneHand
|
|
AUTOPISTOL -> OneHand
|
|
SMG -> TwoHandUnder
|
|
BANGCONE -> OneHand
|
|
BLUNDERBUSS -> TwoHandUnder
|
|
GRAPECANNON{} -> TwoHandUnder
|
|
MINIGUNX{} -> TwoHandUnder
|
|
VOLLEYGUN{} -> TwoHandFlat
|
|
RIFLE -> TwoHandUnder
|
|
ALTERIFLE -> TwoHandUnder
|
|
AUTORIFLE -> TwoHandUnder
|
|
BURSTRIFLE -> TwoHandUnder
|
|
BANGROD -> TwoHandUnder
|
|
ELEPHANTGUN -> TwoHandUnder
|
|
AMR -> TwoHandUnder
|
|
AUTOAMR -> TwoHandUnder
|
|
SNIPERRIFLE -> TwoHandUnder
|
|
FLAMESPITTER -> OneHand
|
|
FLAMETHROWER -> TwoHandUnder
|
|
FLAMETORRENT -> TwoHandUnder
|
|
FLAMEWALL -> TwoHandUnder
|
|
BLOWTORCH -> TwoHandUnder
|
|
SPARKGUN -> TwoHandFlat
|
|
TESLAGUN -> TwoHandFlat
|
|
LASER -> TwoHandFlat
|
|
TRACTORGUN -> TwoHandUnder
|
|
RLAUNCHER -> TwoHandOver
|
|
RLAUNCHERX{} -> TwoHandOver
|
|
GLAUNCHER -> TwoHandUnder
|
|
POISONSPRAYER -> TwoHandUnder
|
|
SHATTERGUN -> TwoHandUnder
|
|
TORCH -> OneHand
|
|
FLATSHIELD -> TwoHandFlat
|
|
KEYCARD {} -> OneHand
|
|
BLINKER -> OneHand
|
|
BLINKERUNSAFE -> OneHand
|