From fada3c73bcde6d824d1e4c517524a3c034763e7e Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 9 May 2026 00:13:56 +0100 Subject: [PATCH] Hack to prevent slime split error --- src/Dodge/Creature/Picture.hs | 1 + src/Dodge/Creature/Update.hs | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Dodge/Creature/Picture.hs b/src/Dodge/Creature/Picture.hs index f08212106..5323d9675 100644 --- a/src/Dodge/Creature/Picture.hs +++ b/src/Dodge/Creature/Picture.hs @@ -66,6 +66,7 @@ drawSlimeCrit cr = colorSH green ps = fromMaybe so $ do (x',qs) <- cr ^? crType . slimeSplitTimer . _Just let x = fromIntegral x' + guard $ length qs == 12 return $ zipWith (+) (fmap (0.1*(10 - x) *^) so) (fmap (0.1*x*^) qs) -- assumes d is a unit vector diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index f797bf175..88c0f5526 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -343,10 +343,14 @@ 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 .~ polyInPoly (centroid c1ps) c1ps (slimeOutline c1) - ,c2 & crType . slimeSplitTimer . _Just . _2 .~ polyInPoly (centroid c2ps) c2ps (slimeOutline c2) + --return (c1 & crType . slimeSplitTimer . _Just . _2 .~ polyInPoly (centroid c1ps) c1ps (slimeOutline c1) + -- ,c2 & crType . slimeSplitTimer . _Just . _2 .~ polyInPoly (centroid c2ps) c2ps (slimeOutline c2) + return (c1 & crType . slimeSplitTimer . _Just . _2 .~ f c1ps c1 + ,c2 & crType . slimeSplitTimer . _Just . _2 .~ f c2ps c2 ) where + f xs@(_:_) c = polyInPoly (centroid xs) xs (slimeOutline c) + f _ _ = mempty cxy = cr ^. crPos . _xy r = cr ^?! crType . slimeSlime . to slimeToRad cr' = cr & crDamage .~ []