Partially refactor ammo extraction, work on pulse rifle

This commit is contained in:
2025-07-26 23:17:14 +01:00
parent 190068737d
commit 68a4bc7aab
16 changed files with 753 additions and 733 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+1
View File
@@ -21,6 +21,7 @@ itemTriggerType loc
baseItemTriggerType :: Item -> TriggerType baseItemTriggerType :: Item -> TriggerType
baseItemTriggerType itm = case itm ^. itType of baseItemTriggerType itm = case itm ^. itType of
HELD hit -> heldTriggerType hit HELD hit -> heldTriggerType hit
ATTACH CAPACITOR -> HammerTrigger 10
_ -> NoTrigger _ -> NoTrigger
heldTriggerType :: HeldItemType -> TriggerType heldTriggerType :: HeldItemType -> TriggerType
+1 -1
View File
@@ -330,7 +330,7 @@ stackedInventory =
, megaShellMag , megaShellMag
, laser , laser
, megaBattery , megaBattery
, makeTypeCraft CAPACITOR , capacitor
, makeTypeCraft TRANSFORMER , makeTypeCraft TRANSFORMER
, teslaGun , teslaGun
, megaBattery , megaBattery
+24 -34
View File
@@ -153,6 +153,7 @@ invRootItemEffs cr =
invItemLocUpdate :: Creature -> LocationDT OItem -> World -> World invItemLocUpdate :: Creature -> LocationDT OItem -> World -> World
invItemLocUpdate cr loc w = doAnyEquipmentEffect loc cr $ case itm ^. itType of invItemLocUpdate cr loc w = doAnyEquipmentEffect loc cr $ case itm ^. itType of
ATTACH BULLETSYNTH -> trySynthBullet loc w ATTACH BULLETSYNTH -> trySynthBullet loc w
ATTACH CAPACITOR -> tryDrawToCapacitor loc w
EQUIP WRIST_ECG | haspulse -> tryUseParent loc w EQUIP WRIST_ECG | haspulse -> tryUseParent loc w
COPIER _ -> copierItemUpdate itm cr w COPIER _ -> copierItemUpdate itm cr w
HELD FLATSHIELD -> rootNotrootEff createShieldWall removeShieldWall itm cr w HELD FLATSHIELD -> rootNotrootEff createShieldWall removeShieldWall itm cr w
@@ -229,6 +230,22 @@ tryUseParent loc w = fromMaybe w $ do
cr <- w ^? cWorld . lWorld . creatures . ix 0 cr <- w ^? cWorld . lWorld . creatures . ix 0
return $ gadgetEffect InitialPress t cr w return $ gadgetEffect InitialPress t cr w
tryDrawToCapacitor :: LocationDT OItem -> World -> World
tryDrawToCapacitor loc w = fromMaybe w $ do
itm <- loc ^? locDT . dtValue . _1
i <- itm ^? itLocation . ilInvID
x <- loc ^? locDT . dtValue . _1 . itConsumables . _Just
guard $ x < 250
bat <- loc ^? locDT . dtLeft . ix 0 . dtValue . _1
j <- bat ^? itLocation . ilInvID
y <- bat ^? itConsumables . _Just
let z = min y 10
return $ w
& invpoint . ix i . itConsumables . _Just +~ z
& invpoint . ix j . itConsumables . _Just -~ z
where
invpoint = cWorld . lWorld . creatures . ix 0 . crInv
trySynthBullet :: LocationDT OItem -> World -> World trySynthBullet :: LocationDT OItem -> World -> World
trySynthBullet loc w = fromMaybe w $ do trySynthBullet loc w = fromMaybe w $ do
i <- itm ^? itLocation . ilInvID i <- itm ^? itLocation . ilInvID
@@ -239,48 +256,21 @@ trySynthBullet loc w = fromMaybe w $ do
j <- bat ^? itLocation . ilInvID j <- bat ^? itLocation . ilInvID
y <- bat ^. itConsumables y <- bat ^. itConsumables
guard $ y > 0 guard $ y > 0
return $ return $ w
w & invpoint . ix i . itUse . uaParams . apInt +~ 1
& cWorld . lWorld . creatures & invpoint . ix j . itConsumables . _Just -~ 1
. ix 0
. crInv
. ix i
. itUse
. uaParams
. apInt
+~ 1
& cWorld . lWorld . creatures
. ix 0
. crInv
. ix j
. itConsumables
. _Just
-~ 1
else do else do
mag <- loc ^? locDtContext . cdtParent . _1 mag <- loc ^? locDtContext . cdtParent . _1
j <- mag ^? itLocation . ilInvID j <- mag ^? itLocation . ilInvID
y <- mag ^. itConsumables y <- mag ^. itConsumables
ymax <- maxAmmo mag ymax <- maxAmmo mag
guard $ y < ymax guard $ y < ymax
return $ return $ w
w & invpoint . ix i . itUse . uaParams . apInt .~ 0
& cWorld . lWorld . creatures & invpoint . ix j . itConsumables . _Just +~ 1
. ix 0
. crInv
. ix i
. itUse
. uaParams
. apInt
.~ 0
& cWorld . lWorld . creatures
. ix 0
. crInv
. ix j
. itConsumables
. _Just
+~ 1
where where
itm = loc ^. locDT . dtValue . _1 itm = loc ^. locDT . dtValue . _1
invpoint = cWorld . lWorld . creatures . ix 0 . crInv
drawARHUD :: LocationDT OItem -> World -> World drawARHUD :: LocationDT OItem -> World -> World
drawARHUD (LocDT con _) w = fromMaybe w $ do drawARHUD (LocDT con _) w = fromMaybe w $ do
+1 -1
View File
@@ -62,7 +62,6 @@ data CraftType
| PUMP | PUMP
| MOTOR | MOTOR
| TRANSFORMER | TRANSFORMER
| CAPACITOR
| PRISM | PRISM
| LIGHTER | LIGHTER
| MAGNET | MAGNET
@@ -101,6 +100,7 @@ data AttachType
| SMOKEREDUCER | SMOKEREDUCER
| HOMINGMODULE | HOMINGMODULE
| SHELLPAYLOAD {_shellPayload :: Payload} | SHELLPAYLOAD {_shellPayload :: Payload}
| CAPACITOR
deriving (Eq, Ord, Show, Read) deriving (Eq, Ord, Show, Read)
data AmmoMagType data AmmoMagType
+5 -1
View File
@@ -10,7 +10,7 @@ data Muzzle = Muzzle
{ _mzPos :: V2 Float { _mzPos :: V2 Float
, _mzRot :: Float , _mzRot :: Float
, _mzInaccuracy :: Float , _mzInaccuracy :: Float
, _mzAmmoSlot :: Int , _mzAmmoSlot :: AmmoExtractPosition
, _mzFlareType :: FlareType , _mzFlareType :: FlareType
, _mzEffect :: MuzzleEffect , _mzEffect :: MuzzleEffect
, _mzAmmoPerShot :: AmmoPerShot , _mzAmmoPerShot :: AmmoPerShot
@@ -18,6 +18,9 @@ data Muzzle = Muzzle
} }
deriving (Eq, Ord, Show, Read) --Generic, Flat) deriving (Eq, Ord, Show, Read) --Generic, Flat)
data AmmoExtractPosition = MagBelow Int | CapacitorBelow Int | CapacitorSelf
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data FlareType data FlareType
= NoFlare = NoFlare
| BasicFlare | BasicFlare
@@ -32,6 +35,7 @@ data MuzzleEffect
= MuzzleShootBullet = MuzzleShootBullet
| MuzzleLaser | MuzzleLaser
| MuzzlePulseLaser | MuzzlePulseLaser
| MuzzlePulseBall
| MuzzleTesla | MuzzleTesla
| MuzzleTractor | MuzzleTractor
| MuzzleRLauncher | MuzzleRLauncher
+40 -28
View File
@@ -46,6 +46,8 @@ import Sound.Data
gadgetEffect :: PressType -> LocationDT OItem -> Creature -> World -> World gadgetEffect :: PressType -> LocationDT OItem -> Creature -> World -> World
gadgetEffect pt loc gadgetEffect pt loc
| UseHeld{} <- loc ^. locDT . dtValue . _1 . itUse = heldEffect pt loc | UseHeld{} <- loc ^. locDT . dtValue . _1 . itUse = heldEffect pt loc
| PulseBallSF <- loc ^. locDT . dtValue . _2 = heldEffect pt loc
-- hammerCheck (\a b c -> creatureShootPulseBall a b cmuz c) pt loc
| DROPPER x <- loc ^. locDT . dtValue . _1 . itType | DROPPER x <- loc ^. locDT . dtValue . _1 . itType
, Just i <- loc ^? locDT . dtValue . _1 . itUse . uInt , Just i <- loc ^? locDT . dtValue . _1 . itUse . uInt
, pt == InitialPress = , pt == InitialPress =
@@ -53,11 +55,8 @@ gadgetEffect pt loc
| CLICKER x <- loc ^. locDT . dtValue . _1 . itType | CLICKER x <- loc ^. locDT . dtValue . _1 . itType
, Just i <- loc ^? locDT . dtValue . _1 . itUse . uInt = , Just i <- loc ^? locDT . dtValue . _1 . itUse . uInt =
useInventoryPath pt i x loc useInventoryPath pt i x loc
| PulseBallSF <- loc ^. locDT . dtValue . _2 = \cr
-> creatureShootPulseBall loc cr cmuz
| otherwise = const id | otherwise = const id
cmuz = Muzzle (V2 15 0) 0 0.01 0 BasicFlare MuzzleShootBullet (UseExactly 1) 0
heldEffect :: PressType -> LocationDT OItem -> Creature -> World -> World heldEffect :: PressType -> LocationDT OItem -> Creature -> World -> World
heldEffect = hammerCheck heldEffectMuzzles heldEffect = hammerCheck heldEffectMuzzles
@@ -135,11 +134,12 @@ heldEffectMuzzles :: LocationDT OItem -> Creature -> World -> World
heldEffectMuzzles loc cr w = heldEffectMuzzles loc cr w =
setusetime . doHeldUseEffect t cr setusetime . doHeldUseEffect t cr
. uncurry (applyCME loc cr) . uncurry (applyCME loc cr)
. foldl' (useLoadedAmmo loc cr) (False, w) $ bw
$ loadedmuzzles -- . foldl' (useLoadedAmmo loc cr) (bw)
-- $ loadedmuzzles
where where
t = loc ^. locDT t = loc ^. locDT
(_, loadedmuzzles) = mapAccumR loadMuzzle t . locMuzzles $ loc ((bw,_), loadedmuzzles) = mapAccumR (loadMuzzle loc cr) ((False,w),t) . locMuzzles $ loc
setusetime = setusetime =
cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itid . itTimeLastUsed cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itid . itTimeLastUsed
.~ w ^. cWorld . lWorld . lClock .~ w ^. cWorld . lWorld . lClock
@@ -153,14 +153,20 @@ locMuzzles loc
& ix 0 . mzInaccuracy .~ 0 & ix 0 . mzInaccuracy .~ 0
& ix 0 . mzFlareType .~ TeslaGunFlare & ix 0 . mzFlareType .~ TeslaGunFlare
& ix 0 . mzEffect .~ MuzzlePulseLaser & ix 0 . mzEffect .~ MuzzlePulseLaser
& ix 0 . mzAmmoPerShot .~ UseExactly 100 & ix 0 . mzAmmoPerShot .~ UseExactly 250
| PulseBallSF <- loc ^. locDT . dtValue . _2 = dbwMuzzles
& ix 0 . mzEffect .~ MuzzlePulseBall
& ix 0 . mzAmmoPerShot .~ UseExactly 250
& ix 0 . mzAmmoSlot .~ CapacitorSelf
& ix 0 . mzInaccuracy .~ 0
& ix 0 . mzFlareType .~ TeslaGunFlare
| otherwise = itemMuzzles $ loc ^. locDT . dtValue . _1 | otherwise = itemMuzzles $ loc ^. locDT . dtValue . _1
itemMuzzles :: Item -> [Muzzle] itemMuzzles :: Item -> [Muzzle]
itemMuzzles itm = case itm ^. itType of itemMuzzles itm = case itm ^. itType of
HELD ALTERIFLE -> HELD ALTERIFLE ->
dbwMuzzles & ix 0 . mzPos .~ V2 25 0 dbwMuzzles & ix 0 . mzPos .~ V2 25 0
& ix 0 . mzAmmoSlot .~ _alteRifleSwitch (_itParams itm) & ix 0 . mzAmmoSlot .~ MagBelow (_alteRifleSwitch (_itParams itm))
HELD (VOLLEYGUN i) -> fromMaybe [] $ do HELD (VOLLEYGUN i) -> fromMaybe [] $ do
j <- itm ^? itParams . unfiredBarrels . ix 0 j <- itm ^? itParams . unfiredBarrels . ix 0
x <- vgunMuzzles i ^? ix j x <- vgunMuzzles i ^? ix j
@@ -169,6 +175,7 @@ itemMuzzles itm = case itm ^. itType of
DETECTOR{} -> DETECTOR{} ->
dbwMuzzles & ix 0 . mzEffect .~ MuzzleDetector dbwMuzzles & ix 0 . mzEffect .~ MuzzleDetector
& ix 0 . mzAmmoPerShot .~ UseExactly 100 & ix 0 . mzAmmoPerShot .~ UseExactly 100
_ -> [] _ -> []
heldItemMuzzles :: HeldItemType -> [Muzzle] heldItemMuzzles :: HeldItemType -> [Muzzle]
@@ -178,7 +185,7 @@ heldItemMuzzles = \case
(V2 10 0) (V2 10 0)
a a
0.01 0.01
0 (MagBelow 0)
NoFlare NoFlare
MuzzleShootBullet MuzzleShootBullet
(UseExactly 1) (UseExactly 1)
@@ -189,16 +196,16 @@ heldItemMuzzles = \case
& ix 0 . mzFlareType .~ NoLightFlare & ix 0 . mzFlareType .~ NoLightFlare
& 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) 0] PISTOL -> [Muzzle (V2 10 0) 0 0.05 (MagBelow 0) BasicFlare MuzzleShootBullet (UseExactly 1) 0]
MACHINEPISTOL -> [Muzzle (V2 10 0) 0 0.3 0 MiniGunFlare MuzzleShootBullet (UseExactly 1) 0] MACHINEPISTOL -> [Muzzle (V2 10 0) 0 0.3 (MagBelow 0) MiniGunFlare MuzzleShootBullet (UseExactly 1) 0]
AUTOPISTOL -> [Muzzle (V2 10 0) 0 0 0 BasicFlare MuzzleShootBullet (UseExactly 1) 0] AUTOPISTOL -> [Muzzle (V2 10 0) 0 0 (MagBelow 0) BasicFlare MuzzleShootBullet (UseExactly 1) 0]
SMG -> [Muzzle (V2 20 0) 0 0.05 0 BasicFlare MuzzleShootBullet (UseExactly 1) 0] SMG -> [Muzzle (V2 20 0) 0 0.05 (MagBelow 0) BasicFlare MuzzleShootBullet (UseExactly 1) 0]
RIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0 RIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0
BURSTRIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0 & ix 0 . mzInaccuracy .~ 0.05 BURSTRIFLE -> dbwMuzzles & ix 0 . mzPos .~ V2 25 0 & ix 0 . mzInaccuracy .~ 0.05
MINIGUNX i -> MINIGUNX i ->
replicate replicate
i i
(Muzzle (V2 30 0) 0 0.05 0 NoFlare MuzzleShootBullet (UseExactly 1) 10) (Muzzle (V2 30 0) 0 0.05 (MagBelow 0) NoFlare MuzzleShootBullet (UseExactly 1) 10)
& ix 0 . mzFlareType .~ MiniGunFlare & ix 0 . mzFlareType .~ MiniGunFlare
BANGROD -> BANGROD ->
dbwMuzzles dbwMuzzles
@@ -224,9 +231,9 @@ heldItemMuzzles = \case
& ix 0 . mzPos .~ V2 30 0 & ix 0 . mzPos .~ V2 30 0
& ix 0 . mzFlareType .~ HeavySmokeFlare & ix 0 . mzFlareType .~ HeavySmokeFlare
& ix 0 . mzInaccuracy .~ 0 & ix 0 . mzInaccuracy .~ 0
BANGCONE -> [Muzzle (V2 15 0) 0 0.5 0 BasicFlare MuzzleShootBullet (UseUpTo 15) 12] BANGCONE -> [Muzzle (V2 15 0) 0 0.5 (MagBelow 0) BasicFlare MuzzleShootBullet (UseUpTo 15) 12]
BLUNDERBUSS -> [Muzzle (V2 30 0) 0 0.5 0 BasicFlare MuzzleShootBullet (UseUpTo 15) 12] BLUNDERBUSS -> [Muzzle (V2 30 0) 0 0.5 (MagBelow 0) BasicFlare MuzzleShootBullet (UseUpTo 15) 12]
GRAPECANNON i -> [Muzzle (V2 30 0) 0 0.5 0 BasicFlare MuzzleShootBullet (UseUpTo 15) (12 + 4 * fromIntegral i)] GRAPECANNON i -> [Muzzle (V2 30 0) 0 0.5 (MagBelow 0) BasicFlare MuzzleShootBullet (UseUpTo 15) (12 + 4 * fromIntegral i)]
TORCH -> dbwMuzzles & ix 0 . mzPos .~ V2 10 0 TORCH -> dbwMuzzles & ix 0 . mzPos .~ V2 10 0
VOLLEYGUN{} -> error "should get volleygun muzzles earlier" VOLLEYGUN{} -> error "should get volleygun muzzles earlier"
FLAMETHROWER -> flameMuzzles FLAMETHROWER -> flameMuzzles
@@ -244,7 +251,7 @@ heldItemMuzzles = \case
RLAUNCHERX i -> RLAUNCHERX i ->
getZipList getZipList
( ZipList [Muzzle (V2 20 0) a 0 | a <- take i [0, 2 * pi / fromIntegral i ..]] ( ZipList [Muzzle (V2 20 0) a 0 | a <- take i [0, 2 * pi / fromIntegral i ..]]
<*> ZipList [0 ..] <*> ZipList (fmap MagBelow [0 ..])
<*> pure NoFlare <*> pure NoFlare
<*> pure MuzzleRLauncher <*> pure MuzzleRLauncher
<*> pure (UseExactly 1) <*> pure (UseExactly 1)
@@ -298,7 +305,7 @@ heldItemMuzzles = \case
{ _mzPos = V2 20 0 { _mzPos = V2 20 0
, _mzRot = 0 , _mzRot = 0
, _mzInaccuracy = 0.05 , _mzInaccuracy = 0.05
, _mzAmmoSlot = 0 , _mzAmmoSlot = MagBelow 0
, _mzFlareType = NoFlare , _mzFlareType = NoFlare
, _mzEffect = MuzzleShootBullet , _mzEffect = MuzzleShootBullet
, _mzAmmoPerShot = UseExactly 1 , _mzAmmoPerShot = UseExactly 1
@@ -310,7 +317,7 @@ baseStickSpread :: Float
baseStickSpread = 0.2 baseStickSpread = 0.2
dbwMuzzles :: [Muzzle] dbwMuzzles :: [Muzzle]
dbwMuzzles = [Muzzle (V2 15 0) 0 0.01 0 BasicFlare MuzzleShootBullet (UseExactly 1) 0] dbwMuzzles = [Muzzle (V2 15 0) 0 0.01 (MagBelow 0) BasicFlare MuzzleShootBullet (UseExactly 1) 0]
flameMuzzles :: [Muzzle] flameMuzzles :: [Muzzle]
flameMuzzles = flameMuzzles =
@@ -318,7 +325,7 @@ flameMuzzles =
(V2 18 0) (V2 18 0)
0 0
0 0
0 (MagBelow 0)
NoFlare NoFlare
MuzzleNozzle MuzzleNozzle
{ _nzPressure = ConstFloat 4 { _nzPressure = ConstFloat 4
@@ -333,7 +340,7 @@ vgunMuzzles :: Int -> [Muzzle]
vgunMuzzles i = vgunMuzzles i =
getZipList getZipList
( ZipList [Muzzle (V2 15 x) 0 0.01 | x <- spreadAroundCenter i 6] ( ZipList [Muzzle (V2 15 x) 0 0.01 | x <- spreadAroundCenter i 6]
<*> ZipList [0 .. i -1] <*> ZipList (fmap MagBelow [0 .. i -1])
<*> pure BasicFlare <*> pure BasicFlare
<*> pure MuzzleShootBullet <*> pure MuzzleShootBullet
<*> pure (UseExactly 1) <*> pure (UseExactly 1)
@@ -635,11 +642,14 @@ heldTorqueAmount = \case
BLINKER -> 0 BLINKER -> 0
BLINKERUNSAFE -> 0 BLINKERUNSAFE -> 0
loadMuzzle :: DTree OItem -> Muzzle -> (DTree OItem, Maybe (Muzzle, Int, DTree OItem)) loadMuzzle :: LocationDT OItem -> Creature -> ((Bool,World),DTree OItem)
loadMuzzle t@(DT _ l _) mz = fromMaybe (t, Nothing) $ do -> Muzzle -> (((Bool,World),DTree OItem), Maybe (Muzzle, Int, DTree OItem))
loadMuzzle loc cr ((b,w),t@(DT _ l _)) mz = fromMaybe (((b,w),t), Nothing) $ do
let as = _mzAmmoSlot mz let as = _mzAmmoSlot mz
amamount = _mzAmmoPerShot mz amamount = _mzAmmoPerShot mz
(i, mag) <- findWithIx (isAmmoIntLink as . (^. dtValue . _2)) l (i, mag) <- case as of
MagBelow mi -> findWithIx (isAmmoIntLink mi . (^. dtValue . _2)) l
_ -> undefined
availableammo <- mag ^. dtValue . _1 . itConsumables availableammo <- mag ^. dtValue . _1 . itConsumables
let usedammo = case amamount of let usedammo = case amamount of
UseUpTo x -> min x availableammo UseUpTo x -> min x availableammo
@@ -647,8 +657,9 @@ loadMuzzle t@(DT _ l _) mz = fromMaybe (t, Nothing) $ do
| x <= availableammo -> x | x <= availableammo -> x
| otherwise -> 0 | otherwise -> 0
guard $ usedammo > 0 guard $ usedammo > 0
let bw = useLoadedAmmo loc cr (b,w) (Just (mz,usedammo,mag))
return return
( t & dtLeft . ix i . dtValue . _1 . itConsumables . _Just -~ usedammo ( (bw,t & dtLeft . ix i . dtValue . _1 . itConsumables . _Just -~ usedammo)
, Just (mz, usedammo, mag) , Just (mz, usedammo, mag)
) )
@@ -735,7 +746,8 @@ useLoadedAmmo loc cr (_, w) (Just (mz, x, magtree)) = (,) True $
removeAmmoFromMag x mid cr . makeMuzzleFlare mz loc cr $ case _mzEffect mz of removeAmmoFromMag x mid cr . makeMuzzleFlare mz loc cr $ case _mzEffect mz of
MuzzleShootBullet -> shootBullets loc cr (mz, x, magtree) w MuzzleShootBullet -> shootBullets loc cr (mz, x, magtree) w
MuzzleLaser -> creatureShootLaser loc cr mz w MuzzleLaser -> creatureShootLaser loc cr mz w
MuzzlePulseLaser -> creatureShootPulseBall loc cr mz w MuzzlePulseLaser -> creatureShootPulseLaser loc cr mz w
MuzzlePulseBall -> creatureShootPulseBall loc cr mz w
MuzzleTesla -> shootTeslaArc loc cr mz w MuzzleTesla -> shootTeslaArc loc cr mz w
MuzzleTractor -> shootTractorBeam cr w MuzzleTractor -> shootTractorBeam cr w
MuzzleRLauncher -> createProjectileR loc magtree mz cr w MuzzleRLauncher -> createProjectileR loc magtree mz cr w
@@ -902,7 +914,7 @@ shootPulseLaser so p dir w =
, _pzDamage = 101 , _pzDamage = 101
, _pzTimer = 5 , _pzTimer = 5
} }
& soundContinue so p tone440sawtoothquietS (Just 2) & soundStart so p lasPulseS Nothing
creatureShootPulseBall :: LocationDT OItem -> Creature -> Muzzle -> World -> World creatureShootPulseBall :: LocationDT OItem -> Creature -> Muzzle -> World -> World
creatureShootPulseBall loc cr mz w = w & randGen .~ g & shootPulseBall pos dir creatureShootPulseBall loc cr mz w = w & randGen .~ g & shootPulseBall pos dir
+1 -7
View File
@@ -1,6 +1,5 @@
module Dodge.IsPulseLaser ( module Dodge.IsPulseLaser (
isPulseLaser, isPulseLaser,
isPulseCapacitor,
) where ) where
import Control.Lens import Control.Lens
@@ -11,9 +10,4 @@ import Dodge.Data.Item
isPulseLaser :: LocationDT OItem -> Bool isPulseLaser :: LocationDT OItem -> Bool
isPulseLaser loc = isPulseLaser loc =
loc ^. locDT . dtValue . _1 . itType == HELD LASER loc ^. locDT . dtValue . _1 . itType == HELD LASER
&& (loc ^? locDT . dtLeft . ix 0 . dtValue . _1 . itType == Just (CRAFT CAPACITOR)) && (loc ^? locDT . dtLeft . ix 0 . dtValue . _1 . itType == Just (ATTACH CAPACITOR))
isPulseCapacitor :: LocationDT OItem -> Bool
isPulseCapacitor loc =
loc ^. locDT . dtValue . _1 . itType == HELD LASER
&& (loc ^? locDT . dtLeft . ix 0 . dtValue . _1 . itType == Just (CRAFT CAPACITOR))
+1
View File
@@ -60,6 +60,7 @@ itemFromAttachType = \case
SMOKEREDUCER -> smokeReducer SMOKEREDUCER -> smokeReducer
HOMINGMODULE -> homingModule HOMINGMODULE -> homingModule
SHELLPAYLOAD p -> shellModule p SHELLPAYLOAD p -> shellModule p
CAPACITOR -> capacitor
itemFromEquipType :: EquipItemType -> Item itemFromEquipType :: EquipItemType -> Item
itemFromEquipType et = case et of itemFromEquipType et = case et of
+7
View File
@@ -10,6 +10,7 @@ module Dodge.Item.Ammo (
megaShellMag, megaShellMag,
megaTinMag, megaTinMag,
megaBattery, megaBattery,
capacitor,
) where ) where
import Control.Lens import Control.Lens
@@ -65,6 +66,12 @@ battery =
& itUse .~ UseNothing & itUse .~ UseNothing
& itConsumables ?~ 10 ^ (9 :: Int) & itConsumables ?~ 10 ^ (9 :: Int)
capacitor :: Item
capacitor =
defaultHeldItem & itType .~ ATTACH CAPACITOR
& itUse .~ UseNothing
& itConsumables ?~ 0
chemFuelPouch :: Item chemFuelPouch :: Item
chemFuelPouch = chemFuelPouch =
defaultHeldItem & itType .~ AMMOMAG CHEMFUELPOUCH defaultHeldItem & itType .~ AMMOMAG CHEMFUELPOUCH
+2 -1
View File
@@ -89,7 +89,7 @@ showInventoryPathing = \case
RELITEM -> "HERE" RELITEM -> "HERE"
showAttachItem :: AttachType -> String showAttachItem :: AttachType -> String
showAttachItem t = case t of showAttachItem = \case
UNDERBARRELSLOT -> "UNDERBARRELSLOT" UNDERBARRELSLOT -> "UNDERBARRELSLOT"
ZOOMSCOPE -> "ZOOMSCOPE" ZOOMSCOPE -> "ZOOMSCOPE"
BULLETSYNTH -> "BSYNTH" BULLETSYNTH -> "BSYNTH"
@@ -101,6 +101,7 @@ showAttachItem t = case t of
SHELLPAYLOAD x -> show x SHELLPAYLOAD x -> show x
GIMBAL -> "GIMBAL" GIMBAL -> "GIMBAL"
GYROSCOPE -> "GYROSCOPE" GYROSCOPE -> "GYROSCOPE"
CAPACITOR -> "CAPACITOR"
showEquipItem :: EquipItemType -> String showEquipItem :: EquipItemType -> String
showEquipItem eit = case eit of showEquipItem eit = case eit of
-1
View File
@@ -70,7 +70,6 @@ craftItemSPic = \case
. upperCylinder Small Typical 1 . upperCylinder Small Typical 1
$ polyCirc 3 4 $ polyCirc 3 4
TIN -> colorSH green . upperPrismPolyST 3 $ rectXH 2 2 TIN -> colorSH green . upperPrismPolyST 3 $ rectXH 2 2
CAPACITOR -> colorSH cyan . upperPrismPolyST 3 $ rectXH 2 2
STEELDRUM -> STEELDRUM ->
colorSH green colorSH green
. translateSH (V3 4 0 0) . translateSH (V3 4 0 0)
+3 -2
View File
@@ -49,6 +49,7 @@ itemBelowAttachables :: CItem -> [ItemSF]
itemBelowAttachables (itm,sf) = case (itm ^. itType, sf) of itemBelowAttachables (itm,sf) = case (itm ^. itType, sf) of
(HELD LASER, _) -> getAmmoLinks itm <> [PulseBallSF] (HELD LASER, _) -> getAmmoLinks itm <> [PulseBallSF]
(HELD TORCH, _) -> getAmmoLinks itm (HELD TORCH, _) -> getAmmoLinks itm
(ATTACH CAPACITOR, _) -> [AmmoMagSF 0 ElectricalAmmo]
(ATTACH UNDERBARRELSLOT, _) -> [UnderBarrelPlatformSF] (ATTACH UNDERBARRELSLOT, _) -> [UnderBarrelPlatformSF]
(_, HeldPlatformSF) -> getAmmoLinks itm <> extraWeaponLinksBelow itm (_, HeldPlatformSF) -> getAmmoLinks itm <> extraWeaponLinksBelow itm
(_, UnderBarrelPlatformSF) -> getAmmoLinks itm (_, UnderBarrelPlatformSF) -> getAmmoLinks itm
@@ -129,7 +130,7 @@ itemToFunction itm = case itm ^. itType of
ATTACH SHELLPAYLOAD{} -> AmmoPayloadSF LauncherAmmo ATTACH SHELLPAYLOAD{} -> AmmoPayloadSF LauncherAmmo
DROPPER{} -> GadgetPlatformSF DROPPER{} -> GadgetPlatformSF
CLICKER{} -> GadgetPlatformSF CLICKER{} -> GadgetPlatformSF
CRAFT CAPACITOR -> CapacitorSF ATTACH CAPACITOR -> CapacitorSF
_ -> NoSF _ -> NoSF
treeToPotentialFunction :: DTree CItem -> S.Set ItemSF treeToPotentialFunction :: DTree CItem -> S.Set ItemSF
@@ -142,7 +143,7 @@ treeToPotentialFunction ldt = case ldt ^. dtValue . _1 . itType of
HELD LASER -> S.fromList [WeaponTargetingSF,LaserWeaponSF] HELD LASER -> S.fromList [WeaponTargetingSF,LaserWeaponSF]
-- following limits items to ten ammo slots -- following limits items to ten ammo slots
_ | AmmoMagSF _ x <- ldt ^. dtValue . _2 -> S.fromList [AmmoMagSF i x | i <- [0..9]] _ | AmmoMagSF _ x <- ldt ^. dtValue . _2 -> S.fromList [AmmoMagSF i x | i <- [0..9]]
CRAFT CAPACITOR -> S.fromList [CapacitorSF,PulseBallSF] ATTACH CAPACITOR -> S.fromList [CapacitorSF,PulseBallSF]
_ -> S.singleton (ldt ^. dtValue . _2) _ -> S.singleton (ldt ^. dtValue . _2)
baseCI :: Item -> CItem baseCI :: Item -> CItem
-1
View File
@@ -182,7 +182,6 @@ craftInfo fit = case fit of
PUMP -> "A device that can create pressure." PUMP -> "A device that can create pressure."
MOTOR -> "A device that can create rotational force." MOTOR -> "A device that can create rotational force."
TRANSFORMER -> "A device that can step up or down voltage and current." TRANSFORMER -> "A device that can step up or down voltage and current."
CAPACITOR -> "A device that stores electrical energy."
PRISM -> "An object that refracts light." PRISM -> "An object that refracts light."
THERMOMETER -> "An object that measures temperature." THERMOMETER -> "An object that measures temperature."
LIGHTER -> "A device that can create a small flame." LIGHTER -> "A device that can create a small flame."
+291 -286
View File
@@ -1,4 +1,4 @@
-- generated at 2025-07-24 21:27:39.778553009 UTC -- generated at 2025-07-26 12:49:22.540764534 UTC
module Dodge.SoundLogic.ExternallyGeneratedSounds where module Dodge.SoundLogic.ExternallyGeneratedSounds where
import Sound.Data import Sound.Data
soundToVol :: SoundID -> Float soundToVol :: SoundID -> Float
@@ -45,105 +45,106 @@ soundToVol v = case _getSoundID v of
39 -> 200 39 -> 200
40 -> 100 40 -> 100
41 -> 200 41 -> 200
42 -> 1000 42 -> 500
43 -> 200 43 -> 1000
44 -> 100 44 -> 200
45 -> 100 45 -> 100
46 -> 1000 46 -> 100
47 -> 200 47 -> 1000
48 -> 1000 48 -> 200
49 -> 500 49 -> 1000
50 -> 40 50 -> 500
51 -> 400 51 -> 40
52 -> 2000 52 -> 400
53 -> 100 53 -> 2000
54 -> 300 54 -> 100
55 -> 50 55 -> 300
56 -> 2000 56 -> 50
57 -> 50 57 -> 2000
58 -> 500 58 -> 50
59 -> 1000 59 -> 500
60 -> 200 60 -> 1000
61 -> 8000 61 -> 200
62 -> 2000 62 -> 8000
63 -> 2000 63 -> 2000
64 -> 1000 64 -> 2000
65 -> 200 65 -> 1000
66 -> 2000 66 -> 200
67 -> 100 67 -> 2000
68 -> 100 68 -> 100
69 -> 40 69 -> 100
70 -> 100 70 -> 40
71 -> 40 71 -> 100
72 -> 2000 72 -> 40
73 -> 100 73 -> 2000
74 -> 250 74 -> 100
75 -> 500 75 -> 250
76 -> 40 76 -> 500
77 -> 100 77 -> 40
78 -> 300 78 -> 100
79 -> 300 79 -> 300
80 -> 100 80 -> 300
81 -> 2000 81 -> 100
82 -> 1000 82 -> 2000
83 -> 1000 83 -> 1000
84 -> 1000 84 -> 1000
85 -> 100 85 -> 1000
86 -> 100 86 -> 100
87 -> 1000 87 -> 100
88 -> 1000 88 -> 1000
89 -> 40 89 -> 1000
90 -> 50 90 -> 40
91 -> 1000 91 -> 50
92 -> 500 92 -> 1000
93 -> 500 93 -> 500
94 -> 100 94 -> 500
95 -> 100 95 -> 100
96 -> 1000 96 -> 100
97 -> 20 97 -> 1000
98 -> 500 98 -> 20
99 -> 300 99 -> 500
100 -> 200 100 -> 300
101 -> 500 101 -> 200
102 -> 1000 102 -> 500
103 -> 200 103 -> 1000
104 -> 1000 104 -> 200
105 -> 2000 105 -> 1000
106 -> 500 106 -> 2000
107 -> 200 107 -> 500
108 -> 100 108 -> 200
109 -> 1000 109 -> 100
110 -> 300 110 -> 1000
111 -> 2000 111 -> 300
112 -> 2000 112 -> 2000
113 -> 100 113 -> 2000
114 -> 500 114 -> 100
115 -> 2000 115 -> 500
116 -> 500 116 -> 2000
117 -> 100 117 -> 500
118 -> 300 118 -> 100
119 -> 1000 119 -> 300
120 -> 200 120 -> 1000
121 -> 100 121 -> 200
122 -> 200 122 -> 100
123 -> 1000 123 -> 200
124 -> 2000 124 -> 1000
125 -> 200 125 -> 2000
126 -> 1000 126 -> 200
127 -> 100 127 -> 1000
128 -> 200 128 -> 100
129 -> 500 129 -> 200
130 -> 100 130 -> 500
131 -> 2000 131 -> 100
132 -> 200 132 -> 2000
133 -> 300 133 -> 200
134 -> 1000 134 -> 300
135 -> 2000 135 -> 1000
136 -> 2000 136 -> 2000
137 -> 250 137 -> 2000
138 -> 200 138 -> 250
139 -> 100 139 -> 200
140 -> 200 140 -> 100
141 -> 200
_ -> 50 _ -> 50
soundToOnomato :: SoundID -> String soundToOnomato :: SoundID -> String
soundToOnomato v = case _getSoundID v of soundToOnomato v = case _getSoundID v of
@@ -189,105 +190,106 @@ soundToOnomato v = case _getSoundID v of
39 -> "WH" 39 -> "WH"
40 -> "PHF" 40 -> "PHF"
41 -> "CRNCH" 41 -> "CRNCH"
42 -> "ZHM" 42 -> "PLH"
43 -> "TING" 43 -> "ZHM"
44 -> "CLCLH" 44 -> "TING"
45 -> "THUD" 45 -> "CLCLH"
46 -> "TRWNG" 46 -> "THUD"
47 -> "TING" 47 -> "TRWNG"
48 -> "CRASH" 48 -> "TING"
49 -> "CLANG" 49 -> "CRASH"
50 -> "TAPTIP" 50 -> "CLANG"
51 -> "CRNKCRNKCRNK" 51 -> "TAPTIP"
52 -> "CHUGUGUG" 52 -> "CRNKCRNKCRNK"
53 -> "SKWLL" 53 -> "CHUGUGUG"
54 -> "WRRR" 54 -> "SKWLL"
55 -> "HSSS" 55 -> "WRRR"
56 -> "BOOM" 56 -> "HSSS"
57 -> "HSS" 57 -> "BOOM"
58 -> "CLANG" 58 -> "HSS"
59 -> "TAKH" 59 -> "CLANG"
60 -> "WHH" 60 -> "TAKH"
61 -> "RINGGG" 61 -> "WHH"
62 -> "CRH" 62 -> "RINGGG"
63 -> "UGGAUGGA" 63 -> "CRH"
64 -> "CRUMPLE" 64 -> "UGGAUGGA"
65 -> "TING" 65 -> "CRUMPLE"
66 -> "CREUH" 66 -> "TING"
67 -> "KKSQWL" 67 -> "CREUH"
68 -> "SMACK" 68 -> "KKSQWL"
69 -> "CLICK" 69 -> "SMACK"
70 -> "SPRT" 70 -> "CLICK"
71 -> "TIPTOP" 71 -> "SPRT"
72 -> "CRUH" 72 -> "TIPTOP"
73 -> "CHNKCHNKCHUNK" 73 -> "CRUH"
74 -> "DMP" 74 -> "CHNKCHNKCHUNK"
75 -> "CLKCLK" 75 -> "DMP"
76 -> "TIPTAP" 76 -> "CLKCLK"
77 -> "SKWLCH" 77 -> "TIPTAP"
78 -> "TNKTNKTNK" 78 -> "SKWLCH"
79 -> "CHPCHPCHP" 79 -> "TNKTNKTNK"
80 -> "SLP" 80 -> "CHPCHPCHP"
81 -> "SCREE" 81 -> "SLP"
82 -> "DHDHL" 82 -> "SCREE"
83 -> "BRAP" 83 -> "DHDHL"
84 -> "CRSK" 84 -> "BRAP"
85 -> "SPLRT" 85 -> "CRSK"
86 -> "SKWLL" 86 -> "SPLRT"
87 -> "CRNKL" 87 -> "SKWLL"
88 -> "TRNKL" 88 -> "CRNKL"
89 -> "TAPP" 89 -> "TRNKL"
90 -> "SHUHP" 90 -> "TAPP"
91 -> "CRUMBL" 91 -> "SHUHP"
92 -> "DEDEDUM" 92 -> "CRUMBL"
93 -> "TAK" 93 -> "DEDEDUM"
94 -> "SPLRT" 94 -> "TAK"
95 -> "SQLEE" 95 -> "SPLRT"
96 -> "CRISH" 96 -> "SQLEE"
97 -> "SWSH" 97 -> "CRISH"
98 -> "BIPBIPBIP" 98 -> "SWSH"
99 -> "BEP" 99 -> "BIPBIPBIP"
100 -> "CRSKRL" 100 -> "BEP"
101 -> "KRTNKL" 101 -> "CRSKRL"
102 -> "CRSNK" 102 -> "KRTNKL"
103 -> "SHTCK" 103 -> "CRSNK"
104 -> "TTRKL" 104 -> "SHTCK"
105 -> "UGGAUGGA" 105 -> "TTRKL"
106 -> "DUDURAH" 106 -> "UGGAUGGA"
107 -> "TING" 107 -> "DUDURAH"
108 -> "KKSQWL" 108 -> "TING"
109 -> "CRMPL" 109 -> "KKSQWL"
110 -> "BWEP" 110 -> "CRMPL"
111 -> "CHUGUGUG" 111 -> "BWEP"
112 -> "BANG" 112 -> "CHUGUGUG"
113 -> "SLPP" 113 -> "BANG"
114 -> "DEDA" 114 -> "SLPP"
115 -> "WHSSH" 115 -> "DEDA"
116 -> "CLANG" 116 -> "WHSSH"
117 -> "HNH" 117 -> "CLANG"
118 -> "BWAH" 118 -> "HNH"
119 -> "CRUNK" 119 -> "BWAH"
120 -> "SQWLTCH" 120 -> "CRUNK"
121 -> "DRR" 121 -> "SQWLTCH"
122 -> "WHH" 122 -> "DRR"
123 -> "TRNKL" 123 -> "WHH"
124 -> "BRAP" 124 -> "TRNKL"
125 -> "WHR" 125 -> "BRAP"
126 -> "BLPCHCH" 126 -> "WHR"
127 -> "SKLE" 127 -> "BLPCHCH"
128 -> "ZMM" 128 -> "SKLE"
129 -> "WRRR" 129 -> "ZMM"
130 -> "FWUMP" 130 -> "WRRR"
131 -> "BRAHCHCH" 131 -> "FWUMP"
132 -> "TING" 132 -> "BRAHCHCH"
133 -> "WHRR" 133 -> "TING"
134 -> "BWMP" 134 -> "WHRR"
135 -> "BRPBRPBRP" 135 -> "BWMP"
136 -> "WE-OH" 136 -> "BRPBRPBRP"
137 -> "WHRHH" 137 -> "WE-OH"
138 -> "THCK" 138 -> "WHRHH"
139 -> "FHP" 139 -> "THCK"
140 -> "QWLPH" 140 -> "FHP"
141 -> "QWLPH"
_ -> error "unitialised sound" _ -> error "unitialised sound"
soundPathList :: [String] soundPathList :: [String]
soundPathList = soundPathList =
@@ -333,6 +335,7 @@ soundPathList =
, "whirdownShort3.WH.200.wav" , "whirdownShort3.WH.200.wav"
, "whiteNoiseFadeOut.PHF.100.wav" , "whiteNoiseFadeOut.PHF.100.wav"
, "gut2.CRNCH.200.wav" , "gut2.CRNCH.200.wav"
, "lasPulse.PLH.500.wav"
, "tele.ZHM.1000.wav" , "tele.ZHM.1000.wav"
, "ting2.TING.200.wav" , "ting2.TING.200.wav"
, "blood5.CLCLH.100.wav" , "blood5.CLCLH.100.wav"
@@ -517,201 +520,203 @@ whiteNoiseFadeOutS :: SoundID
whiteNoiseFadeOutS = SoundID 40 whiteNoiseFadeOutS = SoundID 40
gut2S :: SoundID gut2S :: SoundID
gut2S = SoundID 41 gut2S = SoundID 41
lasPulseS :: SoundID
lasPulseS = SoundID 42
teleS :: SoundID teleS :: SoundID
teleS = SoundID 42 teleS = SoundID 43
ting2S :: SoundID ting2S :: SoundID
ting2S = SoundID 43 ting2S = SoundID 44
blood5S :: SoundID blood5S :: SoundID
blood5S = SoundID 44 blood5S = SoundID 45
hitS :: SoundID hitS :: SoundID
hitS = SoundID 45 hitS = SoundID 46
metal7S :: SoundID metal7S :: SoundID
metal7S = SoundID 46 metal7S = SoundID 47
ting4S :: SoundID ting4S :: SoundID
ting4S = SoundID 47 ting4S = SoundID 48
stone1S :: SoundID stone1S :: SoundID
stone1S = SoundID 48 stone1S = SoundID 49
clangS :: SoundID clangS :: SoundID
clangS = SoundID 49 clangS = SoundID 50
twoStep1S :: SoundID twoStep1S :: SoundID
twoStep1S = SoundID 50 twoStep1S = SoundID 51
wrench1S :: SoundID wrench1S :: SoundID
wrench1S = SoundID 51 wrench1S = SoundID 52
seagullChatterS :: SoundID seagullChatterS :: SoundID
seagullChatterS = SoundID 52 seagullChatterS = SoundID 53
blood4S :: SoundID blood4S :: SoundID
blood4S = SoundID 53 blood4S = SoundID 54
fireFadeS :: SoundID fireFadeS :: SoundID
fireFadeS = SoundID 54 fireFadeS = SoundID 55
foamSprayLoopS :: SoundID foamSprayLoopS :: SoundID
foamSprayLoopS = SoundID 55 foamSprayLoopS = SoundID 56
explosionS :: SoundID explosionS :: SoundID
explosionS = SoundID 56 explosionS = SoundID 57
foamSprayFadeOutS :: SoundID foamSprayFadeOutS :: SoundID
foamSprayFadeOutS = SoundID 57 foamSprayFadeOutS = SoundID 58
clang1S :: SoundID clang1S :: SoundID
clang1S = SoundID 58 clang1S = SoundID 59
tap2S :: SoundID tap2S :: SoundID
tap2S = SoundID 59 tap2S = SoundID 60
whirdown3S :: SoundID whirdown3S :: SoundID
whirdown3S = SoundID 60 whirdown3S = SoundID 61
tinitusS :: SoundID tinitusS :: SoundID
tinitusS = SoundID 61 tinitusS = SoundID 62
seagullCry1S :: SoundID seagullCry1S :: SoundID
seagullCry1S = SoundID 62 seagullCry1S = SoundID 63
seagullBarkS :: SoundID seagullBarkS :: SoundID
seagullBarkS = SoundID 63 seagullBarkS = SoundID 64
stone3S :: SoundID stone3S :: SoundID
stone3S = SoundID 64 stone3S = SoundID 65
tingS :: SoundID tingS :: SoundID
tingS = SoundID 65 tingS = SoundID 66
seagullCry2S :: SoundID seagullCry2S :: SoundID
seagullCry2S = SoundID 66 seagullCry2S = SoundID 67
bloodShort3S :: SoundID bloodShort3S :: SoundID
bloodShort3S = SoundID 67 bloodShort3S = SoundID 68
hit1S :: SoundID hit1S :: SoundID
hit1S = SoundID 68 hit1S = SoundID 69
click1S :: SoundID click1S :: SoundID
click1S = SoundID 69 click1S = SoundID 70
bloodShort2S :: SoundID bloodShort2S :: SoundID
bloodShort2S = SoundID 70 bloodShort2S = SoundID 71
twoStepSlowS :: SoundID twoStepSlowS :: SoundID
twoStepSlowS = SoundID 71 twoStepSlowS = SoundID 72
seagullCryS :: SoundID seagullCryS :: SoundID
seagullCryS = SoundID 72 seagullCryS = SoundID 73
crankSlowS :: SoundID crankSlowS :: SoundID
crankSlowS = SoundID 73 crankSlowS = SoundID 74
energyReleaseS :: SoundID energyReleaseS :: SoundID
energyReleaseS = SoundID 74 energyReleaseS = SoundID 75
primeS :: SoundID primeS :: SoundID
primeS = SoundID 75 primeS = SoundID 76
twoStepS :: SoundID twoStepS :: SoundID
twoStepS = SoundID 76 twoStepS = SoundID 77
bloodShort8S :: SoundID bloodShort8S :: SoundID
bloodShort8S = SoundID 77 bloodShort8S = SoundID 78
reloadS :: SoundID reloadS :: SoundID
reloadS = SoundID 78 reloadS = SoundID 79
reload1S :: SoundID reload1S :: SoundID
reload1S = SoundID 79 reload1S = SoundID 80
slapS :: SoundID slapS :: SoundID
slapS = SoundID 80 slapS = SoundID 81
tone440sawtoothS :: SoundID tone440sawtoothS :: SoundID
tone440sawtoothS = SoundID 81 tone440sawtoothS = SoundID 82
metal3S :: SoundID metal3S :: SoundID
metal3S = SoundID 82 metal3S = SoundID 83
tap3S :: SoundID tap3S :: SoundID
tap3S = SoundID 83 tap3S = SoundID 84
glassShat4S :: SoundID glassShat4S :: SoundID
glassShat4S = SoundID 84 glassShat4S = SoundID 85
bloodShort1S :: SoundID bloodShort1S :: SoundID
bloodShort1S = SoundID 85 bloodShort1S = SoundID 86
bloodShort4S :: SoundID bloodShort4S :: SoundID
bloodShort4S = SoundID 86 bloodShort4S = SoundID 87
glassShat2S :: SoundID glassShat2S :: SoundID
glassShat2S = SoundID 87 glassShat2S = SoundID 88
metal1S :: SoundID metal1S :: SoundID
metal1S = SoundID 88 metal1S = SoundID 89
foot3S :: SoundID foot3S :: SoundID
foot3S = SoundID 89 foot3S = SoundID 90
pickUpS :: SoundID pickUpS :: SoundID
pickUpS = SoundID 90 pickUpS = SoundID 91
stone5S :: SoundID stone5S :: SoundID
stone5S = SoundID 91 stone5S = SoundID 92
dededumS :: SoundID dededumS :: SoundID
dededumS = SoundID 92 dededumS = SoundID 93
tap1S :: SoundID tap1S :: SoundID
tap1S = SoundID 93 tap1S = SoundID 94
blood1S :: SoundID blood1S :: SoundID
blood1S = SoundID 94 blood1S = SoundID 95
bloodShort7S :: SoundID bloodShort7S :: SoundID
bloodShort7S = SoundID 95 bloodShort7S = SoundID 96
metal4S :: SoundID metal4S :: SoundID
metal4S = SoundID 96 metal4S = SoundID 97
knifeS :: SoundID knifeS :: SoundID
knifeS = SoundID 97 knifeS = SoundID 98
computerBeepingS :: SoundID computerBeepingS :: SoundID
computerBeepingS = SoundID 98 computerBeepingS = SoundID 99
tone440S :: SoundID tone440S :: SoundID
tone440S = SoundID 99 tone440S = SoundID 100
gut6S :: SoundID gut6S :: SoundID
gut6S = SoundID 100 gut6S = SoundID 101
smallGlass2S :: SoundID smallGlass2S :: SoundID
smallGlass2S = SoundID 101 smallGlass2S = SoundID 102
glassShat1S :: SoundID glassShat1S :: SoundID
glassShat1S = SoundID 102 glassShat1S = SoundID 103
disconnectItemS :: SoundID disconnectItemS :: SoundID
disconnectItemS = SoundID 103 disconnectItemS = SoundID 104
metal5S :: SoundID metal5S :: SoundID
metal5S = SoundID 104 metal5S = SoundID 105
seagullBarkTransformedS :: SoundID seagullBarkTransformedS :: SoundID
seagullBarkTransformedS = SoundID 105 seagullBarkTransformedS = SoundID 106
ejectS :: SoundID ejectS :: SoundID
ejectS = SoundID 106 ejectS = SoundID 107
ting3S :: SoundID ting3S :: SoundID
ting3S = SoundID 107 ting3S = SoundID 108
blood3S :: SoundID blood3S :: SoundID
blood3S = SoundID 108 blood3S = SoundID 109
stone2S :: SoundID stone2S :: SoundID
stone2S = SoundID 109 stone2S = SoundID 110
tone440raiseS :: SoundID tone440raiseS :: SoundID
tone440raiseS = SoundID 110 tone440raiseS = SoundID 111
seagullChatter1S :: SoundID seagullChatter1S :: SoundID
seagullChatter1S = SoundID 111 seagullChatter1S = SoundID 112
bangS :: SoundID bangS :: SoundID
bangS = SoundID 112 bangS = SoundID 113
slap1S :: SoundID slap1S :: SoundID
slap1S = SoundID 113 slap1S = SoundID 114
dedaS :: SoundID dedaS :: SoundID
dedaS = SoundID 114 dedaS = SoundID 115
missileLaunchS :: SoundID missileLaunchS :: SoundID
missileLaunchS = SoundID 115 missileLaunchS = SoundID 116
clang2S :: SoundID clang2S :: SoundID
clang2S = SoundID 116 clang2S = SoundID 117
gruntS :: SoundID gruntS :: SoundID
gruntS = SoundID 117 gruntS = SoundID 118
sineRaisePitchOneSecS :: SoundID sineRaisePitchOneSecS :: SoundID
sineRaisePitchOneSecS = SoundID 118 sineRaisePitchOneSecS = SoundID 119
metal2S :: SoundID metal2S :: SoundID
metal2S = SoundID 119 metal2S = SoundID 120
gut5S :: SoundID gut5S :: SoundID
gut5S = SoundID 120 gut5S = SoundID 121
slideDoorS :: SoundID slideDoorS :: SoundID
slideDoorS = SoundID 121 slideDoorS = SoundID 122
whirdown2S :: SoundID whirdown2S :: SoundID
whirdown2S = SoundID 122 whirdown2S = SoundID 123
metal6S :: SoundID metal6S :: SoundID
metal6S = SoundID 123 metal6S = SoundID 124
autoGunS :: SoundID autoGunS :: SoundID
autoGunS = SoundID 124 autoGunS = SoundID 125
whirdownSmall1S :: SoundID whirdownSmall1S :: SoundID
whirdownSmall1S = SoundID 125 whirdownSmall1S = SoundID 126
oldMachineBootS :: SoundID oldMachineBootS :: SoundID
oldMachineBootS = SoundID 126 oldMachineBootS = SoundID 127
blood6S :: SoundID blood6S :: SoundID
blood6S = SoundID 127 blood6S = SoundID 128
buzzS :: SoundID buzzS :: SoundID
buzzS = SoundID 128 buzzS = SoundID 129
fireLoudS :: SoundID fireLoudS :: SoundID
fireLoudS = SoundID 129 fireLoudS = SoundID 130
tap4S :: SoundID tap4S :: SoundID
tap4S = SoundID 130 tap4S = SoundID 131
shotgunS :: SoundID shotgunS :: SoundID
shotgunS = SoundID 131 shotgunS = SoundID 132
ting5S :: SoundID ting5S :: SoundID
ting5S = SoundID 132 ting5S = SoundID 133
whirS :: SoundID whirS :: SoundID
whirS = SoundID 133 whirS = SoundID 134
sawtoothFailS :: SoundID sawtoothFailS :: SoundID
sawtoothFailS = SoundID 134 sawtoothFailS = SoundID 135
miniS :: SoundID miniS :: SoundID
miniS = SoundID 135 miniS = SoundID 136
seagullWhistleS :: SoundID seagullWhistleS :: SoundID
seagullWhistleS = SoundID 136 seagullWhistleS = SoundID 137
whirdownS :: SoundID whirdownS :: SoundID
whirdownS = SoundID 137 whirdownS = SoundID 138
connectItemS :: SoundID connectItemS :: SoundID
connectItemS = SoundID 138 connectItemS = SoundID 139
whiteNoiseFadeInS :: SoundID whiteNoiseFadeInS :: SoundID
whiteNoiseFadeInS = SoundID 139 whiteNoiseFadeInS = SoundID 140
gut1S :: SoundID gut1S :: SoundID
gut1S = SoundID 140 gut1S = SoundID 141
+375 -369
View File
File diff suppressed because it is too large Load Diff