Fix basic pathing
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -49,7 +49,7 @@ chaseCrit = defaultCreature
|
||||
, _crMeleeCooldown = 0
|
||||
, _crFaction = ColorFaction green
|
||||
, _crMvType = ChaseMvType
|
||||
{ _mvSpeed = 2.5
|
||||
{ _mvSpeed = 3
|
||||
, _mvTurnRad = f
|
||||
, _mvTurnJit = 0.2
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user