Simplify slime compression

This commit is contained in:
2026-05-07 10:04:42 +01:00
parent b76148ae2a
commit 7c1ada4546
9 changed files with 158 additions and 154 deletions
+8 -7
View File
@@ -59,15 +59,16 @@ drawCreature w m cr = translateSP (_crPos cr) . fallrot . rotateSP (_crDir cr) $
drawSlimeCrit :: Creature -> Shape
drawSlimeCrit cr = colorSH green
$ upperPrismPolyHalf Medium Typical (cr ^?! crType . slimeEngulfProgress + min 15 r) $ polyCirc 6 r
& each %~ scaleAlong d s
& each %~ scaleAlong (vNormal d) (1 / s)
& each %~ rotateV (-cr ^. crDir)
& each %~ (((r-cr^?!crType.slimeRadWobble)/r) *^)
& each . _x *~ p
& each . _y %~ (/p)
-- & each %~ scaleAlong d s
-- & each %~ scaleAlong (vNormal d) (1 / s)
-- & each %~ rotateV (-cr ^. crDir)
where
r = cr ^?! crType . slimeSlime . to slimeToRad
r = slimeToRad $ cr ^?! crType . slimeSlime - cr ^?! crType . slimeSlimeChange
p = cr ^?! crType . slimeCompression
d = normalize p
s = norm p / r
-- d = normalize p
-- s = norm p / r
-- assumes d is a unit vector
scaleAlong :: Point2 -> Float -> Point2 -> Point2