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)
|
||||
|
||||
@@ -67,7 +67,7 @@ followImpulse cr w imp = case imp of
|
||||
tcr <- w ^? cWorld . lWorld . creatures . ix i
|
||||
return $ followImpulse cr w (doCrImp f tcr)
|
||||
MvForward -> crup $ crMvForward speed (w ^. cWorld . lWorld) cr
|
||||
MvTurnToward p ->
|
||||
MvTurnToward _ _ _ p ->
|
||||
crup $
|
||||
creatureTurnToward p (turnRad $ safeAngleVV (p -.- cpos) (unitVectorAtAngle cdir)) cr
|
||||
where
|
||||
|
||||
@@ -119,7 +119,6 @@ flockACC w cr = fromMaybe cr $ do
|
||||
|
||||
chaseCritMv :: World -> Creature -> Creature
|
||||
chaseCritMv w cr = case _apStrategy (_crActionPlan cr) of
|
||||
StrategyActions _ _ -> cr
|
||||
WarningCry -> cr
|
||||
MeleeStrike -> cr
|
||||
CloseToMelee cid
|
||||
|
||||
Reference in New Issue
Block a user