Hack to prevent slime split error
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 .~ []
|
||||
|
||||
Reference in New Issue
Block a user