Fix slime splitting position
This commit is contained in:
@@ -149,12 +149,14 @@ splitSlimeCrit p v cr = do
|
|||||||
a2 = pi*r*r - a1
|
a2 = pi*r*r - a1
|
||||||
r1 = sqrt (a1/pi)
|
r1 = sqrt (a1/pi)
|
||||||
r2 = sqrt (a2/pi)
|
r2 = sqrt (a2/pi)
|
||||||
mvdir = normalize (vNormal v)
|
mvdir
|
||||||
|
| isLHS p (p+v) cxy = normalize (vNormal v)
|
||||||
|
| otherwise = - normalize (vNormal v)
|
||||||
return (cr' & crPos . _xy .~ mp + (r1 + 0.51) *^ mvdir
|
return (cr' & crPos . _xy .~ mp + (r1 + 0.51) *^ mvdir
|
||||||
& crType . slimeRad .~ r1
|
& crType . slimeRad .~ r1
|
||||||
& crType . slimeCompression .~ rotateV (argV mvdir) (V2 r1 0)
|
& crType . slimeCompression .~ rotateV (argV mvdir) (V2 r1 0)
|
||||||
& crDir .~ argV mvdir
|
& crDir .~ argV mvdir
|
||||||
,cr' & crPos . _xy .~ mp - (r2 + 0.51) *^ normalize mvdir
|
,cr' & crPos . _xy .~ mp - (r2 + 0.51) *^ mvdir
|
||||||
& crType . slimeRad .~ r2
|
& crType . slimeRad .~ r2
|
||||||
& crType . slimeCompression .~ rotateV (argV (-mvdir)) (V2 r2 0)
|
& crType . slimeCompression .~ rotateV (argV (-mvdir)) (V2 r2 0)
|
||||||
& crDir .~ argV (-mvdir)
|
& crDir .~ argV (-mvdir)
|
||||||
|
|||||||
@@ -1045,6 +1045,7 @@ slimeFood :: Creature -> Bool
|
|||||||
slimeFood cr = case cr ^. crType of
|
slimeFood cr = case cr ^. crType of
|
||||||
Avatar{} -> True
|
Avatar{} -> True
|
||||||
ChaseCrit{} -> True
|
ChaseCrit{} -> True
|
||||||
|
CrabCrit {} -> True
|
||||||
_ -> False
|
_ -> False
|
||||||
|
|
||||||
feedSlime :: Creature -> Creature -> World -> World
|
feedSlime :: Creature -> Creature -> World -> World
|
||||||
|
|||||||
Reference in New Issue
Block a user