Make launcherX use multiple ammo sources

This commit is contained in:
2024-06-28 22:40:24 +01:00
parent 009a6cd30f
commit 32cb2b2e80
17 changed files with 220 additions and 342 deletions
+7 -39
View File
@@ -1,40 +1,8 @@
/home/justin/Haskell/loop/src/Dodge/Item/Weapon/TriggerType.hs:76:1: warning: [-Wunused-imports]
The qualified import of IntMapHelp is redundant
/home/justin/Haskell/loop/src/Dodge/Reloading.hs:25:22-40: error:
The constructor ReloadAction should have 2 arguments, but has been given 3
• In the pattern: ReloadAction x la j
In the pattern: SelItem i (ReloadAction x la j)
In the pattern: Just (SelItem i (ReloadAction x la j))
|
76 | import qualified IntMapHelp as IM
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/home/justin/Haskell/loop/src/Dodge/Item/Weapon/TriggerType.hs:349:5: warning: [-Wunused-matches]
Defined but not used: x
|
349 | x <- ams ^? ix 0 . itUse . amagLoadStatus . iaLoaded
| ^
/home/justin/Haskell/loop/src/Dodge/Item/Weapon/BatteryGuns.hs:128:12: warning: [-Wunused-matches]
Defined but not used: ams
|
128 | shootLaser ams it cr =
| ^^^
/home/justin/Haskell/loop/src/Dodge/Bullet.hs:63:5: warning: [-Wunused-matches]
Defined but not used: invid
|
63 | invid <- it ^? itLocation . ipInvID
| ^^^^^
/home/justin/Haskell/loop/src/Dodge/HeldUse.hs:410:18: warning: [-Wunused-matches]
Defined but not used: ams
|
410 | usePjCreationX i ams itm cr =
| ^^^
/home/justin/Haskell/loop/src/Dodge/HeldUse.hs:472:21: warning: [-Wunused-matches]
Defined but not used: it
|
472 | useGasParams nz ams it cr =
| ^^
/home/justin/Haskell/loop/src/Dodge/HeldUse.hs:486:17: warning: [-Wunused-matches]
Defined but not used: ams
|
486 | fireRemoteShell ams it cr w =
| ^^^
/home/justin/Haskell/loop/src/Dodge/HeldUse.hs:542:15: warning: [-Wunused-matches]
Defined but not used: ams
|
542 | shootTeslaArc ams it cr w =
| ^^^
25 | Just (SelItem i (ReloadAction x la))
| ^^^^^^^^^^^^^^^^^^^
+9 -13
View File
@@ -1,19 +1,22 @@
module Dodge.Base.You where
module Dodge.Base.You
(you
, yourScopeInvID
, yourInv
, yourScrollAttachment
, yourItem
)where
import Dodge.Data.World
import Dodge.HeldScroll
import qualified IntMapHelp as IM
import qualified Data.Map.Strict as M
--import qualified Data.Map.Strict as M
import Control.Lens
import Control.Monad
import Data.Maybe
--import Data.Maybe
you :: World -> Creature
you w = w ^?! cWorld . lWorld . creatures . ix 0
youc :: CWorld -> Creature
youc w = w ^?! lWorld . creatures . ix 0
yourItem :: World -> Maybe Item
yourItem w = do
i <- you w ^? crManipulation . manObject . inInventory . ispItem
@@ -36,13 +39,6 @@ yourScopeInvID w = do
yourInv :: World -> IM.IntMap Item
yourInv = _crInv . you
attachmentTree :: Creature -> M.Map AttachType Int
attachmentTree cr = fromMaybe mempty $ do
i <- cr ^? crManipulation . manObject . inInventory . ispItem
return $ upDownAttachments cr i i mempty
upDownAttachments :: Creature -> Int -> Int -> M.Map AttachType Int -> M.Map AttachType Int
upDownAttachments _ _ _ s = s
--yourInvSel :: World -> Int
--yourInvSel = crSel . you
-3
View File
@@ -56,11 +56,8 @@ updateBulVel bt = case _buTrajectory bt of
where
t = _buTimer bt
-- should be made safe?
-- should be renamed to shootBullet or something
shootBullet :: [Item] -> Item -> Creature -> World -> World
shootBullet ams it cr w = fromMaybe (error "cannot find bullet ammo when expected to") $ do
invid <- it ^? itLocation . ipInvID
thebullet <- ams ^? ix 0 . itUse . amagParams . ampBullet
return $ w & cWorld . lWorld . instantBullets
.:~ ( thebullet
+10
View File
@@ -224,6 +224,16 @@ inventoryX c = case c of
'L' -> [scrollWatch]
'M' -> stackedInventory
'N' -> [zoomScope,targetingScope TARGETLASER, sniperRifle]
'O' -> [ launcherX 2
, shellMag
, shellMag
, launcherX 3
, shellMag
, shellMag
, shellMag
, rifle
, shellMag
]
'T' -> testInventory
_ -> []
+1 -9
View File
@@ -34,16 +34,8 @@ useItemRightClick cr' w = fromMaybe (f w) $ do
getAmmoMags :: Item -> Creature -> [Item]
getAmmoMags itm cr = fromMaybe [] $ do
atypes <- itm ^? itUse . heldConsumption
i <- itm ^? itLocation . ipInvID
let amags = cr ^.. crInv . dropping (i + 1) traverse
mmags = zipWith f atypes amags
return $ catMaybes mmags
where
f atype itm' = do
itype <- itm' ^? itUse . amagType
guard $ itype == atype
return $ itm'
return $ cr ^.. crInv . dropping (i + 1) traverse
itemEffect :: Creature -> Item -> World -> World
itemEffect cr it w = case it ^. itUse of
-2
View File
@@ -99,8 +99,6 @@ data HeldMod
| BurstRifleRepeatMod
| MiniGunMod Int
| SmgMod
| RevolverXMod
| RevolverXRepeatMod
| BangConeMod
deriving (Eq, Ord, Show, Read) --Generic, Flat)
-10
View File
@@ -98,16 +98,6 @@ data ScrollAttachParams
| CharScrollParams
{ _scrollChar :: Seq.Seq Char}
data ItemUse'
= ItemHeld HeldUse'
| ItemEquip EquipUse'
| ItemConsume ConsumeUse'
| ItemCraft Int
data HeldUse' = HeldUse'
data EquipUse' = EquipUse'
data ConsumeUse' = ConsumeUse'
data AimParams = AimParams
{ _aimWeight :: Int
, _aimTurnSpeed :: Float
-11
View File
@@ -27,17 +27,6 @@ module Dodge.Default.Weapon where
--defaultChargeable :: LeftConsumption
--defaultChargeable = ChargeableAmmo 100 100
--defaultrUse :: ItemUse
--defaultrUse =
-- RightUse
-- { _rUse = HeldDoNothing
-- , _useDelay = FixedRate{_rateMax = 8, _rateTime = 0}
-- , _useMods = HeldModNothing
-- , _useHammer = HammerUp
-- , _useAim = defaultAimParams
-- , _heldScroll = HeldScrollDoNothing
-- , _heldConsumption = defaultLoadable
-- }
--
--
+24 -51
View File
@@ -58,10 +58,10 @@ useMod hm = case hm of
, ammoCheckI
]
LauncherMod ->
[ useAmmoAmount 1
, withSoundStart tap4S
, useTimeCheck
, ammoCheckI
--[ useAmmoAmount 1
-- , withSoundStart tap4S
[ useTimeCheck
-- , ammoCheckI
, blCheck
]
TeslaMod ->
@@ -108,11 +108,11 @@ useMod hm = case hm of
, duplicateLoadedBarrels
, ammoCheckI
]
LauncherXMod i ->
[ useAmmoAmount i
, withSoundStart tap4S
, useTimeCheck
, ammoCheckI
LauncherXMod _ ->
--[ useAmmoAmount i
--, withSoundStart tap4S
[ useTimeCheck
--, ammoCheckI
, blCheck
]
ShatterMod ->
@@ -314,30 +314,6 @@ useMod hm = case hm of
, useTimeCheck
, ammoCheckI
]
RevolverXMod ->
[ withRecoil
, withTorqueAfter
, withFlare
, duplicateLoadedBarrels
, useAmmoUpTo 1
, withSoundStart tap3S
, repeatOnFrames [2, 4, 6, 8, 10] RevolverXRepeatMod
, lockInvFor 10
, -- rather than locking the inventory, a better solution may be to check
-- that the weapon is still in your hands in the repeated frames
useTimeCheck
, ammoCheckI
, blCheck
]
RevolverXRepeatMod ->
[ withRecoil
, withTorqueAfter
, withFlare
, duplicateLoadedBarrels
, useAmmoUpTo 1
, withSoundStart tap3S
, ammoCheckI
]
BangConeMod ->
[ withRandomItem coneRandItemParams
, withRandomItemUpdate coneRandItemUpdate
@@ -388,7 +364,7 @@ useHeld hu = case hu of
HeldUseAmmoParams -> shootBullet
HeldOverNozzlesUseGasParams -> overNozzles useGasParams
HeldPJCreation -> usePjCreation
HeldPJCreationX i -> usePjCreationX i
HeldPJCreationX _ -> usePjCreationX
HeldFireRemoteShell -> fireRemoteShell
HeldDetectorEffect dt -> const $ detectorEffect dt
HeldTeslaArc -> shootTeslaArc
@@ -403,20 +379,17 @@ useHeld hu = case hu of
usePjCreation :: [Item] -> Item -> Creature -> World -> World
usePjCreation ams itm cr = fromMaybe id $ do
apm <- ams ^? ix 0 . itUse . amagParams
return $ createProjectile apm itm cr
apm <- ams ^? ix 0
muz <- itm ^? itUse . heldAim . aimMuzzles . ix 0
return $ createProjectile apm muz itm cr
usePjCreationX :: Int -> [Item] -> Item -> Creature -> World -> World
usePjCreationX i ams itm cr =
foldr
f
(createProjectile apm itm cr)
[1 .. i -1]
usePjCreationX :: [Item] -> Item -> Creature -> World -> World
usePjCreationX ams itm cr = fromMaybe id $ do
muzs <- itm ^? itUse . heldAim . aimMuzzles
return $ foldr
f id (zip muzs ams)
where
apm = fromMaybe (error "cannot find shell ammo projectile") $ do
invid <- itm ^? itLocation . ipInvID
cr ^? crInv . ix (invid + 1) . itUse . amagParams
f n = (. createProjectile apm itm (cr & crDir +~ (2 * pi * fromIntegral n / fromIntegral i)))
f (muz,am) = (createProjectile am muz itm cr .)
overNozzles ::
(Nozzle -> [Item] -> Item -> Creature -> World -> World) ->
@@ -469,7 +442,7 @@ getAmmoMagazine itm cr = do
return mag
useGasParams :: Nozzle -> [Item] -> Item -> Creature -> World -> World
useGasParams nz ams it cr =
useGasParams nz ams _ cr =
createGas
gastype
(_nzPressure nz)
@@ -478,7 +451,6 @@ useGasParams nz ams it cr =
cr
where
gastype = fromMaybe (error "cannot find gas ammo") $ ams ^? ix 0 . itUse . amagParams . ampCreateGas
-- amag = fromMaybe (error "cannot find gas ammo") $ getAmmoMagazine it cr
dir = _crDir cr
pos = _crPos cr +.+ (_nzLength nz *.* unitVectorAtAngle (_crDir cr))
@@ -493,10 +465,11 @@ fireRemoteShell ams it cr w =
i = IM.newKey $ w ^. cWorld . lWorld . props
cid = _crID cr
apm = fromMaybe (error "cannot find shell ammo projectile") $ do
invid <- it ^? itLocation . ipInvID
cr ^? crInv . ix (invid + 1) . itUse . amagParams
ams ^? ix 0
addRemRocket =
makeShell apm
-- the following is unsafe!
(it ^?! itUse . heldAim . aimMuzzles . ix 0)
it
cr
[ PJRemoteShellCollisionCheck
@@ -539,7 +512,7 @@ mcShootLaser it mc = cWorld . lWorld . lasers .:~ lasRayAt (_lasColor $ _itParam
-- | assumes that the item is held
shootTeslaArc :: [Item] -> Item -> Creature -> World -> World
shootTeslaArc ams it cr w =
shootTeslaArc _ it cr w =
w'
& cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itRef . itParams .~ ip
where
+1
View File
@@ -101,6 +101,7 @@ miniGunUse i =
& heldAim . aimRange .~ 1
& heldAim . aimStance .~ TwoHandUnder
& heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5}
& heldConsumption .~ [BulletAmmo]
miniGunX :: Int -> Item
miniGunX i =
+5 -1
View File
@@ -32,7 +32,7 @@ launcher =
-- & itUse . heldAim . aimHandlePos .~ V2 3 0
-- & itUse . heldAim . aimMuzPos .~ 20
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 20 0) 0 0]
& itUse . heldConsumption .~ [BulletAmmo]
& itUse . heldConsumption .~ [ProjectileAmmo]
& itType . iyBase .~ HELD LAUNCHER
& itType . iyModules . at ModLauncherHoming ?~ EMPTYMODULE
@@ -42,6 +42,10 @@ launcherX i =
& itType . iyBase .~ HELD (LAUNCHERX i)
& itUse . heldUse .~ HeldPJCreationX i
& itUse . heldMods .~ LauncherXMod i
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 20 0) a 0 | a <- angles]
where
angles = take i [0,2*pi/ fromIntegral i ..]
--angles = take i [1,2 ..]
remoteLauncher :: Item
remoteLauncher =
+1 -51
View File
@@ -22,23 +22,6 @@ import Picture
--import Control.Monad.State
--lasPulse :: Item
--lasPulse = lasGun
-- & itType . iyBase .~ LASPULSE
-- & itUse . useMods .~
-- [ ammoCheckI
-- , withItem $ \it -> withTempLight 1 (100 * frac it) (xyzV4 (_lasColor $ _itParams it))
-- , withItem $ \it -> withSoundForVol (frac it) tone440sawtoothquietS 2
-- , withItemUpdate itup
-- $ \it -> withMuzPos $ flareCircleAt (_lasColor $ _itParams it) (frac it * 0.8)
-- , useAmmoAmount 1
-- ]
-- where
-- itup it = it
-- & itParams . lasCycle %~ (\i -> (i+1) `mod` 20)
-- & itParams . lasDamage .~ ceiling ((22 :: Float) * frac it)
-- & itParams . lasColor .~ frac it * orange
-- frac it = 0.5 * (1 + sin (pi * fromIntegral (_lasCycle $ _itParams it) * 0.1))
--lasWidePulse :: Item
--lasWidePulse = lasGun
@@ -89,43 +72,10 @@ import Picture
-- x it = [ 15 * sin (pi * fromIntegral x' * 0.05) ]
-- where
-- x' = _lasCycle $ _itParams it
--lasFocus :: Int -> Item
--lasFocus n = lasGunWide n
-- & itType . iyBase .~ LASGUNFOCUS n
-- & itParams . lasColor .~ red
-- & itUse . useMods .~
-- [ ammoCheckI
-- , withItem $ \it -> withTempLight 1 100 (xyzV4 (_lasColor $ _itParams it))
-- , withItem $ \it -> withMuzPos $ flareCircleAt (_lasColor $ _itParams it) 0.8
-- , withSoundForI tone440sawtoothquietS 2
-- , useAmmoAmount 1
-- , duplicateOffsetsFocus xs
-- ]
-- where
-- n' = 9 * n
-- xs = [ 0.25 * (fromIntegral x - fromIntegral (n'-1) /2) | x <- [0..n'-1] ]
--lasSwing :: Item
--lasSwing = lasGun
-- & itType . iyBase .~ LASGUNSWING
-- & itParams . lasColor .~ orange
-- & itUse . useMods .~
-- [ ammoCheckI
-- , withItem $ \it -> withTempLight 1 100 (xyzV4 (_lasColor $ _itParams it))
-- , withItem $ \it -> withMuzPos $ flareCircleAt (_lasColor $ _itParams it) 0.8
-- , withSoundForI tone440sawtoothquietS 2
-- , useAmmoAmount 1
-- , withItemUpdate itup $ \it -> duplicateOffsetsFocus (x it)
-- ]
-- where
-- itup = itParams . lasCycle %~ (\i -> (i+1) `mod` 200)
-- x it = [-y,y]
-- where
-- y = 15 * sin (pi * fromIntegral x' * 0.01)
-- x' = _lasCycle $ _itParams it
shootLaser :: [Item] -> Item -> Creature -> World -> World
shootLaser ams it cr =
shootLaser _ it cr =
cWorld . lWorld . lasers
.:~ lasRayAt
(_lasColor $ _itParams it)
-19
View File
@@ -18,25 +18,6 @@ module Dodge.Item.Weapon.SonicGuns where
----import Data.Tuple
----import qualified IntMapHelp as IM
--
----sonicGun :: Item
----sonicGun = defaultAutoGun
---- { _itConsumption = defaultLoadable
---- & laMax .~ 10
---- & laCycle .~ [loadEject 10, loadInsert 10 , loadPrime 60]
---- , _itParams = NoParams
---- , _itTweaks = NoTweaks
---- }
---- & itDimension . dimRad .~ 10
---- & itDimension . dimCenter .~ V3 15 0 0
---- & itUse . useDelay . rateMax .~ 8
---- & itUse . rUse .~ HeldSonicWave --aSonicWave
---- & itUse . useMods .~ AmmoHammerTimeUseOneMod
---- & itUse . useAim . aimWeight .~ 6
---- & itUse . useAim . aimRange .~ 1
---- & itUse . useAim . aimStance .~ TwoHandTwist
---- & itUse . useAim . aimMuzPos .~ 25
---- & itType . iyBase .~ HELD SONICGUN
--
----aSonicWave :: Item -> Creature -> World -> World
----aSonicWave it cr = instantParticles .:~ sonicWave pos dir cpos
---- where
+6 -3
View File
@@ -73,7 +73,7 @@ import Dodge.Reloading
import Dodge.SoundLogic
import Dodge.WorldEvent
import Geometry
import qualified IntMapHelp as IM
--import qualified IntMapHelp as IM
import LensHelp
import RandomHelp
import qualified SDL
@@ -145,6 +145,9 @@ ammoCheckI :: ChainEffect
ammoCheckI eff ams itm cr w = fromMaybe (failsound w) $ do
x <- ams ^? ix 0 . itUse . amagLoadStatus . iaLoaded
guard $ x > 0
matype <- ams ^? ix 0 . itUse . amagType
iatype <- itm ^? itUse . heldConsumption . ix 0
guard $ matype == iatype
return $ eff ams itm cr $ w & cWorld . lWorld . creatures . ix (_crID cr) %~ crCancelReloading
where
failsound = case w ^? input . mouseButtons . ix SDL.ButtonLeft of
@@ -239,7 +242,7 @@ withSoundStart ::
SoundID ->
ChainEffect
withSoundStart soundid f ams item cr =
soundMultiFrom [CrWeaponSound cid 0, CrWeaponSound cid 1, CrWeaponSound cid 2] (_crPos cr) soundid Nothing
soundMultiFrom [CrWeaponSound cid j | j <- [0..3]] (_crPos cr) soundid Nothing
. f ams item cr
where
cid = _crID cr
@@ -346,7 +349,7 @@ useAllAmmo eff ams item cr w = fromMaybe w $ do
useAmmoUpTo :: Int -> ChainEffect
useAmmoUpTo amAmount eff ams itm cr = fromMaybe id $ do
x <- ams ^? ix 0 . itUse . amagLoadStatus . iaLoaded
_ <- ams ^? ix 0 . itUse . amagLoadStatus . iaLoaded
invid <- ams ^? ix 0 . itLocation . ipInvID
return $ eff ams itm cr
. ( cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itUse . amagLoadStatus . iaLoaded
+69 -44
View File
@@ -1,22 +1,42 @@
module Dodge.Projectile.Create where
import Dodge.SoundLogic
import Dodge.Reloading
import Control.Monad
import Data.Maybe
import Dodge.Data.World
import Geometry
import qualified IntMapHelp as IM
import LensHelp
--import Data.Maybe
import qualified SDL
createProjectile :: AmmoParams -> Item -> Creature -> World -> World
createProjectile apm itm cr = case pt of
CreateShell -> fireShell apm itm cr
CreateTrackingShell -> fireTrackingShell apm itm cr
createProjectile :: Item -> Muzzle -> Item -> Creature -> World -> World
createProjectile ammoitem muz itm cr = fromMaybe failsound $ do
x <- ammoitem ^? itUse . amagLoadStatus . iaLoaded
guard $ x > 0
matype <- ammoitem ^? itUse . amagType
guard $ matype == ProjectileAmmo
j <- ammoitem ^? itLocation . ipInvID
pt <- ammoitem ^? itUse . amagParams . ampPjCreation
return $ case pt of
CreateShell -> fireShell ammoitem muz itm cr . extrafuncs j
CreateTrackingShell -> fireTrackingShell ammoitem muz itm cr . extrafuncs j
where
pt = _ampPjCreation apm
extrafuncs j = cancelanyreloading . startthesound . useammo j
useammo j = cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix j . itUse . amagLoadStatus . iaLoaded -~ 1
cancelanyreloading = cWorld . lWorld . creatures . ix (_crID cr) %~ crCancelReloading
-- the sound should be moved to the projectile firing
startthesound = soundMultiFrom [CrWeaponSound (_crID cr) j | j <- [0..3]] (_crPos cr) tap4S Nothing
failsound w' = case w' ^? input . mouseButtons . ix SDL.ButtonLeft of
Just 0 -> soundStart (CrReloadSound (_crID cr)) (_crPos cr) click1S Nothing w'
_ -> soundContinue (CrReloadSound (_crID cr)) (_crPos cr) click1S Nothing w'
fireShell :: AmmoParams -> Item -> Creature -> World -> World
fireShell ap it cr =
fireShell :: Item -> Muzzle -> Item -> Creature -> World -> World
fireShell ammoitem muz it cr =
makeShell
ap
ammoitem
muz
it
cr
[ PJShellCollisionCheck
@@ -31,43 +51,48 @@ fireShell ap it cr =
spinamount = _shellSpinAmount params
thrustdelay = _shellThrustDelay params
makeShell :: AmmoParams -> Item -> Creature -> [ProjectileUpdate] -> World -> World
makeShell ap it cr theupdate w =
w & cWorld . lWorld . projectiles . at i
?~ Shell
{ _prjPos = pos
, _prjZ = 20
, _prjStartPos = pos
, _prjVel = rotateV dir (V2 1 0)
, _prjDraw = DrawShell
, _prjID = i
, _prjAcc = rotateV dir (V2 3 0)
, _prjDir = dir
, _prjSpin = 0
, _prjPayload = _ampPayload ap
, _prjTimer = 350
, _prjUpdates = theupdate
, _prjMITID = Just $ _itID it
}
makeShell :: Item -> Muzzle -> Item -> Creature -> [ProjectileUpdate] -> World -> World
makeShell ammoitem muz it cr theupdate w = fromMaybe w $ do
aparams <- ammoitem ^? itUse . amagParams
return $
w & cWorld . lWorld . projectiles . at i
?~ Shell
{ _prjPos = pos
, _prjZ = 20
, _prjStartPos = pos
, _prjVel = rotateV dir (V2 1 0)
, _prjDraw = DrawShell
, _prjID = i
, _prjAcc = rotateV dir (V2 3 0)
, _prjDir = dir
, _prjSpin = 0
, _prjPayload = _ampPayload aparams
, _prjTimer = 350
, _prjUpdates = theupdate
, _prjMITID = Just $ _itID it
}
where
i = IM.newKey $ w ^. cWorld . lWorld . props-- _props (_cWorld w)
dir = _crDir cr
pos = _crPos cr +.+ rotateV dir (V2 (_crRad cr + 1) 0)
--am = _heldConsumption $ _itUse it
i = IM.newKey $ w ^. cWorld . lWorld . projectiles -- _props (_cWorld w)
dir = _crDir cr + _mzRot muz
pos = _crPos cr +.+ rotateV dir (_mzPos muz)
fireTrackingShell :: AmmoParams -> Item -> Creature -> World -> World
fireTrackingShell ap it cr =
makeShell
ap
it
cr
[ PJRemoteShellCollisionCheck
, PJDecTimMvVel
, PJSpin 335 (_crID cr) spinamount
, PJTrack (350 - thrustdelay) 0 (_itID it)
, PJThrust (350 - thrustdelay) 0
, PJReduceSpin (1 - fromIntegral spindrag * 2 / 200)
]
--am = _heldConsumption $ _itUse it
fireTrackingShell :: Item -> Muzzle -> Item -> Creature -> World -> World
fireTrackingShell ammoitem muz it cr = fromMaybe id $ do
return $
makeShell
ammoitem
muz
it
cr
[ PJRemoteShellCollisionCheck
, PJDecTimMvVel
, PJSpin 335 (_crID cr) spinamount
, PJTrack (350 - thrustdelay) 0 (_itID it)
, PJThrust (350 - thrustdelay) 0
, PJReduceSpin (1 - fromIntegral spindrag * 2 / 200)
]
where
spinamount = _shellSpinAmount params
thrustdelay = _shellThrustDelay params
+5 -2
View File
@@ -17,9 +17,12 @@ import Dodge.Data.Universe
--import Data.Maybe
--import ShortShow
--import qualified Data.Map.Strict as M
--import qualified IntMapHelp as IM
import qualified IntMapHelp as IM
testStringInit :: Universe -> [String]
testStringInit _ = []
testStringInit u = [fromMaybe "" $ do
proj <- u ^? uvWorld . cWorld . lWorld . projectiles
return $ show $ IM.size proj
]
-- [fromMaybe "" $ do
-- cr <- u ^? uvWorld . cWorld . lWorld . creatures . ix 0
-- i <- cr ^? crManipulation . manObject . inInventory . ispItem
+82 -84
View File
@@ -200,7 +200,7 @@ BURSTRIFLE src/Dodge/Data/Item/Combine.hs 174;" C
BackgroundSound src/Dodge/Data/SoundOrigin.hs 14;" C
Ball src/Dodge/Tesla/Ball.hs 1;" m
BangCaneMod src/Dodge/Data/Item/HeldUse.hs 85;" C
BangConeMod src/Dodge/Data/Item/HeldUse.hs 104;" C
BangConeMod src/Dodge/Data/Item/HeldUse.hs 102;" C
BangRodMod src/Dodge/Data/Item/HeldUse.hs 89;" C
BangStickMod src/Dodge/Data/Item/HeldUse.hs 94;" C
Bark src/Dodge/Data/ActionPlan.hs 40;" C
@@ -2170,8 +2170,6 @@ ResourceFailure src/Dodge/Data/Scenario.hs 29;" C
RetailFacility src/Dodge/Data/Scenario.hs 67;" C
ReturnEffect src/Dodge/Terminal/ReturnEffect.hs 1;" m
Revenge src/Dodge/Data/Scenario.hs 6;" C
RevolverXMod src/Dodge/Data/Item/HeldUse.hs 102;" C
RevolverXRepeatMod src/Dodge/Data/Item/HeldUse.hs 103;" C
RewindEffect src/Dodge/Data/ItEffect.hs 38;" C
RewindLeftClick src/Dodge/Data/World.hs 72;" C
RezBaySS src/Dodge/Data/Scenario.hs 105;" C
@@ -4375,7 +4373,7 @@ advanceScrollAmount src/Dodge/Update.hs 297;" f
advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f
advanceStepCounter src/Dodge/Creature/Action/Movement.hs 56;" f
advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f
afterRecoil src/Dodge/Item/Weapon/TriggerType.hs 288;" f
afterRecoil src/Dodge/Item/Weapon/TriggerType.hs 291;" f
aimDelaySweep src/Dodge/Render/ShapePicture.hs 44;" f
aimStanceInfo src/Dodge/Item/Info.hs 230;" f
aimTurn src/Dodge/Creature/YourControl.hs 188;" f
@@ -4509,7 +4507,7 @@ bangRod src/Dodge/Item/Weapon/BulletGun/Rod.hs 18;" f
bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 478;" f
bangStick src/Dodge/Item/Held/Stick.hs 16;" f
bangStick src/Dodge/Item/Weapon/BulletGun/Stick.hs 17;" f
bangStickSoundChoice src/Dodge/HeldUse.hs 515;" f
bangStickSoundChoice src/Dodge/HeldUse.hs 494;" f
bangStickSoundChoice src/Dodge/HeldUse/BulletWeapon.hs 226;" f
barPP src/Dodge/Room/Foreground.hs 236;" f
barrel src/Dodge/Creature/Inanimate.hs 17;" f
@@ -4530,7 +4528,7 @@ baseStickSpread src/Dodge/Item/Held/Stick.hs 35;" f
baseStickSpread src/Dodge/Item/Weapon/BulletGun/Stick.hs 46;" f
baseWindowPane src/Dodge/Placements/Wall.hs 73;" f
baseWindowPane src/Dodge/Room/Placement.hs 103;" f
basicAmPjMoves src/Dodge/Item/Held/Launcher.hs 54;" f
basicAmPjMoves src/Dodge/Item/Held/Launcher.hs 58;" f
basicAttentionUpdate src/Dodge/Creature/AlertLevel.hs 50;" f
basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f
basicAwarenessUpdate src/Dodge/Creature/AlertLevel.hs 25;" f
@@ -4556,7 +4554,7 @@ bezierGun src/Dodge/Item/Weapon/Bezier.hs 24;" f
bfsNodePoints src/Dodge/Path.hs 58;" f
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 233;" f
bindFBO src/Render.hs 244;" f
blCheck src/Dodge/Item/Weapon/TriggerType.hs 378;" f
blCheck src/Dodge/Item/Weapon/TriggerType.hs 381;" f
black src/Color.hs 27;" f
blank src/Picture/Base.hs 59;" f
blinkAcrossChallenge src/Dodge/Room/BlinkAcross.hs 14;" f
@@ -4640,7 +4638,7 @@ canAttachTargeting src/Dodge/Item/Display.hs 33;" f
canHeldScrollAttach src/Dodge/HeldScroll.hs 75;" f
canSee src/Dodge/Base/Collide.hs 228;" f
canSeeIndirect src/Dodge/Base/Collide.hs 235;" f
caneStickSoundChoice src/Dodge/HeldUse.hs 510;" f
caneStickSoundChoice src/Dodge/HeldUse.hs 489;" f
cardList src/Dodge/Base/CardinalPoint.hs 6;" f
cardVec src/Dodge/Base/CardinalPoint.hs 9;" f
cardinalVectors src/Dodge/FloorItem.hs 38;" f
@@ -4794,8 +4792,8 @@ composeTree src/Dodge/Tree/Compose.hs 46;" f
computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 458;" f
conEffects src/Dodge/Concurrent.hs 17;" f
concBall src/Dodge/WorldEvent/SpawnParticle.hs 27;" f
coneRandItemParams src/Dodge/HeldUse.hs 524;" f
coneRandItemUpdate src/Dodge/HeldUse.hs 518;" f
coneRandItemParams src/Dodge/HeldUse.hs 503;" f
coneRandItemUpdate src/Dodge/HeldUse.hs 497;" f
connectRoom src/Dodge/Layout/Tree/Either.hs 48;" f
connectTrunk src/Dodge/Layout/Tree/Either.hs 54;" f
connectionBlurb src/Dodge/Terminal.hs 100;" f
@@ -4876,7 +4874,7 @@ createHeldLight src/Dodge/ItEffect.hs 70;" f
createLightMap src/Render.hs 26;" f
createNewArc src/Dodge/Tesla/Arc.hs 76;" f
createPathGrid src/Dodge/Room/Path.hs 21;" f
createProjectile src/Dodge/Projectile/Create.hs 9;" f
createProjectile src/Dodge/Projectile/Create.hs 10;" f
createPutItem src/Dodge/Inventory/Add.hs 52;" f
createShieldWall src/Dodge/Euse.hs 134;" f
createTorchLightOffset src/Dodge/LightSource/Torch.hs 9;" f
@@ -5377,12 +5375,12 @@ dualBeam src/Dodge/Item/Held/BatteryGuns.hs 136;" f
dualBeamPic src/Dodge/Item/Draw/SPic.hs 463;" f
dualRayAt src/Dodge/Item/Weapon/BatteryGuns.hs 194;" f
dummyMenuOption src/Dodge/Menu/Option.hs 81;" f
duplicateItem src/Dodge/Item/Weapon/TriggerType.hs 709;" f
duplicateLoaded src/Dodge/Item/Weapon/TriggerType.hs 660;" f
duplicateLoadedBarrels src/Dodge/Item/Weapon/TriggerType.hs 682;" f
duplicateNumBarrels src/Dodge/Item/Weapon/TriggerType.hs 668;" f
duplicateOffsetsFocus src/Dodge/Item/Weapon/TriggerType.hs 690;" f
duplicateOffsetsV2 src/Dodge/Item/Weapon/TriggerType.hs 714;" f
duplicateItem src/Dodge/Item/Weapon/TriggerType.hs 712;" f
duplicateLoaded src/Dodge/Item/Weapon/TriggerType.hs 663;" f
duplicateLoadedBarrels src/Dodge/Item/Weapon/TriggerType.hs 685;" f
duplicateNumBarrels src/Dodge/Item/Weapon/TriggerType.hs 671;" f
duplicateOffsetsFocus src/Dodge/Item/Weapon/TriggerType.hs 693;" f
duplicateOffsetsV2 src/Dodge/Item/Weapon/TriggerType.hs 717;" f
ebFlicker src/Dodge/EnergyBall.hs 94;" f
edgeFormatting src/Dodge/Combine/Graph.hs 119;" f
edgeToPic src/Dodge/Debug/Picture.hs 392;" f
@@ -5468,11 +5466,11 @@ findReverseEdgeList src/Polyhedra.hs 56;" f
findWallFreeDropPoint src/Dodge/FloorItem.hs 46;" f
findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f
fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f
fireRemoteShell src/Dodge/HeldUse.hs 485;" f
fireRemoteShell src/Dodge/HeldUse.hs 464;" f
fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 332;" f
fireShell src/Dodge/Projectile/Create.hs 16;" f
fireShell src/Dodge/Projectile/Create.hs 17;" f
fireSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
fireTrackingShell src/Dodge/Projectile/Create.hs 58;" f
fireTrackingShell src/Dodge/Projectile/Create.hs 62;" f
firstBreather src/Dodge/Room/Breather.hs 9;" f
firstWorldLoad appDodge/Main.hs 77;" f
fixedCoordPictures src/Dodge/Render/Picture.hs 17;" f
@@ -5578,7 +5576,7 @@ geometryQuickCheckTests test/Spec.hs 55;" f
geometryTests test/Spec.hs 17;" f
geometryUnitTests test/Spec.hs 22;" f
geqConstr src/SameConstr.hs 21;" f
getAmmoMagazine src/Dodge/HeldUse.hs 462;" f
getAmmoMagazine src/Dodge/HeldUse.hs 441;" f
getAmmoMags src/Dodge/Creature/Impulse/UseItem.hs 35;" f
getArguments src/Dodge/Update/Scroll.hs 147;" f
getArguments' src/Dodge/Update/Scroll.hs 135;" f
@@ -5657,7 +5655,7 @@ hackOutline src/Dodge/Render/Outline.hs 5;" f
halfHeight src/Dodge/Base/Window.hs 48;" f
halfWidth src/Dodge/Base/Window.hs 48;" f
haltSound src/Dodge/SoundLogic.hs 37;" f
hammerCheckL src/Dodge/Item/Weapon/TriggerType.hs 386;" f
hammerCheckL src/Dodge/Item/Weapon/TriggerType.hs 389;" f
handleEvent src/Dodge/Event.hs 27;" f
handleHotkeys src/Dodge/Creature/YourControl.hs 42;" f
handleKeyboardEvent src/Dodge/Event/Input.hs 22;" f
@@ -5850,7 +5848,7 @@ itBounds src/Dodge/Item/Module.hs 22;" f
itSlotsTaken src/Dodge/Inventory/ItemSpace.hs 9;" f
itSlotsTaken src/Dodge/Item/SlotsTaken.hs 9;" f
itStackAmount src/Dodge/Item/Amount.hs 7;" f
itUseCharge src/Dodge/Item/Weapon/TriggerType.hs 154;" f
itUseCharge src/Dodge/Item/Weapon/TriggerType.hs 157;" f
itemBaseName src/Dodge/Item/Display.hs 75;" f
itemBlips src/Dodge/Item/Weapon/UseEffect.hs 38;" f
itemBlips src/Dodge/RadarSweep.hs 74;" f
@@ -5938,14 +5936,14 @@ lasTunnelRunPast src/Dodge/Room/LasTurret.hs 165;" f
lasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f
lasTurret src/Dodge/Placements/Turret.hs 29;" f
lasWide src/Dodge/Item/Held/BatteryGuns.hs 97;" f
lasWideRate src/Dodge/HeldUse.hs 377;" f
lasWideRate src/Dodge/HeldUse.hs 353;" f
latchkey src/Dodge/Item/Held/Utility.hs 23;" f
latchkey src/Dodge/Item/PassKey.hs 14;" f
launcher src/Dodge/Item/Held/Launcher.hs 10;" f
launcher src/Dodge/Item/Held/Launcher.hs 11;" f
launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f
launcherPic src/Dodge/Item/Draw/SPic.hs 423;" f
launcherSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
launcherX src/Dodge/Item/Held/Launcher.hs 39;" f
launcherX src/Dodge/Item/Held/Launcher.hs 40;" f
layerNum src/Picture/Data.hs 31;" f
layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f
ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 90;" f
@@ -6095,7 +6093,7 @@ makeShaderProgram src/Shader/Compile.hs 287;" f
makeShaderUsingVAO src/Shader/Compile.hs 155;" f
makeShaderUsingVBO src/Shader/Compile.hs 78;" f
makeShaderVBO src/Shader/Compile.hs 38;" f
makeShell src/Dodge/Projectile/Create.hs 34;" f
makeShell src/Dodge/Projectile/Create.hs 37;" f
makeShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 12;" f
makeSourcedShader src/Shader/Compile.hs 203;" f
makeStartCloudAt src/Dodge/WorldEvent/Cloud.hs 60;" f
@@ -6146,10 +6144,10 @@ mcProximitySensorUpdate src/Dodge/Machine/Update.hs 104;" f
mcSPic src/Dodge/Render/ShapePicture.hs 169;" f
mcSensorTriggerUpdate src/Dodge/Machine/Update.hs 69;" f
mcSensorUpdate src/Dodge/Machine/Update.hs 99;" f
mcShootLaser src/Dodge/HeldUse.hs 532;" f
mcShootLaser src/Dodge/HeldUse.hs 511;" f
mcTriggerVal src/Dodge/Machine/Update.hs 75;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 24;" f
mcUseHeld src/Dodge/HeldUse.hs 380;" f
mcUseHeld src/Dodge/HeldUse.hs 356;" f
mcUseItem src/Dodge/Machine/Update.hs 61;" f
medkit src/Dodge/Item/Consumable.hs 8;" f
meleeHeadingMove src/Dodge/Creature/Boid.hs 281;" f
@@ -6192,7 +6190,7 @@ mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 322;" f
miniGunCrit src/Dodge/Creature.hs 62;" f
miniGunUse src/Dodge/Item/Held/Cane.hs 94;" f
miniGunUse src/Dodge/Item/Weapon/BulletGun/Cane.hs 113;" f
miniGunX src/Dodge/Item/Held/Cane.hs 105;" f
miniGunX src/Dodge/Item/Held/Cane.hs 106;" f
miniGunX src/Dodge/Item/Weapon/BulletGun/Cane.hs 120;" f
miniGunXPict src/Dodge/Item/Draw/SPic.hs 383;" f
miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 377;" f
@@ -6222,7 +6220,7 @@ mntLight src/Dodge/Placement/Instance/LightSource.hs 154;" f
mntLight src/Dodge/Placements/LightSource.hs 89;" f
mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 159;" f
mntLightLnkCond src/Dodge/Placements/LightSource.hs 94;" f
modClock src/Dodge/Item/Weapon/TriggerType.hs 445;" f
modClock src/Dodge/Item/Weapon/TriggerType.hs 448;" f
modTo src/Geometry/Zone.hs 10;" f
modifierKey src/Dodge/Config/KeyConfig.hs 34;" f
moduleAttachPosition src/Dodge/Item/Module.hs 6;" f
@@ -6385,9 +6383,9 @@ overColObj src/Shape.hs 269;" f
overColSH src/Shape.hs 237;" f
overLnkPosDir src/Dodge/RoomLink.hs 100;" f
overLnkType src/Dodge/RoomLink.hs 87;" f
overNozzle src/Dodge/HeldUse.hs 443;" f
overNozzles src/Dodge/HeldUse.hs 421;" f
overNozzles' src/Dodge/HeldUse.hs 430;" f
overNozzle src/Dodge/HeldUse.hs 422;" f
overNozzles src/Dodge/HeldUse.hs 400;" f
overNozzles' src/Dodge/HeldUse.hs 409;" f
overPos src/Picture/Base.hs 302;" f
overPosObj src/Shape.hs 273;" f
overPosSH src/Shape.hs 257;" f
@@ -6754,7 +6752,7 @@ randsOnCirc src/RandomHelp.hs 118;" f
randsSpread src/Dodge/RandomHelp.hs 100;" f
randsSpread src/RandomHelp.hs 111;" f
ratIntersectLineLine src/Geometry/Intersect.hs 195;" f
rateIncAB src/Dodge/Item/Weapon/TriggerType.hs 164;" f
rateIncAB src/Dodge/Item/Weapon/TriggerType.hs 167;" f
readSaveSlot src/Dodge/Save.hs 45;" f
rectNESW src/Geometry/Polygon.hs 13;" f
rectNSWE src/Geometry/Polygon.hs 19;" f
@@ -6788,7 +6786,7 @@ reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 426;" f
reloadSound src/Dodge/SoundLogic/Synonyms.hs 4;" f
rememberSounds src/Dodge/Creature/Perception.hs 177;" f
remoteBombUnarmedPic src/Dodge/Item/Weapon/Grenade.hs 268;" f
remoteLauncher src/Dodge/Item/Held/Launcher.hs 46;" f
remoteLauncher src/Dodge/Item/Held/Launcher.hs 50;" f
remoteShellCollisionCheck src/Dodge/Projectile/Update.hs 44;" f
remoteShellShape src/Dodge/Projectile/Draw.hs 39;" f
removeEither src/Dodge/Layout/Tree/Either.hs 41;" f
@@ -6805,7 +6803,7 @@ renderLayer src/Render.hs 233;" f
renderLightingNoShadows src/Render.hs 48;" f
renderListAt src/Dodge/Render/List.hs 160;" f
renderShadows src/Render.hs 117;" f
repeatOnFrames src/Dodge/Item/Weapon/TriggerType.hs 648;" f
repeatOnFrames src/Dodge/Item/Weapon/TriggerType.hs 651;" f
repeatTransformed src/Dodge/Item/Weapon/TriggerType.hs 95;" f
repeater src/Dodge/Item/Held/Cane.hs 72;" f
repeater src/Dodge/Item/Weapon/BulletGun/Cane.hs 89;" f
@@ -7111,7 +7109,7 @@ shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
shootFlameSpitter src/Dodge/HeldUse/SprayWeapon.hs 9;" f
shootFlameSpitterRepeat src/Dodge/HeldUse/SprayWeapon.hs 19;" f
shootFlameThrower src/Dodge/HeldUse/SprayWeapon.hs 26;" f
shootL src/Dodge/Item/Weapon/TriggerType.hs 400;" f
shootL src/Dodge/Item/Weapon/TriggerType.hs 403;" f
shootLaser src/Dodge/Item/Weapon/BatteryGuns.hs 127;" f
shootMachineGun src/Dodge/HeldUse/BulletWeapon.hs 218;" f
shootMachinePistol src/Dodge/HeldUse/BulletWeapon.hs 62;" f
@@ -7123,7 +7121,7 @@ shootRevolverXRepeat src/Dodge/HeldUse/BulletWeapon.hs 49;" f
shootRifle src/Dodge/HeldUse/BulletWeapon.hs 140;" f
shootShatter src/Dodge/Item/Weapon/Shatter.hs 12;" f
shootSmgMod src/Dodge/HeldUse/BulletWeapon.hs 86;" f
shootTeslaArc src/Dodge/HeldUse.hs 541;" f
shootTeslaArc src/Dodge/HeldUse.hs 520;" f
shootTillEmpty src/Dodge/Creature/Volition.hs 18;" f
shootVolleyGun src/Dodge/HeldUse/BulletWeapon.hs 128;" f
shootersRoom src/Dodge/Room/Room.hs 317;" f
@@ -7161,7 +7159,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f
shuffleRoomPos src/Dodge/Layout.hs 78;" f
shuffleTail src/Dodge/RandomHelp.hs 50;" f
shuffleTail src/RandomHelp.hs 55;" f
sideEffectOnFrame src/Dodge/Item/Weapon/TriggerType.hs 628;" f
sideEffectOnFrame src/Dodge/Item/Weapon/TriggerType.hs 631;" f
sideEffectUpdatePreload src/Dodge/PreloadData.hs 7;" f
sigmoid src/Dodge/Base.hs 129;" f
simpleCrSprings src/Dodge/Update.hs 639;" f
@@ -7241,8 +7239,8 @@ spawnSmokeAtCursor src/Dodge/WorldEvent/Cloud.hs 73;" f
spawnerCrit src/Dodge/Creature.hs 55;" f
spawnerRoom src/Dodge/Room/Room.hs 362;" f
speedLegs src/Dodge/Item/Equipment.hs 131;" f
spinDrag src/Dodge/Item/Held/Launcher.hs 62;" f
spinStart src/Dodge/Item/Held/Launcher.hs 70;" f
spinDrag src/Dodge/Item/Held/Launcher.hs 66;" f
spinStart src/Dodge/Item/Held/Launcher.hs 74;" f
splashMenu src/Dodge/Menu.hs 27;" f
splashMenuOptions src/Dodge/Menu.hs 32;" f
splashScreen src/Dodge/Initialisation.hs 11;" f
@@ -7287,7 +7285,7 @@ ssfold src/FoldableHelp.hs 104;" f
stackPicturesAt src/Dodge/Render/List.hs 81;" f
stackPicturesAtOff src/Dodge/Render/List.hs 84;" f
stackText src/Picture/Base.hs 188;" f
stackedInventory src/Dodge/Creature.hs 253;" f
stackedInventory src/Dodge/Creature.hs 259;" f
startCr src/Dodge/Creature.hs 91;" f
startCrafts src/Dodge/Room/Start.hs 102;" f
startInvList src/Dodge/Creature.hs 109;" f
@@ -7401,7 +7399,7 @@ teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f
testCrossWalls src/Dodge/Room/Path.hs 47;" f
testEvent src/Dodge/Event/Test.hs 10;" f
testEventKey src/Dodge/Config/KeyConfig.hs 27;" f
testInventory src/Dodge/Creature.hs 230;" f
testInventory src/Dodge/Creature.hs 236;" f
testPic src/Dodge/Render/ShapePicture.hs 153;" f
testStringInit src/Dodge/TestString.hs 21;" f
text src/Picture/Base.hs 192;" f
@@ -7430,7 +7428,7 @@ thingsHit src/Dodge/WorldEvent/ThingsHit.hs 29;" f
thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 73;" f
threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f
throwRemoteBomb src/Dodge/Item/Weapon/Grenade.hs 205;" f
thrustParam src/Dodge/Item/Held/Launcher.hs 78;" f
thrustParam src/Dodge/Item/Held/Launcher.hs 82;" f
tileTexCoords src/Tile.hs 10;" f
tilesFromRooms src/Dodge/Layout.hs 205;" f
tilesToLine src/Shader/AuxAddition.hs 66;" f
@@ -7475,10 +7473,10 @@ topPrismEdgeIndices src/Shader/Poke.hs 327;" f
topPrismIndices src/Shader/Poke.hs 402;" f
torch src/Dodge/Item/Held/Utility.hs 26;" f
torchShape src/Dodge/Item/Draw/SPic.hs 195;" f
torqueBefore src/Dodge/Item/Weapon/TriggerType.hs 558;" f
torqueBeforeAtLeast src/Dodge/Item/Weapon/TriggerType.hs 581;" f
torqueBefore src/Dodge/Item/Weapon/TriggerType.hs 561;" f
torqueBeforeAtLeast src/Dodge/Item/Weapon/TriggerType.hs 584;" f
torqueCr src/Dodge/WorldEffect.hs 64;" f
torqueSideEffect src/Dodge/Item/Weapon/TriggerType.hs 636;" f
torqueSideEffect src/Dodge/Item/Weapon/TriggerType.hs 639;" f
torso src/Dodge/Creature/Picture.hs 132;" f
tractCr src/Dodge/TractorBeam/Update.hs 27;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 22;" f
@@ -7748,16 +7746,16 @@ upperPrismPolySU src/Shape.hs 112;" f
upperPrismPolyTS src/Shape.hs 118;" f
upperRounded src/Shape.hs 181;" f
upsProjectile src/Dodge/Projectile/Update.hs 53;" f
useAllAmmo src/Dodge/Item/Weapon/TriggerType.hs 339;" f
useAmmoAmount src/Dodge/Item/Weapon/TriggerType.hs 356;" f
useAllAmmo src/Dodge/Item/Weapon/TriggerType.hs 342;" f
useAmmoAmount src/Dodge/Item/Weapon/TriggerType.hs 359;" f
useAmmoParams src/Dodge/Item/Weapon/AmmoParams.hs 17;" f
useAmmoUpTo src/Dodge/Item/Weapon/TriggerType.hs 347;" f
useAmmoUpTo src/Dodge/Item/Weapon/TriggerType.hs 350;" f
useC src/Dodge/Cuse.hs 6;" f
useE src/Dodge/Euse.hs 24;" f
useEquipment src/Dodge/Creature/State.hs 219;" f
useForceFieldGun src/Dodge/HeldUse.hs 554;" f
useGasParams src/Dodge/HeldUse.hs 471;" f
useHeld src/Dodge/HeldUse.hs 385;" f
useForceFieldGun src/Dodge/HeldUse.hs 533;" f
useGasParams src/Dodge/HeldUse.hs 450;" f
useHeld src/Dodge/HeldUse.hs 361;" f
useHotKey src/Dodge/Creature/YourControl.hs 49;" f
useItem src/Dodge/Creature/Action/UseItem.hs 14;" f
useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 120;" f
@@ -7770,15 +7768,15 @@ useMagShield src/Dodge/Euse.hs 69;" f
useMod src/Dodge/HeldUse.hs 28;" f
useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 7;" f
usePjCreation src/Dodge/HeldUse.hs 404;" f
usePjCreationX src/Dodge/HeldUse.hs 409;" f
usePjCreation src/Dodge/HeldUse.hs 380;" f
usePjCreationX src/Dodge/HeldUse.hs 386;" f
useRewindGun src/Dodge/Luse.hs 41;" f
useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f
useShrinkGun src/Dodge/Luse.hs 59;" f
useStopWatch src/Dodge/Luse.hs 24;" f
useTargetPos src/Dodge/Item/Weapon/Targeting.hs 9;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 367;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 370;" f
useTimeScrollGun src/Dodge/Luse.hs 32;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
useUpdate src/Dodge/Creature/State.hs 211;" f
@@ -7875,36 +7873,36 @@ windowxsize src/LoadConfig.hs 12;" f
windowysize src/LoadConfig.hs 13;" f
withAlpha src/Color.hs 10;" f
withByteString src/Shader/Compile.hs 370;" f
withCrPos src/Dodge/Item/Weapon/TriggerType.hs 483;" f
withCrPosShift src/Dodge/Item/Weapon/TriggerType.hs 486;" f
withFlare src/Dodge/Item/Weapon/TriggerType.hs 450;" f
withItem src/Dodge/Item/Weapon/TriggerType.hs 423;" f
withItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 432;" f
withItemUpdateFirst src/Dodge/Item/Weapon/TriggerType.hs 427;" f
withMuzFlare src/Dodge/Item/Weapon/TriggerType.hs 462;" f
withOldDir src/Dodge/Item/Weapon/TriggerType.hs 500;" f
withPosDirWallCheck src/Dodge/Item/Weapon/TriggerType.hs 540;" f
withPositionOffset src/Dodge/Item/Weapon/TriggerType.hs 524;" f
withPositionWallCheck src/Dodge/Item/Weapon/TriggerType.hs 531;" f
withRandomDirI src/Dodge/Item/Weapon/TriggerType.hs 492;" f
withRandomItem src/Dodge/Item/Weapon/TriggerType.hs 519;" f
withRandomItemParams src/Dodge/Item/Weapon/TriggerType.hs 514;" f
withRandomItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 507;" f
withRandomOffset src/Dodge/Item/Weapon/TriggerType.hs 550;" f
withRecoil src/Dodge/Item/Weapon/TriggerType.hs 297;" f
withSidePushAfterI src/Dodge/Item/Weapon/TriggerType.hs 326;" f
withSidePushI src/Dodge/Item/Weapon/TriggerType.hs 307;" f
withCrPos src/Dodge/Item/Weapon/TriggerType.hs 486;" f
withCrPosShift src/Dodge/Item/Weapon/TriggerType.hs 489;" f
withFlare src/Dodge/Item/Weapon/TriggerType.hs 453;" f
withItem src/Dodge/Item/Weapon/TriggerType.hs 426;" f
withItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 435;" f
withItemUpdateFirst src/Dodge/Item/Weapon/TriggerType.hs 430;" f
withMuzFlare src/Dodge/Item/Weapon/TriggerType.hs 465;" f
withOldDir src/Dodge/Item/Weapon/TriggerType.hs 503;" f
withPosDirWallCheck src/Dodge/Item/Weapon/TriggerType.hs 543;" f
withPositionOffset src/Dodge/Item/Weapon/TriggerType.hs 527;" f
withPositionWallCheck src/Dodge/Item/Weapon/TriggerType.hs 534;" f
withRandomDirI src/Dodge/Item/Weapon/TriggerType.hs 495;" f
withRandomItem src/Dodge/Item/Weapon/TriggerType.hs 522;" f
withRandomItemParams src/Dodge/Item/Weapon/TriggerType.hs 517;" f
withRandomItemUpdate src/Dodge/Item/Weapon/TriggerType.hs 510;" f
withRandomOffset src/Dodge/Item/Weapon/TriggerType.hs 553;" f
withRecoil src/Dodge/Item/Weapon/TriggerType.hs 300;" f
withSidePushAfterI src/Dodge/Item/Weapon/TriggerType.hs 329;" f
withSidePushI src/Dodge/Item/Weapon/TriggerType.hs 310;" f
withSmoke src/Dodge/Item/Weapon/TriggerType.hs 115;" f
withSoundContinue src/Dodge/Item/Weapon/TriggerType.hs 250;" f
withSoundForI src/Dodge/Item/Weapon/TriggerType.hs 263;" f
withSoundForVol src/Dodge/Item/Weapon/TriggerType.hs 276;" f
withSoundItemChoiceStart src/Dodge/Item/Weapon/TriggerType.hs 221;" f
withSoundStart src/Dodge/Item/Weapon/TriggerType.hs 237;" f
withTempLight src/Dodge/Item/Weapon/TriggerType.hs 437;" f
withSoundContinue src/Dodge/Item/Weapon/TriggerType.hs 253;" f
withSoundForI src/Dodge/Item/Weapon/TriggerType.hs 266;" f
withSoundForVol src/Dodge/Item/Weapon/TriggerType.hs 279;" f
withSoundItemChoiceStart src/Dodge/Item/Weapon/TriggerType.hs 224;" f
withSoundStart src/Dodge/Item/Weapon/TriggerType.hs 240;" f
withTempLight src/Dodge/Item/Weapon/TriggerType.hs 440;" f
withThickSmokeI src/Dodge/Item/Weapon/TriggerType.hs 133;" f
withThinSmokeI src/Dodge/Item/Weapon/TriggerType.hs 124;" f
withTorqueAfter src/Dodge/Item/Weapon/TriggerType.hs 607;" f
withWarmUp src/Dodge/Item/Weapon/TriggerType.hs 201;" f
withTorqueAfter src/Dodge/Item/Weapon/TriggerType.hs 610;" f
withWarmUp src/Dodge/Item/Weapon/TriggerType.hs 204;" f
wlDustAt src/Dodge/Wall/Dust.hs 10;" f
wlIXsNearCirc src/Dodge/Zoning/Wall.hs 32;" f
wlIXsNearPoint src/Dodge/Zoning/Wall.hs 22;" f