Fix reversed impulse pathfinding bug
This commit is contained in:
@@ -62,17 +62,17 @@ performAimAt cr w tcid p = ([TurnToward tpos aimSp], Just $ AimAt tcid tpos)
|
||||
performPathTo :: Creature -> World -> Point2 -> OutAction
|
||||
performPathTo cr w p
|
||||
| dist cpos p <= crRad (cr ^. crType) = ([], Nothing)
|
||||
| isWalkable cpos p w = ([MvTurnToward p, MvForward, RandomTurn jit], Just (PathTo p))
|
||||
| otherwise = case pointTowardsImpulse p cpos w of
|
||||
| isWalkable cpos p w = ([MvTurnToward 0 cpos p p, MvForward, RandomTurn jit], Just (PathTo p))
|
||||
| otherwise = case pointTowardsImpulse cpos p w of
|
||||
Just q ->
|
||||
(
|
||||
[ MvTurnToward q
|
||||
[ MvTurnToward 1 cpos p q
|
||||
, MvForward
|
||||
, RandomTurn jit
|
||||
]
|
||||
, Just (PathTo p)
|
||||
)
|
||||
_ -> ([], Nothing)
|
||||
_ -> ([ChangeStrategy Flee], Nothing)
|
||||
where
|
||||
cpos = cr ^. crPos . _xy
|
||||
jit = _mvTurnJit $ crMvType cr
|
||||
@@ -80,7 +80,7 @@ performPathTo cr w p
|
||||
performTurnToA :: Creature -> Point2 -> OutAction
|
||||
performTurnToA cr p
|
||||
| angleVV cdirv dirv < 0.1 = ([], Nothing)
|
||||
| otherwise = ([MvTurnToward p, RandomTurn jit], Just (TurnToPoint p))
|
||||
| otherwise = ([MvTurnToward 2 p p p, RandomTurn jit], Just (TurnToPoint p))
|
||||
where
|
||||
cpos = cr ^. crPos . _xy
|
||||
cdirv = unitVectorAtAngle (_crDir cr)
|
||||
|
||||
Reference in New Issue
Block a user