Work on machine pistol

This commit is contained in:
2025-06-26 01:09:09 +01:00
parent 5b35b4c6c8
commit 7830b0e2c1
14 changed files with 432 additions and 394 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -138,7 +138,7 @@ inventoryX c = case c of
, smg
, tinMag
, machinePistol
, tinMag
, megaTinMag 10000
] <> fold
[ makeTypeCraftNum 4 MICROCHIP
, makeTypeCraftNum 2 TIN
+14 -3
View File
@@ -155,9 +155,20 @@ invItemLocUpdate cr loc w = doAnyEquipmentEffect loc cr $ case itm ^. itType of
EQUIP WRIST_ECG | haspulse -> tryUseParent loc w
COPIER _ -> copierItemUpdate itm cr w
HELD FLATSHIELD -> rootNotrootEff createShieldWall removeShieldWall itm cr w
HELD MINIGUNX{} ->
w & pointerToItem itm . itParams . wTime
%~ (max 0 . subtract 1)
HELD MINIGUNX{}
| itm ^? itParams . isWarming == Just True ->
w
& pointerToItem itm . itParams . isWarming .~ False
| otherwise ->
w & pointerToItem itm . itParams . wTime
%~ (max 0 . subtract 1)
HELD MACHINEPISTOL{}
| itm ^? itParams . isWarming == Just True ->
w
& pointerToItem itm . itParams . isWarming .~ False
| otherwise ->
w & pointerToItem itm . itParams . wTime
.~ 0
_ -> w
where
haspulse =
+8 -4
View File
@@ -1,5 +1,5 @@
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
@@ -13,15 +13,19 @@ import Dodge.Data.ArcStep
data ItemParams
= NoParams
| FlatShieldParams {_flatShieldWlMIX :: Maybe Int}
| Arcing { _currentArc :: [ArcStep]}
| Arcing {_currentArc :: [ArcStep]}
| NozzleAngle {_nzAngle :: Float}
| VolleyUnfiredBarrels {_unfiredBarrels :: [Int]}
| AlteRifleSwitch {_alteRifleSwitch :: Int}
| WarmTime {_wTime :: Int}
| WarmTime
{ _wTime :: Int
, _isWarming :: Bool
}
| ItemParamID {_itParamID :: Int}
data ShrinkGunStatus = FullSize | Shrunk
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
makeLenses ''ItemParams
deriveJSON defaultOptions ''ShrinkGunStatus
+1 -2
View File
@@ -5,7 +5,6 @@
module Dodge.Data.UseDelay where
import Sound.Data
import Control.Lens
data ItemUseDelay -- should just be Delay
@@ -15,7 +14,7 @@ data ItemUseDelay -- should just be Delay
}
| WarmUpNoDelay
{ _warmMax :: Int
, _warmSound :: SoundID
-- , _warmSound :: SoundID
}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
+27 -16
View File
@@ -98,38 +98,42 @@ hammerCheck f pt it cr
g x = (x, WdWdBurstFireRepetition (_crID cr) (it ^?! ldtValue . itLocation . ilInvID))
-- | Applies a world effect after an item use cooldown check.
-- input buffering?
useTimeCheck :: ChainEffect
useTimeCheck f item cr w = case useDelay $ item ^. ldtValue of
FixedRate rate
| w ^. cWorld . lWorld . lClock - rate > lastused -> f item cr $ setUseRate w
| w ^. cWorld . lWorld . lClock - rate > lastused -> f item cr w
-- note that the time last used must be updated later in the chain!
FixedRate{} -> w
WarmUpNoDelay wm ws
WarmUpNoDelay wm
| _wTime (_itParams $ _ldtValue item) < wm ->
w
& soundContinue (CrWeaponSound cid 0) (_crPos cr) ws (Just 2)
& cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . wTime +~ 2
WarmUpNoDelay wm _ ->
f item cr w
& cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . wTime .~ (wm + 1)
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
WarmUpNoDelay {} -> f item cr w & setwarming
NoDelay -> f item cr w
where
lastused = item ^. ldtValue . itTimeLastUsed
cid = _crID cr
setUseRate =
cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itTimeLastUsed
.~ w ^. cWorld . lWorld . lClock
setwarming =
cWorld . lWorld . creatures . ix cid . crInv . ix itRef . itParams . isWarming
%~ const True
-- the following is unsafe, but if ilInvID isn't correctly set we probably
-- will have problems elsewhere also
itRef = item ^?! ldtValue . itLocation . ilInvID
heldEffectMuzzles :: LabelDoubleTree CLinkType Item -> Creature -> World -> World
heldEffectMuzzles t cr w =
doHeldUseEffect t cr
setusetime . doHeldUseEffect t cr
. uncurry (applyCME (_ldtValue t) cr)
. foldl' (useLoadedAmmo t cr) (False, w)
$ loadedmuzzles
where
(_, loadedmuzzles) = mapAccumR loadMuzzle t . itemMuzzles $ t ^. ldtValue
setusetime =
cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itid . itTimeLastUsed
.~ w ^. cWorld . lWorld . lClock
itid = t ^?! ldtValue . itLocation . ilInvID
itemMuzzles :: Item -> [Muzzle]
@@ -161,8 +165,9 @@ heldItemMuzzles = \case
& ix (i `div` 2) . mzFlareType .~ BasicFlare
& ix (i -1) . mzFlareType .~ NoLightFlare
PISTOL -> [Muzzle (V2 10 0) 0 0.05 0 BasicFlare MuzzleShootBullet (UseExactly 1)]
AUTOPISTOL -> [Muzzle (V2 20 0) 0 0 0 BasicFlare MuzzleShootBullet (UseExactly 1)]
SMG -> [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)]
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)]
RIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0
BURSTRIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0 & ix 0 . mzInaccuracy .~ 0.05
MINIGUNX i ->
@@ -467,7 +472,7 @@ recoilAmount itm
TIMESTOPPER -> 0
TIMESCROLLER -> 0
PISTOL -> 10
MACHINEPISTOL -> 15
MACHINEPISTOL -> 5
AUTOPISTOL -> 10
SMG -> 10
BANGCONE -> 150
@@ -515,7 +520,7 @@ bgunSound itm
TIMESTOPPER -> Nothing
TIMESCROLLER -> Nothing
PISTOL -> Just (tap3S, 0)
MACHINEPISTOL -> Just (tap1S, 0)
MACHINEPISTOL -> Just (whirTapS, 2)
AUTOPISTOL -> Just (tap1S, 0)
SMG -> Just (tap1S, 0)
BANGCONE -> Just (bangEchoS, 0)
@@ -1370,6 +1375,12 @@ dropInventoryPath i ip loc cr = fromMaybe id $ do
-- guard $ (i + j) `IM.member` (cr ^. crInv)
-- return $ dropItem cr (i + j) w
warmupSound :: ItemType -> SoundID
warmupSound = \case
HELD MINIGUNX {} -> crankSlowS
HELD MACHINEPISTOL {} -> whirupS
_ -> crankSlowS
useInventoryPath ::
PressType ->
Int ->
+1 -1
View File
@@ -58,4 +58,4 @@ miniGunX i =
& itType .~ HELD (MINIGUNX i)
-- & itEffect . ieInv .~ ItemReduceWarmTime
-- & itEffect . ieOnDrop .~ ItemSetWarmTime 0
& itParams .~ WarmTime 0
& itParams .~ WarmTime 0 False
+1 -4
View File
@@ -52,11 +52,8 @@ autoPistol = pistol & itType .~ HELD AUTOPISTOL
machinePistol :: Item
machinePistol =
autoPistol
-- & itUse . heldDelay .~ WarmUpNoDelay{
-- --_warmTime = 0,
-- _warmMax = 50, _warmSound = crankSlowS}
& itType .~ HELD MACHINEPISTOL
& itParams .~ WarmTime 0
& itParams .~ WarmTime 0 False
smg :: Item
smg =
+3 -4
View File
@@ -8,7 +8,6 @@ module Dodge.Item.UseDelay
import Dodge.Data.UseDelay
import Control.Lens
import Dodge.Data.Item
import Dodge.SoundLogic.ExternallyGeneratedSounds
useDelay :: Item -> ItemUseDelay
useDelay itm = case itm ^. itType of
@@ -25,12 +24,12 @@ heldUseDelay = \case
PISTOL -> FixedRate 6
AUTOPISTOL -> FixedRate 8
SMG -> FixedRate 8
MACHINEPISTOL -> WarmUpNoDelay 50 crankSlowS
BURSTRIFLE -> FixedRate 15
MACHINEPISTOL -> WarmUpNoDelay 50
BURSTRIFLE -> FixedRate 8 -- time last used gets updated after the last burst fire
BANGCONE -> FixedRate 20
BLUNDERBUSS -> FixedRate 20
GRAPECANNON _ -> FixedRate 20
MINIGUNX _ -> WarmUpNoDelay 100 crankSlowS
MINIGUNX _ -> WarmUpNoDelay 100
VOLLEYGUN{} -> FixedRate 15
RIFLE -> FixedRate 6
ALTERIFLE -> FixedRate 6
+373 -358
View File
@@ -1,4 +1,4 @@
-- generated at 2025-06-22 21:26:57.684446959 UTC
-- generated at 2025-06-26 00:05:44.195128752 UTC
module Dodge.SoundLogic.ExternallyGeneratedSounds where
import Sound.Data
soundToVol :: SoundID -> Float
@@ -7,129 +7,132 @@ soundToVol v = case _getSoundID v of
1 -> 500
2 -> 500
3 -> 500
4 -> 2000
5 -> 500
6 -> 1000
7 -> 40
8 -> 100
4 -> 300
5 -> 2000
6 -> 500
7 -> 1000
8 -> 40
9 -> 100
10 -> 500
11 -> 200
12 -> 500
13 -> 300
14 -> 100
10 -> 100
11 -> 500
12 -> 200
13 -> 500
14 -> 300
15 -> 100
16 -> 500
17 -> 1000
18 -> 40
19 -> 2000
20 -> 100
21 -> 50
22 -> 200
23 -> 100
24 -> 50
25 -> 2000
26 -> 200
27 -> 40
28 -> 300
29 -> 500
30 -> 2000
16 -> 100
17 -> 500
18 -> 1000
19 -> 40
20 -> 2000
21 -> 100
22 -> 50
23 -> 200
24 -> 250
25 -> 100
26 -> 50
27 -> 2000
28 -> 200
29 -> 40
30 -> 300
31 -> 500
32 -> 100
33 -> 200
34 -> 1000
32 -> 2000
33 -> 500
34 -> 100
35 -> 200
36 -> 100
37 -> 100
38 -> 1000
39 -> 200
36 -> 1000
37 -> 200
38 -> 100
39 -> 100
40 -> 1000
41 -> 500
42 -> 40
43 -> 400
44 -> 2000
45 -> 100
46 -> 300
47 -> 50
48 -> 2000
41 -> 200
42 -> 1000
43 -> 500
44 -> 40
45 -> 400
46 -> 2000
47 -> 100
48 -> 300
49 -> 50
50 -> 500
51 -> 1000
52 -> 8000
53 -> 2000
54 -> 2000
55 -> 1000
56 -> 200
57 -> 2000
58 -> 100
59 -> 100
60 -> 40
50 -> 2000
51 -> 50
52 -> 500
53 -> 1000
54 -> 8000
55 -> 2000
56 -> 2000
57 -> 1000
58 -> 200
59 -> 2000
60 -> 100
61 -> 100
62 -> 40
63 -> 2000
64 -> 100
65 -> 500
66 -> 40
67 -> 100
68 -> 300
69 -> 300
70 -> 100
71 -> 2000
72 -> 1000
73 -> 1000
63 -> 100
64 -> 40
65 -> 2000
66 -> 100
67 -> 500
68 -> 40
69 -> 100
70 -> 300
71 -> 300
72 -> 100
73 -> 2000
74 -> 1000
75 -> 100
76 -> 100
77 -> 1000
78 -> 1000
79 -> 40
80 -> 50
81 -> 1000
82 -> 500
83 -> 500
84 -> 100
85 -> 100
86 -> 1000
87 -> 20
88 -> 500
89 -> 300
90 -> 200
91 -> 500
92 -> 1000
93 -> 200
75 -> 1000
76 -> 1000
77 -> 100
78 -> 100
79 -> 1000
80 -> 1000
81 -> 40
82 -> 50
83 -> 1000
84 -> 500
85 -> 500
86 -> 100
87 -> 100
88 -> 1000
89 -> 20
90 -> 500
91 -> 300
92 -> 200
93 -> 500
94 -> 1000
95 -> 2000
96 -> 500
97 -> 200
98 -> 100
99 -> 1000
100 -> 300
101 -> 2000
102 -> 2000
103 -> 100
104 -> 500
105 -> 2000
95 -> 200
96 -> 1000
97 -> 2000
98 -> 500
99 -> 200
100 -> 100
101 -> 1000
102 -> 300
103 -> 2000
104 -> 2000
105 -> 100
106 -> 500
107 -> 100
108 -> 300
109 -> 1000
110 -> 200
111 -> 100
112 -> 1000
113 -> 2000
107 -> 2000
108 -> 500
109 -> 100
110 -> 300
111 -> 1000
112 -> 200
113 -> 100
114 -> 1000
115 -> 100
116 -> 200
117 -> 500
118 -> 100
119 -> 2000
120 -> 200
121 -> 1000
122 -> 2000
123 -> 2000
124 -> 200
125 -> 100
126 -> 200
115 -> 2000
116 -> 1000
117 -> 100
118 -> 200
119 -> 500
120 -> 100
121 -> 2000
122 -> 200
123 -> 300
124 -> 1000
125 -> 2000
126 -> 2000
127 -> 200
128 -> 100
129 -> 200
_ -> 50
soundToOnomato :: SoundID -> String
soundToOnomato v = case _getSoundID v of
@@ -137,129 +140,132 @@ soundToOnomato v = case _getSoundID v of
1 -> "DEDUM"
2 -> "CUHRUP"
3 -> "SCREE"
4 -> "BRDBRDBRD"
5 -> "DEDEDA"
6 -> "CRNK"
7 -> "CLNK"
8 -> "SKWLCH"
9 -> "WRR"
10 -> "TINKLE"
11 -> "SKREL"
12 -> "TRINKL"
13 -> "BWAAH"
14 -> "SQLEE"
15 -> "CLCLH"
16 -> "DNDNDNDN"
17 -> "CRMBL"
18 -> "TIP"
19 -> "TATATA"
20 -> "SPRT"
21 -> "BLIH"
22 -> "SQWCH"
23 -> "SKLE"
24 -> "HMM"
25 -> "PEW"
26 -> "CRAKLE"
27 -> "TAP"
28 -> "DWAAH"
29 -> "PRUM"
30 -> "BANGG"
31 -> "CRTINK"
32 -> "PHF"
33 -> "CRNCH"
34 -> "ZHM"
35 -> "TING"
36 -> "CLCLH"
37 -> "THUD"
38 -> "TRWNG"
39 -> "TING"
40 -> "CRASH"
41 -> "CLANG"
42 -> "TAPTIP"
43 -> "CRNKCRNKCRNK"
44 -> "CHUGUGUG"
45 -> "SKWLL"
46 -> "WRRR"
47 -> "HSSS"
48 -> "BOOM"
49 -> "HSS"
50 -> "CLANG"
51 -> "TAKH"
52 -> "RINGGG"
53 -> "CRH"
54 -> "UGGAUGGA"
55 -> "CRUMPLE"
56 -> "TING"
57 -> "CREUH"
58 -> "KKSQWL"
59 -> "SMACK"
60 -> "CLICK"
61 -> "SPRT"
62 -> "TIPTOP"
63 -> "CRUH"
64 -> "CHNKCHNKCHUNK"
65 -> "CLKCLK"
66 -> "TIPTAP"
67 -> "SKWLCH"
68 -> "TNKTNKTNK"
69 -> "CHPCHPCHP"
70 -> "SLP"
71 -> "SCREE"
72 -> "DHDHL"
73 -> "BRAP"
74 -> "CRSK"
75 -> "SPLRT"
76 -> "SKWLL"
77 -> "CRNKL"
78 -> "TRNKL"
79 -> "TAPP"
80 -> "SHUHP"
81 -> "CRUMBL"
82 -> "DEDEDUM"
83 -> "TAK"
84 -> "SPLRT"
85 -> "SQLEE"
86 -> "CRISH"
87 -> "SWSH"
88 -> "BIPBIPBIP"
89 -> "BEP"
90 -> "CRSKRL"
91 -> "KRTNKL"
92 -> "CRSNK"
93 -> "SHTCK"
94 -> "TTRKL"
95 -> "UGGAUGGA"
96 -> "DUDURAH"
97 -> "TING"
98 -> "KKSQWL"
99 -> "CRMPL"
100 -> "BWEP"
101 -> "CHUGUGUG"
102 -> "BANG"
103 -> "SLPP"
104 -> "DEDA"
105 -> "WHSSH"
106 -> "CLANG"
107 -> "HNH"
108 -> "BWAH"
109 -> "CRUNK"
110 -> "SQWLTCH"
111 -> "DRR"
112 -> "TRNKL"
113 -> "BRAP"
114 -> "BLPCHCH"
115 -> "SKLE"
116 -> "ZMM"
117 -> "WRRR"
118 -> "FWUMP"
119 -> "BRAHCHCH"
120 -> "TING"
121 -> "BWMP"
122 -> "BRPBRPBRP"
123 -> "WE-OH"
124 -> "THCK"
125 -> "FHP"
126 -> "QWLPH"
4 -> "WHRP"
5 -> "BRDBRDBRD"
6 -> "DEDEDA"
7 -> "CRNK"
8 -> "CLNK"
9 -> "SKWLCH"
10 -> "WRR"
11 -> "TINKLE"
12 -> "SKREL"
13 -> "TRINKL"
14 -> "BWAAH"
15 -> "SQLEE"
16 -> "CLCLH"
17 -> "DNDNDNDN"
18 -> "CRMBL"
19 -> "TIP"
20 -> "TATATA"
21 -> "SPRT"
22 -> "BLIH"
23 -> "SQWCH"
24 -> "WHR"
25 -> "SKLE"
26 -> "HMM"
27 -> "PEW"
28 -> "CRAKLE"
29 -> "TAP"
30 -> "DWAAH"
31 -> "PRUM"
32 -> "BANGG"
33 -> "CRTINK"
34 -> "PHF"
35 -> "CRNCH"
36 -> "ZHM"
37 -> "TING"
38 -> "CLCLH"
39 -> "THUD"
40 -> "TRWNG"
41 -> "TING"
42 -> "CRASH"
43 -> "CLANG"
44 -> "TAPTIP"
45 -> "CRNKCRNKCRNK"
46 -> "CHUGUGUG"
47 -> "SKWLL"
48 -> "WRRR"
49 -> "HSSS"
50 -> "BOOM"
51 -> "HSS"
52 -> "CLANG"
53 -> "TAKH"
54 -> "RINGGG"
55 -> "CRH"
56 -> "UGGAUGGA"
57 -> "CRUMPLE"
58 -> "TING"
59 -> "CREUH"
60 -> "KKSQWL"
61 -> "SMACK"
62 -> "CLICK"
63 -> "SPRT"
64 -> "TIPTOP"
65 -> "CRUH"
66 -> "CHNKCHNKCHUNK"
67 -> "CLKCLK"
68 -> "TIPTAP"
69 -> "SKWLCH"
70 -> "TNKTNKTNK"
71 -> "CHPCHPCHP"
72 -> "SLP"
73 -> "SCREE"
74 -> "DHDHL"
75 -> "BRAP"
76 -> "CRSK"
77 -> "SPLRT"
78 -> "SKWLL"
79 -> "CRNKL"
80 -> "TRNKL"
81 -> "TAPP"
82 -> "SHUHP"
83 -> "CRUMBL"
84 -> "DEDEDUM"
85 -> "TAK"
86 -> "SPLRT"
87 -> "SQLEE"
88 -> "CRISH"
89 -> "SWSH"
90 -> "BIPBIPBIP"
91 -> "BEP"
92 -> "CRSKRL"
93 -> "KRTNKL"
94 -> "CRSNK"
95 -> "SHTCK"
96 -> "TTRKL"
97 -> "UGGAUGGA"
98 -> "DUDURAH"
99 -> "TING"
100 -> "KKSQWL"
101 -> "CRMPL"
102 -> "BWEP"
103 -> "CHUGUGUG"
104 -> "BANG"
105 -> "SLPP"
106 -> "DEDA"
107 -> "WHSSH"
108 -> "CLANG"
109 -> "HNH"
110 -> "BWAH"
111 -> "CRUNK"
112 -> "SQWLTCH"
113 -> "DRR"
114 -> "TRNKL"
115 -> "BRAP"
116 -> "BLPCHCH"
117 -> "SKLE"
118 -> "ZMM"
119 -> "WRRR"
120 -> "FWUMP"
121 -> "BRAHCHCH"
122 -> "TING"
123 -> "WHRR"
124 -> "BWMP"
125 -> "BRPBRPBRP"
126 -> "WE-OH"
127 -> "THCK"
128 -> "FHP"
129 -> "QWLPH"
_ -> error "unitialised sound"
soundPathList :: [String]
soundPathList =
@@ -267,6 +273,7 @@ soundPathList =
, "dedum.DEDUM.500.wav"
, "insert.CUHRUP.500.wav"
, "tone440sawtoothquiet.SCREE.500.wav"
, "whirTap.WHRP.300.wav"
, "mini1.BRDBRDBRD.2000.wav"
, "dededa.DEDEDA.500.wav"
, "glassShat3.CRNK.1000.wav"
@@ -286,6 +293,7 @@ soundPathList =
, "blood2.SPRT.100.wav"
, "heal.BLIH.50.wav"
, "gut3.SQWCH.200.wav"
, "whirup.WHR.250.wav"
, "bloodShort6.SKLE.100.wav"
, "fridgeHum.HMM.50.wav"
, "seagullWhistle1.PEW.2000.wav"
@@ -384,6 +392,7 @@ soundPathList =
, "tap4.FWUMP.100.wav"
, "shotgun.BRAHCHCH.2000.wav"
, "ting5.TING.200.wav"
, "whir.WHRR.300.wav"
, "sawtoothFail.BWMP.1000.wav"
, "mini.BRPBRPBRP.2000.wav"
, "seagullWhistle.WE-OH.2000.wav"
@@ -399,249 +408,255 @@ insertS :: SoundID
insertS = SoundID 2
tone440sawtoothquietS :: SoundID
tone440sawtoothquietS = SoundID 3
whirTapS :: SoundID
whirTapS = SoundID 4
mini1S :: SoundID
mini1S = SoundID 4
mini1S = SoundID 5
dededaS :: SoundID
dededaS = SoundID 5
dededaS = SoundID 6
glassShat3S :: SoundID
glassShat3S = SoundID 6
glassShat3S = SoundID 7
tapQuietS :: SoundID
tapQuietS = SoundID 7
tapQuietS = SoundID 8
blood8S :: SoundID
blood8S = SoundID 8
blood8S = SoundID 9
fireS :: SoundID
fireS = SoundID 9
fireS = SoundID 10
smallGlass4S :: SoundID
smallGlass4S = SoundID 10
smallGlass4S = SoundID 11
gut4S :: SoundID
gut4S = SoundID 11
gut4S = SoundID 12
smallGlass1S :: SoundID
smallGlass1S = SoundID 12
smallGlass1S = SoundID 13
sineRaisePitchTwoSecS :: SoundID
sineRaisePitchTwoSecS = SoundID 13
sineRaisePitchTwoSecS = SoundID 14
blood7S :: SoundID
blood7S = SoundID 14
blood7S = SoundID 15
bloodShort5S :: SoundID
bloodShort5S = SoundID 15
bloodShort5S = SoundID 16
combineS :: SoundID
combineS = SoundID 16
combineS = SoundID 17
stone4S :: SoundID
stone4S = SoundID 17
stone4S = SoundID 18
foot1S :: SoundID
foot1S = SoundID 18
foot1S = SoundID 19
autoBS :: SoundID
autoBS = SoundID 19
autoBS = SoundID 20
blood2S :: SoundID
blood2S = SoundID 20
blood2S = SoundID 21
healS :: SoundID
healS = SoundID 21
healS = SoundID 22
gut3S :: SoundID
gut3S = SoundID 22
gut3S = SoundID 23
whirupS :: SoundID
whirupS = SoundID 24
bloodShort6S :: SoundID
bloodShort6S = SoundID 23
bloodShort6S = SoundID 25
fridgeHumS :: SoundID
fridgeHumS = SoundID 24
fridgeHumS = SoundID 26
seagullWhistle1S :: SoundID
seagullWhistle1S = SoundID 25
seagullWhistle1S = SoundID 27
elecCrackleS :: SoundID
elecCrackleS = SoundID 26
elecCrackleS = SoundID 28
foot2S :: SoundID
foot2S = SoundID 27
foot2S = SoundID 29
skwareFadeTwoSecS :: SoundID
skwareFadeTwoSecS = SoundID 28
skwareFadeTwoSecS = SoundID 30
insertOneS :: SoundID
insertOneS = SoundID 29
insertOneS = SoundID 31
bangEchoS :: SoundID
bangEchoS = SoundID 30
bangEchoS = SoundID 32
smallGlass3S :: SoundID
smallGlass3S = SoundID 31
smallGlass3S = SoundID 33
whiteNoiseFadeOutS :: SoundID
whiteNoiseFadeOutS = SoundID 32
whiteNoiseFadeOutS = SoundID 34
gut2S :: SoundID
gut2S = SoundID 33
gut2S = SoundID 35
teleS :: SoundID
teleS = SoundID 34
teleS = SoundID 36
ting2S :: SoundID
ting2S = SoundID 35
ting2S = SoundID 37
blood5S :: SoundID
blood5S = SoundID 36
blood5S = SoundID 38
hitS :: SoundID
hitS = SoundID 37
hitS = SoundID 39
metal7S :: SoundID
metal7S = SoundID 38
metal7S = SoundID 40
ting4S :: SoundID
ting4S = SoundID 39
ting4S = SoundID 41
stone1S :: SoundID
stone1S = SoundID 40
stone1S = SoundID 42
clangS :: SoundID
clangS = SoundID 41
clangS = SoundID 43
twoStep1S :: SoundID
twoStep1S = SoundID 42
twoStep1S = SoundID 44
wrench1S :: SoundID
wrench1S = SoundID 43
wrench1S = SoundID 45
seagullChatterS :: SoundID
seagullChatterS = SoundID 44
seagullChatterS = SoundID 46
blood4S :: SoundID
blood4S = SoundID 45
blood4S = SoundID 47
fireFadeS :: SoundID
fireFadeS = SoundID 46
fireFadeS = SoundID 48
foamSprayLoopS :: SoundID
foamSprayLoopS = SoundID 47
foamSprayLoopS = SoundID 49
explosionS :: SoundID
explosionS = SoundID 48
explosionS = SoundID 50
foamSprayFadeOutS :: SoundID
foamSprayFadeOutS = SoundID 49
foamSprayFadeOutS = SoundID 51
clang1S :: SoundID
clang1S = SoundID 50
clang1S = SoundID 52
tap2S :: SoundID
tap2S = SoundID 51
tap2S = SoundID 53
tinitusS :: SoundID
tinitusS = SoundID 52
tinitusS = SoundID 54
seagullCry1S :: SoundID
seagullCry1S = SoundID 53
seagullCry1S = SoundID 55
seagullBarkS :: SoundID
seagullBarkS = SoundID 54
seagullBarkS = SoundID 56
stone3S :: SoundID
stone3S = SoundID 55
stone3S = SoundID 57
tingS :: SoundID
tingS = SoundID 56
tingS = SoundID 58
seagullCry2S :: SoundID
seagullCry2S = SoundID 57
seagullCry2S = SoundID 59
bloodShort3S :: SoundID
bloodShort3S = SoundID 58
bloodShort3S = SoundID 60
hit1S :: SoundID
hit1S = SoundID 59
hit1S = SoundID 61
click1S :: SoundID
click1S = SoundID 60
click1S = SoundID 62
bloodShort2S :: SoundID
bloodShort2S = SoundID 61
bloodShort2S = SoundID 63
twoStepSlowS :: SoundID
twoStepSlowS = SoundID 62
twoStepSlowS = SoundID 64
seagullCryS :: SoundID
seagullCryS = SoundID 63
seagullCryS = SoundID 65
crankSlowS :: SoundID
crankSlowS = SoundID 64
crankSlowS = SoundID 66
primeS :: SoundID
primeS = SoundID 65
primeS = SoundID 67
twoStepS :: SoundID
twoStepS = SoundID 66
twoStepS = SoundID 68
bloodShort8S :: SoundID
bloodShort8S = SoundID 67
bloodShort8S = SoundID 69
reloadS :: SoundID
reloadS = SoundID 68
reloadS = SoundID 70
reload1S :: SoundID
reload1S = SoundID 69
reload1S = SoundID 71
slapS :: SoundID
slapS = SoundID 70
slapS = SoundID 72
tone440sawtoothS :: SoundID
tone440sawtoothS = SoundID 71
tone440sawtoothS = SoundID 73
metal3S :: SoundID
metal3S = SoundID 72
metal3S = SoundID 74
tap3S :: SoundID
tap3S = SoundID 73
tap3S = SoundID 75
glassShat4S :: SoundID
glassShat4S = SoundID 74
glassShat4S = SoundID 76
bloodShort1S :: SoundID
bloodShort1S = SoundID 75
bloodShort1S = SoundID 77
bloodShort4S :: SoundID
bloodShort4S = SoundID 76
bloodShort4S = SoundID 78
glassShat2S :: SoundID
glassShat2S = SoundID 77
glassShat2S = SoundID 79
metal1S :: SoundID
metal1S = SoundID 78
metal1S = SoundID 80
foot3S :: SoundID
foot3S = SoundID 79
foot3S = SoundID 81
pickUpS :: SoundID
pickUpS = SoundID 80
pickUpS = SoundID 82
stone5S :: SoundID
stone5S = SoundID 81
stone5S = SoundID 83
dededumS :: SoundID
dededumS = SoundID 82
dededumS = SoundID 84
tap1S :: SoundID
tap1S = SoundID 83
tap1S = SoundID 85
blood1S :: SoundID
blood1S = SoundID 84
blood1S = SoundID 86
bloodShort7S :: SoundID
bloodShort7S = SoundID 85
bloodShort7S = SoundID 87
metal4S :: SoundID
metal4S = SoundID 86
metal4S = SoundID 88
knifeS :: SoundID
knifeS = SoundID 87
knifeS = SoundID 89
computerBeepingS :: SoundID
computerBeepingS = SoundID 88
computerBeepingS = SoundID 90
tone440S :: SoundID
tone440S = SoundID 89
tone440S = SoundID 91
gut6S :: SoundID
gut6S = SoundID 90
gut6S = SoundID 92
smallGlass2S :: SoundID
smallGlass2S = SoundID 91
smallGlass2S = SoundID 93
glassShat1S :: SoundID
glassShat1S = SoundID 92
glassShat1S = SoundID 94
disconnectItemS :: SoundID
disconnectItemS = SoundID 93
disconnectItemS = SoundID 95
metal5S :: SoundID
metal5S = SoundID 94
metal5S = SoundID 96
seagullBarkTransformedS :: SoundID
seagullBarkTransformedS = SoundID 95
seagullBarkTransformedS = SoundID 97
ejectS :: SoundID
ejectS = SoundID 96
ejectS = SoundID 98
ting3S :: SoundID
ting3S = SoundID 97
ting3S = SoundID 99
blood3S :: SoundID
blood3S = SoundID 98
blood3S = SoundID 100
stone2S :: SoundID
stone2S = SoundID 99
stone2S = SoundID 101
tone440raiseS :: SoundID
tone440raiseS = SoundID 100
tone440raiseS = SoundID 102
seagullChatter1S :: SoundID
seagullChatter1S = SoundID 101
seagullChatter1S = SoundID 103
bangS :: SoundID
bangS = SoundID 102
bangS = SoundID 104
slap1S :: SoundID
slap1S = SoundID 103
slap1S = SoundID 105
dedaS :: SoundID
dedaS = SoundID 104
dedaS = SoundID 106
missileLaunchS :: SoundID
missileLaunchS = SoundID 105
missileLaunchS = SoundID 107
clang2S :: SoundID
clang2S = SoundID 106
clang2S = SoundID 108
gruntS :: SoundID
gruntS = SoundID 107
gruntS = SoundID 109
sineRaisePitchOneSecS :: SoundID
sineRaisePitchOneSecS = SoundID 108
sineRaisePitchOneSecS = SoundID 110
metal2S :: SoundID
metal2S = SoundID 109
metal2S = SoundID 111
gut5S :: SoundID
gut5S = SoundID 110
gut5S = SoundID 112
slideDoorS :: SoundID
slideDoorS = SoundID 111
slideDoorS = SoundID 113
metal6S :: SoundID
metal6S = SoundID 112
metal6S = SoundID 114
autoGunS :: SoundID
autoGunS = SoundID 113
autoGunS = SoundID 115
oldMachineBootS :: SoundID
oldMachineBootS = SoundID 114
oldMachineBootS = SoundID 116
blood6S :: SoundID
blood6S = SoundID 115
blood6S = SoundID 117
buzzS :: SoundID
buzzS = SoundID 116
buzzS = SoundID 118
fireLoudS :: SoundID
fireLoudS = SoundID 117
fireLoudS = SoundID 119
tap4S :: SoundID
tap4S = SoundID 118
tap4S = SoundID 120
shotgunS :: SoundID
shotgunS = SoundID 119
shotgunS = SoundID 121
ting5S :: SoundID
ting5S = SoundID 120
ting5S = SoundID 122
whirS :: SoundID
whirS = SoundID 123
sawtoothFailS :: SoundID
sawtoothFailS = SoundID 121
sawtoothFailS = SoundID 124
miniS :: SoundID
miniS = SoundID 122
miniS = SoundID 125
seagullWhistleS :: SoundID
seagullWhistleS = SoundID 123
seagullWhistleS = SoundID 126
connectItemS :: SoundID
connectItemS = SoundID 124
connectItemS = SoundID 127
whiteNoiseFadeInS :: SoundID
whiteNoiseFadeInS = SoundID 125
whiteNoiseFadeInS = SoundID 128
gut1S :: SoundID
gut1S = SoundID 126
gut1S = SoundID 129
+2
View File
@@ -29,6 +29,8 @@ import qualified Data.Map.Strict as M
testStringInit :: Universe -> [String]
testStringInit u = prettyShort (u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv
. ix 0 . itTimeLastUsed)
<> prettyShort (u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv
. ix 0 . itParams . wTime)
<> prettyShort (u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv
. ix 0 >>= ((^? rateMax) .useDelay))
--return . foldMap (prettyLDT (show . (^. _1 . itType))) . invLDT $ _crInv cr