diff --git a/src/Dodge/Creature/ChaseCrit.hs b/src/Dodge/Creature/ChaseCrit.hs index 82bdb978c..a36b2cfdf 100644 --- a/src/Dodge/Creature/ChaseCrit.hs +++ b/src/Dodge/Creature/ChaseCrit.hs @@ -72,7 +72,7 @@ slimeCrit = defaultCreature & crName .~ "slimeCrit" & crHP .~ HP 1000 -- & crType .~ SlimeCrit r 0 0 (V2 (slimeToRad r) 0) False 0 - & crType .~ SlimeCrit r 0 Nothing 1 False 0 + & crType .~ SlimeCrit r 0 NoSlimeDistortion 1 False 0 & crFaction .~ ColorFaction (light green) & crPerception . cpVision . viFOV .~ FloatFOV pi & crActionPlan .~ SlimeIntelligence diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index d4046f484..e6bb1fcc8 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -62,7 +62,7 @@ drawSlimeCrit cr = r = slimeToRad $ cr ^?! crType . slimeSlime - cr ^?! crType . slimeSlimeChange so = slimeOutline cr ps = fromMaybe so $ do - (x', qs) <- cr ^? crType . slimeSplitTimer . _Just + SlimeDistortion x' qs _ <- cr ^? crType . slimeDistortion let x = fromIntegral x' guard $ length qs == 12 return $ zipWith (+) (fmap (0.1 * (10 - x) *^) so) (fmap (0.1 * x *^) qs) diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index ad92cb3c1..623de273a 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -232,8 +232,8 @@ updateCalmBee cr cid w cxy = cr ^. crPos . _xy mountshakeoff mid = fromMaybe True $ do mcr <- w ^? cWorld . lWorld . creatures . ix mid - SlimeCrit {_slimeSplitTimer = x} <- mcr ^? crType - return $ isJust x + x <- mcr ^? crType . slimeDistortion . sdTime + return $ x > 8 sspeed = 5 gettarg = do i <- cr ^? crActionPlan . apStrategy . harvestTarget @@ -263,11 +263,11 @@ updateSlimeCrit cid w & cWorld . lWorld . creatures . ix cid %~ mvslime & cWorld . lWorld . creatures . ix cid . crDamage .~ [] & tocr %~ doSlimeRadChange - & tocr . crType . slimeSplitTimer %~ fsst + & tocr . crType . slimeDistortion %~ fsst & tocr . crType . slimeEngulfProgress %~ (max 0 . subtract 0.5) where - fsst (Just (x,ps)) | x > 0 = Just (x-1,ps) - fsst _ = Nothing + fsst (SlimeDistortion x ps t) | x > 0 = SlimeDistortion (x-1) ps t + fsst _ = NoSlimeDistortion tocr = cWorld . lWorld . creatures . ix cid cr = w ^?! cWorld . lWorld . creatures . ix cid mvslime cr' = cr' & crType . slimeCompression +~ f (0.1/r) @@ -336,8 +336,8 @@ splitSlimeCrit p v cr = do & crDir .~ argV (-mvdir) c1ps = qs' & each +~ cxy - (mp + r1 *^ mvdir) & each %~ rotateV (- c1 ^. crDir) c2ps = ps' & each +~ cxy - (mp - r2 *^ mvdir) & each %~ rotateV (- c2 ^. crDir) - return (c1 & crType . slimeSplitTimer . _Just . _2 .~ f c1ps c1 - ,c2 & crType . slimeSplitTimer . _Just . _2 .~ f c2ps c2 + return (c1 & crType . slimeDistortion . sdShape .~ f c1ps c1 + ,c2 & crType . slimeDistortion . sdShape .~ f c2ps c2 ) where f xs@(_:_) c = polyInPoly (centroid xs) xs (slimeOutline c) @@ -346,7 +346,7 @@ splitSlimeCrit p v cr = do r = cr ^?! crType . slimeSlime . to slimeToRad cr' = cr & crDamage .~ [] & crType . slimeSlimeChange .~ 0 - & crType . slimeSplitTimer ?~ (10, mempty) + & crType . slimeDistortion .~ SlimeDistortion 10 mempty True & crType . slimeIsCompressing .~ False & crType . slimeCompression .~ 1 (ps,qs) = cutPoly (p-cxy) (p+v-cxy) $ slimeOutline cr & each %~ rotateV (cr ^. crDir) diff --git a/src/Dodge/Data/Creature/Misc.hs b/src/Dodge/Data/Creature/Misc.hs index 7da2a1b77..30b071544 100644 --- a/src/Dodge/Data/Creature/Misc.hs +++ b/src/Dodge/Data/Creature/Misc.hs @@ -78,7 +78,7 @@ data CreatureType , _slimeSlimeChange :: Int -- , _slimeRadWobble :: Float --, _slimeSplitTimer :: Int - , _slimeSplitTimer :: Maybe (Int, [Point2]) + , _slimeDistortion :: SlimeShapeDistortion , _slimeCompression :: Float , _slimeIsCompressing :: Bool , _slimeEngulfProgress :: Float @@ -102,6 +102,13 @@ data CreatureType | BarrelCrit {_barrelType :: BarrelType} | LampCrit {_lampHeight :: Float, _lampColor :: Point3, _lampLSID :: Maybe Int} +data SlimeShapeDistortion = SlimeDistortion + { _sdTime :: Int + , _sdShape :: [Point2] + , _sdIsSplit :: Bool + } + | NoSlimeDistortion + slimeToRad :: Int -> Float slimeToRad x = sqrt $ fromIntegral x * 0.01 @@ -128,6 +135,8 @@ makeLenses ''Vocalization makeLenses ''CrMvType makeLenses ''CreatureType makeLenses ''CreatureShape +makeLenses ''SlimeShapeDistortion +deriveJSON defaultOptions ''SlimeShapeDistortion deriveJSON defaultOptions ''Pulse deriveJSON defaultOptions ''Vocalization deriveJSON defaultOptions ''BarrelType diff --git a/src/Dodge/Projectile/Update.hs b/src/Dodge/Projectile/Update.hs index 56db46f6d..8806b0b33 100644 --- a/src/Dodge/Projectile/Update.hs +++ b/src/Dodge/Projectile/Update.hs @@ -2,6 +2,7 @@ -- {-# OPTIONS_GHC -Wno-unused-imports #-} module Dodge.Projectile.Update (updateProjectile,slimeEatSound) where +import Dodge.Creature.Slime import Control.Monad import Data.List (delete) import Data.Maybe @@ -92,6 +93,7 @@ shellHitCreature p cr pj | SlimeCrit{} <- cr ^. crType = (cWorld . lWorld . projectiles . at (pj ^. pjID) .~ Nothing) . (cWorld . lWorld . creatures . ix (cr ^. crID) . crType . slimeSlime +~ 100) . (cWorld . lWorld . creatures . ix (cr ^. crID) . crType . slimeSlimeChange +~ 100) + . (cWorld . lWorld . creatures . ix (cr ^. crID) %~ slimeBulge (pj ^. pjPos)) . slimeEatSound (cr ^. crID) (cr ^. crPos . _xy) | Just GStick <- pj ^? pjType . gnHitEffect = (pjlens . pjType .~ Grenade gren) @@ -105,6 +107,13 @@ shellHitCreature p cr pj (rotate3z (-cr ^. crDir) (p - cr ^. crPos)) (pj ^. pjDir - cr ^. crDir) +slimeBulge :: Point3 -> Creature -> Creature +slimeBulge p cr = cr + & crType . slimeDistortion .~ SlimeDistortion 10 (f <$>slimeOutline cr) False + where + v = rotateV (-cr ^. crDir) (normalize $ p ^. _xy - cr ^. crPos . _xy) + f x = x + (10 * max 0 (dot v (normalize x))) *^ v + shellHitFloor :: Point3 -> Projectile -> World -> World shellHitFloor p pj = (topj . pjPos .~ (p & _z .~ 0.1)) diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index 574ce4083..3d32e1368 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -59,8 +59,8 @@ crs u = u ^.. uvWorld . cWorld . lWorld . creatures . each testStringInit :: Universe -> [String] testStringInit u = [ u ^. uvWorld . testString ] - <> u ^.. uvWorld . cWorld . lWorld . projectiles . each . pjPos . _z . to show - <> u ^.. uvWorld . cWorld . lWorld . creatures . each . crType . slimeSlime . to (show . slimeToRad) +-- <> u ^.. uvWorld . cWorld . lWorld . projectiles . each . pjPos . _z . to show +-- <> u ^.. uvWorld . cWorld . lWorld . creatures . each . crType . slimeSlime . to (show . slimeToRad) -- , u ^. uvWorld . input . mouseContext . to show -- , u ^. uvWorld . hud . diSelection . to show -- , u ^. uvWorld . cWorld . lWorld . lInvLock . to show diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index e87f13aee..b6c0159de 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -1026,7 +1026,7 @@ crCrSpring c1 c2 , slimeFood c2 , distance xy1 xy2 < r1 - (r2 + 5) = feedSlime c1 c2 - | Just Nothing <- c1 ^? crType . slimeSplitTimer + | maybe True not (c1 ^? crType . slimeDistortion . sdIsSplit) , slimeFood c2 = slimeSuck c1 c2 | SlimeCrit{} <- c1 ^. crType = id | SlimeCrit{} <- c2 ^. crType = id diff --git a/tags b/tags index 7ee2c995b..b4fa807b2 100644 --- a/tags +++ b/tags @@ -74,10 +74,10 @@ AttentiveTo src/Dodge/Data/Creature/Perception.hs 59;" C Audition src/Dodge/Data/Creature/Perception.hs 45;" t AutoCrit src/Dodge/Data/Creature/Misc.hs 101;" C AutoTrigger src/Dodge/Data/TriggerType.hs 8;" C -AvPosture src/Dodge/Data/Creature/Misc.hs 108;" C +AvPosture src/Dodge/Data/Creature/Misc.hs 115;" C Avatar src/Dodge/Data/Creature/Misc.hs 49;" C AvatarDestroyed src/Dodge/Data/Creature.hs 66;" C -AvatarPosture src/Dodge/Data/Creature/Misc.hs 108;" t +AvatarPosture src/Dodge/Data/Creature/Misc.hs 115;" t Awareness src/Dodge/Data/Creature/Perception.hs 63;" t BANGCONE src/Dodge/Data/Item/Combine.hs 150;" C BANGROD src/Dodge/Data/Item/Combine.hs 159;" C @@ -106,8 +106,8 @@ BackgroundSound src/Dodge/Data/SoundOrigin.hs 13;" C Bark src/Dodge/Data/ActionPlan.hs 41;" C BarrelCrit src/Dodge/Data/Creature/Misc.hs 102;" C BarrelHiss src/Dodge/Data/SoundOrigin.hs 34;" C -BarrelType src/Dodge/Data/Creature/Misc.hs 120;" t -Barreloid src/Dodge/Data/Creature/Misc.hs 116;" C +BarrelType src/Dodge/Data/Creature/Misc.hs 127;" t +Barreloid src/Dodge/Data/Creature/Misc.hs 123;" C BasicBeamDraw src/Dodge/Data/Beam.hs 32;" C BasicBulletTrajectory src/Dodge/Data/Bullet.hs 42;" C BasicBulletTrajectoryType src/Dodge/Data/Bullet.hs 49;" C @@ -284,7 +284,7 @@ CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 17;" C Creature src/Dodge/Data/Creature.hs 35;" t CreaturePart src/Dodge/Data/Wall/Structure.hs 16;" C -CreatureShape src/Dodge/Data/Creature/Misc.hs 110;" t +CreatureShape src/Dodge/Data/Creature/Misc.hs 117;" t CreatureType src/Dodge/Data/Creature/Misc.hs 48;" t Crushing src/Dodge/Data/Damage.hs 19;" C CryoReleaseCloud src/Dodge/Data/Cloud.hs 24;" C @@ -404,7 +404,7 @@ Explosion src/Dodge/Data/SoundOrigin.hs 39;" C ExplosionPayload src/Dodge/Data/Payload.hs 9;" C Explosive src/Dodge/Data/Damage.hs 25;" C ExplosiveBall src/Dodge/Data/EnergyBall/Type.hs 14;" C -ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 122;" C +ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 129;" C ExplosivePutty src/Dodge/Data/AmmoType.hs 16;" C ExtraMenuOption src/Dodge/Data/Universe.hs 76;" t Eyes src/Dodge/Data/Creature/Perception.hs 39;" C @@ -561,7 +561,7 @@ HotkeyX src/Dodge/Data/Equipment/Misc.hs 36;" C HotkeyZ src/Dodge/Data/Equipment/Misc.hs 35;" C HoverCrit src/Dodge/Data/Creature/Misc.hs 70;" C Huge src/Shape/Data.hs 24;" C -Humanoid src/Dodge/Data/Creature/Misc.hs 111;" C +Humanoid src/Dodge/Data/Creature/Misc.hs 118;" C IMSI src/Dodge/Data/SelectionList.hs 43;" t IMSS src/Dodge/Data/SelectionList.hs 41;" t INTROSCAN src/Dodge/Data/Item/Combine.hs 32;" C @@ -833,7 +833,7 @@ NoAmmoRequired src/Dodge/Data/Muzzle.hs 25;" C NoBeamCombine src/Dodge/Data/Beam.hs 41;" C NoConcurrentEffect src/Loop/Data.hs 7;" C NoCrImp src/Dodge/Data/CreatureEffect.hs 9;" C -NoCreatureShape src/Dodge/Data/Creature/Misc.hs 117;" C +NoCreatureShape src/Dodge/Data/Creature/Misc.hs 124;" C NoExtraMenuOption src/Dodge/Data/Universe.hs 79;" C NoFaction src/Dodge/Data/Creature/State.hs 18;" C NoFlare src/Dodge/Data/Muzzle.hs 29;" C @@ -853,6 +853,7 @@ NoSF src/Dodge/Data/ComposedItem.hs 30;" C NoSIDisplayMod src/Dodge/Data/SelectionList.hs 59;" C NoShadowFidelity src/Shape/Data.hs 21;" C NoShadows src/Dodge/Data/Config.hs 121;" C +NoSlimeDistortion src/Dodge/Data/Creature/Misc.hs 110;" C NoSoundFilter src/Dodge/Data/WorldEffect.hs 23;" C NoSubInventory src/Dodge/Data/HUD.hs 16;" C NoTrigger src/Dodge/Data/TriggerType.hs 11;" C @@ -1003,7 +1004,7 @@ Piezoelectric src/Dodge/Data/Material.hs 23;" C Pitted src/Dodge/Data/Creature.hs 75;" C Placement src/Dodge/Data/GenWorld.hs 113;" t PlacementSpot src/Dodge/Data/GenWorld.hs 97;" t -PlainBarrel src/Dodge/Data/Creature/Misc.hs 121;" C +PlainBarrel src/Dodge/Data/Creature/Misc.hs 128;" C PlainDeath src/Dodge/Data/Creature.hs 77;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C PlasmaBall src/Dodge/Data/PlasmaBall.hs 12;" t @@ -1238,7 +1239,9 @@ Size src/Shape/Data.hs 24;" t SkiffBaySS src/Dodge/Data/Scenario.hs 108;" C SleepingQuatersSS src/Dodge/Data/Scenario.hs 90;" C SlimeCrit src/Dodge/Data/Creature/Misc.hs 76;" C +SlimeDistortion src/Dodge/Data/Creature/Misc.hs 105;" C SlimeIntelligence src/Dodge/Data/ActionPlan.hs 16;" C +SlimeShapeDistortion src/Dodge/Data/Creature/Misc.hs 105;" t SlinkCrit src/Dodge/Data/Creature/Misc.hs 71;" C Small src/Shape/Data.hs 27;" C Smoke src/Dodge/Data/Cloud.hs 22;" C @@ -2145,7 +2148,7 @@ _phTargetingID src/Dodge/Data/Projectile.hs 44;" f _pickUpLevel src/Dodge/Layout/Generate.hs 15;" f _pickUps src/Dodge/Layout/Generate.hs 16;" f _pictureShaders src/Data/Preload/Render.hs 31;" f -_piercedPoints src/Dodge/Data/Creature/Misc.hs 122;" f +_piercedPoints src/Dodge/Data/Creature/Misc.hs 129;" f _pjBarrelSpin src/Dodge/Data/Projectile.hs 24;" f _pjDetonatorID src/Dodge/Data/Projectile.hs 26;" f _pjDir src/Dodge/Data/Projectile.hs 19;" f @@ -2322,6 +2325,9 @@ _scrollTestInt src/Dodge/Data/Input.hs 49;" f _scurColor src/Dodge/Data/SelectionList.hs 29;" f _scurPos src/Dodge/Data/SelectionList.hs 27;" f _scurSize src/Dodge/Data/SelectionList.hs 28;" f +_sdIsSplit src/Dodge/Data/Creature/Misc.hs 108;" f +_sdShape src/Dodge/Data/Creature/Misc.hs 107;" f +_sdTime src/Dodge/Data/Creature/Misc.hs 106;" f _seDist src/Dodge/Data/PathGraph.hs 44;" f _seObstacles src/Dodge/Data/PathGraph.hs 45;" f _searchTimer src/Dodge/Data/ActionPlan.hs 151;" f @@ -2360,17 +2366,17 @@ _skOldPos src/Dodge/Data/Spark.hs 14;" f _skPos src/Dodge/Data/Spark.hs 13;" f _skType src/Dodge/Data/Spark.hs 15;" f _skVel src/Dodge/Data/Spark.hs 12;" f -_skinHead src/Dodge/Data/Creature/Misc.hs 112;" f -_skinLower src/Dodge/Data/Creature/Misc.hs 114;" f -_skinUpper src/Dodge/Data/Creature/Misc.hs 113;" f +_skinHead src/Dodge/Data/Creature/Misc.hs 119;" f +_skinLower src/Dodge/Data/Creature/Misc.hs 121;" f +_skinUpper src/Dodge/Data/Creature/Misc.hs 120;" f _slInt src/Dodge/Data/HUD.hs 42;" f _slSec src/Dodge/Data/HUD.hs 42;" f _slimeCompression src/Dodge/Data/Creature/Misc.hs 82;" f +_slimeDistortion src/Dodge/Data/Creature/Misc.hs 81;" f _slimeEngulfProgress src/Dodge/Data/Creature/Misc.hs 84;" f _slimeIsCompressing src/Dodge/Data/Creature/Misc.hs 83;" f _slimeSlime src/Dodge/Data/Creature/Misc.hs 77;" f _slimeSlimeChange src/Dodge/Data/Creature/Misc.hs 78;" f -_slimeSplitTimer src/Dodge/Data/Creature/Misc.hs 81;" f _slinkHeadPos src/Dodge/Data/Creature/Misc.hs 74;" f _slinkSpine src/Dodge/Data/Creature/Misc.hs 73;" f _smoothScrollAmount src/Dodge/Data/Input.hs 42;" f @@ -3290,7 +3296,7 @@ destroyMatS src/Dodge/Material/Sound.hs 7;" f destroyMcType src/Dodge/Machine/Destroy.hs 27;" f destroyMount src/Dodge/Wall/Damage.hs 167;" f destroyMounts src/Dodge/Wall/Damage.hs 164;" f -destroyProjectile src/Dodge/Projectile/Update.hs 112;" f +destroyProjectile src/Dodge/Projectile/Update.hs 122;" f detV src/Geometry/Vector.hs 102;" f detector src/Dodge/Item/Held/Utility.hs 27;" f detectorColor src/Dodge/Item/Draw/SPic.hs 436;" f @@ -3327,7 +3333,7 @@ dmType src/Dodge/Damage.hs 38;" f doAimTwist src/Dodge/Creature/YourControl.hs 130;" f doAnyEquipmentEffect src/Dodge/Creature/State.hs 174;" f doBackspace src/Dodge/Update/Input/Text.hs 31;" f -doBarrelSpin src/Dodge/Projectile/Update.hs 169;" f +doBarrelSpin src/Dodge/Projectile/Update.hs 179;" f doBlBl src/Dodge/BlBl.hs 5;" f doBounce src/Dodge/Base/Collide.hs 81;" f doButtonEvent src/Dodge/Button/Event.hs 9;" f @@ -3382,7 +3388,7 @@ doTabComplete src/Dodge/Terminal.hs 241;" f doTestDrawing src/Dodge/Render.hs 40;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f -doThrust src/Dodge/Projectile/Update.hs 132;" f +doThrust src/Dodge/Projectile/Update.hs 142;" f doTimeScroll src/Dodge/Update.hs 234;" f doTmWdWd src/Dodge/WorldEffect.hs 102;" f doWallRotate src/Dodge/Update/Camera.hs 232;" f @@ -3618,7 +3624,7 @@ expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f expireAndDamage src/Dodge/Bullet.hs 191;" f -explodeShell src/Dodge/Projectile/Update.hs 265;" f +explodeShell src/Dodge/Projectile/Update.hs 269;" f explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 746;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 79;" f @@ -3743,7 +3749,7 @@ getAutoSpringLinks src/Dodge/Item/Grammar.hs 90;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 175;" f getBulletType src/Dodge/HeldUse.hs 945;" f -getCloseObj src/Dodge/Update/Input/InGame.hs 547;" f +getCloseObj src/Dodge/Update/Input/InGame.hs 544;" f getCommand src/Dodge/Terminal.hs 61;" f getCommands src/Dodge/Terminal.hs 58;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 56;" f @@ -4283,7 +4289,7 @@ maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 136;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 141;" f -maybeExitCombine src/Dodge/Update/Input/InGame.hs 569;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 566;" f maybeOpenConsole src/Dodge/Update.hs 136;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 135;" f @@ -4388,10 +4394,10 @@ moveBullet src/Dodge/Bullet.hs 200;" f moveCombineSel src/Dodge/Update/Scroll.hs 120;" f moveInverseShockwave src/Dodge/Shockwave/Update.hs 31;" f movePenBullet src/Dodge/Bullet.hs 206;" f -moveProjectile src/Dodge/Projectile/Update.hs 240;" f +moveProjectile src/Dodge/Projectile/Update.hs 250;" f moveRoomBy src/Dodge/Room/Link.hs 57;" f moveShockwave src/Dodge/Shockwave/Update.hs 13;" f -moveStuckGrenade src/Dodge/Projectile/Update.hs 219;" f +moveStuckGrenade src/Dodge/Projectile/Update.hs 229;" f moveToSideNthOutLink src/Dodge/Room/Warning.hs 106;" f moveWall src/Dodge/Wall/Move.hs 23;" f moveWallID src/Dodge/Wall/Move.hs 18;" f @@ -4528,7 +4534,7 @@ passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 693;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathEdgeObstructed src/Dodge/Path.hs 87;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f -pauseGame src/Dodge/Update/Input/InGame.hs 539;" f +pauseGame src/Dodge/Update/Input/InGame.hs 536;" f pauseMenu src/Dodge/Menu.hs 57;" f pauseMenuOptions src/Dodge/Menu.hs 64;" f pauseSound src/Dodge/SoundLogic.hs 42;" f @@ -4556,7 +4562,7 @@ pincerP''' src/Dodge/Creature/Boid.hs 77;" f pipe src/Dodge/Item/Craftable.hs 29;" f pistol src/Dodge/Item/Held/Stick.hs 18;" f pistolerRoom src/Dodge/Room/Room.hs 351;" f -pjRemoteSetDirection src/Dodge/Projectile/Update.hs 197;" f +pjRemoteSetDirection src/Dodge/Projectile/Update.hs 207;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 24;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 12;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 57;" f @@ -5074,8 +5080,8 @@ shapeVerxSize src/Shape/Parameters.hs 5;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f shatterGunSPic src/Dodge/Item/Draw/SPic.hs 314;" f shellExplosionCheck src/Dodge/Projectile/Update.hs 50;" f -shellHitCreature src/Dodge/Projectile/Update.hs 84;" f -shellHitFloor src/Dodge/Projectile/Update.hs 98;" f +shellHitCreature src/Dodge/Projectile/Update.hs 90;" f +shellHitFloor src/Dodge/Projectile/Update.hs 108;" f shellHitWall src/Dodge/Projectile/Update.hs 60;" f shellMag src/Dodge/Item/Ammo.hs 47;" f shellModule src/Dodge/Item/Scope.hs 128;" f @@ -5127,10 +5133,10 @@ showEquipItem src/Dodge/Item/Display.hs 109;" f showInt src/Dodge/Item/Info.hs 75;" f showIntsString src/Dodge/Tree/Compose.hs 130;" f showInventoryPathing src/Dodge/Item/Display.hs 87;" f -showManObj src/Dodge/TestString.hs 135;" f +showManObj src/Dodge/TestString.hs 136;" f showMuzzlePositions src/Dodge/Debug.hs 320;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f -showTimeFlow src/Dodge/TestString.hs 151;" f +showTimeFlow src/Dodge/TestString.hs 152;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 198;" f shrinkVert src/Geometry/Polygon.hs 202;" f shuffle src/RandomHelp.hs 68;" f @@ -5167,11 +5173,11 @@ slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 718;" f slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 676;" f slideWindow src/ListHelp.hs 81;" f slimeCrit src/Dodge/Creature/ChaseCrit.hs 70;" f -slimeEatSound src/Dodge/Update.hs 1109;" f +slimeEatSound src/Dodge/Projectile/Update.hs 84;" f slimeFood src/Dodge/Update.hs 1071;" f slimeOutline src/Dodge/Creature/Slime.hs 9;" f slimeSuck src/Dodge/Update.hs 1055;" f -slimeToRad src/Dodge/Data/Creature/Misc.hs 105;" f +slimeToRad src/Dodge/Data/Creature/Misc.hs 112;" f slinkCrit src/Dodge/Creature/ChaseCrit.hs 58;" f slinkCritUpdate src/Dodge/Creature/Update.hs 358;" f slowCrush90 src/Dodge/Room/LongDoor.hs 263;" f @@ -5219,7 +5225,7 @@ soundWithStatus src/Dodge/SoundLogic.hs 104;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 89;" f spPos src/ShapePicture/Data.hs 11;" f -spaceAction src/Dodge/Update/Input/InGame.hs 542;" f +spaceAction src/Dodge/Update/Input/InGame.hs 539;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 162;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 155;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 147;" f @@ -5459,7 +5465,7 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 714;" f topInvW src/Dodge/ListDisplayParams.hs 56;" f topPrismEdgeIndices src/Shader/Poke.hs 344;" f topPrismIndices src/Shader/Poke.hs 419;" f -topTestPart src/Dodge/TestString.hs 130;" f +topTestPart src/Dodge/TestString.hs 131;" f torchShape src/Dodge/Item/Draw/SPic.hs 278;" f torqueAmount src/Dodge/HeldUse.hs 606;" f torqueCr src/Dodge/WorldEffect.hs 85;" f @@ -5513,7 +5519,7 @@ truncate src/Polyhedra/Geodesic.hs 39;" f trunkDepth src/TreeHelp.hs 164;" f tryAttachItems src/Dodge/Item/Grammar.hs 35;" f tryClickUse src/Dodge/Creature/YourControl.hs 205;" f -tryCombine src/Dodge/Update/Input/InGame.hs 559;" f +tryCombine src/Dodge/Update/Input/InGame.hs 556;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 184;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 132;" f tryEvadeSideways src/Dodge/Creature/Action.hs 104;" f @@ -5525,9 +5531,9 @@ tryPlay src/Sound.hs 85;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 25;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 64;" f trySeedFromClipboard src/Dodge/Menu.hs 94;" f -trySpin src/Dodge/Projectile/Update.hs 120;" f +trySpin src/Dodge/Projectile/Update.hs 130;" f trySynthBullet src/Dodge/Creature/State.hs 200;" f -tryThrust src/Dodge/Projectile/Update.hs 126;" f +tryThrust src/Dodge/Projectile/Update.hs 136;" f tryUseParent src/Dodge/Creature/State.hs 178;" f turnTo src/Dodge/Movement/Turn.hs 8;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f @@ -5603,7 +5609,7 @@ updateCreatureStrides src/Dodge/Update.hs 375;" f updateDebris src/Dodge/Update.hs 686;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 104;" f -updateDelayedEvents src/Dodge/Update.hs 1116;" f +updateDelayedEvents src/Dodge/Update.hs 1110;" f updateDisplaySections src/Dodge/DisplayInventory.hs 117;" f updateDistortion src/Dodge/Distortion.hs 8;" f updateDistortions src/Dodge/Update.hs 665;" f @@ -5617,7 +5623,7 @@ updateEdgesWall src/Dodge/Update/WallDamage.hs 23;" f updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f updateEnergyBall src/Dodge/EnergyBall.hs 32;" f updateEnergyBalls src/Dodge/Update.hs 774;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 516;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 515;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateFlame src/Dodge/Flame.hs 19;" f updateFlames src/Dodge/Update.hs 771;" f