62 lines
1.6 KiB
Haskell
62 lines
1.6 KiB
Haskell
{-# LANGUAGE LambdaCase #-}
|
|
|
|
module Dodge.Item.UseDelay
|
|
(useDelay
|
|
, module Dodge.Data.UseDelay
|
|
) where
|
|
|
|
import Dodge.Data.UseDelay
|
|
import Control.Lens
|
|
import Dodge.Data.Item
|
|
import Dodge.SoundLogic.ExternallyGeneratedSounds
|
|
|
|
useDelay :: Item -> ItemUseDelay
|
|
useDelay itm = case itm ^. itType of
|
|
HELD hit -> heldUseDelay hit
|
|
DETECTOR _ -> FixedRate 20
|
|
_ -> NoDelay
|
|
|
|
heldUseDelay :: HeldItemType -> ItemUseDelay
|
|
heldUseDelay = \case
|
|
BANGSTICK _ -> FixedRate 8
|
|
REWINDER -> FixedRate 20
|
|
TIMESTOPPER -> FixedRate 20
|
|
TIMESCROLLER -> FixedRate 20
|
|
PISTOL -> FixedRate 6
|
|
AUTOPISTOL -> FixedRate 8
|
|
SMG -> FixedRate 8
|
|
MACHINEPISTOL -> WarmUpNoDelay 50 crankSlowS
|
|
BURSTRIFLE -> FixedRate 15
|
|
BANGCONE -> FixedRate 20
|
|
BLUNDERBUSS -> FixedRate 20
|
|
GRAPECANNON _ -> FixedRate 20
|
|
MINIGUNX _ -> WarmUpNoDelay 100 crankSlowS
|
|
VOLLEYGUN{} -> FixedRate 15
|
|
RIFLE -> FixedRate 6
|
|
ALTERIFLE -> FixedRate 6
|
|
AUTORIFLE -> FixedRate 6
|
|
BANGROD -> FixedRate 12
|
|
ELEPHANTGUN -> FixedRate 12
|
|
AMR -> FixedRate 12
|
|
AUTOAMR -> FixedRate 12
|
|
SNIPERRIFLE -> FixedRate 12
|
|
FLAMESPITTER -> FixedRate 6
|
|
FLAMETHROWER -> NoDelay
|
|
FLAMETORRENT -> NoDelay
|
|
FLAMEWALL -> NoDelay
|
|
POISONSPRAYER -> NoDelay
|
|
BLOWTORCH -> NoDelay
|
|
SPARKGUN -> NoDelay
|
|
TESLAGUN -> NoDelay
|
|
LASER -> NoDelay
|
|
TRACTORGUN -> NoDelay
|
|
RLAUNCHER -> FixedRate 20
|
|
RLAUNCHERX{} -> FixedRate 20
|
|
GLAUNCHER -> FixedRate 20
|
|
SHATTERGUN -> FixedRate 20
|
|
BLINKER -> FixedRate 20
|
|
BLINKERUNSAFE -> FixedRate 20
|
|
TORCH -> NoDelay
|
|
FLATSHIELD -> NoDelay
|
|
KEYCARD _ -> NoDelay
|