Partially refactor ammo extraction, work on pulse rifle
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -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
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ stackedInventory =
|
|||||||
, megaShellMag
|
, megaShellMag
|
||||||
, laser
|
, laser
|
||||||
, megaBattery
|
, megaBattery
|
||||||
, makeTypeCraft CAPACITOR
|
, capacitor
|
||||||
, makeTypeCraft TRANSFORMER
|
, makeTypeCraft TRANSFORMER
|
||||||
, teslaGun
|
, teslaGun
|
||||||
, megaBattery
|
, megaBattery
|
||||||
|
|||||||
+24
-34
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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,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))
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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."
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user