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