Work on bee movement
This commit is contained in:
@@ -115,9 +115,12 @@ performAimAt cr w tcid p = ([TurnToward tpos aimSp], AimAt tcid tpos)
|
||||
cdir = _crDir cr
|
||||
cpos = cr ^. crPos . _xy
|
||||
canSee' = canSee (_crID cr) tcid w
|
||||
aimSp = case crMvType cr ^? mvAimSpeed of
|
||||
aimSp = case crMvType cr ^? mvTurnRad of
|
||||
Just f -> doFloatFloat f $ safeAngleVV (unitVectorAtAngle cdir) (tpos - cpos)
|
||||
Nothing -> error "creature without aiming type"
|
||||
-- aimSp = case crMvType cr ^? mvAimSpeed of
|
||||
-- Just f -> doFloatFloat f $ safeAngleVV (unitVectorAtAngle cdir) (tpos - cpos)
|
||||
-- Nothing -> error "creature without aiming type"
|
||||
tpos
|
||||
| canSee' = w ^?! cWorld . lWorld . creatures . ix tcid . crPos . _xy
|
||||
| otherwise = p
|
||||
@@ -135,9 +138,15 @@ performPathTo a cr w p
|
||||
Just q -> gotowards q
|
||||
_ -> ([], a)
|
||||
where
|
||||
gotowards q = ( [MvTurnToward q, MvForward, RandomTurn jit] , PathTo p a)
|
||||
gotowards q = ( crMoveImpulses cr q , PathTo p a)
|
||||
cpos = cr ^. crPos . _xy
|
||||
jit = _mvTurnJit $ crMvType cr
|
||||
|
||||
crMoveImpulses :: Creature -> Point2 -> [Impulse]
|
||||
crMoveImpulses cr p = case crMvType cr of
|
||||
NoMvType -> [MvTurnToward p, MvForward]
|
||||
MvWalking {} -> [MvTurnToward p, MvForward]
|
||||
JitMvType {_mvTurnJit = x} -> [MvTurnToward p, MvForward, RandomTurn x]
|
||||
StartStopMvType {} -> [MvTurnToward p, MvForward]
|
||||
|
||||
performTurnToA :: Creature -> Point2 -> ActionUpdate
|
||||
performTurnToA cr p
|
||||
|
||||
Reference in New Issue
Block a user