Add whirdown for machine pistol
This commit is contained in:
Binary file not shown.
@@ -3,6 +3,7 @@ module Dodge.Creature.State (
|
|||||||
doDamage,
|
doDamage,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
import Dodge.Item.UseDelay
|
||||||
import Control.Applicative
|
import Control.Applicative
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
@@ -163,9 +164,19 @@ invItemLocUpdate cr loc w = doAnyEquipmentEffect loc cr $ case itm ^. itType of
|
|||||||
w & pointerToItem itm . itParams . wTime
|
w & pointerToItem itm . itParams . wTime
|
||||||
%~ (max 0 . subtract 1)
|
%~ (max 0 . subtract 1)
|
||||||
HELD MACHINEPISTOL{}
|
HELD MACHINEPISTOL{}
|
||||||
|
| fromMaybe 0 (itm ^? itParams . wTime) >= _coolEnd (useDelay itm) ->
|
||||||
|
w & pointerToItem itm . itParams . wTime
|
||||||
|
.~ 0
|
||||||
|
| fromMaybe 0 (itm ^? itParams . wTime) >= _coolStart (useDelay itm) ->
|
||||||
|
w
|
||||||
|
& pointerToItem itm . itParams . wTime +~ 1
|
||||||
|
& soundContinue (CrWeaponSound (_crID cr) (fromIntegral $ _itID itm)) (_crPos cr) whirdownS (Just 1)
|
||||||
| itm ^? itParams . isWarming == Just True ->
|
| itm ^? itParams . isWarming == Just True ->
|
||||||
w
|
w
|
||||||
& pointerToItem itm . itParams . isWarming .~ False
|
& pointerToItem itm . itParams . isWarming .~ False
|
||||||
|
| fromMaybe 0 (itm ^? itParams . wTime) >= _warmStart (useDelay itm) ->
|
||||||
|
w & pointerToItem itm . itParams . wTime
|
||||||
|
.~ _coolStart (useDelay itm)
|
||||||
| otherwise ->
|
| otherwise ->
|
||||||
w & pointerToItem itm . itParams . wTime
|
w & pointerToItem itm . itParams . wTime
|
||||||
.~ 0
|
.~ 0
|
||||||
|
|||||||
@@ -14,7 +14,11 @@ data ItemUseDelay -- should just be Delay
|
|||||||
}
|
}
|
||||||
| WarmUpNoDelay
|
| WarmUpNoDelay
|
||||||
{ _warmMax :: Int
|
{ _warmMax :: Int
|
||||||
-- , _warmSound :: SoundID
|
}
|
||||||
|
| WarmUpCoolDown
|
||||||
|
{ _warmStart :: Int
|
||||||
|
, _coolStart :: Int
|
||||||
|
, _coolEnd :: Int
|
||||||
}
|
}
|
||||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||||
|
|
||||||
|
|||||||
+10
-1
@@ -111,6 +111,15 @@ useTimeCheck f item cr w = case useDelay $ item ^. ldtValue of
|
|||||||
& soundContinue (CrWeaponSound cid 0) (_crPos cr) (warmupSound $ item ^. ldtValue . itType) (Just 2)
|
& soundContinue (CrWeaponSound cid 0) (_crPos cr) (warmupSound $ item ^. ldtValue . itType) (Just 2)
|
||||||
& cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . wTime +~ 1
|
& cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . wTime +~ 1
|
||||||
WarmUpNoDelay {} -> f item cr w & setwarming
|
WarmUpNoDelay {} -> f item cr w & setwarming
|
||||||
|
WarmUpCoolDown ws _ _
|
||||||
|
| _wTime (_itParams $ _ldtValue item) < ws ->
|
||||||
|
w & setwarming
|
||||||
|
& soundContinue (CrWeaponSound cid 0) (_crPos cr) (warmupSound $ item ^. ldtValue . itType) (Just 2)
|
||||||
|
& cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . wTime +~ 1
|
||||||
|
WarmUpCoolDown _ cs _
|
||||||
|
| _wTime (_itParams $ _ldtValue item) < cs -> f item cr w & setwarming
|
||||||
|
& cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . wTime +~ 1
|
||||||
|
WarmUpCoolDown {} -> w & setwarming
|
||||||
NoDelay -> f item cr w
|
NoDelay -> f item cr w
|
||||||
where
|
where
|
||||||
lastused = item ^. ldtValue . itTimeLastUsed
|
lastused = item ^. ldtValue . itTimeLastUsed
|
||||||
@@ -165,7 +174,7 @@ heldItemMuzzles = \case
|
|||||||
& ix (i `div` 2) . mzFlareType .~ BasicFlare
|
& ix (i `div` 2) . mzFlareType .~ BasicFlare
|
||||||
& ix (i -1) . mzFlareType .~ NoLightFlare
|
& ix (i -1) . mzFlareType .~ NoLightFlare
|
||||||
PISTOL -> [Muzzle (V2 10 0) 0 0.05 0 BasicFlare MuzzleShootBullet (UseExactly 1)]
|
PISTOL -> [Muzzle (V2 10 0) 0 0.05 0 BasicFlare MuzzleShootBullet (UseExactly 1)]
|
||||||
MACHINEPISTOL -> [Muzzle (V2 10 0) 0 0.15 0 MiniGunFlare MuzzleShootBullet (UseExactly 1)]
|
MACHINEPISTOL -> [Muzzle (V2 10 0) 0 0.3 0 MiniGunFlare MuzzleShootBullet (UseExactly 1)]
|
||||||
AUTOPISTOL -> [Muzzle (V2 10 0) 0 0 0 BasicFlare MuzzleShootBullet (UseExactly 1)]
|
AUTOPISTOL -> [Muzzle (V2 10 0) 0 0 0 BasicFlare MuzzleShootBullet (UseExactly 1)]
|
||||||
SMG -> [Muzzle (V2 20 0) 0 0.05 0 BasicFlare MuzzleShootBullet (UseExactly 1)]
|
SMG -> [Muzzle (V2 20 0) 0 0.05 0 BasicFlare MuzzleShootBullet (UseExactly 1)]
|
||||||
RIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0
|
RIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ heldUseDelay = \case
|
|||||||
PISTOL -> FixedRate 6
|
PISTOL -> FixedRate 6
|
||||||
AUTOPISTOL -> FixedRate 8
|
AUTOPISTOL -> FixedRate 8
|
||||||
SMG -> FixedRate 8
|
SMG -> FixedRate 8
|
||||||
MACHINEPISTOL -> WarmUpNoDelay 50
|
MACHINEPISTOL -> WarmUpCoolDown 50 100 200
|
||||||
BURSTRIFLE -> FixedRate 8 -- time last used gets updated after the last burst fire
|
BURSTRIFLE -> FixedRate 8 -- time last used gets updated after the last burst fire
|
||||||
BANGCONE -> FixedRate 20
|
BANGCONE -> FixedRate 20
|
||||||
BLUNDERBUSS -> FixedRate 20
|
BLUNDERBUSS -> FixedRate 20
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- generated at 2025-06-26 00:05:44.195128752 UTC
|
-- generated at 2025-06-26 00:25:02.708688263 UTC
|
||||||
module Dodge.SoundLogic.ExternallyGeneratedSounds where
|
module Dodge.SoundLogic.ExternallyGeneratedSounds where
|
||||||
import Sound.Data
|
import Sound.Data
|
||||||
soundToVol :: SoundID -> Float
|
soundToVol :: SoundID -> Float
|
||||||
@@ -130,9 +130,10 @@ soundToVol v = case _getSoundID v of
|
|||||||
124 -> 1000
|
124 -> 1000
|
||||||
125 -> 2000
|
125 -> 2000
|
||||||
126 -> 2000
|
126 -> 2000
|
||||||
127 -> 200
|
127 -> 250
|
||||||
128 -> 100
|
128 -> 200
|
||||||
129 -> 200
|
129 -> 100
|
||||||
|
130 -> 200
|
||||||
_ -> 50
|
_ -> 50
|
||||||
soundToOnomato :: SoundID -> String
|
soundToOnomato :: SoundID -> String
|
||||||
soundToOnomato v = case _getSoundID v of
|
soundToOnomato v = case _getSoundID v of
|
||||||
@@ -263,9 +264,10 @@ soundToOnomato v = case _getSoundID v of
|
|||||||
124 -> "BWMP"
|
124 -> "BWMP"
|
||||||
125 -> "BRPBRPBRP"
|
125 -> "BRPBRPBRP"
|
||||||
126 -> "WE-OH"
|
126 -> "WE-OH"
|
||||||
127 -> "THCK"
|
127 -> "WHRHH"
|
||||||
128 -> "FHP"
|
128 -> "THCK"
|
||||||
129 -> "QWLPH"
|
129 -> "FHP"
|
||||||
|
130 -> "QWLPH"
|
||||||
_ -> error "unitialised sound"
|
_ -> error "unitialised sound"
|
||||||
soundPathList :: [String]
|
soundPathList :: [String]
|
||||||
soundPathList =
|
soundPathList =
|
||||||
@@ -396,6 +398,7 @@ soundPathList =
|
|||||||
, "sawtoothFail.BWMP.1000.wav"
|
, "sawtoothFail.BWMP.1000.wav"
|
||||||
, "mini.BRPBRPBRP.2000.wav"
|
, "mini.BRPBRPBRP.2000.wav"
|
||||||
, "seagullWhistle.WE-OH.2000.wav"
|
, "seagullWhistle.WE-OH.2000.wav"
|
||||||
|
, "whirdown.WHRHH.250.wav"
|
||||||
, "connectItem.THCK.200.wav"
|
, "connectItem.THCK.200.wav"
|
||||||
, "whiteNoiseFadeIn.FHP.100.wav"
|
, "whiteNoiseFadeIn.FHP.100.wav"
|
||||||
, "gut1.QWLPH.200.wav"
|
, "gut1.QWLPH.200.wav"
|
||||||
@@ -654,9 +657,11 @@ miniS :: SoundID
|
|||||||
miniS = SoundID 125
|
miniS = SoundID 125
|
||||||
seagullWhistleS :: SoundID
|
seagullWhistleS :: SoundID
|
||||||
seagullWhistleS = SoundID 126
|
seagullWhistleS = SoundID 126
|
||||||
|
whirdownS :: SoundID
|
||||||
|
whirdownS = SoundID 127
|
||||||
connectItemS :: SoundID
|
connectItemS :: SoundID
|
||||||
connectItemS = SoundID 127
|
connectItemS = SoundID 128
|
||||||
whiteNoiseFadeInS :: SoundID
|
whiteNoiseFadeInS :: SoundID
|
||||||
whiteNoiseFadeInS = SoundID 128
|
whiteNoiseFadeInS = SoundID 129
|
||||||
gut1S :: SoundID
|
gut1S :: SoundID
|
||||||
gut1S = SoundID 129
|
gut1S = SoundID 130
|
||||||
|
|||||||
Reference in New Issue
Block a user