From adae6b84f4772940608bdefbb856a6f77229ef8d Mon Sep 17 00:00:00 2001 From: justin Date: Mon, 20 Apr 2026 12:25:39 +0100 Subject: [PATCH] Add bee crits --- src/Dodge/Base/Collide.hs | 2 + src/Dodge/Creature/ChaseCrit.hs | 22 +- src/Dodge/Creature/Mass.hs | 2 + src/Dodge/Creature/Material.hs | 2 + src/Dodge/Creature/MaxHP.hs | 2 + src/Dodge/Creature/MoveType.hs | 2 + src/Dodge/Creature/Picture.hs | 15 ++ src/Dodge/Creature/Radius.hs | 2 + src/Dodge/Creature/Shape.hs | 4 +- src/Dodge/Creature/State/WalkCycle.hs | 10 +- src/Dodge/Creature/Statistics.hs | 27 +-- src/Dodge/Creature/Update.hs | 73 +++++- src/Dodge/Creature/Vocalization.hs | 4 + src/Dodge/Data/ActionPlan.hs | 1 + src/Dodge/Data/Creature/Misc.hs | 10 +- src/Dodge/Data/Creature/Stance.hs | 4 +- src/Dodge/Room/Tutorial.hs | 4 +- src/Dodge/TestString.hs | 20 +- src/Dodge/Update.hs | 7 +- tags | 311 ++++++++++++++------------ 20 files changed, 340 insertions(+), 184 deletions(-) diff --git a/src/Dodge/Base/Collide.hs b/src/Dodge/Base/Collide.hs index 7d787b652..6cfb911bd 100644 --- a/src/Dodge/Base/Collide.hs +++ b/src/Dodge/Base/Collide.hs @@ -193,6 +193,8 @@ crHeight cr = case cr ^. crHP of CrabCrit {} -> 25 SlinkCrit {} -> 25 SlimeCrit {_slimeRad = r} -> r + BeeCrit {} -> 10 + HiveCrit {} -> 25 _ -> error "Need to define crHeight for this crType" CrIsCorpse{} -> Just 5 CrDestroyed{} -> Nothing diff --git a/src/Dodge/Creature/ChaseCrit.hs b/src/Dodge/Creature/ChaseCrit.hs index fe8637fb3..3f0633b33 100644 --- a/src/Dodge/Creature/ChaseCrit.hs +++ b/src/Dodge/Creature/ChaseCrit.hs @@ -6,6 +6,8 @@ module Dodge.Creature.ChaseCrit ( hoverCrit, slinkCrit, slimeCrit, + beeCrit, + hiveCrit, ) where import qualified Quaternion as Q @@ -82,4 +84,22 @@ hoverCrit = & crHP .~ HP 150 & crType .~ HoverCrit 0 & crFaction .~ ColorFaction blue - & crStance . carriage .~ Flying 15 0.975 + & crStance . carriage .~ Flying 15 + +beeCrit :: Creature +beeCrit = + defaultCreature + & crName .~ "beeCrit" + & crHP .~ HP 100 + & crType .~ BeeCrit 0 Nothing + & crFaction .~ ColorFaction yellow + & crStance . carriage .~ Flying 15 + +hiveCrit :: Creature +hiveCrit = + defaultCreature + & crName .~ "hiveCrit" + & crHP .~ HP 100000 + & crType .~ HiveCrit [] 0 + & crStance . carriage .~ Rooted + & crFaction .~ ColorFaction yellow diff --git a/src/Dodge/Creature/Mass.hs b/src/Dodge/Creature/Mass.hs index 709d5a907..9fe3c83cf 100644 --- a/src/Dodge/Creature/Mass.hs +++ b/src/Dodge/Creature/Mass.hs @@ -14,3 +14,5 @@ crMass = \case SlinkCrit{} -> 100 LampCrit {} -> 3 SlimeCrit {_slimeRad = r} -> r * r / 10 + BeeCrit {_beeSlime = x} -> 3 + x + HiveCrit {} -> 100 diff --git a/src/Dodge/Creature/Material.hs b/src/Dodge/Creature/Material.hs index 9d54341ed..c9d4be1cb 100644 --- a/src/Dodge/Creature/Material.hs +++ b/src/Dodge/Creature/Material.hs @@ -17,3 +17,5 @@ crMaterial = \case BarrelCrit{} -> Metal LampCrit{} -> Glass SlimeCrit{} -> Flesh + BeeCrit{} -> Flesh + HiveCrit{} -> Flesh diff --git a/src/Dodge/Creature/MaxHP.hs b/src/Dodge/Creature/MaxHP.hs index adabe7ab4..5e9999785 100644 --- a/src/Dodge/Creature/MaxHP.hs +++ b/src/Dodge/Creature/MaxHP.hs @@ -15,3 +15,5 @@ crMaxHP = \case LampCrit {} -> 50 SlinkCrit {} -> 1000 SlimeCrit {} -> 1000 + BeeCrit {} -> 100 + HiveCrit {} -> 10000 diff --git a/src/Dodge/Creature/MoveType.hs b/src/Dodge/Creature/MoveType.hs index 5b08c7329..ea65a2868 100644 --- a/src/Dodge/Creature/MoveType.hs +++ b/src/Dodge/Creature/MoveType.hs @@ -17,6 +17,8 @@ crMvType cr = case _crType cr of BarrelCrit {} -> defaultAimMvType LampCrit {} -> defaultAimMvType SlimeCrit {} -> NoMvType + BeeCrit {} -> defaultChaseMvType & mvSpeed .~ 0.1 + HiveCrit{} -> NoMvType defaultAimMvType :: CrMvType defaultAimMvType = diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index cbe978cca..48ac4e3cf 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -48,6 +48,8 @@ drawCreature w m cr = translateSP (_crPos cr) . fallrot . rotateSP (_crDir cr) $ HoverCrit{} -> noPic $ drawHoverCrit cr SlinkCrit{} -> noPic $ drawSlinkCrit cr SlimeCrit{} -> noPic $ drawSlimeCrit cr + BeeCrit{_beeSlime=x} -> noPic $ drawBeeCrit x + HiveCrit{} -> drawHive where fallrot = case cr ^? crStance . carriage . carDir of Just q -> _1 . each . sfVs . each %~ Q.rotate q @@ -114,6 +116,18 @@ drawHoverCrit cr = colorSH (_skinHead cskin) f a = tpq `Q.comp` (1 & _xy .~ rotateV a 5, Q.qid) tpq = (V3 0 0 0, Q.qid) +drawHive :: SPic +drawHive = noPic $ upperPrismPolyHalfMI 25 $ polyCirc 6 20 + +drawBeeCrit :: Float -> Shape +drawBeeCrit x = colorSH yellow + (upperPrismPolyHalfMI 3 $ polyCirc 6 r) + <> + colorSH (dark yellow) (overPosSH (Q.apply (beakpos)) $ upperPrismPolyHalfST 1 $ [V2 0 (-2), V2 4 0,V2 0 2]) + where + r = sqrt $ 2 ^(2::Int) + x + beakpos = (V3 (r-1) 0 0, Q.qid) + drawCrabCrit :: World -> Creature -> Shape drawCrabCrit w cr = mconcat [ crabUpperBody w cr @@ -264,6 +278,7 @@ makeCorpse g cr = case cr ^. crType of HoverCrit{} -> noPic $ drawHoverCrit cr ChaseCrit{} -> noPic $ chaseCorpse g cr CrabCrit{} -> noPic $ crabCorpse g cr + BeeCrit{} -> noPic $ drawBeeCrit 0 _ -> noPic . scaleSH (V3 crsize crsize crsize) diff --git a/src/Dodge/Creature/Radius.hs b/src/Dodge/Creature/Radius.hs index 70771ce36..ac278d586 100644 --- a/src/Dodge/Creature/Radius.hs +++ b/src/Dodge/Creature/Radius.hs @@ -11,9 +11,11 @@ crRad = \case ChaseCrit {} -> 10 CrabCrit {} -> 10 HoverCrit {} -> 8 + BeeCrit {_beeSlime = x} -> sqrt $ 2^(2::Int) + x SwarmCrit -> 2 AutoCrit -> 10 BarrelCrit{} -> 10 LampCrit {} -> 3 SlinkCrit {} -> 10 + HiveCrit {} -> 20 SlimeCrit {_slimeRad = r,_slimeRadWobble = x} -> r - x diff --git a/src/Dodge/Creature/Shape.hs b/src/Dodge/Creature/Shape.hs index fa28d4cca..e7faeebbe 100644 --- a/src/Dodge/Creature/Shape.hs +++ b/src/Dodge/Creature/Shape.hs @@ -15,5 +15,7 @@ crShape = \case AutoCrit -> Humanoid (greyN 0.9) (lightx4 red) (greyN 0.3) SlinkCrit{} -> Humanoid (greyN 0.9) (dark . dark . dark $ orange) (greyN 0.3) BarrelCrit {} -> Barreloid - LampCrit {} -> NonDrawnCreature + LampCrit {} -> NoCreatureShape SlimeCrit {} -> Humanoid (greyN 0.9) (lightx4 green) (greyN 0.3) + BeeCrit {} -> NoCreatureShape + HiveCrit {} -> NoCreatureShape diff --git a/src/Dodge/Creature/State/WalkCycle.hs b/src/Dodge/Creature/State/WalkCycle.hs index 38fe4c71c..4b03d8c0d 100644 --- a/src/Dodge/Creature/State/WalkCycle.hs +++ b/src/Dodge/Creature/State/WalkCycle.hs @@ -28,7 +28,8 @@ updateCarriage' cid cr w = \case & chasmTestCliffPush walkCliffPush cr Crawling -> w & chasmTestCliffPush walkCliffPush cr Floating -> w - Flying {_zSpeed = dz, _flyInertia = x} -> + Flying {_zSpeed = dz} -> let x = flyInertia cr + in w & tocr . crPos . _xy +~ x *^ f (cr ^. crOldPos . _xy - oop ^. _xy) & tocr . crPos . _z +~ dz & tocr . crStance . carriage . zSpeed @@ -48,12 +49,19 @@ updateCarriage' cid cr w = \case OnGround {} -> w & tocr . crPos . _xy +~ 0.8 *^ (cr ^. crOldPos . _xy - oop ^. _xy) & chasmTestCliffPush groundCliffPush cr + Rooted {} -> w + Mounted mid p -> fromMaybe w $ do + mp <- w ^? cWorld . lWorld . creatures . ix mid . crPos + return $ w & tocr . crPos .~ mp + p where tocr = cWorld . lWorld . creatures . ix cid oop = cr ^. crOldOldPos f v | norm v > 10 = 10 *^ signorm v | otherwise = v +flyInertia :: Creature -> Float +flyInertia _ = 0.975 + pushAgainst :: Point2 -> Point2 -> Point2 pushAgainst x y | a > norm y = 0 diff --git a/src/Dodge/Creature/Statistics.hs b/src/Dodge/Creature/Statistics.hs index a77a51acd..9b3a5a9fa 100644 --- a/src/Dodge/Creature/Statistics.hs +++ b/src/Dodge/Creature/Statistics.hs @@ -3,7 +3,7 @@ module Dodge.Creature.Statistics ( getCrMoveSpeed, crStrength, crDexterity, - crIntelligence, +-- crIntelligence, ) where import Dodge.Data.Equipment.Misc @@ -38,18 +38,19 @@ crStrength cr = case cr ^. crType of LampCrit {} -> 0 _ -> 46 -crIntelligence :: Creature -> Int -crIntelligence cr = case cr ^. crType of - Avatar { _avIntelligence = x } -> x - ChaseCrit {} -> 20 - CrabCrit {} -> 20 - HoverCrit {} -> 20 - SwarmCrit -> 20 - AutoCrit -> 20 - BarrelCrit {} -> 0 - LampCrit {} -> 0 - SlinkCrit{} -> 5 - SlimeCrit{} -> 1 +--crIntelligence :: Creature -> Int +--crIntelligence cr = case cr ^. crType of +-- Avatar { _avIntelligence = x } -> x +-- ChaseCrit {} -> 20 +-- CrabCrit {} -> 20 +-- HoverCrit {} -> 20 +-- SwarmCrit -> 20 +-- AutoCrit -> 20 +-- BarrelCrit {} -> 0 +-- LampCrit {} -> 0 +-- SlinkCrit{} -> 5 +-- SlimeCrit{} -> 1 +-- BeeCrit{} -> 20 getCrMoveSpeed :: LWorld -> Creature -> Int diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index 50f6ebf9e..941854ae0 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -3,6 +3,9 @@ module Dodge.Creature.Update (updateCreature) where --import Dodge.WorldEvent.ThingsHit +import Dodge.Creature.Radius +import Dodge.Zoning.Creature +import Dodge.Creature.ChaseCrit import Dodge.Creature.Damage import Color import Control.Monad @@ -52,7 +55,7 @@ damageCorpse :: Int -> Creature -> World -> World damageCorpse _ cr w = w & applyCreatureDamage (cr ^. crDamage) cr updateLivingCreature :: Creature -> World -> World -updateLivingCreature cr = case _crType cr of +updateLivingCreature cr = case cr ^. crType of Avatar{} -> (cWorld . lWorld . creatures . ix 0 . crType . avatarPulse %~ updatePulse) . crUpdate cid @@ -71,9 +74,72 @@ updateLivingCreature cr = case _crType cr of over (cWorld . lWorld . creatures . ix cid) (hoverCritInternal w) w SlinkCrit{} -> slinkCritUpdate cid SlimeCrit{} -> slimeCritUpdate cid + BeeCrit{} -> crUpdate cid . performActions cid . updateBeeCrit cr cid + HiveCrit{} -> crUpdate cid . performActions cid . updateHiveCrit cr cid where cid = cr ^. crID +updateHiveCrit :: Creature -> Int -> World -> World +updateHiveCrit cr cid w + | Just x <- cr ^? crType . hiveChildren . to length + , x < 10 + , Just y <- cr ^? crType . hiveGestation + , y == 0 = w + & tocr . crType . hiveChildren .:~ nid + & tocr . crType . hiveGestation .~ 50 + & cWorld . lWorld . creatures . at nid ?~ ncr + | Just x <- cr ^? crType . hiveChildren . to length + , x < 10 = w + & tocr . crType . hiveGestation %~ (max 0 . subtract 1) + | otherwise = w + where + tocr = cWorld . lWorld . creatures . ix cid + nid = IM.newKey $ w ^. cWorld . lWorld . creatures + ncr = beeCrit & crPos .~ (cr ^. crPos + (0 & _xy +~ 25)) + & crID .~ nid + & crType . beeHive ?~ cid + +updateBeeCrit :: Creature -> Int -> World -> World +updateBeeCrit cr cid w + | Just hcr <- gethive + , distance (cr ^. crPos . _xy) (hcr ^. crPos . _xy) < 30 + , Just x <- cr ^? crType . beeSlime + , x >= 0.5 + = w & tocr . crType . beeSlime -~ 0.5 + | Just hcr <- gethive + , Just _ <- cr ^? crStance . carriage . mountID + , Just x <- cr ^? crType . beeSlime + , x >= 15 + = w & tocr . crActionPlan . apAction .~ PathTo (hcr ^. crPos . _xy) NoAction + & tocr . crStance . carriage .~ Flying 1 + | Nothing <- cr ^? crActionPlan . apStrategy . harvestTarget + , Just tcr <- find isslime $ crsNearCirc (cr ^. crPos . _xy) 100 w = + w & tocr . crActionPlan . apStrategy .~ HarvestFrom (tcr ^. crID) + | Just (tcr,ti) <- gettarg + , distance (cr ^. crPos . _xy) (tcr ^. crPos . _xy) < 0.5*crRad (tcr ^. crType) = w + & tocr . crStance . carriage .~ Mounted ti (cr ^. crPos - tcr ^. crPos) + | Just tid <- cr ^? crStance . carriage . mountID + , Just SlimeCrit{} <- w ^? cWorld . lWorld . creatures . ix tid . crType = w + & tocr . crType . beeSlime +~ 0.5 + & cWorld . lWorld . creatures . ix tid . crType . slimeRad %~ (sqrt . subtract 0.5 . (^(2::Int))) + | Just (tcr,_) <- gettarg = w + & tocr . crActionPlan . apAction .~ PathTo (tcr ^. crPos . _xy) NoAction + | otherwise = w & tocr . crActionPlan . apStrategy .~ Search + where + gettarg = do + i <- cr ^? crActionPlan . apStrategy . harvestTarget + tcr <- w ^? cWorld . lWorld . creatures . ix i + x <- tcr ^? crType . slimeRad + guard $ x > 12 + return (tcr,i) + gethive = do + i <- cr ^? crType . beeHive . _Just + w ^? cWorld . lWorld . creatures . ix i + tocr = cWorld . lWorld . creatures . ix cid + isslime tcr = case tcr ^. crType of + SlimeCrit {} -> True + _ -> False + slimeCritUpdate :: Int -> World -> World slimeCritUpdate cid w | r < 5 = w & cWorld . lWorld . creatures . ix cid . crHP .~ CrDestroyed Gibbed @@ -251,10 +317,7 @@ checkDeath' cr w = case cr ^. crHP of tocr = cWorld . lWorld . creatures . ix (_crID cr) startDeathTimer :: Creature -> Creature -startDeathTimer cr = - cr - & crDeathTimer - ?~ case cr ^. crType of +startDeathTimer cr = cr & crDeathTimer ?~ case cr ^. crType of HoverCrit{} -> 0 _ -> 5 diff --git a/src/Dodge/Creature/Vocalization.hs b/src/Dodge/Creature/Vocalization.hs index af43d593e..7998bdc2e 100644 --- a/src/Dodge/Creature/Vocalization.hs +++ b/src/Dodge/Creature/Vocalization.hs @@ -34,6 +34,8 @@ crWarningSounds cr = case cr ^. crType of AutoCrit -> mempty BarrelCrit{} -> mempty LampCrit{} -> mempty + BeeCrit{} -> mempty + HiveCrit{} -> mempty crDeathSounds :: Creature -> DeathType -> [SoundID] crDeathSounds cr dt = case cr ^. crType of @@ -47,6 +49,8 @@ crDeathSounds cr dt = case cr ^. crType of AutoCrit -> mempty BarrelCrit{} -> mempty LampCrit{} -> mempty + BeeCrit{} -> defaultDeathSounds dt + HiveCrit{} -> defaultDeathSounds dt defaultDeathSounds :: DeathType -> [SoundID] defaultDeathSounds = \case diff --git a/src/Dodge/Data/ActionPlan.hs b/src/Dodge/Data/ActionPlan.hs index 1cd8a3ec3..90cc16d76 100644 --- a/src/Dodge/Data/ActionPlan.hs +++ b/src/Dodge/Data/ActionPlan.hs @@ -150,6 +150,7 @@ data Strategy | Flee -- | MeleeStrike | Search + | HarvestFrom {_harvestTarget :: Int} deriving (Eq, Ord, Show) --Generic, Flat) --deriving (Eq, Ord, Show, Read) --Generic, Flat) diff --git a/src/Dodge/Data/Creature/Misc.hs b/src/Dodge/Data/Creature/Misc.hs index 6c1e24f83..e7827b79e 100644 --- a/src/Dodge/Data/Creature/Misc.hs +++ b/src/Dodge/Data/Creature/Misc.hs @@ -79,6 +79,14 @@ data CreatureType , _slimeIsCompressing :: Bool , _slimeFeedProgress :: Float } + | BeeCrit + { _beeSlime :: Float + , _beeHive :: Maybe Int + } + | HiveCrit + { _hiveChildren :: [Int] + , _hiveGestation :: Int + } | SwarmCrit | AutoCrit | BarrelCrit {_barrelType :: BarrelType} @@ -93,7 +101,7 @@ data CreatureShape , _skinLower :: Color } | Barreloid - | NonDrawnCreature + | NoCreatureShape deriving (Eq, Ord, Show, Read) --Generic, Flat) data BarrelType diff --git a/src/Dodge/Data/Creature/Stance.hs b/src/Dodge/Data/Creature/Stance.hs index 9fbfa36f8..9cd365556 100644 --- a/src/Dodge/Data/Creature/Stance.hs +++ b/src/Dodge/Data/Creature/Stance.hs @@ -24,10 +24,12 @@ data Carriage = Walking | Crawling | Floating - | Flying {_zSpeed :: Float, _flyInertia :: Float} + | Flying {_zSpeed :: Float}--, _flyInertia :: Float} | Boosting Point2 | Falling {_fallRot :: Quaternion Float, _carDir :: Quaternion Float} | OnGround {_carDir :: Quaternion Float} + | Rooted + | Mounted {_mountID :: Int, _mountPos :: Point3} deriving (Eq, Ord, Show, Read) --Generic, Flat) data FootForward = LeftForward | RightForward diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index dd1b91a68..60f5eee7c 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -60,8 +60,8 @@ tutAnoTree = do --, tToBTree "" . return . cleatOnward <$> (xChasm 200 200 , tToBTree "" . return . cleatOnward <$> ((putSingleLight =<< roomRectAutoLights 300 300) <&> rmPmnts <>~ [sps0 (PutCrit slimeCrit) & plSpot . psPos .~ V2 150 100 - , sps0 (PutCrit chaseCrit) & plSpot . psPos .~ V2 250 100 - , sps0 (PutCrit hoverCrit) & plSpot . psPos .~ V2 250 50 +-- , sps0 (PutCrit beeCrit) & plSpot . psPos .~ V2 250 100 + , sps0 (PutCrit hiveCrit) & plSpot . psPos .~ V2 250 50 ] ) -- , tToBTree "" . return . cleatOnward <$> (cChasm diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index e281e5acc..51dec0f7b 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -42,16 +42,16 @@ tocrs :: (IM.IntMap Creature tocrs = uvWorld . cWorld . lWorld . creatures testStringInit :: Universe -> [String] -testStringInit u = u ^.. tocrs . ix 1 . crPos . _xy . to show - <> u ^.. tocrs . ix 1 . crType . slimeCompression . to show - <> u ^.. tocrs . ix 1 . crType . slimeCompression . to norm . to show - <> u ^.. tocrs . ix 1 . crType . to crRad . to show - <> u ^.. tocrs . ix 1 . crType . slimeRad . to show - <> u ^.. tocrs . ix 1 . crType . slimeRadWobble . to show - <> u ^.. tocrs . ix 1 . crType . slimeIsCompressing . to show - <> u ^.. tocrs . ix 1 . crDir . to show - <> u ^.. tocrs . ix 1 . crDamage . to show --- <> u ^.. tocrs . each . crID . to show +testStringInit u = u ^.. tocrs . ix 2 . crType . hiveChildren . to show +-- u ^.. tocrs . ix 1 . crPos . _xy . to show +-- <> u ^.. tocrs . ix 1 . crType . slimeCompression . to show +-- <> u ^.. tocrs . ix 1 . crType . slimeCompression . to norm . to show +-- <> u ^.. tocrs . ix 1 . crType . to crRad . to show +-- <> u ^.. tocrs . ix 1 . crType . slimeRad . to show +-- <> u ^.. tocrs . ix 1 . crType . slimeRadWobble . to show +-- <> u ^.. tocrs . ix 1 . crType . slimeIsCompressing . to show +-- <> u ^.. tocrs . ix 1 . crDir . to show +-- <> u ^.. tocrs . ix 1 . crDamage . to show -- where -- tocr = uvWorld . cWorld . lWorld . creatures . ix 0 -- f = fromMaybe 0 diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 60338a83c..44cc4398c 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -1037,8 +1037,11 @@ crCrSpring c1 c2 r1 = crRad (c1 ^. crType) r2 = crRad (c2 ^. crType) comRad = crRad (c1 ^. crType) + crRad (c2 ^. crType) - overlap c = ((comRad - diff) * crMass (_crType c) * 0.5 / massT) *^ signorm vec - massT = crMass (_crType c1) + crMass (_crType c2) + overlap c = ((comRad - diff) * cmass c * 0.5 / massT) *^ signorm vec + massT = cmass c1 + cmass c2 + cmass c = case c ^. crStance . carriage of + Falling {} -> crMass (c ^. crType) * 10 + _ -> crMass (c ^. crType) slimeSuck :: Creature -> Creature -> World -> World slimeSuck c1 c2 = cWorld . lWorld . creatures %~ (rolap . rolap') diff --git a/tags b/tags index 3c0e9a714..c5e4b5cdc 100644 --- a/tags +++ b/tags @@ -12,7 +12,7 @@ .++~ src/LensHelp.hs 33;" o .+.+~ src/LensHelp.hs 23;" o .:~ src/LensHelp.hs 14;" o -<$> src/Dodge/Data/ActionPlan.hs 163;" o +<$> src/Dodge/Data/ActionPlan.hs 164;" o <$> src/Dodge/Data/CWorld.hs 52;" o <$> src/Dodge/Data/Camera.hs 38;" o <$> src/Dodge/Data/Creature.hs 93;" o @@ -43,7 +43,7 @@ ActionUpdate src/Dodge/Creature/Action.hs 51;" t AddGoal src/Dodge/Data/ActionPlan.hs 48;" C AimAt src/Dodge/Data/ActionPlan.hs 71;" C AimStance src/Dodge/Data/AimStance.hs 10;" t -Aiming src/Dodge/Data/Creature/Stance.hs 36;" C +Aiming src/Dodge/Data/Creature/Stance.hs 38;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C AlienContact src/Dodge/Data/Scenario.hs 30;" C AllRoomClipBoundaries src/Dodge/Data/Config.hs 123;" C @@ -67,18 +67,18 @@ Arcing src/Dodge/Data/Item/Params.hs 15;" C ArmourySS src/Dodge/Data/Scenario.hs 112;" C Asleep src/Dodge/Data/Creature/Perception.hs 52;" C AsteroidStrike src/Dodge/Data/Scenario.hs 33;" C -AtEase src/Dodge/Data/Creature/Stance.hs 36;" C +AtEase src/Dodge/Data/Creature/Stance.hs 38;" C AtomicWaste src/Dodge/Data/Scenario.hs 26;" C AttachParams src/Dodge/Data/Item/Use.hs 43;" t AttachType src/Dodge/Data/Item/Combine.hs 92;" t Attention src/Dodge/Data/Creature/Perception.hs 58;" t 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 83;" C +AutoCrit src/Dodge/Data/Creature/Misc.hs 91;" C AutoTrigger src/Dodge/Data/TriggerType.hs 8;" C -AvPosture src/Dodge/Data/Creature/Misc.hs 87;" C +AvPosture src/Dodge/Data/Creature/Misc.hs 95;" C Avatar src/Dodge/Data/Creature/Misc.hs 47;" C -AvatarPosture src/Dodge/Data/Creature/Misc.hs 87;" t +AvatarPosture src/Dodge/Data/Creature/Misc.hs 95;" 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 @@ -104,10 +104,10 @@ BURSTRIFLE src/Dodge/Data/Item/Combine.hs 158;" C BackdropCurs src/Dodge/Data/SelectionList.hs 23;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 13;" C Bark src/Dodge/Data/ActionPlan.hs 41;" C -BarrelCrit src/Dodge/Data/Creature/Misc.hs 84;" C +BarrelCrit src/Dodge/Data/Creature/Misc.hs 92;" C BarrelHiss src/Dodge/Data/SoundOrigin.hs 34;" C -BarrelType src/Dodge/Data/Creature/Misc.hs 99;" t -Barreloid src/Dodge/Data/Creature/Misc.hs 95;" C +BarrelType src/Dodge/Data/Creature/Misc.hs 107;" t +Barreloid src/Dodge/Data/Creature/Misc.hs 103;" C BasicBeamDraw src/Dodge/Data/Beam.hs 32;" C BasicBulletTrajectory src/Dodge/Data/Bullet.hs 41;" C BasicBulletTrajectoryType src/Dodge/Data/Bullet.hs 48;" C @@ -121,6 +121,7 @@ BeamSimple src/Dodge/Data/Beam.hs 48;" C BeamSplitterSF src/Dodge/Data/ComposedItem.hs 50;" C BeamType src/Dodge/Data/Beam.hs 44;" t BecomePowerful src/Dodge/Data/Scenario.hs 9;" C +BeeCrit src/Dodge/Data/Creature/Misc.hs 82;" C BeltBulletAmmo src/Dodge/Data/AmmoType.hs 11;" C BezierTrajectory src/Dodge/Data/Bullet.hs 42;" C BezierTrajectoryType src/Dodge/Data/Bullet.hs 49;" C @@ -284,7 +285,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 89;" t +CreatureShape src/Dodge/Data/Creature/Misc.hs 97;" t CreatureType src/Dodge/Data/Creature/Misc.hs 46;" t Crushing src/Dodge/Data/Damage.hs 19;" C CryoReleaseCloud src/Dodge/Data/Cloud.hs 23;" C @@ -403,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 101;" C +ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 109;" 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 @@ -458,7 +459,7 @@ Floor src/Data/Tile.hs 11;" t FloorItem src/Dodge/Data/FloorItem.hs 11;" t Flying src/Dodge/Data/Creature/Stance.hs 27;" C FollowImpulses src/Dodge/Data/ActionPlan.hs 140;" C -FootForward src/Dodge/Data/Creature/Stance.hs 33;" t +FootForward src/Dodge/Data/Creature/Stance.hs 35;" t FootstepSound src/Dodge/Data/SoundOrigin.hs 31;" C ForceField src/Dodge/Data/Material.hs 19;" C ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 11;" t @@ -502,7 +503,7 @@ GibsDeath src/Dodge/Data/Creature.hs 70;" C Glass src/Dodge/Data/Material.hs 14;" C GlassBreakSound src/Dodge/Data/SoundOrigin.hs 35;" C GlassDebris src/Dodge/Data/Prop.hs 25;" C -Goal src/Dodge/Data/ActionPlan.hs 156;" t +Goal src/Dodge/Data/ActionPlan.hs 157;" t GoesOnBack src/Dodge/Data/Equipment/Misc.hs 12;" C GoesOnChest src/Dodge/Data/Equipment/Misc.hs 11;" C GoesOnHead src/Dodge/Data/Equipment/Misc.hs 10;" C @@ -529,11 +530,13 @@ HUD src/Dodge/Data/HUD.hs 29;" t HalfRes src/Dodge/Data/Config.hs 113;" C HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C HardQuit src/Dodge/Data/Universe.hs 68;" C +HarvestFrom src/Dodge/Data/ActionPlan.hs 153;" C HeavySmokeFlare src/Dodge/Data/Muzzle.hs 33;" C HeldItemType src/Dodge/Data/Item/Combine.hs 141;" t HeldPlatformSF src/Dodge/Data/ComposedItem.hs 15;" C HiddenGoal src/Dodge/Data/Scenario.hs 14;" C HighlightSI src/Dodge/Data/SelectionList.hs 58;" C +HiveCrit src/Dodge/Data/Creature/Misc.hs 86;" C HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 41;" C HomeUsingTargeting src/Dodge/Data/Projectile.hs 42;" C Hospital src/Dodge/Data/Scenario.hs 69;" C @@ -557,7 +560,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 68;" C Huge src/Shape/Data.hs 24;" C -Humanoid src/Dodge/Data/Creature/Misc.hs 90;" C +Humanoid src/Dodge/Data/Creature/Misc.hs 98;" C IMSI src/Dodge/Data/SelectionList.hs 41;" t IMSS src/Dodge/Data/SelectionList.hs 39;" t INTROSCAN src/Dodge/Data/Item/Combine.hs 32;" C @@ -631,7 +634,7 @@ JoystickSF src/Dodge/Data/ComposedItem.hs 27;" C Just' src/MaybeHelp.hs 11;" C JustStartedPlaying src/Sound/Data.hs 22;" C KEYCARD src/Dodge/Data/Item/Combine.hs 178;" C -Kill src/Dodge/Data/ActionPlan.hs 158;" C +Kill src/Dodge/Data/ActionPlan.hs 159;" C LASER src/Dodge/Data/Item/Combine.hs 35;" C LDP src/Dodge/Data/SelectionList.hs 14;" C LDParams src/Dodge/Data/SelectionList.hs 14;" t @@ -645,7 +648,7 @@ LabLink src/Dodge/Data/Room.hs 50;" C LabSS src/Dodge/Data/Scenario.hs 97;" C LabelCluster src/Dodge/Data/RoomCluster.hs 13;" C Laboratory src/Dodge/Data/Scenario.hs 61;" C -LampCrit src/Dodge/Data/Creature/Misc.hs 85;" C +LampCrit src/Dodge/Data/Creature/Misc.hs 93;" C Large src/Shape/Data.hs 25;" C LasBeamCombine src/Dodge/Data/Beam.hs 38;" C LasGunFlare src/Dodge/Data/Muzzle.hs 34;" C @@ -661,7 +664,7 @@ LayVars src/Dodge/Data/MetaTree.hs 30;" C Layer src/Picture/Data.hs 20;" t LayoutVars src/Dodge/Data/MetaTree.hs 30;" t LeadTarget src/Dodge/Data/ActionPlan.hs 121;" C -LeftForward src/Dodge/Data/Creature/Stance.hs 33;" C +LeftForward src/Dodge/Data/Creature/Stance.hs 35;" C LeftwardDT src/Dodge/Data/DoubleTree.hs 27;" C Lethargic src/Dodge/Data/Creature/Perception.hs 53;" C LevelStartSlot src/Dodge/Data/SaveSlot.hs 9;" C @@ -674,7 +677,7 @@ LimitedBreathableAtmosphere src/Dodge/Data/Scenario.hs 38;" C LimitedFood src/Dodge/Data/Scenario.hs 39;" C LimitedWater src/Dodge/Data/Scenario.hs 40;" C LinearShockwave src/Dodge/Data/LinearShockwave.hs 11;" t -LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 157;" C +LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 158;" C LivingComplex src/Dodge/Data/Scenario.hs 68;" C LoadReady src/Dodge/Data/Universe.hs 101;" C LoadWaiting src/Dodge/Data/Universe.hs 100;" C @@ -767,6 +770,7 @@ MiniGunFlare src/Dodge/Data/Muzzle.hs 32;" C ModIDID src/Dodge/Data/Modification.hs 21;" C ModIDTimerPoint3Bool src/Dodge/Data/Modification.hs 13;" C Modification src/Dodge/Data/Modification.hs 12;" t +Mounted src/Dodge/Data/Creature/Stance.hs 32;" C MountedLight src/Dodge/Data/MountedObject.hs 14;" C MountedObject src/Dodge/Data/MountedObject.hs 13;" t MountedSPic src/Dodge/Data/MountedObject.hs 15;" C @@ -827,6 +831,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 104;" 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,7 +858,6 @@ NoWorldEffect src/Dodge/Data/WorldEffect.hs 26;" C Noclip src/Dodge/Data/Config.hs 83;" C NodeMTree src/Dodge/Data/MetaTree.hs 17;" C NodeTree src/Dodge/Data/MetaTree.hs 16;" C -NonDrawnCreature src/Dodge/Data/Creature/Misc.hs 96;" C NonInf src/Dodge/Data/CardinalPoint.hs 44;" C NormalOptions src/Dodge/Data/Universe.hs 71;" C NormalSpark src/Dodge/Data/Spark.hs 19;" C @@ -997,7 +1001,7 @@ Piezoelectric src/Dodge/Data/Material.hs 23;" C Pitted src/Dodge/Data/Creature.hs 68;" C Placement src/Dodge/Data/GenWorld.hs 113;" t PlacementSpot src/Dodge/Data/GenWorld.hs 97;" t -PlainBarrel src/Dodge/Data/Creature/Misc.hs 100;" C +PlainBarrel src/Dodge/Data/Creature/Misc.hs 108;" C PlainDeath src/Dodge/Data/Creature.hs 70;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C PlasmaBall src/Dodge/Data/PlasmaBall.hs 13;" t @@ -1022,7 +1026,7 @@ Polyhedra src/Polyhedra/Data.hs 13;" t Polyhedron src/Polyhedra/Data.hs 13;" C PosInf src/Dodge/Data/CardinalPoint.hs 44;" C PosRooms src/Dodge/Tree/Shift.hs 29;" t -Posture src/Dodge/Data/Creature/Stance.hs 36;" t +Posture src/Dodge/Data/Creature/Stance.hs 38;" t PreloadData src/Data/Preload.hs 10;" t PrintMaterial src/Dodge/Data/AmmoType.hs 15;" C Prison src/Dodge/Data/Scenario.hs 65;" C @@ -1120,7 +1124,7 @@ Revenge src/Dodge/Data/Scenario.hs 6;" C RewindLeftClick src/Dodge/Data/World.hs 80;" C RezBaySS src/Dodge/Data/Scenario.hs 105;" C RightButtonState src/Dodge/Data/RightButtonOptions.hs 13;" t -RightForward src/Dodge/Data/Creature/Stance.hs 33;" C +RightForward src/Dodge/Data/Creature/Stance.hs 35;" C RightwardDT src/Dodge/Data/DoubleTree.hs 34;" C Rocket src/Dodge/Data/Projectile.hs 32;" C RocketHoming src/Dodge/Data/Projectile.hs 39;" t @@ -1140,6 +1144,7 @@ RoomPosOnGrid src/Dodge/Data/Room.hs 85;" C RoomProperties src/Dodge/Layout/Generate.hs 14;" t RoomType src/Dodge/Data/Room.hs 31;" t RoomWire src/Dodge/Data/Room.hs 57;" t +Rooted src/Dodge/Data/Creature/Stance.hs 31;" C RoundedFaces src/Shape/Data.hs 13;" C RunningSideEffect src/Dodge/Data/Universe.hs 67;" C SCRAPMETAL src/Dodge/Data/Item/Combine.hs 62;" C @@ -1184,7 +1189,7 @@ SelfTree src/Dodge/Data/MetaTree.hs 21;" t SemiAutoTrigger src/Dodge/Data/TriggerType.hs 9;" C SensorType src/Dodge/Data/Machine/Sensor.hs 12;" t SensorWithRequirement src/Dodge/Data/Machine/Sensor.hs 30;" C -SentinelAt src/Dodge/Data/ActionPlan.hs 159;" C +SentinelAt src/Dodge/Data/ActionPlan.hs 160;" C SetLSCol src/Dodge/Data/WorldEffect.hs 28;" C SetTrigger src/Dodge/Data/WorldEffect.hs 27;" C SetTriggerAndSetLSCol src/Dodge/Data/WorldEffect.hs 29;" C @@ -1284,7 +1289,7 @@ Suspicious src/Dodge/Data/Creature/Perception.hs 64;" C Swallowed src/Dodge/Data/Creature.hs 68;" C SwapEquipment src/Dodge/Data/RightButtonOptions.hs 24;" C Swarm src/Dodge/Data/Creature/State.hs 25;" C -SwarmCrit src/Dodge/Data/Creature/Misc.hs 82;" C +SwarmCrit src/Dodge/Data/Creature/Misc.hs 90;" C TAPE src/Dodge/Data/Item/Combine.hs 56;" C TARGETING src/Dodge/Data/Item/Combine.hs 21;" C TCBase src/Dodge/Data/Terminal.hs 49;" C @@ -1562,7 +1567,7 @@ _avStrength src/Dodge/Data/Creature/Misc.hs 50;" f _avatarMaterial src/Dodge/Data/Creature/Misc.hs 49;" f _avatarPulse src/Dodge/Data/Creature/Misc.hs 48;" f _barrelShader src/Data/Preload/Render.hs 27;" f -_barrelType src/Dodge/Data/Creature/Misc.hs 84;" f +_barrelType src/Dodge/Data/Creature/Misc.hs 92;" f _bdColor src/Dodge/Data/Prop.hs 23;" f _bdMaxX src/Dodge/Data/Bounds.hs 12;" f _bdMaxY src/Dodge/Data/Bounds.hs 14;" f @@ -1570,6 +1575,8 @@ _bdMinX src/Dodge/Data/Bounds.hs 11;" f _bdMinY src/Dodge/Data/Bounds.hs 13;" f _bdsTrigger src/Dodge/Data/Button.hs 26;" f _beamCombine src/Dodge/Data/Beam.hs 46;" f +_beeHive src/Dodge/Data/Creature/Misc.hs 84;" f +_beeSlime src/Dodge/Data/Creature/Misc.hs 83;" f _blDir src/Dodge/Data/Block.hs 27;" f _blDraw src/Dodge/Data/Block.hs 29;" f _blFootprint src/Dodge/Data/Block.hs 25;" f @@ -1888,9 +1895,12 @@ _guTime src/Dodge/Data/Gust.hs 15;" f _guVel src/Dodge/Data/Gust.hs 14;" f _gusts src/Dodge/Data/LWorld.hs 101;" f _gwWorld src/Dodge/Data/GenWorld.hs 25;" f +_harvestTarget src/Dodge/Data/ActionPlan.hs 153;" f _heldPos src/Dodge/Data/Input.hs 43;" f _heldWorldPos src/Dodge/Data/Input.hs 45;" f _highlightItems src/Dodge/Data/CWorld.hs 36;" f +_hiveChildren src/Dodge/Data/Creature/Misc.hs 87;" f +_hiveGestation src/Dodge/Data/Creature/Misc.hs 88;" f _hotkeys src/Dodge/Data/LWorld.hs 145;" f _hud src/Dodge/Data/World.hs 47;" f _ibtAmmoMag src/Dodge/Data/Item/Combine.hs 20;" f @@ -1946,7 +1956,7 @@ _items src/Dodge/Data/LWorld.hs 97;" f _itsInt src/Dodge/Data/Item.hs 40;" f _itsMax src/Dodge/Data/Item.hs 41;" f _itsRangeInt src/Dodge/Data/Item.hs 41;" f -_killTarget src/Dodge/Data/ActionPlan.hs 158;" f +_killTarget src/Dodge/Data/ActionPlan.hs 159;" f _lAimPos src/Dodge/Data/LWorld.hs 147;" f _lClock src/Dodge/Data/LWorld.hs 142;" f _lFootPos src/Dodge/Data/Creature/Misc.hs 65;" f @@ -1954,9 +1964,9 @@ _lInvLock src/Dodge/Data/LWorld.hs 148;" f _lTestInt src/Dodge/Data/LWorld.hs 144;" f _lTestString src/Dodge/Data/LWorld.hs 143;" f _lWorld src/Dodge/Data/CWorld.hs 24;" f -_lampColor src/Dodge/Data/Creature/Misc.hs 85;" f -_lampHeight src/Dodge/Data/Creature/Misc.hs 85;" f -_lampLSID src/Dodge/Data/Creature/Misc.hs 85;" f +_lampColor src/Dodge/Data/Creature/Misc.hs 93;" f +_lampHeight src/Dodge/Data/Creature/Misc.hs 93;" f +_lampLSID src/Dodge/Data/Creature/Misc.hs 93;" f _lasWepXSF src/Dodge/Data/ComposedItem.hs 42;" f _laserEmmiter src/Dodge/Data/Laser.hs 16;" f _laserTypeDamage src/Dodge/Data/Laser.hs 15;" f @@ -2060,6 +2070,8 @@ _moString src/Dodge/Data/Universe.hs 117;" f _modOption src/Dodge/Data/Universe.hs 107;" f _modString src/Dodge/Data/Universe.hs 105;" f _modifications src/Dodge/Data/LWorld.hs 132;" f +_mountID src/Dodge/Data/Creature/Stance.hs 32;" f +_mountPos src/Dodge/Data/Creature/Stance.hs 32;" f _mouseButtons src/Dodge/Data/Input.hs 38;" f _mouseButtonsReleased src/Dodge/Data/Input.hs 39;" f _mouseContext src/Dodge/Data/Input.hs 35;" f @@ -2117,7 +2129,7 @@ _phTargetingID src/Dodge/Data/Projectile.hs 42;" 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 101;" f +_piercedPoints src/Dodge/Data/Creature/Misc.hs 109;" f _pjBarrelSpin src/Dodge/Data/Projectile.hs 23;" f _pjDetonatorID src/Dodge/Data/Projectile.hs 25;" f _pjDir src/Dodge/Data/Projectile.hs 18;" f @@ -2298,8 +2310,8 @@ _selLocation src/Dodge/Data/LWorld.hs 140;" f _sensAmount src/Dodge/Data/Machine/Sensor.hs 20;" f _sensType src/Dodge/Data/Machine/Sensor.hs 21;" f _sensorCoding src/Dodge/Data/GenParams.hs 14;" f -_sentinelDir src/Dodge/Data/ActionPlan.hs 159;" f -_sentinelPos src/Dodge/Data/ActionPlan.hs 159;" f +_sentinelDir src/Dodge/Data/ActionPlan.hs 160;" f +_sentinelPos src/Dodge/Data/ActionPlan.hs 160;" f _sfColor src/Shape/Data.hs 41;" f _sfShadowImportance src/Shape/Data.hs 42;" f _sfSize src/Shape/Data.hs 43;" f @@ -2328,9 +2340,9 @@ _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 91;" f -_skinLower src/Dodge/Data/Creature/Misc.hs 93;" f -_skinUpper src/Dodge/Data/Creature/Misc.hs 92;" f +_skinHead src/Dodge/Data/Creature/Misc.hs 99;" f +_skinLower src/Dodge/Data/Creature/Misc.hs 101;" f +_skinUpper src/Dodge/Data/Creature/Misc.hs 100;" f _slInt src/Dodge/Data/HUD.hs 39;" f _slSec src/Dodge/Data/HUD.hs 39;" f _slSet src/Dodge/Data/HUD.hs 39;" f @@ -2612,7 +2624,7 @@ airlockCrystal src/Dodge/Room/Airlock.hs 251;" f airlockDoubleDoor src/Dodge/Room/Airlock.hs 104;" f airlockSimple src/Dodge/Room/Airlock.hs 129;" f airlockZ src/Dodge/Room/Airlock.hs 166;" f -allVisibleWalls src/Dodge/Base/Collide.hs 245;" f +allVisibleWalls src/Dodge/Base/Collide.hs 247;" f alongSegBy src/Geometry.hs 40;" f alteRifle src/Dodge/Item/Held/Cane.hs 22;" f alteRifleAmmoOrient src/Dodge/Item/Orientation.hs 51;" f @@ -2630,7 +2642,7 @@ angleVV src/Geometry/Vector.hs 58;" f angleVV3 src/Geometry/Vector3D.hs 123;" f angleVVTests test/Spec.hs 67;" f anyUnusedSpot src/Dodge/PlacementSpot.hs 68;" f -anythingHitCirc src/Dodge/Base/Collide.hs 353;" f +anythingHitCirc src/Dodge/Base/Collide.hs 355;" f apply src/Quaternion.hs 78;" f applyCME src/Dodge/HeldUse.hs 397;" f applyClip src/Dodge/Debug.hs 176;" f @@ -2671,7 +2683,7 @@ argV src/Geometry/Vector.hs 89;" f armourChaseCrit src/Dodge/Creature/ArmourChase.hs 34;" f armouredChasers src/Dodge/Room/Boss.hs 58;" f armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f -arms src/Dodge/Creature/Picture.hs 331;" f +arms src/Dodge/Creature/Picture.hs 346;" f arrow src/Picture/Composite.hs 19;" f arrowPath src/Picture/Composite.hs 8;" f assignHotkey src/Dodge/AssignHotkey.hs 9;" f @@ -2714,7 +2726,7 @@ bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 890;" f bangStick src/Dodge/Item/Held/Stick.hs 15;" f barPP src/Dodge/Room/Foreground.hs 231;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f -barrelShape src/Dodge/Creature/Picture.hs 382;" f +barrelShape src/Dodge/Creature/Picture.hs 397;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 411;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 76;" f baseCI src/Dodge/Item/Grammar.hs 167;" f @@ -2723,19 +2735,20 @@ baseItemTriggerType src/Dodge/BaseTriggerType.hs 21;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 325;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 408;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 396;" f -baseShoulder src/Dodge/Creature/Picture.hs 369;" f +baseShoulder src/Dodge/Creature/Picture.hs 384;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 302;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 294;" f baseStickSpread src/Dodge/HeldUse.hs 346;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 137;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 31;" f -basicCrPict src/Dodge/Creature/Picture.hs 74;" f -basicCrShape src/Dodge/Creature/Picture.hs 80;" f +basicCrPict src/Dodge/Creature/Picture.hs 76;" f +basicCrShape src/Dodge/Creature/Picture.hs 82;" f basicItemDisplay src/Dodge/Item/Display.hs 23;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMuzFlare src/Dodge/HeldUse.hs 731;" f battery src/Dodge/Item/Ammo.hs 60;" f batteryPack src/Dodge/Item/Equipment.hs 38;" f +beeCrit src/Dodge/Creature/ChaseCrit.hs 89;" f beep3QuickS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 710;" f beltMag src/Dodge/Item/Ammo.hs 38;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 327;" f @@ -2819,8 +2832,8 @@ cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f calcTexCoord src/Tile.hs 19;" f -canSee src/Dodge/Base/Collide.hs 339;" f -canSeeIndirect src/Dodge/Base/Collide.hs 346;" f +canSee src/Dodge/Base/Collide.hs 341;" f +canSeeIndirect src/Dodge/Base/Collide.hs 348;" f canSpring src/Dodge/Update.hs 995;" f cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 23;" f capacitor src/Dodge/Item/Ammo.hs 67;" f @@ -2847,20 +2860,20 @@ changeSwapWith src/Dodge/Inventory.hs 283;" f charToTuple src/Picture/Base.hs 312;" f charToTupleGrad src/Picture/Text.hs 18;" f chartreuse src/Color.hs 51;" f -chaseCorpse src/Dodge/Creature/Picture.hs 280;" f -chaseCrit src/Dodge/Creature/ChaseCrit.hs 33;" f +chaseCorpse src/Dodge/Creature/Picture.hs 295;" f +chaseCrit src/Dodge/Creature/ChaseCrit.hs 35;" f chaseCritInternal src/Dodge/Humanoid.hs 12;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 194;" f -chaseUpperBody src/Dodge/Creature/Picture.hs 158;" f -chasmRotate src/Dodge/Creature/State/WalkCycle.hs 124;" f +chaseUpperBody src/Dodge/Creature/Picture.hs 172;" f +chasmRotate src/Dodge/Creature/State/WalkCycle.hs 130;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 409;" f chasmSpitTerminal src/Dodge/Room/Tutorial.hs 342;" f -chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 106;" f +chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 112;" f chasmWallToSurface src/Dodge/Base/Collide.hs 132;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f -checkDeath src/Dodge/Creature/Update.hs 230;" f -checkDeath' src/Dodge/Creature/Update.hs 233;" f +checkDeath src/Dodge/Creature/Update.hs 292;" f +checkDeath' src/Dodge/Creature/Update.hs 295;" f checkEndGame src/Dodge/Update.hs 881;" f checkErrorGL src/Shader/Compile.hs 86;" f checkFBO src/Framebuffer/Check.hs 6;" f @@ -2875,17 +2888,17 @@ chemFuelPouch src/Dodge/Item/Ammo.hs 81;" f chestPQ src/Dodge/Creature/HandPos.hs 180;" f chooseCursorBorders src/Dodge/Render/List.hs 141;" f chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f -chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 153;" f +chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 159;" f chooseFreeSite src/Dodge/Inventory/RBList.hs 47;" f chooseMovementLtAuto src/Dodge/CreatureEffect.hs 78;" f -circHitWall src/Dodge/Base/Collide.hs 258;" f +circHitWall src/Dodge/Base/Collide.hs 260;" f circInPolygon src/Geometry/Polygon.hs 110;" f -circOnAnyCr src/Dodge/Base/Collide.hs 303;" f +circOnAnyCr src/Dodge/Base/Collide.hs 305;" f circOnSeg src/Geometry.hs 101;" f circOnSegNoEndpoints src/Geometry.hs 91;" f -circOnSomeWall src/Dodge/Base/Collide.hs 297;" f -circSegsInside src/Dodge/Creature/State/WalkCycle.hs 92;" f -circSegsInside' src/Dodge/Creature/State/WalkCycle.hs 81;" f +circOnSomeWall src/Dodge/Base/Collide.hs 299;" f +circSegsInside src/Dodge/Creature/State/WalkCycle.hs 98;" f +circSegsInside' src/Dodge/Creature/State/WalkCycle.hs 87;" f circle src/Picture/Base.hs 172;" f circleDecoration src/Dodge/Placement/TopDecoration.hs 62;" f circleSolid src/Picture/Base.hs 156;" f @@ -2916,7 +2929,7 @@ closeObjectInfo src/Dodge/Render/HUD.hs 228;" f closestPointOnLine src/Geometry/Intersect.hs 279;" f closestPointOnLineParam src/Geometry/Intersect.hs 295;" f closestPointOnSeg src/Geometry/Intersect.hs 310;" f -cloudPoisonDamage src/Dodge/Update/Cloud.hs 11;" f +cloudPoisonDamage src/Dodge/Update/Cloud.hs 12;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 21;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f clsNearRect src/Dodge/Zoning/Cloud.hs 18;" f @@ -2935,10 +2948,10 @@ collide3Floors src/Dodge/Base/Collide.hs 155;" f collide3Wall src/Dodge/Base/Collide.hs 169;" f collide3Walls src/Dodge/Base/Collide.hs 150;" f collide3WallsFloor src/Dodge/Base/Collide.hs 111;" f -collideCircWalls src/Dodge/Base/Collide.hs 270;" f +collideCircWalls src/Dodge/Base/Collide.hs 272;" f collidePoint src/Dodge/Base/Collide.hs 56;" f -collidePointTestFilter src/Dodge/Base/Collide.hs 208;" f -collidePointWallsFilter src/Dodge/Base/Collide.hs 222;" f +collidePointTestFilter src/Dodge/Base/Collide.hs 210;" f +collidePointWallsFilter src/Dodge/Base/Collide.hs 224;" f color src/Picture/Base.hs 100;" f colorLamp src/Dodge/Creature/Lamp.hs 10;" f colorSH src/Shape.hs 239;" f @@ -2984,7 +2997,7 @@ copierItemUpdate src/Dodge/Creature/State.hs 136;" f copyItemToFloor src/Dodge/FloorItem.hs 14;" f corDoor src/Dodge/Room/Room.hs 411;" f cornerList src/Preload/Render.hs 236;" f -corpseOrGib src/Dodge/Creature/Update.hs 268;" f +corpseOrGib src/Dodge/Creature/Update.hs 327;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 135;" f corridorN src/Dodge/Room/Corridor.hs 58;" f @@ -2992,11 +3005,11 @@ corridorWallN src/Dodge/Room/Corridor.hs 77;" f crAdd src/Dodge/Room/RezBox.hs 116;" f crAwayFromPost src/Dodge/Creature/Test.hs 83;" f crBlips src/Dodge/RadarSweep.hs 88;" f -crCamouflage src/Dodge/Creature/Picture.hs 77;" f +crCamouflage src/Dodge/Creature/Picture.hs 79;" f crCanSeeCr src/Dodge/Creature/Test.hs 50;" f crCrSpring src/Dodge/Update.hs 1002;" f -crCurrentEquipment src/Dodge/Creature/Statistics.hs 67;" f -crDeathSounds src/Dodge/Creature/Vocalization.hs 38;" f +crCurrentEquipment src/Dodge/Creature/Statistics.hs 68;" f +crDeathSounds src/Dodge/Creature/Vocalization.hs 40;" f crDexterity src/Dodge/Creature/Statistics.hs 19;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 39;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 53;" f @@ -3008,7 +3021,6 @@ crIXsNearCirc src/Dodge/Zoning/Creature.hs 33;" f crIXsNearPoint src/Dodge/Zoning/Creature.hs 15;" f crImpulsesOnCognizant src/Dodge/Creature/Perception.hs 58;" f crInAimStance src/Dodge/Creature/Test.hs 91;" f -crIntelligence src/Dodge/Creature/Statistics.hs 41;" f crIsAiming src/Dodge/Creature/Test.hs 58;" f crIsArmouredFrom src/Dodge/Creature/Test.hs 107;" f crLeftHandWall src/Dodge/Creature/HandPos.hs 94;" f @@ -3033,10 +3045,10 @@ crShape src/Dodge/Creature/Shape.hs 8;" f crSpring src/Dodge/Update.hs 990;" f crStratConMatches src/Dodge/Creature/Test.hs 78;" f crStrength src/Dodge/Creature/Statistics.hs 30;" f -crUpdate src/Dodge/Creature/Update.hs 223;" f +crUpdate src/Dodge/Creature/Update.hs 285;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 67;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 49;" f -crVocalResetTime src/Dodge/Creature/Vocalization.hs 65;" f +crVocalResetTime src/Dodge/Creature/Vocalization.hs 69;" f crWalk src/Dodge/Creature/Impulse/Movement.hs 31;" f crWalkAbsolute src/Dodge/Creature/Impulse/Movement.hs 55;" f crWarningSounds src/Dodge/Creature/Vocalization.hs 16;" f @@ -3044,12 +3056,12 @@ crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 71;" f crWlPbHitZ src/Dodge/WorldEvent/ThingsHit.hs 81;" f crZoneSize src/Dodge/Zoning/Creature.hs 43;" f crabActionUpdate src/Dodge/Creature/ReaderUpdate.hs 124;" f -crabCorpse src/Dodge/Creature/Picture.hs 299;" f -crabCrit src/Dodge/Creature/ChaseCrit.hs 40;" f +crabCorpse src/Dodge/Creature/Picture.hs 314;" f +crabCrit src/Dodge/Creature/ChaseCrit.hs 42;" f crabCritInternal src/Dodge/Humanoid.hs 29;" f -crabFeet src/Dodge/Creature/Picture.hs 210;" f +crabFeet src/Dodge/Creature/Picture.hs 224;" f crabRoom src/Dodge/Room/Tutorial.hs 463;" f -crabUpperBody src/Dodge/Creature/Picture.hs 134;" f +crabUpperBody src/Dodge/Creature/Picture.hs 148;" f craftInfo src/Dodge/Item/Info.hs 168;" f craftItemSPic src/Dodge/Item/Draw/SPic.hs 41;" f crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f @@ -3113,10 +3125,10 @@ cylinderRoundIndices src/Shader/Poke.hs 398;" f dShadCol src/Dodge/Render/List.hs 208;" f damMatSideEffect src/Dodge/Material/Damage.hs 20;" f damThingHitWith src/Dodge/Damage.hs 73;" f -damToExpBarrel src/Dodge/Barreloid.hs 53;" f +damToExpBarrel src/Dodge/Barreloid.hs 52;" f damageBlock src/Dodge/Wall/Damage.hs 121;" f damageCodeCommand src/Dodge/Terminal.hs 67;" f -damageCorpse src/Dodge/Creature/Update.hs 51;" f +damageCorpse src/Dodge/Creature/Update.hs 53;" f damageCrWl src/Dodge/Damage.hs 29;" f damageCrWlID src/Dodge/Damage.hs 23;" f damageCrystal src/Dodge/Material/Damage.hs 286;" f @@ -3139,7 +3151,7 @@ damageThingHit src/Dodge/Bullet.hs 181;" f damageTypeThreshold src/Dodge/Machine/Update.hs 128;" f damageTypeThreshold' src/Dodge/Wall/Damage.hs 85;" f damageWall src/Dodge/Wall/Damage.hs 31;" f -damsToExpBarrel src/Dodge/Barreloid.hs 50;" f +damsToExpBarrel src/Dodge/Barreloid.hs 49;" f dark src/Color.hs 135;" f darkenBackground src/Dodge/Render/MenuScreen.hs 46;" f dbArg src/Dodge/Base.hs 165;" f @@ -3149,10 +3161,10 @@ deZoneIX src/Dodge/Zoning/Base.hs 91;" f deZoneWall src/Dodge/Zoning/Wall.hs 69;" f deadEndPSType src/Dodge/Room/Room.hs 264;" f deadEndRoom src/Dodge/Room/Room.hs 267;" f -deadFeet src/Dodge/Creature/Picture.hs 327;" f -deadRot src/Dodge/Creature/Picture.hs 345;" f -deadScalp src/Dodge/Creature/Picture.hs 340;" f -deadUpperBody src/Dodge/Creature/Picture.hs 366;" f +deadFeet src/Dodge/Creature/Picture.hs 342;" f +deadRot src/Dodge/Creature/Picture.hs 360;" f +deadScalp src/Dodge/Creature/Picture.hs 355;" f +deadUpperBody src/Dodge/Creature/Picture.hs 381;" f debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 778;" f debrisSPic src/Dodge/Prop/Draw.hs 17;" f debrisSize src/Dodge/Block/Debris.hs 131;" f @@ -3188,7 +3200,7 @@ defEquipment src/Dodge/Default.hs 24;" f defHeldItem src/Dodge/Default/Item.hs 9;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f defSPic src/Dodge/Item/Draw/SPic.hs 311;" f -defaultAimMvType src/Dodge/Creature/MoveType.hs 21;" f +defaultAimMvType src/Dodge/Creature/MoveType.hs 23;" f defaultAimingCrit src/Dodge/Default/Creature.hs 108;" f defaultAudition src/Dodge/Default/Creature.hs 93;" f defaultAutoWall src/Dodge/Default/Wall.hs 32;" f @@ -3199,13 +3211,13 @@ defaultButton src/Dodge/Default.hs 45;" f defaultCWCam src/Dodge/Default/World.hs 75;" f defaultCWGen src/Dodge/Default/World.hs 65;" f defaultCWorld src/Dodge/Default/World.hs 90;" f -defaultChaseMvType src/Dodge/Creature/MoveType.hs 30;" f +defaultChaseMvType src/Dodge/Creature/MoveType.hs 32;" f defaultClusterStatus src/Dodge/Default/Room.hs 37;" f defaultConfig src/Dodge/Data/Config.hs 152;" f defaultCreature src/Dodge/Default/Creature.hs 12;" f defaultCreatureMemory src/Dodge/Default/Creature.hs 66;" f defaultCrystalWall src/Dodge/Default/Wall.hs 35;" f -defaultDeathSounds src/Dodge/Creature/Vocalization.hs 51;" f +defaultDeathSounds src/Dodge/Creature/Vocalization.hs 55;" f defaultDirtBlock src/Dodge/Default/Block.hs 17;" f defaultDirtWall src/Dodge/Default/Wall.hs 47;" f defaultDoor src/Dodge/Default/Door.hs 5;" f @@ -3336,7 +3348,7 @@ doRoomShift src/Dodge/Room/Link.hs 34;" f doScopeZoom src/Dodge/Update/Scroll.hs 89;" f doSectionSize src/Dodge/DisplayInventory.hs 215;" f doSideEffects appDodge/Main.hs 118;" f -doSlimeRadChange src/Dodge/Creature/Update.hs 133;" f +doSlimeRadChange src/Dodge/Creature/Update.hs 195;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 272;" f doTabComplete src/Dodge/Terminal.hs 241;" f doTestDrawing src/Dodge/Render.hs 40;" f @@ -3370,13 +3382,14 @@ drawAllShadows src/Dodge/Shadows.hs 5;" f drawAnySelectionBox src/Dodge/Render/Picture.hs 132;" f drawArrowDown src/Dodge/Render/Picture.hs 225;" f drawBaseMachine src/Dodge/Machine/Draw.hs 70;" f +drawBeeCrit src/Dodge/Creature/Picture.hs 122;" f drawBlip src/Dodge/RadarBlip.hs 16;" f drawBlock src/Dodge/Render/ShapePicture.hs 81;" f drawBoundingBox src/Dodge/Debug/Picture.hs 368;" f drawBullet src/Dodge/Render/ShapePicture.hs 156;" f drawButton src/Dodge/Button/Draw.hs 11;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f -drawChaseCrit src/Dodge/Creature/Picture.hs 125;" f +drawChaseCrit src/Dodge/Creature/Picture.hs 139;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f drawCliff src/Dodge/Render/ShapePicture.hs 87;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f @@ -3387,7 +3400,7 @@ drawCoord src/Dodge/Debug/Picture.hs 396;" f drawCountMod src/Render.hs 231;" f drawCrInfo src/Dodge/Debug.hs 215;" f drawCrInfo' src/Dodge/Debug.hs 210;" f -drawCrabCrit src/Dodge/Creature/Picture.hs 117;" f +drawCrabCrit src/Dodge/Creature/Picture.hs 131;" f drawCreature src/Dodge/Creature/Picture.hs 36;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 199;" f drawCross src/Dodge/Render/Label.hs 25;" f @@ -3406,7 +3419,7 @@ drawDragSelecting src/Dodge/Render/HUD.hs 162;" f drawDumbSwitch src/Dodge/Button/Draw.hs 31;" f drawEmptySet src/Dodge/Render/Picture.hs 153;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f -drawEquipment src/Dodge/Creature/Picture.hs 378;" f +drawEquipment src/Dodge/Creature/Picture.hs 393;" f drawExamineInventory src/Dodge/Render/HUD.hs 199;" f drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 271;" f @@ -3416,7 +3429,8 @@ drawForceField src/Dodge/Wall/Draw.hs 15;" f drawGapPlus src/Dodge/Render/Picture.hs 284;" f drawGib src/Dodge/Prop/Draw.hs 31;" f drawHUD src/Dodge/Render/HUD.hs 53;" f -drawHoverCrit src/Dodge/Creature/Picture.hs 107;" f +drawHive src/Dodge/Creature/Picture.hs 119;" f +drawHoverCrit src/Dodge/Creature/Picture.hs 109;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 33;" f drawInspectWall src/Dodge/Debug/Picture.hs 256;" f drawInspectWalls src/Dodge/Debug/Picture.hs 244;" f @@ -3469,8 +3483,8 @@ drawShaderLay src/Render.hs 218;" f drawShadowsByImportance src/Dodge/Shadows.hs 8;" f drawShell src/Dodge/Projectile/Draw.hs 22;" f drawShockwave src/Dodge/Shockwave/Draw.hs 6;" f -drawSlimeCrit src/Dodge/Creature/Picture.hs 56;" f -drawSlinkCrit src/Dodge/Creature/Picture.hs 95;" f +drawSlimeCrit src/Dodge/Creature/Picture.hs 58;" f +drawSlinkCrit src/Dodge/Creature/Picture.hs 97;" f drawSpark src/Dodge/Spark/Draw.hs 7;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 28;" f drawSubInventory src/Dodge/Render/HUD.hs 173;" f @@ -3498,7 +3512,7 @@ drawZone src/Dodge/Debug/Picture.hs 152;" f drawZoneCirc src/Dodge/Debug/Picture.hs 293;" f drawZoneCol src/Dodge/Debug/Picture.hs 149;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f -dropAll src/Dodge/Creature/Update.hs 306;" f +dropAll src/Dodge/Creature/Update.hs 365;" f dropInventoryPath src/Dodge/HeldUse.hs 1371;" f dropItem src/Dodge/Creature/Action.hs 169;" f dropper src/Dodge/Item/Scope.hs 82;" f @@ -3559,7 +3573,7 @@ equipSiteInfo src/Dodge/Item/Info.hs 252;" f equipSitePQ src/Dodge/Creature/HandPos.hs 33;" f equipType src/Dodge/Data/EquipType.hs 10;" f equipmentDesignation src/Dodge/Inventory/RBList.hs 52;" f -equipmentStrValue src/Dodge/Creature/Statistics.hs 61;" f +equipmentStrValue src/Dodge/Creature/Statistics.hs 62;" f errorAngleVV src/Geometry.hs 59;" f errorClosestPointOnLine src/Geometry.hs 71;" f errorClosestPointOnLineParam src/Geometry.hs 77;" f @@ -3588,8 +3602,8 @@ faceEdges src/Polyhedra.hs 62;" f facesToVF src/Polyhedra/Geodesic.hs 70;" f farWallDistDirection src/Dodge/Update/Camera.hs 245;" f fdiv src/ShortShow.hs 41;" f -feedSlime src/Dodge/Update.hs 1066;" f -feet src/Dodge/Creature/Picture.hs 196;" f +feedSlime src/Dodge/Update.hs 1069;" f +feet src/Dodge/Creature/Picture.hs 210;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 160;" f findBlips src/Dodge/RadarSweep.hs 63;" f @@ -3665,7 +3679,7 @@ fstV2 src/Geometry/Data.hs 70;" f fuelPack src/Dodge/Item/Equipment.hs 44;" f functionalUpdate src/Dodge/Update.hs 278;" f fusePoint src/Dodge/LevelGen/StaticWalls.hs 158;" f -fuseSlimes src/Dodge/Update.hs 1085;" f +fuseSlimes src/Dodge/Update.hs 1088;" f fuseWall src/Dodge/LevelGen/StaticWalls.hs 165;" f fuseWallsWith src/Dodge/LevelGen/StaticWalls.hs 172;" f g src/ShortShow.hs 48;" f @@ -3701,7 +3715,7 @@ getBulletType src/Dodge/HeldUse.hs 937;" f getCloseObj src/Dodge/Update/Input/InGame.hs 543;" f getCommand src/Dodge/Terminal.hs 61;" f getCommands src/Dodge/Terminal.hs 58;" f -getCrMoveSpeed src/Dodge/Creature/Statistics.hs 55;" f +getCrMoveSpeed src/Dodge/Creature/Statistics.hs 56;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 620;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 607;" f getDebugMouseOver src/Dodge/Update.hs 472;" f @@ -3762,7 +3776,7 @@ gridInPolygon src/Grid.hs 10;" f gridPoints' src/Grid.hs 37;" f gridPointsOff src/Grid.hs 32;" f gridRoomPos src/Dodge/Room/Procedural.hs 91;" f -groundCliffPush src/Dodge/Creature/State/WalkCycle.hs 72;" f +groundCliffPush src/Dodge/Creature/State/WalkCycle.hs 78;" f groupSplitItemAmounts src/Dodge/Combine.hs 52;" f gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 560;" f gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 914;" f @@ -3796,10 +3810,10 @@ handleTextInput src/Dodge/Event/Input.hs 19;" f handleWindowMoveEvent src/Dodge/Event.hs 44;" f hardQuit src/Dodge/Concurrent.hs 32;" f hasAutoDoorBody src/Dodge/Creature/Test.hs 139;" f -hasButtonLOS src/Dodge/Base/Collide.hs 322;" f +hasButtonLOS src/Dodge/Base/Collide.hs 324;" f hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f -hasLOS src/Dodge/Base/Collide.hs 315;" f -hasLOSIndirect src/Dodge/Base/Collide.hs 331;" f +hasLOS src/Dodge/Base/Collide.hs 317;" f +hasLOSIndirect src/Dodge/Base/Collide.hs 333;" f hat src/Dodge/Item/Equipment.hs 65;" f head src/DoubleStack.hs 14;" f headLamp src/Dodge/Item/Equipment.hs 68;" f @@ -3823,7 +3837,7 @@ heldItemMuzVel src/Dodge/HeldUse.hs 1022;" f heldItemMuzzles src/Dodge/HeldUse.hs 198;" f heldItemRifling src/Dodge/HeldUse.hs 1064;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 236;" f -heldItemWeight src/Dodge/Creature/Statistics.hs 85;" f +heldItemWeight src/Dodge/Creature/Statistics.hs 86;" f heldPositionInfo src/Dodge/Item/Info.hs 240;" f heldTorqueAmount src/Dodge/HeldUse.hs 611;" f heldTriggerType src/Dodge/BaseTriggerType.hs 28;" f @@ -3835,6 +3849,7 @@ highMesh src/Dodge/Room/Foreground.hs 25;" f hit1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 660;" f hitEffFromBul src/Dodge/Bullet.hs 156;" f hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 812;" f +hiveCrit src/Dodge/Creature/ChaseCrit.hs 98;" f holdForm src/Dodge/Creature/Boid.hs 139;" f holsterWeapon src/Dodge/Creature/Volition.hs 14;" f homingModule src/Dodge/Item/Scope.hs 50;" f @@ -3842,11 +3857,11 @@ horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f hotkeyToChar src/Dodge/Inventory/SelectionList.hs 201;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 62;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 198;" f -hoverCrit src/Dodge/Creature/ChaseCrit.hs 78;" f -hoverCritHoverSound src/Dodge/Creature/Update.hs 200;" f +hoverCrit src/Dodge/Creature/ChaseCrit.hs 80;" f +hoverCritHoverSound src/Dodge/Creature/Update.hs 262;" f hoverCritInternal src/Dodge/Humanoid.hs 46;" f hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 229;" f -hoverDeathSounds src/Dodge/Creature/Vocalization.hs 58;" f +hoverDeathSounds src/Dodge/Creature/Vocalization.hs 62;" f iShape src/Dodge/Placement/Instance/LightSource.hs 58;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f @@ -3938,7 +3953,7 @@ invertIntMap src/IntMapHelp.hs 100;" f invertIntMap src/Multiset.hs 67;" f invertIntMapUnique src/IntMapHelp.hs 103;" f invertInventoryToMap src/Dodge/Combine.hs 57;" f -invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 27;" f +invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 29;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 27;" f isAmmoIntLink src/Dodge/HeldUse.hs 738;" f isAnimate src/Dodge/Creature/Test.hs 132;" f @@ -4014,7 +4029,7 @@ itemString src/Dodge/Item/Display.hs 56;" f itemToFunction src/Dodge/Item/Grammar.hs 112;" f itemTreeSPic src/Dodge/Item/Draw/SPicTree.hs 13;" f itemTriggerType src/Dodge/BaseTriggerType.hs 16;" f -itemWeight src/Dodge/Creature/Statistics.hs 79;" f +itemWeight src/Dodge/Creature/Statistics.hs 80;" f iterateUntil src/MonadHelp.hs 23;" f iterateWhile src/MonadHelp.hs 30;" f itmBaseInfo src/Dodge/Item/Info.hs 30;" f @@ -4046,7 +4061,7 @@ lConnectCol src/Dodge/Render/Connectors.hs 46;" f lConnectMulti src/Dodge/Render/Connectors.hs 51;" f lShape src/Dodge/Placement/Instance/LightSource.hs 61;" f lamp src/Dodge/Creature/Lamp.hs 18;" f -lampCrSPic src/Dodge/Creature/Picture.hs 387;" f +lampCrSPic src/Dodge/Creature/Picture.hs 402;" f lasCenRunClose' src/Dodge/Room/LasTurret.hs 308;" f lasCenRunClose1 src/Dodge/Room/LasTurret.hs 397;" f lasCenRunClose2 src/Dodge/Room/LasTurret.hs 470;" f @@ -4173,7 +4188,7 @@ makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeColorTermLine src/Dodge/Terminal.hs 124;" f makeColorTermPara src/Dodge/Terminal.hs 121;" f -makeCorpse src/Dodge/Creature/Picture.hs 262;" f +makeCorpse src/Dodge/Creature/Picture.hs 276;" f makeCrGibs src/Dodge/Prop/Gib.hs 19;" f makeDebris src/Dodge/Block/Debris.hs 75;" f makeDebrisDirected src/Dodge/Block/Debris.hs 101;" f @@ -4238,7 +4253,7 @@ maybeExitCombine src/Dodge/Update/Input/InGame.hs 572;" f maybeOpenConsole src/Dodge/Update.hs 135;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 135;" f -maybeTakeStep src/Dodge/Creature/State/WalkCycle.hs 131;" f +maybeTakeStep src/Dodge/Creature/State/WalkCycle.hs 137;" f maybeWarmupStatus src/Dodge/Item/Display.hs 45;" f mcBackgroundSound src/Dodge/Machine/Update.hs 152;" f mcColor src/Dodge/Machine/Draw.hs 74;" f @@ -4394,7 +4409,7 @@ nodeNear src/Dodge/Path.hs 94;" f nodesNear src/Dodge/Path.hs 100;" f nonConvexChasm src/Dodge/Room/Tutorial.hs 300;" f nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f -normalGait src/Dodge/Creature/State/WalkCycle.hs 148;" f +normalGait src/Dodge/Creature/State/WalkCycle.hs 154;" f normalTo8 src/Shader/Poke.hs 475;" f normalizeAngle src/Geometry/Vector.hs 136;" f normalizeAnglePi src/Dodge/Base.hs 154;" f @@ -4419,7 +4434,7 @@ oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 684;" f onEquipWristShield src/Dodge/Euse.hs 89;" f onRemoveWristShield src/Dodge/Euse.hs 79;" f oneH src/Dodge/Creature/Test.hs 95;" f -oneSmooth src/Dodge/Creature/Picture.hs 193;" f +oneSmooth src/Dodge/Creature/Picture.hs 207;" f openConsole src/Dodge/Update.hs 140;" f optionMenu src/Dodge/Menu.hs 110;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 62;" f @@ -4451,11 +4466,11 @@ overPos src/Picture/Base.hs 298;" f overPosObj src/Shape.hs 279;" f overPosSH src/Shape.hs 263;" f overPosSP src/ShapePicture.hs 41;" f -overlapCircWalls src/Dodge/Base/Collide.hs 251;" f -overlapCircWallsClosest src/Dodge/Base/Collide.hs 290;" f +overlapCircWalls src/Dodge/Base/Collide.hs 253;" f +overlapCircWallsClosest src/Dodge/Base/Collide.hs 292;" f overlapSegCrs src/Dodge/Base/Collide.hs 63;" f overlapSegCrs' src/Dodge/Base/Collide.hs 71;" f -overlapSegWalls src/Dodge/Base/Collide.hs 231;" f +overlapSegWalls src/Dodge/Base/Collide.hs 233;" f overrideInternal src/Dodge/Creature/ReaderUpdate.hs 281;" f overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 38;" f overwriteLabel src/Dodge/Tree/Compose.hs 32;" f @@ -4540,7 +4555,7 @@ pointerToItemID src/Dodge/Item/Location.hs 42;" f pointerYourRootItem src/Dodge/Item/Location.hs 33;" f pointerYourSelectedItem src/Dodge/Item/Location.hs 26;" f pointsToPoly src/Geometry/ConvexPoly.hs 37;" f -poisonSPic src/Dodge/Creature/Update.hs 302;" f +poisonSPic src/Dodge/Creature/Update.hs 361;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poke34 src/Shader/Poke.hs 518;" f pokeArrayOff src/Shader/Poke.hs 530;" f @@ -4647,7 +4662,7 @@ psposAddLabel src/Dodge/PlacementSpot.hs 71;" f pt0 src/Dodge/LevelGen/PlacementHelper.hs 55;" f ptCont src/Dodge/LevelGen/PlacementHelper.hs 21;" f pulseChecker src/Dodge/Item/Equipment.hs 84;" f -pushAgainst src/Dodge/Creature/State/WalkCycle.hs 57;" f +pushAgainst src/Dodge/Creature/State/WalkCycle.hs 63;" f pushCaverns src/Dodge/Room/LongDoor.hs 192;" f pushCr src/Dodge/WallCreatureCollisions.hs 42;" f pushL src/DoubleStack.hs 20;" f @@ -4785,9 +4800,9 @@ renderLightingNoShadows src/Render.hs 49;" f renderListAt src/Dodge/Render/List.hs 177;" f renderShadows src/Render.hs 116;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f -resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 69;" f +resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 73;" f resetPLUse src/Dodge/PlacementSpot.hs 94;" f -resetStride src/Dodge/Creature/State/WalkCycle.hs 143;" f +resetStride src/Dodge/Creature/State/WalkCycle.hs 149;" f resetTerminal src/Dodge/WorldEffect.hs 158;" f resizeFBOTO src/Framebuffer/Update.hs 185;" f resizeFBOTO' src/Framebuffer/Update.hs 197;" f @@ -4907,14 +4922,14 @@ sawtoothFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 852;" f scToTS src/Dodge/Event/Input.hs 34;" f scale src/Picture/Base.hs 141;" f scale3 src/Picture/Base.hs 137;" f -scaleAlong src/Dodge/Creature/Picture.hs 70;" f +scaleAlong src/Dodge/Creature/Picture.hs 72;" f scaleMat src/MatrixHelper.hs 71;" f scaleMatrix src/MatrixHelper.hs 68;" f scaleSH src/Shape.hs 271;" f -scalp src/Dodge/Creature/Picture.hs 354;" f +scalp src/Dodge/Creature/Picture.hs 369;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 82;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f -scorchSPic src/Dodge/Creature/Update.hs 299;" f +scorchSPic src/Dodge/Creature/Update.hs 358;" f screenBox src/Dodge/Base/Window.hs 54;" f screenPolygon src/Dodge/Base/Window.hs 18;" f screenPolygonBord src/Dodge/Base/Window.hs 28;" f @@ -4942,7 +4957,7 @@ sectionsSizes src/Dodge/DisplayInventory.hs 205;" f seedStartMenu src/Dodge/Menu.hs 85;" f seedStartOptions src/Dodge/Menu.hs 88;" f segOnCirc src/Geometry.hs 113;" f -segmentArea src/Dodge/Creature/Update.hs 181;" f +segmentArea src/Dodge/Creature/Update.hs 243;" f selNumPos src/Dodge/Render/HUD.hs 475;" f selNumPosCardinal src/Dodge/Render/HUD.hs 492;" f selSecDrawCursor src/Dodge/Render/List.hs 101;" f @@ -4988,7 +5003,7 @@ setSelWhileDragging src/Dodge/Update/Input/InGame.hs 360;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 93;" f setShaderSource src/Shader/Compile.hs 121;" f setShadowLimits src/Dodge/Shadows.hs 11;" f -setSlimeDir src/Dodge/Creature/Update.hs 112;" f +setSlimeDir src/Dodge/Creature/Update.hs 174;" f setSoundVolume src/Sound.hs 159;" f setTile src/Dodge/Layout.hs 78;" f setTiles src/Dodge/Layout.hs 68;" f @@ -5109,13 +5124,13 @@ slapClean7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 804;" f 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 66;" f -slimeCritUpdate src/Dodge/Creature/Update.hs 77;" f -slimeEatSound src/Dodge/Update.hs 1104;" f -slimeFood src/Dodge/Update.hs 1059;" f -slimeSuck src/Dodge/Update.hs 1043;" f -slinkCrit src/Dodge/Creature/ChaseCrit.hs 54;" f -slinkCritUpdate src/Dodge/Creature/Update.hs 184;" f +slimeCrit src/Dodge/Creature/ChaseCrit.hs 68;" f +slimeCritUpdate src/Dodge/Creature/Update.hs 139;" f +slimeEatSound src/Dodge/Update.hs 1107;" f +slimeFood src/Dodge/Update.hs 1062;" f +slimeSuck src/Dodge/Update.hs 1046;" f +slinkCrit src/Dodge/Creature/ChaseCrit.hs 56;" f +slinkCritUpdate src/Dodge/Creature/Update.hs 246;" f slowCrush90 src/Dodge/Room/LongDoor.hs 263;" f slowCrushRoom src/Dodge/Room/LongDoor.hs 148;" f slowDoorRoom src/Dodge/Room/LongDoor.hs 309;" f @@ -5127,7 +5142,7 @@ slurp4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 678;" f slurp5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 656;" f smallBattery src/Dodge/Item/Ammo.hs 57;" f smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f -smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 20;" f +smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 22;" f smallDrawTree src/Dodge/LevelGen.hs 93;" f smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 888;" f smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 574;" f @@ -5175,15 +5190,15 @@ spawnAt src/Dodge/SpawnAt.hs 14;" f spawnerCrit src/Dodge/Creature.hs 49;" f spawnerRoom src/Dodge/Room/Room.hs 390;" f speedLegs src/Dodge/Item/Equipment.hs 74;" f -spiderJoint src/Dodge/Creature/Picture.hs 244;" f +spiderJoint src/Dodge/Creature/Picture.hs 258;" f splashMenu src/Dodge/Menu.hs 31;" f splashMenuOptions src/Dodge/Menu.hs 36;" f splashScreen src/Dodge/Initialisation.hs 10;" f splitBezierquad src/Geometry/Bezier.hs 15;" f splitExtra src/Justify.hs 21;" f splitLookupTrie src/SimpleTrie.hs 39;" f -splitSlimeCrit src/Dodge/Creature/Update.hs 150;" f -splitSlimeCrit' src/Dodge/Creature/Update.hs 140;" f +splitSlimeCrit src/Dodge/Creature/Update.hs 212;" f +splitSlimeCrit' src/Dodge/Creature/Update.hs 202;" f splitTrunk src/TreeHelp.hs 181;" f splitTrunkAt src/TreeHelp.hs 169;" f spreadAroundCenter src/Dodge/Base.hs 173;" f @@ -5221,7 +5236,7 @@ stackText src/Picture/Base.hs 180;" f stackedInventory src/Dodge/Creature.hs 321;" f startCr src/Dodge/Creature.hs 85;" f startCrafts src/Dodge/Room/Start.hs 94;" f -startDeathTimer src/Dodge/Creature/Update.hs 253;" f +startDeathTimer src/Dodge/Creature/Update.hs 315;" f startDrag src/Dodge/Update/Input/InGame.hs 319;" f startInvList src/Dodge/Creature.hs 100;" f startInventory src/Dodge/Creature.hs 103;" f @@ -5244,8 +5259,8 @@ stopPushing src/Dodge/Wall/Damage.hs 172;" f stopSoundFrom src/Dodge/SoundLogic.hs 220;" f storageShape src/Dodge/Machine/Draw.hs 31;" f storeRoomID src/Dodge/Room/Modify.hs 23;" f -strFromEquipment src/Dodge/Creature/Statistics.hs 58;" f -strFromHeldItem src/Dodge/Creature/Statistics.hs 72;" f +strFromEquipment src/Dodge/Creature/Statistics.hs 59;" f +strFromHeldItem src/Dodge/Creature/Statistics.hs 73;" f strengthFactor src/Dodge/Creature/Impulse/Movement.hs 69;" f strictify src/MaybeHelp.hs 35;" f strideLength src/Dodge/Creature/HandPos.hs 46;" f @@ -5373,7 +5388,7 @@ toBinary src/Dodge/Inventory/SelectionList.hs 154;" f toBothLnk src/Dodge/RoomLink.hs 136;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 158;" f -toDeathCarriage src/Dodge/Creature/Update.hs 261;" f +toDeathCarriage src/Dodge/Creature/Update.hs 320;" f toFloatVAs src/Shader/Compile.hs 66;" f toLabel src/Dodge/Cleat.hs 16;" f toMultiset src/Multiset.hs 64;" f @@ -5401,7 +5416,7 @@ topTestPart src/Dodge/TestString.hs 104;" f torchShape src/Dodge/Item/Draw/SPic.hs 278;" f torqueAmount src/Dodge/HeldUse.hs 606;" f torqueCr src/Dodge/WorldEffect.hs 85;" f -torso src/Dodge/Creature/Picture.hs 359;" f +torso src/Dodge/Creature/Picture.hs 374;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractorBeamAt src/Dodge/HeldUse.hs 850;" f @@ -5511,9 +5526,10 @@ updateAimPos src/Dodge/Update.hs 397;" f updateAllNodes src/TreeHelp.hs 88;" f updateArc src/Dodge/Tesla.hs 43;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 488;" f -updateBarrel src/Dodge/Barreloid.hs 44;" f +updateBarrel src/Dodge/Barreloid.hs 43;" f updateBarreloid src/Dodge/Barreloid.hs 16;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f +updateBeeCrit src/Dodge/Creature/Update.hs 101;" f updateBounds src/Dodge/Update/Camera.hs 262;" f updateBulVel src/Dodge/Bullet.hs 57;" f updateBullet src/Dodge/Bullet.hs 22;" f @@ -5526,7 +5542,7 @@ updateCloud src/Dodge/Update.hs 910;" f updateClouds src/Dodge/Update.hs 779;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f updateCombineSections src/Dodge/DisplayInventory.hs 47;" f -updateCreature src/Dodge/Creature/Update.hs 40;" f +updateCreature src/Dodge/Creature/Update.hs 42;" f updateCreatureGroups src/Dodge/Update.hs 640;" f updateCreatureSoundPositions src/Dodge/Update.hs 619;" f updateCreatureStride src/Dodge/Update.hs 376;" f @@ -5534,7 +5550,7 @@ updateCreatureStrides src/Dodge/Update.hs 373;" f updateDebris src/Dodge/Update.hs 682;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 104;" f -updateDelayedEvents src/Dodge/Update.hs 1111;" f +updateDelayedEvents src/Dodge/Update.hs 1114;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 8;" f updateDistortions src/Dodge/Update.hs 661;" f @@ -5558,6 +5574,7 @@ updateFunctionKeys src/Dodge/Update/Input/InGame.hs 368;" f updateGas src/Dodge/Update.hs 932;" f updateGasses src/Dodge/Update.hs 782;" f updateGusts src/Dodge/Update.hs 894;" f +updateHiveCrit src/Dodge/Creature/Update.hs 81;" f updateIMl src/Dodge/Update.hs 634;" f updateIMl' src/Dodge/Update.hs 637;" f updateInGameCamera src/Dodge/Update/Camera.hs 86;" f @@ -5575,7 +5592,7 @@ updateLaser src/Dodge/Laser/Update.hs 12;" f updateLasers src/Dodge/Update.hs 513;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 179;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLivingCreature src/Dodge/Creature/Update.hs 54;" f +updateLivingCreature src/Dodge/Creature/Update.hs 56;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 451;" f updateMachine src/Dodge/Machine/Update.hs 24;" f updateMagnets src/Dodge/Update.hs 405;" f @@ -5592,7 +5609,7 @@ updatePlasmaBall src/Dodge/Update.hs 527;" f updatePlasmaBalls src/Dodge/Update.hs 675;" f updatePreload src/Preload/Update.hs 21;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f -updatePulse src/Dodge/Creature/Update.hs 314;" f +updatePulse src/Dodge/Creature/Update.hs 373;" f updatePulseBall src/Dodge/Update.hs 547;" f updatePulseLaser src/Dodge/Update.hs 722;" f updatePulseLasers src/Dodge/Update.hs 522;" f @@ -5634,7 +5651,7 @@ updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f updateWheelEvents src/Dodge/Update.hs 492;" f updateWorldEventFlag src/Dodge/Update.hs 129;" f updateWorldEventFlags src/Dodge/Update.hs 117;" f -upperBody src/Dodge/Creature/Picture.hs 374;" f +upperBody src/Dodge/Creature/Picture.hs 389;" f upperBox src/Shape.hs 149;" f upperBoxHalf src/Shape.hs 224;" f upperBoxMT src/Shape.hs 140;" f @@ -5698,18 +5715,18 @@ viewGameRoomBoundaries src/Dodge/Debug/Picture.hs 332;" f viewRoomBoundaries src/Dodge/Debug/Picture.hs 341;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 254;" f violet src/Color.hs 48;" f -visibleWalls src/Dodge/Base/Collide.hs 236;" f +visibleWalls src/Dodge/Base/Collide.hs 238;" f visionCheck src/Dodge/Creature/Perception.hs 162;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 356;" f -walkCliffPush src/Dodge/Creature/State/WalkCycle.hs 66;" f +walkCliffPush src/Dodge/Creature/State/WalkCycle.hs 72;" f walkNozzle src/Dodge/HeldUse.hs 826;" f walkableNodeNear src/Dodge/Path.hs 90;" f wallBlips src/Dodge/RadarSweep.hs 99;" f wallBuffer src/Dodge/WallCreatureCollisions.hs 99;" f wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallMovement src/Dodge/WallCreatureCollisions.hs 68;" f -wallToSurface src/Dodge/Base/Collide.hs 200;" f +wallToSurface src/Dodge/Base/Collide.hs 202;" f wallsFromRooms src/Dodge/Layout.hs 158;" f wallsToDraw src/Dodge/Render/Walls.hs 18;" f warmupSound src/Dodge/HeldUse.hs 1396;" f