60 lines
1.6 KiB
Haskell
60 lines
1.6 KiB
Haskell
{-# LANGUAGE LambdaCase #-}
|
|
|
|
module Dodge.BaseTriggerType (
|
|
baseTriggerType,
|
|
module Dodge.Data.TriggerType,
|
|
) where
|
|
|
|
import Control.Lens
|
|
import Dodge.Data.Item
|
|
import Dodge.Data.TriggerType
|
|
|
|
baseTriggerType :: Item -> TriggerType
|
|
baseTriggerType itm = case itm ^. itType of
|
|
HELD hit -> heldTriggerType hit
|
|
_ -> NoTrigger
|
|
|
|
heldTriggerType :: HeldItemType -> TriggerType
|
|
heldTriggerType = \case
|
|
BANGSTICK{} -> HammerTrigger
|
|
REWINDER -> HammerTrigger
|
|
TIMESTOPPER -> HammerTrigger
|
|
TIMESCROLLER -> HammerTrigger
|
|
PISTOL -> HammerTrigger
|
|
MACHINEPISTOL -> AutoTrigger
|
|
AUTOPISTOL -> AutoTrigger
|
|
SMG -> AutoTrigger
|
|
BANGCONE -> HammerTrigger
|
|
BLUNDERBUSS -> HammerTrigger
|
|
GRAPECANNON{} -> HammerTrigger
|
|
MINIGUNX{} -> AutoTrigger
|
|
VOLLEYGUN i -> BurstTrigger [1 .. i-1]
|
|
RIFLE -> HammerTrigger
|
|
ALTERIFLE -> HammerTrigger
|
|
AUTORIFLE -> AutoTrigger
|
|
BURSTRIFLE -> BurstTrigger [3,6]
|
|
BANGROD -> HammerTrigger
|
|
ELEPHANTGUN -> HammerTrigger
|
|
AMR -> HammerTrigger
|
|
AUTOAMR -> AutoTrigger
|
|
SNIPERRIFLE -> HammerTrigger
|
|
FLAMESPITTER -> BurstTrigger [1..9]
|
|
FLAMETHROWER -> AutoTrigger
|
|
FLAMETORRENT -> AutoTrigger
|
|
FLAMEWALL -> AutoTrigger
|
|
BLOWTORCH -> AutoTrigger
|
|
SPARKGUN -> AutoTrigger
|
|
TESLAGUN -> AutoTrigger
|
|
LASER -> AutoTrigger
|
|
TRACTORGUN -> AutoTrigger
|
|
RLAUNCHER -> HammerTrigger
|
|
RLAUNCHERX{} -> HammerTrigger
|
|
GLAUNCHER -> HammerTrigger
|
|
POISONSPRAYER -> AutoTrigger
|
|
SHATTERGUN -> HammerTrigger
|
|
TORCH -> AutoTrigger
|
|
FLATSHIELD -> NoTrigger
|
|
KEYCARD{} -> NoTrigger
|
|
BLINKER -> AlwaysSingleTrigger
|
|
BLINKERUNSAFE -> AlwaysSingleTrigger
|