Add file
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
{-# LANGUAGE DeriveGeneric #-}
|
||||
{-# LANGUAGE DeriveAnyClass #-}
|
||||
{-# LANGUAGE StrictData #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
|
||||
module Dodge.Data.UseDelay where
|
||||
|
||||
import Sound.Data
|
||||
import Control.Lens
|
||||
|
||||
data ItemUseDelay -- should just be Delay
|
||||
= NoDelay
|
||||
| FixedRate
|
||||
{ _rateMax :: Int
|
||||
}
|
||||
| WarmUpNoDelay
|
||||
{ _warmMax :: Int
|
||||
, _warmSound :: SoundID
|
||||
}
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
makeLenses ''ItemUseDelay
|
||||
@@ -0,0 +1,61 @@
|
||||
{-# 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
|
||||
Reference in New Issue
Block a user