Files
loop/src/Dodge/Item/AimStance.hs
T

65 lines
1.8 KiB
Haskell

{-# LANGUAGE LambdaCase #-}
module Dodge.Item.AimStance (aimStance,itemBaseStance) where
import Dodge.Data.Item
import Dodge.Data.ComposedItem
import Dodge.Data.DoubleTree
import Control.Lens
import Dodge.Data.AimStance
--aStance :: LocationLDT ItemLink CItem -> AimStance
--aStance loc = case loc ^. locLDT . ldtValue . _1 . itType of
--
aimStance :: LDTree ItemLink CItem -> AimStance
aimStance ldt = itemBaseStance $ ldt ^. ldtValue . _1
itemBaseStance :: Item -> AimStance
itemBaseStance 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