Fix basic pathing

This commit is contained in:
2021-09-06 11:35:30 +01:00
parent 4d3c0ae38f
commit 72e29ebac3
9 changed files with 86 additions and 193 deletions
+6 -2
View File
@@ -10,6 +10,7 @@ module Dodge.Creature.Action
, pickUpItem
)
where
import Dodge.Path
import Dodge.Creature.Stance.Data
import Dodge.WorldEvent.Shockwave
import Dodge.Data
@@ -60,10 +61,13 @@ 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)
| hasLOS cpos p w = ([MvTurnToward p,MvForward] , Just (PathTo p))
| otherwise = ([], Nothing)
| hasLOS cpos p w = ([MvTurnToward p,MvForward,RandomTurn jit] , Just (PathTo p))
| otherwise = case pointTowardsImpulse cpos p w of
Just q -> ([MvTurnToward q,MvForward,RandomTurn jit] , Just (PathTo p))
_ -> ([],Nothing)
where
cpos = _crPos cr
jit = _mvTurnJit $ _crMvType cr
{- | Performing an action means that a creature has some impulses for a frame, and
updates or deletes the action itself.
+1 -1
View File
@@ -49,7 +49,7 @@ chaseCrit = defaultCreature
, _crMeleeCooldown = 0
, _crFaction = ColorFaction green
, _crMvType = ChaseMvType
{ _mvSpeed = 2.5
{ _mvSpeed = 3
, _mvTurnRad = f
, _mvTurnJit = 0.2
}
+1 -19
View File
@@ -17,7 +17,6 @@ import Dodge.Creature.Test
import Dodge.Creature.Volition
import Dodge.Creature.AlertLevel.Data
import Dodge.Base
import Dodge.Base.Collide
import Geometry
import FoldableHelp
@@ -75,26 +74,9 @@ flockACCR cr = do
goToTarget :: Creature -> Reader World Creature
goToTarget cr = do
w <- ask
case cr ^? crMvTarget . _Just of
Just p
| dist p cpos > _crRad cr + 10 && hasLOS p cpos w
-> pure $ cr & crActionPlan . crImpulse .~
[ MoveForward speed
, TurnToward p (trad dirOffset)
, RandomTurn jit
]
| dist p cpos > _crRad cr + 10
-> pure $ cr & crActionPlan . crAction .~ [PathTo p]
where
dirOffset = abs (_crDir cr - argV (p -.- cpos))
Just p -> pure $ cr & crActionPlan . crAction .~ [PathTo p]
_ -> pure cr
where
cpos = _crPos cr
mvType = _crMvType cr
speed = _mvSpeed mvType
trad = _mvTurnRad mvType
jit = _mvTurnJit mvType
doStrategyActionsR
:: Creature