Improve chase crit searching
This commit is contained in:
@@ -69,7 +69,7 @@ performAimAt cr w tcid p = ([TurnToward tpos aimSp], Just $ AimAt tcid tpos)
|
||||
|
||||
performPathTo :: Creature -> World -> Point2 -> OutAction
|
||||
performPathTo cr w p
|
||||
| dist cpos p < 5 = ([], Nothing)
|
||||
| dist cpos p <= _crRad cr = ([], Nothing)
|
||||
| isWalkable cpos p w = ([MvTurnToward p,MvForward,RandomTurn jit] , Just (PathTo p))
|
||||
| otherwise = case pointTowardsImpulse p cpos w of
|
||||
Just q -> ([MvTurnToward q
|
||||
@@ -87,7 +87,7 @@ performPathTo cr w p
|
||||
performTurnToA :: Creature -> Point2 -> OutAction
|
||||
performTurnToA cr p
|
||||
| angleVV cdirv dirv < 0.1 = ([], Nothing)
|
||||
| otherwise = ([MvTurnToward p,RandomTurn jit] , Just (TurnToA p))
|
||||
| otherwise = ([MvTurnToward p,RandomTurn jit] , Just (TurnToPoint p))
|
||||
where
|
||||
cpos = _crPos cr
|
||||
cdirv = unitVectorAtAngle (_crDir cr)
|
||||
@@ -130,7 +130,7 @@ performAction cr w ac = case ac of
|
||||
in (concat imps, Just . DoActions $ catMaybes newAcs)
|
||||
StartSentinelPost -> ([AddGoal $ SentinelAt (_crPos cr) (_crDir cr)], Nothing)
|
||||
PathTo p -> performPathTo cr w p
|
||||
TurnToA p -> performTurnToA cr p
|
||||
TurnToPoint p -> performTurnToA cr p
|
||||
LeadTarget p -> case cr ^? crIntention . targetCr . _Just of
|
||||
Just tcr -> ([TurnTo (_crPos tcr +.+ rotateV (_crDir tcr) p)], Nothing)
|
||||
_ -> ([], Nothing)
|
||||
@@ -144,9 +144,9 @@ performAction cr w ac = case ac of
|
||||
(imp, _) -> (sideImp ++ imp, Nothing)
|
||||
DoReplicate t nxtac -> performAction cr w $ DoReplicatePartial nxtac t nxtac
|
||||
DoReplicatePartial _ 0 pac -> performAction cr w pac
|
||||
DoReplicatePartial sac t pac -> case performAction cr w pac of
|
||||
(imps , Just nac) -> (imps, Just $ DoReplicatePartial sac t nac)
|
||||
(imps , _) -> (imps, Just $ DoReplicatePartial sac (t-1) sac)
|
||||
DoReplicatePartial startac t partac -> case performAction cr w partac of
|
||||
(imps , Just nextac) -> (imps, Just $ DoReplicatePartial startac t nextac)
|
||||
(imps , _) -> (imps, Just $ DoReplicatePartial startac (t-1) startac)
|
||||
NoAction -> ([],Nothing)
|
||||
|
||||
{- | Like a blink action, but no ingoing distortion -}
|
||||
|
||||
Reference in New Issue
Block a user