diff --git a/src/Dodge/Creature/Action.hs b/src/Dodge/Creature/Action.hs index f457b4360..76dd44961 100644 --- a/src/Dodge/Creature/Action.hs +++ b/src/Dodge/Creature/Action.hs @@ -10,6 +10,7 @@ module Dodge.Creature.Action ( youDropItem, ) where +import RandomHelp import Dodge.WorldEvent.ThingsHit import Control.Applicative import Control.Monad @@ -103,10 +104,11 @@ performAction cr w ac = case ac of NoAction -> ([], NoAction) tryEvadeSideways :: Creature -> World -> Point2 -> Float -> Int -> ActionUpdate -tryEvadeSideways _ _ p a i = jumpleft -- (mv,mempty) +tryEvadeSideways _ w p a i = jumpleft -- (mv,mempty) where - jumpleft = (mv,EvadeAim p a (i-1)) - mv = [Move (V2 0 3)] + jumpleft = (mv,DoReplicate 5 (DoImpulses mv)) + mv = [Walk (V2 0 d)] + d = evalState (takeOne [3,-3]) (w ^. randGen) performAimAt :: Creature -> World -> Int -> Point2 -> ActionUpdate performAimAt cr w tcid p = ([TurnToward tpos aimSp], AimAt tcid tpos) diff --git a/src/Dodge/Creature/ChaseCrit.hs b/src/Dodge/Creature/ChaseCrit.hs index a99b00c97..f47d8fe69 100644 --- a/src/Dodge/Creature/ChaseCrit.hs +++ b/src/Dodge/Creature/ChaseCrit.hs @@ -7,6 +7,7 @@ module Dodge.Creature.ChaseCrit ( ) where --import Dodge.Data.Equipment.Misc +import Dodge.Data.FloatFunction import Control.Lens import Dodge.Data.Creature import Dodge.Default @@ -39,6 +40,7 @@ crabCrit = defaultCreature & crHP .~ HP 350 & crType .~ CrabCrit 0 LeftForward 0 0 & crFaction .~ ColorFaction red + & crPerception . cpVision . viFOV .~ FloatFOV pi hoverCrit :: Creature hoverCrit = diff --git a/src/Dodge/Creature/Impulse.hs b/src/Dodge/Creature/Impulse.hs index 35ab7149a..8674d4ed2 100644 --- a/src/Dodge/Creature/Impulse.hs +++ b/src/Dodge/Creature/Impulse.hs @@ -31,6 +31,7 @@ followImpulse cid w = \case soundStart (CrMouth cid) cpos sid Nothing $ w & clens %~ resetCrVocCoolDown w Move p -> crup $ crMvBy p (w ^. cWorld . lWorld) + Walk p -> crup $ crWalk p (w ^. cWorld . lWorld) MoveForward x -> crup $ crMvForward x (w ^. cWorld . lWorld) MoveNoStride p -> crup $ crMvByNoStride p (w ^. cWorld . lWorld) Turn a -> crup $ crDir +~ a diff --git a/src/Dodge/Creature/Impulse/Movement.hs b/src/Dodge/Creature/Impulse/Movement.hs index 86ecd8ca2..a8f7da1af 100644 --- a/src/Dodge/Creature/Impulse/Movement.hs +++ b/src/Dodge/Creature/Impulse/Movement.hs @@ -3,6 +3,7 @@ module Dodge.Creature.Impulse.Movement ( creatureTurnTowardDir, crMvAbsolute, crMvBy, + crWalk, crMvByNoStride, crMvForward, creatureTurnTo, @@ -27,6 +28,14 @@ crMvBy :: Creature crMvBy p lw cr = crMvAbsolute lw (rotateV (_crDir cr) p) cr +crWalk :: + -- | Movement translation vector, will be made relative to creature direction + Point2 -> + LWorld -> + Creature -> + Creature +crWalk p lw cr = crWalkAbsolute lw (rotateV (_crDir cr) p) cr + crMvByNoStride :: -- | Movement translation vector, will be made relative to creature direction Point2 -> @@ -43,6 +52,15 @@ crMvAbsolute lw p' cr = where p = strengthFactor (getCrMoveSpeed lw cr) *.* p' +crWalkAbsolute :: LWorld -> Point2 -> Creature -> Creature +crWalkAbsolute lw p' cr + | Walking <- cr ^. crStance . carriage = cr + & crPos . _xy +~ p + & crMvDir .~ argV (p + cr ^. crOldPos . _xy - cr ^. crOldOldPos . _xy) + | otherwise = cr + where + p = strengthFactor (getCrMoveSpeed lw cr) *.* p' + crMvAbsoluteNoStride :: LWorld -> Point2 -> Creature -> Creature crMvAbsoluteNoStride lw p' cr = cr & crPos . _xy +~ p where diff --git a/src/Dodge/Creature/MoveType.hs b/src/Dodge/Creature/MoveType.hs index 66478f0fe..09c0098e2 100644 --- a/src/Dodge/Creature/MoveType.hs +++ b/src/Dodge/Creature/MoveType.hs @@ -8,7 +8,7 @@ crMvType :: Creature -> CrMvType crMvType cr = case _crType cr of Avatar {} -> MvWalking 1.5 ChaseCrit {} -> defaultChaseMvType & mvSpeed .~ 1.8 - CrabCrit {} -> defaultChaseMvType & mvSpeed .~ 1 + CrabCrit {} -> defaultChaseMvType & mvSpeed .~ 0.5 HoverCrit {} -> defaultChaseMvType & mvSpeed .~ 0.16 SwarmCrit -> defaultChaseMvType AutoCrit -> defaultAimMvType diff --git a/src/Dodge/Creature/ReaderUpdate.hs b/src/Dodge/Creature/ReaderUpdate.hs index fd28eacaa..d58317d4c 100644 --- a/src/Dodge/Creature/ReaderUpdate.hs +++ b/src/Dodge/Creature/ReaderUpdate.hs @@ -15,6 +15,7 @@ module Dodge.Creature.ReaderUpdate ( hoverCritMv, ) where +import Dodge.WorldEvent.ThingsHit import Control.Applicative import Control.Monad import Data.Bifunctor @@ -123,9 +124,11 @@ flockACC w cr = fromMaybe cr $ do crabCritMv :: World -> Creature -> Creature crabCritMv w cr = case _apStrategy (_crActionPlan cr) of WarningCry -> cr - CloseToMelee tid | Just (p,a) <- aimi tid -> cr & crActionPlan . apAction .~ EvadeAim p a 3 - & crType . dodgeCooldown .~ 20 + CloseToMelee tid | Just (p,a) <- aimi tid -> cr & crActionPlan . apAction .~ EvadeAim p a 10 + & crType . dodgeCooldown .~ dc CloseToMelee _ | ma <- cr ^? crActionPlan . apAction , notpath ma -> cr + Wander | Just tid <- cr ^? crIntention . targetCr . _Just + , canSee tid (cr ^. crID) w -> cr & crActionPlan . apStrategy .~ CloseToMelee tid _ -> case cr ^? crIntention . mvToPoint . _Just of Just p | dist (cr ^. crPos . _xy) p > crRad (cr ^. crType) -> @@ -136,9 +139,11 @@ crabCritMv w cr = case _apStrategy (_crActionPlan cr) of & crIntention . mvToPoint .~ Nothing _ -> viewTarget w cr where + dc = fst $ randomR (15,25) (w ^. randGen) notpath = \case Just NoAction -> False Just PathTo {} -> False + Just AimAt {} -> False _ -> True aimi tid = do tcr <- w ^? cWorld . lWorld . creatures . ix tid @@ -148,6 +153,8 @@ crabCritMv w cr = case _apStrategy (_crActionPlan cr) of 0 <- cr ^? crType . dodgeCooldown guard $ hasLOS cxy txy w && abs (nearZeroAngle (tcr^.crDir - argV (cxy - txy))) < 0.3 + && isWalkable txy cxy w + && diffAngles (cr ^. crDir) (argV (txy - cxy)) < 0.1 return (txy, tcr ^. crDir) chaseCritMv :: World -> Creature -> Creature @@ -182,6 +189,7 @@ chaseCritMv w cr = case _apStrategy (_crActionPlan cr) of notpath = \case Just NoAction -> False Just PathTo {} -> False + Just AimAt {} -> False _ -> True hoverCritMv :: World -> Creature -> Creature @@ -201,6 +209,7 @@ hoverCritMv w cr = case _apStrategy (_crActionPlan cr) of notpath = \case Just NoAction -> False Just PathTo {} -> False + Just AimAt {} -> False _ -> True --goToTarget :: World -> Creature -> Creature diff --git a/src/Dodge/Data/ActionPlan.hs b/src/Dodge/Data/ActionPlan.hs index dac56379f..65ef8e3b5 100644 --- a/src/Dodge/Data/ActionPlan.hs +++ b/src/Dodge/Data/ActionPlan.hs @@ -24,6 +24,7 @@ data ActionPlan data Impulse = Move Point2 + | Walk Point2 | MoveForward Float | MoveNoStride Point2 | Turn Float diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index 4a9b6ca8a..eecf4410a 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -57,6 +57,8 @@ tutAnoTree = do foldMTRS [ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox , corDoor + , chasmSpitTerminal + , corDoor , loadAmmoTut , corDoor , chasmSpitTerminal @@ -341,10 +343,10 @@ chasmSpitTerminal = do tToBTree "chasmTerm" $ Node (addDoorToggleTerminal' i1 (PS 150 0) y') - [ treePost [triggerDoorRoom i1, deadEndPSType (PutCrit chaseCrit)] + [ treePost [triggerDoorRoom i1, deadEndPSType (PutCrit crabCrit)] --[ treePost [triggerDoorRoom i1, deadEndPSType (PutCrit hoverCrit)] --[ treePost [triggerDoorRoom i1, deadEndRoom] - , treePost [triggerDoorRoom i1, deadEndPSType (PutCrit chaseCrit)] + , treePost [triggerDoorRoom i1, deadEndPSType (PutCrit crabCrit)] , return $ cleatOnward $ triggerDoorRoom i1 ] where diff --git a/tags b/tags index d338406d0..c1877012d 100644 --- a/tags +++ b/tags @@ -12,7 +12,7 @@ .++~ src/LensHelp.hs 33;" o .+.+~ src/LensHelp.hs 23;" o .:~ src/LensHelp.hs 14;" o -<$> src/Dodge/Data/ActionPlan.hs 158;" o +<$> src/Dodge/Data/ActionPlan.hs 159;" o <$> src/Dodge/Data/CWorld.hs 52;" o <$> src/Dodge/Data/Camera.hs 38;" o <$> src/Dodge/Data/Creature.hs 93;" o @@ -36,18 +36,18 @@ AUTOPISTOL src/Dodge/Data/Item/Combine.hs 147;" C AUTORIFLE src/Dodge/Data/Item/Combine.hs 156;" C AZURE src/Color/Data.hs 20;" C AccessTerminal src/Dodge/Data/WorldEffect.hs 30;" C -Action src/Dodge/Data/ActionPlan.hs 65;" t +Action src/Dodge/Data/ActionPlan.hs 66;" t ActionPlan src/Dodge/Data/ActionPlan.hs 14;" t -ActionUpdate src/Dodge/Creature/Action.hs 50;" t -AddGoal src/Dodge/Data/ActionPlan.hs 44;" C -AimAt src/Dodge/Data/ActionPlan.hs 66;" C +ActionUpdate src/Dodge/Creature/Action.hs 51;" t +AddGoal src/Dodge/Data/ActionPlan.hs 45;" C +AimAt src/Dodge/Data/ActionPlan.hs 67;" C AimStance src/Dodge/Data/AimStance.hs 10;" t Aiming src/Dodge/Data/Creature/Stance.hs 33;" C AirFiltrationSS src/Dodge/Data/Scenario.hs 95;" C AlienContact src/Dodge/Data/Scenario.hs 30;" C AllRoomClipBoundaries src/Dodge/Data/Config.hs 123;" C AlteRifleSwitch src/Dodge/Data/Item/Params.hs 18;" C -Ambush src/Dodge/Data/ActionPlan.hs 131;" C +Ambush src/Dodge/Data/ActionPlan.hs 132;" C AmmoEffectSF src/Dodge/Data/ComposedItem.hs 33;" C AmmoExtractPosition src/Dodge/Data/Muzzle.hs 21;" t AmmoMagSF src/Dodge/Data/ComposedItem.hs 24;" C @@ -58,7 +58,7 @@ AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 32;" C AmmoPerShot src/Dodge/Data/Muzzle.hs 62;" t AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 31;" C AmmoType src/Dodge/Data/AmmoType.hs 8;" t -ArbitraryAction src/Dodge/Data/ActionPlan.hs 120;" C +ArbitraryAction src/Dodge/Data/ActionPlan.hs 121;" C ArcNodeType src/Dodge/Data/LWorld.hs 159;" t ArcShad src/Picture/Data.hs 33;" C ArcStep src/Dodge/Data/ArcStep.hs 12;" t @@ -102,7 +102,7 @@ BULLETSYNTH src/Dodge/Data/Item/Combine.hs 93;" C BURSTRIFLE src/Dodge/Data/Item/Combine.hs 157;" C BackdropCurs src/Dodge/Data/SelectionList.hs 23;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 13;" C -Bark src/Dodge/Data/ActionPlan.hs 39;" C +Bark src/Dodge/Data/ActionPlan.hs 40;" C BarrelCrit src/Dodge/Data/Creature/Misc.hs 69;" C BarrelHiss src/Dodge/Data/SoundOrigin.hs 33;" C BarrelType src/Dodge/Data/Creature/Misc.hs 84;" t @@ -201,8 +201,8 @@ CardinalCover src/Dodge/Data/CardinalPoint.hs 38;" t CardinalPoint src/Dodge/Data/CardinalPoint.hs 6;" t CardinalPointBetween src/Dodge/Data/CardinalPoint.hs 20;" t Carriage src/Dodge/Data/Creature/Stance.hs 21;" t -ChangePosture src/Dodge/Data/ActionPlan.hs 41;" C -ChangeStrategy src/Dodge/Data/ActionPlan.hs 43;" C +ChangePosture src/Dodge/Data/ActionPlan.hs 42;" C +ChangeStrategy src/Dodge/Data/ActionPlan.hs 44;" C ChaseCrit src/Dodge/Data/Creature/Misc.hs 57;" C ChaseCritters src/Dodge/Data/Creature/State.hs 16;" C ChasmObstacle src/Dodge/Data/PathGraph.hs 51;" C @@ -210,7 +210,7 @@ ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 14;" C ChooseMovementLtAuto src/Dodge/Data/CreatureEffect.hs 30;" C Circ_collision_test src/Dodge/Data/Config.hs 99;" C Climate src/Dodge/Data/Scenario.hs 32;" C -CloseToMelee src/Dodge/Data/ActionPlan.hs 141;" C +CloseToMelee src/Dodge/Data/ActionPlan.hs 142;" C Close_shape_culling src/Dodge/Data/Config.hs 93;" C Cloud src/Dodge/Data/Cloud.hs 12;" t CloudType src/Dodge/Data/Cloud.hs 20;" t @@ -331,17 +331,17 @@ DisplayTerminal src/Dodge/Data/HUD.hs 27;" C Display_debug src/Dodge/Data/Config.hs 79;" C Distortion src/Dodge/Data/Distortion.hs 11;" t DivineRetribution src/Dodge/Data/Scenario.hs 35;" C -DoActionIf src/Dodge/Data/ActionPlan.hs 88;" C -DoActionIfElse src/Dodge/Data/ActionPlan.hs 92;" C -DoActionThen src/Dodge/Data/ActionPlan.hs 103;" C -DoActionWhile src/Dodge/Data/ActionPlan.hs 79;" C -DoActionWhileInterrupt src/Dodge/Data/ActionPlan.hs 97;" C -DoActionWhilePartial src/Dodge/Data/ActionPlan.hs 83;" C -DoImpulses src/Dodge/Data/ActionPlan.hs 74;" C -DoImpulsesAlongside src/Dodge/Data/ActionPlan.hs 122;" C +DoActionIf src/Dodge/Data/ActionPlan.hs 89;" C +DoActionIfElse src/Dodge/Data/ActionPlan.hs 93;" C +DoActionThen src/Dodge/Data/ActionPlan.hs 104;" C +DoActionWhile src/Dodge/Data/ActionPlan.hs 80;" C +DoActionWhileInterrupt src/Dodge/Data/ActionPlan.hs 98;" C +DoActionWhilePartial src/Dodge/Data/ActionPlan.hs 84;" C +DoImpulses src/Dodge/Data/ActionPlan.hs 75;" C +DoImpulsesAlongside src/Dodge/Data/ActionPlan.hs 123;" C DoNotMoveEquipment src/Dodge/Data/RightButtonOptions.hs 18;" C -DoReplicate src/Dodge/Data/ActionPlan.hs 107;" C -DoReplicatePartial src/Dodge/Data/ActionPlan.hs 111;" C +DoReplicate src/Dodge/Data/ActionPlan.hs 108;" C +DoReplicatePartial src/Dodge/Data/ActionPlan.hs 112;" C DockingBaySS src/Dodge/Data/Scenario.hs 92;" C Door src/Dodge/Data/Door.hs 29;" t DoorDoNothing src/Dodge/Data/Door.hs 45;" C @@ -354,7 +354,7 @@ DoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 9;" t DrawForceField src/Dodge/Data/Wall.hs 37;" C DrawnWall src/Dodge/Data/Wall.hs 33;" C DroneAmmo src/Dodge/Data/AmmoType.hs 13;" C -DropItem src/Dodge/Data/ActionPlan.hs 38;" C +DropItem src/Dodge/Data/ActionPlan.hs 39;" C DropShadowSI src/Dodge/Data/SelectionList.hs 59;" C DudPayload src/Dodge/Data/Payload.hs 11;" C Dungeon src/Dodge/Data/Scenario.hs 66;" C @@ -391,7 +391,7 @@ EquipmentAllocation src/Dodge/Data/RightButtonOptions.hs 17;" t EquipmentPlatformSF src/Dodge/Data/ComposedItem.hs 17;" C Escape src/Dodge/Data/Scenario.hs 10;" C Essential src/Shape/Data.hs 29;" C -EvadeAim src/Dodge/Data/ActionPlan.hs 71;" C +EvadeAim src/Dodge/Data/ActionPlan.hs 72;" C ExamineInventory src/Dodge/Data/HUD.hs 16;" C Explore src/Dodge/Data/Scenario.hs 4;" C Explosion src/Dodge/Data/SoundOrigin.hs 38;" C @@ -430,7 +430,7 @@ FlameSound src/Dodge/Data/SoundOrigin.hs 28;" C FlameletBall src/Dodge/Data/EnergyBall/Type.hs 12;" C Flamer src/Dodge/Data/SoundOrigin.hs 26;" C Flaming src/Dodge/Data/Damage.hs 21;" C -Flank src/Dodge/Data/ActionPlan.hs 130;" C +Flank src/Dodge/Data/ActionPlan.hs 131;" C FlareType src/Dodge/Data/Muzzle.hs 28;" t FlashBall src/Dodge/Data/EnergyBall/Type.hs 15;" C Flashing src/Dodge/Data/Damage.hs 23;" C @@ -438,7 +438,7 @@ FlatFaces src/Shape/Data.hs 12;" C FlatShieldParams src/Dodge/Data/Item/Params.hs 14;" C FlechetteTrajectory src/Dodge/Data/Bullet.hs 43;" C FlechetteTrajectoryType src/Dodge/Data/Bullet.hs 50;" C -Flee src/Dodge/Data/ActionPlan.hs 145;" C +Flee src/Dodge/Data/ActionPlan.hs 146;" C Flesh src/Dodge/Data/Material.hs 17;" C FloatAbsCheckGreaterLess src/Dodge/Data/FloatFunction.hs 14;" C FloatBO src/Shader/Data.hs 85;" t @@ -452,7 +452,7 @@ Floating src/Dodge/Data/Creature/Stance.hs 23;" C Floor src/Data/Tile.hs 11;" t FloorItem src/Dodge/Data/FloorItem.hs 11;" t Flying src/Dodge/Data/Creature/Stance.hs 24;" C -FollowImpulses src/Dodge/Data/ActionPlan.hs 135;" C +FollowImpulses src/Dodge/Data/ActionPlan.hs 136;" C FootForward src/Dodge/Data/Creature/Stance.hs 30;" t FootstepSound src/Dodge/Data/SoundOrigin.hs 30;" C ForceField src/Dodge/Data/Material.hs 19;" C @@ -489,7 +489,7 @@ GenParams src/Dodge/Data/GenParams.hs 13;" t GenWorld src/Dodge/Data/GenWorld.hs 24;" t GenericFaction src/Dodge/Data/Creature/State.hs 13;" C GeoObjShads src/Dodge/Data/Config.hs 117;" C -GetTo src/Dodge/Data/ActionPlan.hs 143;" C +GetTo src/Dodge/Data/ActionPlan.hs 144;" C GetToPoint src/Dodge/Data/Scenario.hs 12;" C Gib src/Dodge/Data/Prop.hs 22;" C Gibbed src/Dodge/Data/Creature.hs 68;" C @@ -497,7 +497,7 @@ GibsDeath src/Dodge/Data/Creature.hs 70;" C Glass src/Dodge/Data/Material.hs 14;" C GlassBreakSound src/Dodge/Data/SoundOrigin.hs 34;" C GlassDebris src/Dodge/Data/Prop.hs 25;" C -Goal src/Dodge/Data/ActionPlan.hs 151;" t +Goal src/Dodge/Data/ActionPlan.hs 152;" t GoesOnBack src/Dodge/Data/Equipment/Misc.hs 12;" C GoesOnChest src/Dodge/Data/Equipment/Misc.hs 11;" C GoesOnHead src/Dodge/Data/Equipment/Misc.hs 10;" C @@ -564,9 +564,9 @@ ImmediateEffect src/Loop/Data.hs 8;" C Importance src/Shape/Data.hs 29;" t Important src/Shape/Data.hs 30;" C Impulse src/Dodge/Data/ActionPlan.hs 25;" t -ImpulseNothing src/Dodge/Data/ActionPlan.hs 46;" C -ImpulseUseTarget src/Dodge/Data/ActionPlan.hs 45;" C -ImpulsesList src/Dodge/Data/ActionPlan.hs 73;" C +ImpulseNothing src/Dodge/Data/ActionPlan.hs 47;" C +ImpulseUseTarget src/Dodge/Data/ActionPlan.hs 46;" C +ImpulsesList src/Dodge/Data/ActionPlan.hs 74;" C InDivineZone src/Dodge/Data/Scenario.hs 22;" C InDream src/Dodge/Data/Scenario.hs 19;" C InInv src/Dodge/Data/Item/Location.hs 29;" C @@ -597,7 +597,7 @@ InventoryHeadFilterSI src/Dodge/Data/SelectionList.hs 61;" C InventoryHeadSI src/Dodge/Data/SelectionList.hs 60;" C InventoryPathing src/Dodge/Data/Item/Combine.hs 38;" t InventorySound src/Dodge/Data/SoundOrigin.hs 11;" C -Investigate src/Dodge/Data/ActionPlan.hs 137;" C +Investigate src/Dodge/Data/ActionPlan.hs 138;" C Invisible src/Dodge/Data/CamouflageStatus.hs 7;" C InwardShockwave src/Dodge/Data/Shockwave.hs 12;" C IsolationUnitSS src/Dodge/Data/Scenario.hs 101;" C @@ -626,7 +626,7 @@ JoystickSF src/Dodge/Data/ComposedItem.hs 26;" C Just' src/MaybeHelp.hs 11;" C JustStartedPlaying src/Sound/Data.hs 22;" C KEYCARD src/Dodge/Data/Item/Combine.hs 177;" C -Kill src/Dodge/Data/ActionPlan.hs 153;" C +Kill src/Dodge/Data/ActionPlan.hs 154;" C LASER src/Dodge/Data/Item/Combine.hs 35;" C LDP src/Dodge/Data/SelectionList.hs 14;" C LDParams src/Dodge/Data/SelectionList.hs 14;" t @@ -655,7 +655,7 @@ LaundrySS src/Dodge/Data/Scenario.hs 115;" C LayVars src/Dodge/Data/MetaTree.hs 30;" C Layer src/Picture/Data.hs 20;" t LayoutVars src/Dodge/Data/MetaTree.hs 30;" t -LeadTarget src/Dodge/Data/ActionPlan.hs 116;" C +LeadTarget src/Dodge/Data/ActionPlan.hs 117;" C LeftForward src/Dodge/Data/Creature/Stance.hs 30;" C LeftwardDT src/Dodge/Data/DoubleTree.hs 27;" C Lethargic src/Dodge/Data/Creature/Perception.hs 53;" C @@ -669,7 +669,7 @@ LimitedBreathableAtmosphere src/Dodge/Data/Scenario.hs 38;" C LimitedFood src/Dodge/Data/Scenario.hs 39;" C LimitedWater src/Dodge/Data/Scenario.hs 40;" C LinearShockwave src/Dodge/Data/LinearShockwave.hs 11;" t -LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 152;" C +LiveLongAndProsper src/Dodge/Data/ActionPlan.hs 153;" C LivingComplex src/Dodge/Data/Scenario.hs 68;" C LoadReady src/Dodge/Data/Universe.hs 101;" C LoadWaiting src/Dodge/Data/Universe.hs 100;" C @@ -679,8 +679,8 @@ LoadingScreen src/Dodge/Data/Universe.hs 93;" C LocDT src/Dodge/Data/DoubleTree.hs 42;" C LocationDT src/Dodge/Data/DoubleTree.hs 42;" t LoneWolf src/Dodge/Data/Creature/State.hs 24;" C -LookAround src/Dodge/Data/ActionPlan.hs 139;" C -Lure src/Dodge/Data/ActionPlan.hs 132;" C +LookAround src/Dodge/Data/ActionPlan.hs 140;" C +Lure src/Dodge/Data/ActionPlan.hs 133;" C MACHINEPISTOL src/Dodge/Data/Item/Combine.hs 146;" C MAGENTA src/Color/Data.hs 17;" C MAGNET src/Dodge/Data/Item/Combine.hs 68;" C @@ -718,7 +718,7 @@ MagnetTrajectoryType src/Dodge/Data/Bullet.hs 51;" C MagnetUpdate src/Dodge/Data/Magnet.hs 11;" t MagnetUpdateTimer src/Dodge/Data/Magnet.hs 11;" C MakeAutoSF src/Dodge/Data/ComposedItem.hs 35;" C -MakeSound src/Dodge/Data/ActionPlan.hs 42;" C +MakeSound src/Dodge/Data/ActionPlan.hs 43;" C MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 33;" C MakeTempLight src/Dodge/Data/WorldEffect.hs 36;" C MakeTempLightFade src/Dodge/Data/WorldEffect.hs 37;" C @@ -744,8 +744,7 @@ MdWdId src/Dodge/Data/WorldEffect.hs 50;" C MdWdWd src/Dodge/Data/WorldEffect.hs 49;" t MedBaySS src/Dodge/Data/Scenario.hs 100;" C Medium src/Shape/Data.hs 25;" C -Melee src/Dodge/Data/ActionPlan.hs 40;" C -MeleeStrike src/Dodge/Data/ActionPlan.hs 146;" C +Melee src/Dodge/Data/ActionPlan.hs 41;" C Memory src/Dodge/Data/Creature.hs 79;" t MenuOption src/Dodge/Data/Universe.hs 109;" t MenuOptionDisplay src/Dodge/Data/Universe.hs 104;" t @@ -772,8 +771,8 @@ MouseMenu src/Dodge/Data/Input.hs 17;" C Mouse_position src/Dodge/Data/Config.hs 86;" C Move src/Dodge/Data/ActionPlan.hs 26;" C MoveEquipment src/Dodge/Data/RightButtonOptions.hs 20;" C -MoveForward src/Dodge/Data/ActionPlan.hs 27;" C -MoveNoStride src/Dodge/Data/ActionPlan.hs 28;" C +MoveForward src/Dodge/Data/ActionPlan.hs 28;" C +MoveNoStride src/Dodge/Data/ActionPlan.hs 29;" C Muzzle src/Dodge/Data/Muzzle.hs 9;" t MuzzleBlink src/Dodge/Data/Muzzle.hs 55;" C MuzzleDetector src/Dodge/Data/Muzzle.hs 54;" C @@ -794,8 +793,8 @@ MuzzleTesla src/Dodge/Data/Muzzle.hs 44;" C MuzzleTractor src/Dodge/Data/Muzzle.hs 45;" C MuzzleUnsafeBlink src/Dodge/Data/Muzzle.hs 56;" C Muzzle_positions src/Dodge/Data/Config.hs 110;" C -MvForward src/Dodge/Data/ActionPlan.hs 34;" C -MvTurnToward src/Dodge/Data/ActionPlan.hs 33;" C +MvForward src/Dodge/Data/ActionPlan.hs 35;" C +MvTurnToward src/Dodge/Data/ActionPlan.hs 34;" C MvWalking src/Dodge/Data/Creature/Misc.hs 26;" C NAILBOX src/Dodge/Data/Item/Combine.hs 78;" C NInt src/NewInt.hs 16;" C @@ -816,7 +815,7 @@ NewInt src/NewInt.hs 16;" t NewIntMap src/NewInt.hs 22;" t NewIntSet src/NewInt.hs 19;" t NewSideEffect src/Dodge/Data/Universe.hs 63;" C -NoAction src/Dodge/Data/ActionPlan.hs 117;" C +NoAction src/Dodge/Data/ActionPlan.hs 118;" C NoAmmoRequired src/Dodge/Data/Muzzle.hs 25;" C NoBeamCombine src/Dodge/Data/Beam.hs 41;" C NoConcurrentEffect src/Loop/Data.hs 7;" C @@ -974,9 +973,9 @@ PathBetweenDebugV2s src/Dodge/Data/Universe.hs 54;" C PathBetweenLeftRightClick src/Dodge/Data/Universe.hs 53;" C PathFromEdge src/Dodge/Data/Room.hs 81;" t PathShowType src/Dodge/Data/Universe.hs 52;" t -PathTo src/Dodge/Data/ActionPlan.hs 70;" C +PathTo src/Dodge/Data/ActionPlan.hs 71;" C Pathing src/Dodge/Data/Config.hs 90;" C -Patrol src/Dodge/Data/ActionPlan.hs 133;" C +Patrol src/Dodge/Data/ActionPlan.hs 134;" C PauseTimeMessage src/Dodge/Data/World.hs 88;" C PausedTimeFlow src/Dodge/Data/World.hs 84;" C Payload src/Dodge/Data/Payload.hs 9;" t @@ -1082,12 +1081,12 @@ RProps src/Dodge/Layout/Generate.hs 14;" C RadarBlip src/Dodge/Data/RadarBlip.hs 12;" t RadarSweep src/Dodge/Data/RadarSweep.hs 17;" t RadialDistortion src/Dodge/Data/Distortion.hs 11;" C -RandImpulse src/Dodge/Data/ActionPlan.hs 49;" t -RandImpulseCircMove src/Dodge/Data/ActionPlan.hs 51;" C -RandImpulseList src/Dodge/Data/ActionPlan.hs 50;" C +RandImpulse src/Dodge/Data/ActionPlan.hs 50;" t +RandImpulseCircMove src/Dodge/Data/ActionPlan.hs 52;" C +RandImpulseList src/Dodge/Data/ActionPlan.hs 51;" C RandPS src/Dodge/Data/GenWorld.hs 55;" C -RandomImpulse src/Dodge/Data/ActionPlan.hs 31;" C -RandomTurn src/Dodge/Data/ActionPlan.hs 30;" C +RandomImpulse src/Dodge/Data/ActionPlan.hs 32;" C +RandomTurn src/Dodge/Data/ActionPlan.hs 31;" C ReactorSS src/Dodge/Data/Scenario.hs 111;" C RecCommands src/Dodge/Terminal.hs 164;" t RecRoomSS src/Dodge/Data/Scenario.hs 103;" C @@ -1159,7 +1158,7 @@ SaveSlotNum src/Dodge/Data/SaveSlot.hs 10;" C Scope src/Dodge/Data/Item/Scope.hs 11;" t ScreenLayer src/Dodge/Data/Universe.hs 81;" t ScreenPos src/Dodge/Data/ScreenPos.hs 12;" t -Search src/Dodge/Data/ActionPlan.hs 147;" C +Search src/Dodge/Data/ActionPlan.hs 148;" C SecretCabal src/Dodge/Data/Scenario.hs 44;" C SectionCursor src/Dodge/Data/SelectionList.hs 25;" t SeeAbove src/Dodge/Data/Wall.hs 32;" C @@ -1178,7 +1177,7 @@ SelfTree src/Dodge/Data/MetaTree.hs 21;" t SemiAutoTrigger src/Dodge/Data/TriggerType.hs 9;" C SensorType src/Dodge/Data/Machine/Sensor.hs 12;" t SensorWithRequirement src/Dodge/Data/Machine/Sensor.hs 30;" C -SentinelAt src/Dodge/Data/ActionPlan.hs 154;" C +SentinelAt src/Dodge/Data/ActionPlan.hs 155;" C SetLSCol src/Dodge/Data/WorldEffect.hs 28;" C SetTrigger src/Dodge/Data/WorldEffect.hs 27;" C SetTriggerAndSetLSCol src/Dodge/Data/WorldEffect.hs 29;" C @@ -1196,7 +1195,7 @@ ShellSound src/Dodge/Data/SoundOrigin.hs 27;" C ShieldGroup src/Dodge/Data/Creature/State.hs 30;" C Shockwave src/Dodge/Data/Shockwave.hs 15;" t ShockwaveDirection src/Dodge/Data/Shockwave.hs 12;" t -ShootAt src/Dodge/Data/ActionPlan.hs 134;" C +ShootAt src/Dodge/Data/ActionPlan.hs 135;" C ShortShow src/ShortShow.hs 6;" c ShortString src/ShortShow.hs 16;" t Show_bound_box src/Dodge/Data/Config.hs 94;" C @@ -1261,12 +1260,12 @@ StabOrthReduce src/Dodge/Projectile/Create.hs 17;" C StabSpinIncrease src/Dodge/Projectile/Create.hs 18;" C Stance src/Dodge/Data/Creature/Stance.hs 15;" t StandaloneWall src/Dodge/Data/Wall/Structure.hs 12;" C -StartSentinelPost src/Dodge/Data/ActionPlan.hs 118;" C +StartSentinelPost src/Dodge/Data/ActionPlan.hs 119;" C StayInArea src/Dodge/Data/Scenario.hs 13;" C Stone src/Dodge/Data/Material.hs 13;" C StorageSS src/Dodge/Data/Scenario.hs 94;" C -Strategy src/Dodge/Data/ActionPlan.hs 129;" t -StrategyActions src/Dodge/Data/ActionPlan.hs 142;" C +Strategy src/Dodge/Data/ActionPlan.hs 130;" t +StrategyActions src/Dodge/Data/ActionPlan.hs 143;" C SubInventory src/Dodge/Data/HUD.hs 14;" t Superfluous src/Shape/Data.hs 33;" C Surface src/Shape/Data.hs 37;" t @@ -1372,10 +1371,10 @@ Trie src/SimpleTrie.hs 10;" t TriggerSF src/Dodge/Data/ComposedItem.hs 22;" C TriggerType src/Dodge/Data/TriggerType.hs 7;" t TurbineBaySS src/Dodge/Data/Scenario.hs 110;" C -Turn src/Dodge/Data/ActionPlan.hs 29;" C -TurnTo src/Dodge/Data/ActionPlan.hs 35;" C -TurnToPoint src/Dodge/Data/ActionPlan.hs 72;" C -TurnToward src/Dodge/Data/ActionPlan.hs 32;" C +Turn src/Dodge/Data/ActionPlan.hs 30;" C +TurnTo src/Dodge/Data/ActionPlan.hs 36;" C +TurnToPoint src/Dodge/Data/ActionPlan.hs 73;" C +TurnToward src/Dodge/Data/ActionPlan.hs 33;" C TurnTowardCr src/Dodge/Data/CreatureEffect.hs 9;" C Turret src/Dodge/Data/Machine.hs 64;" t TurretInt src/Dodge/Data/Item/Location.hs 19;" t @@ -1408,12 +1407,12 @@ UseFromRoot src/Dodge/Data/UseCondition.hs 12;" C UseHeld src/Dodge/Data/Item/Use.hs 29;" C UseInt src/Dodge/Data/Item/Use.hs 31;" C UseInvItem src/Dodge/Data/WorldEffect.hs 38;" C -UseItem src/Dodge/Data/ActionPlan.hs 36;" C +UseItem src/Dodge/Data/ActionPlan.hs 37;" C UseItemWidth src/Dodge/Data/SelectionList.hs 43;" C UseMapper src/Dodge/Data/Item/Use.hs 37;" C UseNothing src/Dodge/Data/Item/Use.hs 32;" C UseScope src/Dodge/Data/Item/Use.hs 34;" C -UseSelf src/Dodge/Data/ActionPlan.hs 119;" C +UseSelf src/Dodge/Data/ActionPlan.hs 120;" C UseToggle src/Dodge/Data/Item/Use.hs 36;" C UseUpTo src/Dodge/Data/Muzzle.hs 64;" C UseValue src/Dodge/Data/Item/Use.hs 33;" C @@ -1451,7 +1450,8 @@ WHITE src/Color/Data.hs 24;" C WIRE src/Dodge/Data/Item/Combine.hs 86;" C WRISTARMOUR src/Dodge/Data/Item/Combine.hs 125;" C WRIST_ECG src/Dodge/Data/Item/Combine.hs 137;" C -WaitThen src/Dodge/Data/ActionPlan.hs 75;" C +WaitThen src/Dodge/Data/ActionPlan.hs 76;" C +Walk src/Dodge/Data/ActionPlan.hs 27;" C Walking src/Dodge/Data/Creature/Stance.hs 22;" C Wall src/Dodge/Data/Wall.hs 17;" t WallArcNode src/Dodge/Data/LWorld.hs 160;" C @@ -1467,15 +1467,15 @@ WallSound src/Dodge/Data/SoundOrigin.hs 25;" C WallStructure src/Dodge/Data/Wall/Structure.hs 11;" t WallWire src/Dodge/Data/Room.hs 59;" C Walls_info src/Dodge/Data/Config.hs 89;" C -Wander src/Dodge/Data/ActionPlan.hs 140;" C +Wander src/Dodge/Data/ActionPlan.hs 141;" C War src/Dodge/Data/Scenario.hs 28;" C WarmTime src/Dodge/Data/Item/Params.hs 19;" C WarmUpCoolDown src/Dodge/Data/TriggerType.hs 14;" C WarmUpNoDelay src/Dodge/Data/TriggerType.hs 19;" C -WarningCry src/Dodge/Data/ActionPlan.hs 138;" C +WarningCry src/Dodge/Data/ActionPlan.hs 139;" C WasMouseGameRotating src/Dodge/Data/Input.hs 53;" C WasNotMouseGameRotating src/Dodge/Data/Input.hs 54;" C -WatchAndWait src/Dodge/Data/ActionPlan.hs 136;" C +WatchAndWait src/Dodge/Data/ActionPlan.hs 137;" C WdBl src/Dodge/Data/WorldEffect.hs 56;" t WdBlBtOn src/Dodge/Data/WorldEffect.hs 62;" C WdBlConst src/Dodge/Data/WorldEffect.hs 59;" C @@ -1513,8 +1513,8 @@ YELLOW src/Color/Data.hs 15;" C ZOOMSCOPE src/Dodge/Data/Item/Combine.hs 92;" C ZombieFaction src/Dodge/Data/Creature/State.hs 14;" C __Just' src/MaybeHelp.hs 11;" f -_acAction src/Dodge/Data/ActionPlan.hs 73;" f -_acTimer src/Dodge/Data/ActionPlan.hs 71;" f +_acAction src/Dodge/Data/ActionPlan.hs 74;" f +_acTimer src/Dodge/Data/ActionPlan.hs 72;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 19;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 25;" f _allocNewPos src/Dodge/Data/RightButtonOptions.hs 30;" f @@ -1525,7 +1525,7 @@ _allocRemoveID src/Dodge/Data/RightButtonOptions.hs 31;" f _allocSwapID src/Dodge/Data/RightButtonOptions.hs 27;" f _alphaDivideShader src/Data/Preload/Render.hs 20;" f _alteRifleSwitch src/Dodge/Data/Item/Params.hs 18;" f -_ambushTarget src/Dodge/Data/ActionPlan.hs 131;" f +_ambushTarget src/Dodge/Data/ActionPlan.hs 132;" f _ampBullet src/Dodge/Data/Item/Use.hs 50;" f _ampCreateGas src/Dodge/Data/Item/Use.hs 52;" f _ampPayload src/Dodge/Data/Item/Use.hs 51;" f @@ -1537,7 +1537,7 @@ _apInt src/Dodge/Data/Item/Use.hs 45;" f _apProjectiles src/Dodge/Data/Item/Use.hs 44;" f _apStrategy src/Dodge/Data/ActionPlan.hs 19;" f _aps src/Dodge/Data/Muzzle.hs 22;" f -_arbitraryAction src/Dodge/Data/ActionPlan.hs 120;" f +_arbitraryAction src/Dodge/Data/ActionPlan.hs 121;" f _arcNode src/Dodge/Data/LWorld.hs 115;" f _asDir src/Dodge/Data/ArcStep.hs 14;" f _asObject src/Dodge/Data/ArcStep.hs 15;" f @@ -1743,26 +1743,26 @@ _dmVector src/Dodge/Data/Damage.hs 16;" f _dmVector src/Dodge/Data/Damage.hs 19;" f _dmVector src/Dodge/Data/Damage.hs 22;" f _dmVector src/Dodge/Data/Damage.hs 28;" f -_doActionIfAction src/Dodge/Data/ActionPlan.hs 90;" f -_doActionIfCondition src/Dodge/Data/ActionPlan.hs 89;" f -_doActionIfElseCondition src/Dodge/Data/ActionPlan.hs 94;" f -_doActionIfElseElseAction src/Dodge/Data/ActionPlan.hs 95;" f -_doActionIfElseIfAction src/Dodge/Data/ActionPlan.hs 93;" f -_doActionThenFirst src/Dodge/Data/ActionPlan.hs 104;" f -_doActionThenSecond src/Dodge/Data/ActionPlan.hs 105;" f -_doActionWhileAction src/Dodge/Data/ActionPlan.hs 81;" f -_doActionWhileAction src/Dodge/Data/ActionPlan.hs 86;" f -_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 80;" f -_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 85;" f -_doActionWhilePartial src/Dodge/Data/ActionPlan.hs 84;" f -_doActionWhileThenCondition src/Dodge/Data/ActionPlan.hs 99;" f -_doActionWhileThenDo src/Dodge/Data/ActionPlan.hs 98;" f -_doActionWhileThenThen src/Dodge/Data/ActionPlan.hs 100;" f -_doImpulsesList src/Dodge/Data/ActionPlan.hs 74;" f -_doReplicateAction src/Dodge/Data/ActionPlan.hs 109;" f -_doReplicateAction src/Dodge/Data/ActionPlan.hs 114;" f -_doReplicateTimes src/Dodge/Data/ActionPlan.hs 108;" f -_doReplicateTimes src/Dodge/Data/ActionPlan.hs 113;" f +_doActionIfAction src/Dodge/Data/ActionPlan.hs 91;" f +_doActionIfCondition src/Dodge/Data/ActionPlan.hs 90;" f +_doActionIfElseCondition src/Dodge/Data/ActionPlan.hs 95;" f +_doActionIfElseElseAction src/Dodge/Data/ActionPlan.hs 96;" f +_doActionIfElseIfAction src/Dodge/Data/ActionPlan.hs 94;" f +_doActionThenFirst src/Dodge/Data/ActionPlan.hs 105;" f +_doActionThenSecond src/Dodge/Data/ActionPlan.hs 106;" f +_doActionWhileAction src/Dodge/Data/ActionPlan.hs 82;" f +_doActionWhileAction src/Dodge/Data/ActionPlan.hs 87;" f +_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 81;" f +_doActionWhileCondition src/Dodge/Data/ActionPlan.hs 86;" f +_doActionWhilePartial src/Dodge/Data/ActionPlan.hs 85;" f +_doActionWhileThenCondition src/Dodge/Data/ActionPlan.hs 100;" f +_doActionWhileThenDo src/Dodge/Data/ActionPlan.hs 99;" f +_doActionWhileThenThen src/Dodge/Data/ActionPlan.hs 101;" f +_doImpulsesList src/Dodge/Data/ActionPlan.hs 75;" f +_doReplicateAction src/Dodge/Data/ActionPlan.hs 110;" f +_doReplicateAction src/Dodge/Data/ActionPlan.hs 115;" f +_doReplicateTimes src/Dodge/Data/ActionPlan.hs 109;" f +_doReplicateTimes src/Dodge/Data/ActionPlan.hs 114;" f _dodgeCooldown src/Dodge/Data/Creature/Misc.hs 64;" f _doors src/Dodge/Data/LWorld.hs 124;" f _drFootPrint src/Dodge/Data/Door.hs 37;" f @@ -1794,8 +1794,8 @@ _ebTimer src/Dodge/Data/EnergyBall.hs 18;" f _ebType src/Dodge/Data/EnergyBall.hs 19;" f _ebVel src/Dodge/Data/EnergyBall.hs 16;" f _emoMenuOption src/Dodge/Data/Universe.hs 77;" f -_enemyDir src/Dodge/Data/ActionPlan.hs 71;" f -_enemyPos src/Dodge/Data/ActionPlan.hs 71;" f +_enemyDir src/Dodge/Data/ActionPlan.hs 72;" f +_enemyPos src/Dodge/Data/ActionPlan.hs 72;" f _energyBalls src/Dodge/Data/LWorld.hs 108;" f _fbSize src/Dodge/Data/EnergyBall/Type.hs 12;" f _fboBase src/Data/Preload/Render.hs 35;" f @@ -1813,7 +1813,7 @@ _flPos src/Dodge/Data/Flame.hs 13;" f _flTimer src/Dodge/Data/Flame.hs 12;" f _flVel src/Dodge/Data/Flame.hs 14;" f _flames src/Dodge/Data/LWorld.hs 109;" f -_flankTarget src/Dodge/Data/ActionPlan.hs 130;" f +_flankTarget src/Dodge/Data/ActionPlan.hs 131;" f _flares src/Dodge/Data/LWorld.hs 112;" f _flatShieldWlMIX src/Dodge/Data/Item/Params.hs 14;" f _flboName src/Shader/Data.hs 86;" f @@ -1905,8 +1905,8 @@ _imRootSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 24;" f _imSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 23;" f _immediateEffect src/Loop/Data.hs 9;" f _immediateUpdate src/Loop/Data.hs 12;" f -_impulseUseTarget src/Dodge/Data/ActionPlan.hs 45;" f -_impulsesListList src/Dodge/Data/ActionPlan.hs 73;" f +_impulseUseTarget src/Dodge/Data/ActionPlan.hs 46;" f +_impulsesListList src/Dodge/Data/ActionPlan.hs 74;" f _incEdgeZoning src/Dodge/Data/World.hs 57;" f _incEdges src/Dodge/Data/CWorld.hs 31;" f _incGraph src/Dodge/Data/CWorld.hs 29;" f @@ -1934,7 +1934,7 @@ _items src/Dodge/Data/LWorld.hs 97;" f _itsInt src/Dodge/Data/Item.hs 40;" f _itsMax src/Dodge/Data/Item.hs 41;" f _itsRangeInt src/Dodge/Data/Item.hs 41;" f -_killTarget src/Dodge/Data/ActionPlan.hs 153;" f +_killTarget src/Dodge/Data/ActionPlan.hs 154;" f _lAimPos src/Dodge/Data/LWorld.hs 147;" f _lClock src/Dodge/Data/LWorld.hs 142;" f _lInvLock src/Dodge/Data/LWorld.hs 148;" f @@ -1952,7 +1952,7 @@ _ldpPos src/Dodge/Data/SelectionList.hs 15;" f _ldpScale src/Dodge/Data/SelectionList.hs 16;" f _ldpSize src/Dodge/Data/SelectionList.hs 18;" f _ldpVerticalGap src/Dodge/Data/SelectionList.hs 17;" f -_leadTargetBy src/Dodge/Data/ActionPlan.hs 116;" f +_leadTargetBy src/Dodge/Data/ActionPlan.hs 117;" f _lightSources src/Dodge/Data/LWorld.hs 137;" f _lightUBO src/Data/Preload/Render.hs 43;" f _lightingCapShader src/Data/Preload/Render.hs 16;" f @@ -1983,7 +1983,7 @@ _lyGen src/Dodge/Data/MetaTree.hs 31;" f _machines src/Dodge/Data/LWorld.hs 125;" f _magBelowID src/Dodge/Data/Muzzle.hs 22;" f _magnets src/Dodge/Data/LWorld.hs 128;" f -_mainAction src/Dodge/Data/ActionPlan.hs 124;" f +_mainAction src/Dodge/Data/ActionPlan.hs 125;" f _manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" f _mapInvItmID src/Dodge/Data/HUD.hs 20;" f _mapInvOffset src/Dodge/Data/HUD.hs 18;" f @@ -2035,7 +2035,7 @@ _mdUpdate src/Dodge/Data/Modification.hs 25;" f _meleeCooldown src/Dodge/Data/Creature/Misc.hs 57;" f _meleeCooldown src/Dodge/Data/Creature/Misc.hs 61;" f _meleeCooldown src/Dodge/Data/Creature/Misc.hs 66;" f -_meleeTarget src/Dodge/Data/ActionPlan.hs 141;" f +_meleeTarget src/Dodge/Data/ActionPlan.hs 142;" f _mgField src/Dodge/Data/Magnet.hs 23;" f _mgPos src/Dodge/Data/Magnet.hs 22;" f _moEff src/Dodge/Data/Universe.hs 111;" f @@ -2089,10 +2089,10 @@ _opTexture src/Dodge/Data/Wall.hs 34;" f _opticDefaultZoom src/Dodge/Data/Item/Scope.hs 18;" f _opticPos src/Dodge/Data/Item/Scope.hs 14;" f _opticZoom src/Dodge/Data/Item/Scope.hs 17;" f -_partialAction src/Dodge/Data/ActionPlan.hs 112;" f +_partialAction src/Dodge/Data/ActionPlan.hs 113;" f _pastWorlds src/Dodge/Data/World.hs 38;" f -_pathFailAction src/Dodge/Data/ActionPlan.hs 70;" f -_pathToPoint src/Dodge/Data/ActionPlan.hs 70;" f +_pathFailAction src/Dodge/Data/ActionPlan.hs 71;" f +_pathToPoint src/Dodge/Data/ActionPlan.hs 71;" f _pauseTimeMesage src/Dodge/Data/World.hs 89;" f _pauseTimeMesageColor src/Dodge/Data/World.hs 90;" f _pbPos src/Dodge/Data/PlasmaBall.hs 16;" f @@ -2283,8 +2283,8 @@ _selLocation src/Dodge/Data/LWorld.hs 140;" f _sensAmount src/Dodge/Data/Machine/Sensor.hs 20;" f _sensType src/Dodge/Data/Machine/Sensor.hs 21;" f _sensorCoding src/Dodge/Data/GenParams.hs 14;" f -_sentinelDir src/Dodge/Data/ActionPlan.hs 154;" f -_sentinelPos src/Dodge/Data/ActionPlan.hs 154;" f +_sentinelDir src/Dodge/Data/ActionPlan.hs 155;" f +_sentinelPos src/Dodge/Data/ActionPlan.hs 155;" f _sfColor src/Shape/Data.hs 40;" f _sfShadowImportance src/Shape/Data.hs 41;" f _sfSize src/Shape/Data.hs 42;" f @@ -2307,7 +2307,7 @@ _siPayload src/Dodge/Data/SelectionList.hs 52;" f _siPictures src/Dodge/Data/SelectionList.hs 46;" f _siWidth src/Dodge/Data/SelectionList.hs 48;" f _sideEffect src/Loop/Data.hs 13;" f -_sideImpulses src/Dodge/Data/ActionPlan.hs 123;" f +_sideImpulses src/Dodge/Data/ActionPlan.hs 124;" f _silhouetteEBO src/Data/Preload/Render.hs 30;" f _skOldPos src/Dodge/Data/Spark.hs 14;" f _skPos src/Dodge/Data/Spark.hs 13;" f @@ -2364,8 +2364,8 @@ _taArcSteps src/Dodge/Data/TeslaArc.hs 17;" f _taColor src/Dodge/Data/TeslaArc.hs 18;" f _taTimer src/Dodge/Data/TeslaArc.hs 16;" f _targetCr src/Dodge/Data/Creature.hs 73;" f -_targetID src/Dodge/Data/ActionPlan.hs 67;" f -_targetSeenAt src/Dodge/Data/ActionPlan.hs 68;" f +_targetID src/Dodge/Data/ActionPlan.hs 68;" f +_targetSeenAt src/Dodge/Data/ActionPlan.hs 69;" f _tbPos src/Dodge/Data/TractorBeam.hs 12;" f _tbStartPos src/Dodge/Data/TractorBeam.hs 13;" f _tbTime src/Dodge/Data/TractorBeam.hs 15;" f @@ -2422,7 +2422,7 @@ _tuDir src/Dodge/Data/Machine.hs 68;" f _tuFireTime src/Dodge/Data/Machine.hs 67;" f _tuTurnSpeed src/Dodge/Data/Machine.hs 66;" f _tuWeapon src/Dodge/Data/Machine.hs 65;" f -_turnToPoint src/Dodge/Data/ActionPlan.hs 72;" f +_turnToPoint src/Dodge/Data/ActionPlan.hs 73;" f _uInt src/Dodge/Data/Item/Use.hs 31;" f _uScope src/Dodge/Data/Item/Use.hs 34;" f _uValue src/Dodge/Data/Item/Use.hs 33;" f @@ -2445,7 +2445,7 @@ _upscaleCloudShader src/Data/Preload/Render.hs 25;" f _useExactly src/Dodge/Data/Muzzle.hs 63;" f _useMapperLines src/Dodge/Data/Item/Use.hs 38;" f _useMapperPoints src/Dodge/Data/Item/Use.hs 39;" f -_useSelf src/Dodge/Data/ActionPlan.hs 119;" f +_useSelf src/Dodge/Data/ActionPlan.hs 120;" f _useToggle src/Dodge/Data/Item/Use.hs 36;" f _useUpTo src/Dodge/Data/Muzzle.hs 64;" f _uvCanContinue src/Dodge/Data/Universe.hs 36;" f @@ -2495,8 +2495,8 @@ _vxShadNum src/Picture/Data.hs 16;" f _wCam src/Dodge/Data/World.hs 59;" f _wSoundFilter src/Dodge/Data/World.hs 43;" f _wTime src/Dodge/Data/Item/Params.hs 20;" f -_waitThenAction src/Dodge/Data/ActionPlan.hs 77;" f -_waitThenTimer src/Dodge/Data/ActionPlan.hs 76;" f +_waitThenAction src/Dodge/Data/ActionPlan.hs 78;" f +_waitThenTimer src/Dodge/Data/ActionPlan.hs 77;" f _wallDamages src/Dodge/Data/LWorld.hs 123;" f _wallVBO src/Data/Preload/Render.hs 50;" f _walls src/Dodge/Data/LWorld.hs 122;" f @@ -2665,7 +2665,7 @@ attachList src/Dodge/Tree/Compose.hs 81;" f attachOnward src/Dodge/Tree/Compose.hs 96;" f attachOnward' src/Dodge/Tree/Compose.hs 99;" f attachTree src/Dodge/Tree/Compose.hs 39;" f -attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 75;" f +attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 77;" f attribSize src/Shader/Compile.hs 139;" f autoAmr src/Dodge/Item/Held/Rod.hs 39;" f autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 747;" f @@ -2715,7 +2715,7 @@ battery src/Dodge/Item/Ammo.hs 60;" f batteryPack src/Dodge/Item/Equipment.hs 38;" f beep3QuickS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 667;" f beltMag src/Dodge/Item/Ammo.hs 38;" f -bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 269;" f +bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 292;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 115;" f bgunSound src/Dodge/HeldUse.hs 540;" f bingate src/Dodge/Item/Scope.hs 115;" f @@ -2790,7 +2790,7 @@ buttonFlip src/Dodge/Button/Event.hs 18;" f buzz1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 837;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 599;" f byNthLink src/Dodge/Room/Warning.hs 44;" f -cChasm src/Dodge/Room/Tutorial.hs 139;" f +cChasm src/Dodge/Room/Tutorial.hs 141;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f @@ -2823,13 +2823,13 @@ charToTuple src/Picture/Base.hs 312;" f charToTupleGrad src/Picture/Text.hs 18;" f chartreuse src/Color.hs 51;" f chaseCorpse src/Dodge/Corpse/Make.hs 32;" f -chaseCrit src/Dodge/Creature/ChaseCrit.hs 29;" f +chaseCrit src/Dodge/Creature/ChaseCrit.hs 30;" f chaseCritInternal src/Dodge/Humanoid.hs 12;" f -chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 148;" f +chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 159;" f chaseUpperBody src/Dodge/Creature/Picture.hs 96;" f chasmRotate src/Dodge/Creature/State/WalkCycle.hs 116;" f -chasmSimpleMaze src/Dodge/Room/Tutorial.hs 377;" f -chasmSpitTerminal src/Dodge/Room/Tutorial.hs 309;" f +chasmSimpleMaze src/Dodge/Room/Tutorial.hs 379;" f +chasmSpitTerminal src/Dodge/Room/Tutorial.hs 311;" f chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 101;" f chasmWallToSurface src/Dodge/Base/Collide.hs 121;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f @@ -2989,16 +2989,16 @@ crLeftHandWall src/Dodge/Creature/HandPos.hs 94;" f crMass src/Dodge/Creature/Mass.hs 5;" f crMaterial src/Dodge/Creature/Material.hs 8;" f crMaxHP src/Dodge/Creature/MaxHP.hs 6;" f -crMvAbsolute src/Dodge/Creature/Impulse/Movement.hs 38;" f -crMvAbsoluteNoStride src/Dodge/Creature/Impulse/Movement.hs 46;" f -crMvBy src/Dodge/Creature/Impulse/Movement.hs 22;" f -crMvByNoStride src/Dodge/Creature/Impulse/Movement.hs 30;" f -crMvForward src/Dodge/Creature/Impulse/Movement.hs 57;" f +crMvAbsolute src/Dodge/Creature/Impulse/Movement.hs 47;" f +crMvAbsoluteNoStride src/Dodge/Creature/Impulse/Movement.hs 63;" f +crMvBy src/Dodge/Creature/Impulse/Movement.hs 23;" f +crMvByNoStride src/Dodge/Creature/Impulse/Movement.hs 39;" f +crMvForward src/Dodge/Creature/Impulse/Movement.hs 74;" f crMvType src/Dodge/Creature/MoveType.hs 7;" f crNearPoint src/Dodge/Creature/Test.hs 129;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f crOnSeg src/Dodge/WorldEvent/ThingsHit.hs 206;" f -crPathing src/Dodge/Creature/Action.hs 124;" f +crPathing src/Dodge/Creature/Action.hs 126;" f crRad src/Dodge/Creature/Radius.hs 7;" f crRightHandWall src/Dodge/Creature/HandPos.hs 76;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 72;" f @@ -3011,15 +3011,17 @@ crUpdate src/Dodge/Creature/Update.hs 91;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 67;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 49;" f crVocalResetTime src/Dodge/Creature/Vocalization.hs 61;" f +crWalk src/Dodge/Creature/Impulse/Movement.hs 31;" f +crWalkAbsolute src/Dodge/Creature/Impulse/Movement.hs 55;" f crWarningSounds src/Dodge/Creature/Vocalization.hs 16;" f crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 62;" f crWlPbHitZ src/Dodge/WorldEvent/ThingsHit.hs 72;" f crZoneSize src/Dodge/Zoning/Creature.hs 43;" f -crabCrit src/Dodge/Creature/ChaseCrit.hs 36;" f +crabCrit src/Dodge/Creature/ChaseCrit.hs 37;" f crabCritInternal src/Dodge/Humanoid.hs 29;" f -crabCritMv src/Dodge/Creature/ReaderUpdate.hs 122;" f +crabCritMv src/Dodge/Creature/ReaderUpdate.hs 124;" f crabFeet src/Dodge/Creature/Picture.hs 148;" f -crabRoom src/Dodge/Room/Tutorial.hs 431;" f +crabRoom src/Dodge/Room/Tutorial.hs 433;" f crabUpperBody src/Dodge/Creature/Picture.hs 86;" f craftInfo src/Dodge/Item/Info.hs 168;" f craftItemSPic src/Dodge/Item/Draw/SPic.hs 40;" f @@ -3038,9 +3040,9 @@ createWall src/Dodge/Wall/Create.hs 8;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 12;" f creatureShootLaser src/Dodge/HeldUse.hs 859;" f creatureShootPulseLaser src/Dodge/HeldUse.hs 887;" f -creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 60;" f -creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 81;" f -creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 70;" f +creatureTurnTo src/Dodge/Creature/Impulse/Movement.hs 77;" f +creatureTurnToward src/Dodge/Creature/Impulse/Movement.hs 98;" f +creatureTurnTowardDir src/Dodge/Creature/Impulse/Movement.hs 87;" f critDeadEnd src/Dodge/Room/Room.hs 261;" f critInDeadEnd src/Dodge/Room/Room.hs 257;" f critsPillarRoom src/Dodge/Room/Room.hs 417;" f @@ -3304,7 +3306,7 @@ doRoomShift src/Dodge/Room/Link.hs 34;" f doScopeZoom src/Dodge/Update/Scroll.hs 89;" f doSectionSize src/Dodge/DisplayInventory.hs 215;" f doSideEffects appDodge/Main.hs 117;" f -doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 214;" f +doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 237;" f doTabComplete src/Dodge/Terminal.hs 241;" f doTestDrawing src/Dodge/Render.hs 40;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f @@ -3465,7 +3467,7 @@ drawZoneCol src/Dodge/Debug/Picture.hs 149;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f dropAll src/Dodge/Creature/Update.hs 171;" f dropInventoryPath src/Dodge/HeldUse.hs 1371;" f -dropItem src/Dodge/Creature/Action.hs 168;" f +dropItem src/Dodge/Creature/Action.hs 170;" f dropper src/Dodge/Item/Scope.hs 82;" f drumMag src/Dodge/Item/Ammo.hs 31;" f dsZoneSize src/Dodge/Zoning/Cloud.hs 51;" f @@ -3591,7 +3593,7 @@ flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 422;" f flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f flickerUpdate src/Dodge/Placement/Instance/LightSource/Flicker.hs 24;" f floatSize src/Shader/Parameters.hs 17;" f -flockACC src/Dodge/Creature/ReaderUpdate.hs 96;" f +flockACC src/Dodge/Creature/ReaderUpdate.hs 98;" f flockArmourChaseCrit src/Dodge/Creature/ArmourChase.hs 14;" f flockChaseTarget src/Dodge/Creature/Boid.hs 188;" f flockPointTarget src/Dodge/Creature/Boid.hs 204;" f @@ -3601,7 +3603,7 @@ floorTo src/Geometry/Zone.hs 12;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 785;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 831;" f -foldMTRS src/Dodge/Room/Tutorial.hs 93;" f +foldMTRS src/Dodge/Room/Tutorial.hs 95;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 111;" f followImpulse src/Dodge/Creature/Impulse.hs 24;" f @@ -3663,8 +3665,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 543;" f getCommand src/Dodge/Terminal.hs 61;" f getCommands src/Dodge/Terminal.hs 58;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 53;" f -getCrsFromRooms src/Dodge/Room/Tutorial.hs 588;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 575;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 590;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 577;" f getDebugMouseOver src/Dodge/Update.hs 460;" f getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 39;" f @@ -3681,7 +3683,7 @@ getPJStabiliser src/Dodge/HeldUse.hs 1271;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f getRoomFromID src/Dodge/Room/Modify.hs 31;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 571;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 573;" f getRootItemBounds src/Dodge/Render/HUD.hs 106;" f getRootItemInvID src/Dodge/Inventory/Location.hs 36;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3803,10 +3805,10 @@ horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f hotkeyToChar src/Dodge/Inventory/SelectionList.hs 185;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 62;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 182;" f -hoverCrit src/Dodge/Creature/ChaseCrit.hs 43;" f +hoverCrit src/Dodge/Creature/ChaseCrit.hs 45;" f hoverCritHoverSound src/Dodge/Creature/Update.hs 68;" f hoverCritInternal src/Dodge/Humanoid.hs 43;" f -hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 177;" f +hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 194;" f hoverDeathSounds src/Dodge/Creature/Vocalization.hs 54;" f iShape src/Dodge/Placement/Instance/LightSource.hs 58;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f @@ -3898,7 +3900,7 @@ invertIntMap src/IntMapHelp.hs 100;" f invertIntMap src/Multiset.hs 67;" f invertIntMapUnique src/IntMapHelp.hs 103;" f invertInventoryToMap src/Dodge/Combine.hs 57;" f -invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 23;" f +invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 24;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 27;" f isAmmoIntLink src/Dodge/HeldUse.hs 738;" f isAnimate src/Dodge/Creature/Test.hs 132;" f @@ -4000,7 +4002,7 @@ keyCardRunPastRand src/Dodge/LockAndKey.hs 37;" f keyPic src/Dodge/Item/Draw/SPic.hs 441;" f keyholeCorridor src/Dodge/Room/Corridor.hs 45;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 749;" f -lChasm src/Dodge/Room/Tutorial.hs 151;" f +lChasm src/Dodge/Room/Tutorial.hs 153;" f lConnect src/Dodge/Render/Connectors.hs 43;" f lConnectCol src/Dodge/Render/Connectors.hs 46;" f lConnectMulti src/Dodge/Render/Connectors.hs 51;" f @@ -4063,12 +4065,12 @@ linksOnPath src/Dodge/Room/CheckConsistency.hs 6;" f listConfig src/Dodge/Menu.hs 232;" f listControls src/Dodge/Menu.hs 244;" f listCursor src/Dodge/Render/List.hs 120;" f -listGuard src/Dodge/Creature/ReaderUpdate.hs 239;" f +listGuard src/Dodge/Creature/ReaderUpdate.hs 262;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 299;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 53;" f lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 415;" f -loadAmmoTut src/Dodge/Room/Tutorial.hs 435;" f +loadAmmoTut src/Dodge/Room/Tutorial.hs 437;" f loadDodgeConfig src/Dodge/Config.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMuzzle src/Dodge/HeldUse.hs 654;" f @@ -4248,9 +4250,9 @@ mglCreate src/GLHelp.hs 8;" f mglDelete src/GLHelp.hs 14;" f midBarDecoration src/Dodge/Placement/TopDecoration.hs 23;" f midBounds src/Dodge/Room/Foreground.hs 150;" f -midChasm src/Dodge/Room/Tutorial.hs 180;" f -midChasmPlatform src/Dodge/Room/Tutorial.hs 202;" f -midChasmSpit src/Dodge/Room/Tutorial.hs 270;" f +midChasm src/Dodge/Room/Tutorial.hs 182;" f +midChasmPlatform src/Dodge/Room/Tutorial.hs 204;" f +midChasmSpit src/Dodge/Room/Tutorial.hs 272;" f midPad src/Padding.hs 27;" f midPadL src/Padding.hs 33;" f midPoint src/Geometry.hs 83;" f @@ -4353,7 +4355,7 @@ noShape src/ShapePicture.hs 29;" f noclipCheck src/Dodge/WallCreatureCollisions.hs 22;" f nodeNear src/Dodge/Path.hs 94;" f nodesNear src/Dodge/Path.hs 100;" f -nonConvexChasm src/Dodge/Room/Tutorial.hs 267;" f +nonConvexChasm src/Dodge/Room/Tutorial.hs 269;" f nonCornerLinks src/Dodge/Room/SensorDoor.hs 53;" f normalGait src/Dodge/Creature/State/WalkCycle.hs 140;" f normalTo8 src/Shader/Poke.hs 466;" f @@ -4416,8 +4418,8 @@ overlapCircWalls src/Dodge/Base/Collide.hs 238;" f overlapCircWallsClosest src/Dodge/Base/Collide.hs 277;" f overlapSegCrs src/Dodge/Base/Collide.hs 61;" f overlapSegWalls src/Dodge/Base/Collide.hs 218;" f -overrideInternal src/Dodge/Creature/ReaderUpdate.hs 223;" f -overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 36;" f +overrideInternal src/Dodge/Creature/ReaderUpdate.hs 246;" f +overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 38;" f overwriteLabel src/Dodge/Tree/Compose.hs 32;" f p src/ShortShow.hs 48;" f pContID src/Dodge/LevelGen/PlacementHelper.hs 15;" f @@ -4429,7 +4431,7 @@ pairsToSCC src/Dodge/Graph.hs 32;" f paletteToColor src/Color.hs 85;" f parseItem src/Dodge/Debug/Terminal.hs 62;" f parseNum src/Dodge/Debug/Terminal.hs 77;" f -passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 653;" f +passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 655;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathEdgeObstructed src/Dodge/Path.hs 87;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f @@ -4445,11 +4447,11 @@ pedestalRoom src/Dodge/Room/Containing.hs 50;" f penThing src/Dodge/Bullet.hs 215;" f perMat src/MatrixHelper.hs 60;" f perceptionUpdate src/Dodge/Creature/Perception.hs 25;" f -performAction src/Dodge/Creature/Action.hs 55;" f -performActions src/Dodge/Creature/Action.hs 40;" f -performAimAt src/Dodge/Creature/Action.hs 111;" f -performPathTo src/Dodge/Creature/Action.hs 129;" f -performTurnToA src/Dodge/Creature/Action.hs 141;" f +performAction src/Dodge/Creature/Action.hs 56;" f +performActions src/Dodge/Creature/Action.hs 41;" f +performAimAt src/Dodge/Creature/Action.hs 113;" f +performPathTo src/Dodge/Creature/Action.hs 131;" f +performTurnToA src/Dodge/Creature/Action.hs 143;" f perspectiveMatrixb src/MatrixHelper.hs 11;" f pickUpItem src/Dodge/Inventory/Add.hs 70;" f pickUpItemAt src/Dodge/Inventory/Add.hs 75;" f @@ -4534,8 +4536,8 @@ pokeWall src/Shader/Poke.hs 80;" f pokeWallsWindows src/Shader/Poke.hs 52;" f poly3 src/Picture/Base.hs 76;" f poly3Col src/Picture/Base.hs 80;" f -polyChasm src/Dodge/Room/Tutorial.hs 355;" f -polyChasmC src/Dodge/Room/Tutorial.hs 367;" f +polyChasm src/Dodge/Room/Tutorial.hs 357;" f +polyChasmC src/Dodge/Room/Tutorial.hs 369;" f polyCirc src/Shape.hs 47;" f polyCircx src/Shape.hs 52;" f polyCornerDist src/Geometry/Polygon.hs 69;" f @@ -4627,7 +4629,7 @@ putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 97;" f putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 100;" f putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 58;" f putShape src/Dodge/Room/Foreground.hs 134;" f -putSingleLight src/Dodge/Room/Tutorial.hs 469;" f +putSingleLight src/Dodge/Room/Tutorial.hs 471;" f putSlideDr src/Dodge/Door/PutSlideDoor.hs 12;" f putStrLnAppend src/Dodge/LevelGen.hs 84;" f putTerminal src/Dodge/Placement/Instance/Terminal.hs 52;" f @@ -4738,7 +4740,6 @@ renderLayer src/Render.hs 206;" f renderLightingNoShadows src/Render.hs 49;" f renderListAt src/Dodge/Render/List.hs 177;" f renderShadows src/Render.hs 116;" f -replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 210;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 65;" f resetPLUse src/Dodge/PlacementSpot.hs 94;" f @@ -4889,7 +4890,7 @@ seagullCry2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 679;" f seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 689;" f seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 627;" f -searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 256;" f +searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 279;" f secondColumnLDP src/Dodge/ListDisplayParams.hs 45;" f sectionsDesiredLines src/Dodge/DisplayInventory.hs 202;" f sectionsSizes src/Dodge/DisplayInventory.hs 205;" f @@ -4913,7 +4914,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 240;" f sensorRoom src/Dodge/Room/SensorDoor.hs 27;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 59;" f sensorSPic src/Dodge/Machine/Draw.hs 97;" f -sensorTut src/Dodge/Room/Tutorial.hs 597;" f +sensorTut src/Dodge/Room/Tutorial.hs 599;" f sensorTypeDamages src/Dodge/Machine/Update.hs 286;" f sensorTypeDamages src/Dodge/Wall/Damage.hs 92;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f @@ -4933,7 +4934,7 @@ setLayer src/Picture/Base.hs 131;" f setLinkType src/Dodge/RoomLink.hs 79;" f setLinkTypePD src/Dodge/RoomLink.hs 86;" f setMusicVolume src/Sound.hs 164;" f -setMvPosToTargetCr src/Dodge/Creature/ReaderUpdate.hs 58;" f +setMvPosToTargetCr src/Dodge/Creature/ReaderUpdate.hs 60;" f setOldPos src/Dodge/Update.hs 586;" f setOutLinks src/Dodge/RoomLink.hs 49;" f setOutLinksByType src/Dodge/RoomLink.hs 76;" f @@ -4947,9 +4948,9 @@ setShadowLimits src/Dodge/Shadows.hs 11;" f setSoundVolume src/Sound.hs 159;" f setTile src/Dodge/Layout.hs 75;" f setTiles src/Dodge/Layout.hs 68;" f -setTreeInts src/Dodge/Room/Tutorial.hs 100;" f +setTreeInts src/Dodge/Room/Tutorial.hs 102;" f setViewDistance src/Dodge/Update/Camera.hs 240;" f -setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f +setViewPos src/Dodge/Creature/ReaderUpdate.hs 71;" f setViewport src/Dodge/Render.hs 448;" f setVol src/Dodge/Config.hs 47;" f setWindowColor src/Dodge/Render/Walls.hs 32;" f @@ -5070,7 +5071,7 @@ slowDoorRoom src/Dodge/Room/LongDoor.hs 309;" f slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 326;" f smallBattery src/Dodge/Item/Ammo.hs 57;" f smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f -smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 16;" f +smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 17;" f smallDrawTree src/Dodge/LevelGen.hs 93;" f smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 833;" f smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 541;" f @@ -5133,8 +5134,8 @@ spreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 11;" f spreadOut src/Dodge/Creature/Boid.hs 160;" f sps src/Dodge/LevelGen/PlacementHelper.hs 30;" f sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f -sqPlatformChasm src/Dodge/Room/Tutorial.hs 231;" f -sqSpitChasm src/Dodge/Room/Tutorial.hs 246;" f +sqPlatformChasm src/Dodge/Room/Tutorial.hs 233;" f +sqSpitChasm src/Dodge/Room/Tutorial.hs 248;" f square src/Geometry/Polygon.hs 56;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 129;" f @@ -5186,7 +5187,7 @@ storageShape src/Dodge/Machine/Draw.hs 30;" f storeRoomID src/Dodge/Room/Modify.hs 23;" f strFromEquipment src/Dodge/Creature/Statistics.hs 56;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 70;" f -strengthFactor src/Dodge/Creature/Impulse/Movement.hs 51;" f +strengthFactor src/Dodge/Creature/Impulse/Movement.hs 68;" f strictify src/MaybeHelp.hs 35;" f strideLength src/Dodge/Creature/HandPos.hs 46;" f strideRot src/Dodge/Item/HeldOffset.hs 80;" f @@ -5233,7 +5234,7 @@ targCorner src/Dodge/Targeting/Draw.hs 35;" f targetCursorPic src/Dodge/Targeting/Draw.hs 41;" f targetYouCognizant src/Dodge/Creature/ChooseTarget.hs 14;" f targetYouLOS src/Dodge/Creature/ChooseTarget.hs 8;" f -targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 245;" f +targetYouWhenCognizant src/Dodge/Creature/ReaderUpdate.hs 268;" f targetYouWhenCognizant src/Dodge/Creature/SetTarget.hs 9;" f targetingScope src/Dodge/Item/Scope.hs 38;" f tbComplete src/Dodge/Terminal.hs 217;" f @@ -5285,7 +5286,7 @@ thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 55;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 67;" f throb1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 809;" f throbC4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 769;" f -throwItem src/Dodge/Creature/Action.hs 204;" f +throwItem src/Dodge/Creature/Action.hs 206;" f tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 216;" f tilesToLine src/Shader/AuxAddition.hs 66;" f @@ -5393,10 +5394,10 @@ tryClickUse src/Dodge/Creature/YourControl.hs 207;" f tryCombine src/Dodge/Update/Input/InGame.hs 555;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 156;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 159;" f -tryEvadeSideways src/Dodge/Creature/Action.hs 105;" f +tryEvadeSideways src/Dodge/Creature/Action.hs 106;" f tryGetChannel src/Sound.hs 99;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 23;" f -tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 41;" f +tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 43;" f tryPickupSelected src/Dodge/Update/Input/InGame.hs 177;" f tryPlay src/Sound.hs 85;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" f @@ -5409,12 +5410,12 @@ tryUseParent src/Dodge/Creature/State.hs 150;" f turnTo src/Dodge/Movement/Turn.hs 8;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 23;" f tutAnoTree src/Dodge/Room/Tutorial.hs 55;" f -tutDrop src/Dodge/Room/Tutorial.hs 105;" f -tutHub src/Dodge/Room/Tutorial.hs 495;" f -tutLight src/Dodge/Room/Tutorial.hs 399;" f -tutRezBox src/Dodge/Room/Tutorial.hs 608;" f +tutDrop src/Dodge/Room/Tutorial.hs 107;" f +tutHub src/Dodge/Room/Tutorial.hs 497;" f +tutLight src/Dodge/Room/Tutorial.hs 401;" f +tutRezBox src/Dodge/Room/Tutorial.hs 610;" f tutRoomTree src/Dodge/Floor.hs 20;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 633;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 635;" f tweenAngles src/Geometry/Vector.hs 192;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 83;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 39;" f @@ -5633,7 +5634,7 @@ viewClipBounds src/Dodge/Debug/Picture.hs 350;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 202;" f viewGameRoomBoundaries src/Dodge/Debug/Picture.hs 332;" f viewRoomBoundaries src/Dodge/Debug/Picture.hs 341;" f -viewTarget src/Dodge/Creature/ReaderUpdate.hs 196;" f +viewTarget src/Dodge/Creature/ReaderUpdate.hs 219;" f violet src/Color.hs 48;" f visibleWalls src/Dodge/Base/Collide.hs 223;" f visionCheck src/Dodge/Creature/Perception.hs 162;" f @@ -5658,7 +5659,7 @@ wasdM src/Dodge/WASD.hs 9;" f wasdMovement src/Dodge/Creature/YourControl.hs 140;" f wasdWithAiming src/Dodge/Creature/YourControl.hs 106;" f watchCombinations src/Dodge/Combine/Combinations.hs 16;" f -watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 228;" f +watchUpdateStrat src/Dodge/Creature/ReaderUpdate.hs 251;" f weaponBehindPillar src/Dodge/Room/Room.hs 200;" f weaponBetweenPillars src/Dodge/Room/Room.hs 216;" f weaponEmptyRoom src/Dodge/Room/Room.hs 161;" f @@ -5732,7 +5733,7 @@ yIntercepts src/Dodge/Zoning/Base.hs 78;" f yV2 src/Geometry/Vector.hs 207;" f yellow src/Color.hs 44;" f you src/Dodge/Base/You.hs 17;" f -youDropItem src/Dodge/Creature/Action.hs 190;" f +youDropItem src/Dodge/Creature/Action.hs 192;" f yourAugmentedItem src/Dodge/Render/HUD.hs 240;" f yourControl src/Dodge/Creature/YourControl.hs 26;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 111;" f @@ -5742,7 +5743,7 @@ yourRootItem src/Dodge/Base/You.hs 26;" f yourRootItemDT src/Dodge/Base/You.hs 32;" f yourSelectedItem src/Dodge/Base/You.hs 20;" f yourStatsInfo src/Dodge/Creature/Info.hs 27;" f -zChasm src/Dodge/Room/Tutorial.hs 164;" f +zChasm src/Dodge/Room/Tutorial.hs 166;" f zConnect src/Dodge/Render/Connectors.hs 18;" f zConnectCol src/Dodge/Render/Connectors.hs 29;" f zConnectColMidX src/Dodge/Render/Connectors.hs 32;" f