diff --git a/src/Dodge/Creature/Action.hs b/src/Dodge/Creature/Action.hs index 950a462c6..45bcbc6d8 100644 --- a/src/Dodge/Creature/Action.hs +++ b/src/Dodge/Creature/Action.hs @@ -33,11 +33,9 @@ import Geometry import qualified IntMapHelp as IM import LensHelp -performActions :: World -> Creature -> Creature -performActions w cr = - cr - & crActionPlan . apImpulse .~ concat iss - & crActionPlan . apAction .~ catMaybes mayas +performActions :: World -> Creature -> ([Impulse],Creature) +performActions w cr = (concat iss + , cr & crActionPlan . apAction .~ catMaybes mayas) where (iss, mayas) = unzip $ map (performAction cr w) $ cr ^. crActionPlan . apAction @@ -125,7 +123,7 @@ performAction cr w ac = case ac of LeadTarget p -> fromMaybe ([],Nothing) $ do i <- cr ^? crIntention . targetCr . _Just tcr <- w ^? cWorld . lWorld . creatures . ix i - return $ ([TurnTo (tcr ^. crPos . _xy +.+ rotateV (_crDir tcr) p)], Nothing) + return ([TurnTo (tcr ^. crPos . _xy +.+ rotateV (_crDir tcr) p)], Nothing) UseSelf f -> performAction cr w $ doCrAc f cr ArbitraryAction f -> performAction cr w (doCrWdAc f cr w) DoImpulsesAlongside sideImp mainAc -> case performAction cr w mainAc of diff --git a/src/Dodge/Creature/ArmourChase.hs b/src/Dodge/Creature/ArmourChase.hs index 62203616e..41041d971 100644 --- a/src/Dodge/Creature/ArmourChase.hs +++ b/src/Dodge/Creature/ArmourChase.hs @@ -22,8 +22,7 @@ flockArmourChaseCrit = -- ] , _crActionPlan = ActionPlan - { _apImpulse = [] - , _apAction = [] + { _apAction = [] , _apStrategy = FollowImpulses , _apGoal = [Kill 0] } diff --git a/src/Dodge/Creature/Boid.hs b/src/Dodge/Creature/Boid.hs index 461a1a4d0..04e596474 100644 --- a/src/Dodge/Creature/Boid.hs +++ b/src/Dodge/Creature/Boid.hs @@ -210,7 +210,7 @@ flockPointTarget :: Creature flockPointTarget f targFunc w cr = case targFunc cr w of Nothing -> cr - Just crTarg -> cr & crActionPlan . apImpulse .~ mvPointMeleeTarg p cr crTarg + Just crTarg -> cr -- & crActionPlan . apImpulse .~ mvPointMeleeTarg p cr crTarg where is = _swarm $ _crGroup cr crs = IM.restrictKeys (w ^. cWorld . lWorld . creatures) is @@ -239,7 +239,7 @@ flockToPointUsing' pf mvf w cr = fromMaybe cr $ do i <- _targetCr $ _crIntention cr tcr <- w ^? cWorld . lWorld . creatures . ix i let ptarg = pf tcr cenp cr - return $ cr & crActionPlan . apImpulse .~ mvf ptarg cr tcr + return $ cr -- & crActionPlan . apImpulse .~ mvf ptarg cr tcr where cenp = w ^?! cWorld . lWorld . creatureGroups . ix (cr ^?! crGroup . crGroupID) . crGroupCenter @@ -251,7 +251,7 @@ flockFunc :: Reader World Creature flockFunc f targFunc cr = reader $ \w -> case targFunc cr w of Nothing -> cr - Just crTarg -> cr & crActionPlan . apImpulse .~ mvPointMeleeTarg p cr crTarg + Just crTarg -> cr -- & crActionPlan . apImpulse .~ mvPointMeleeTarg p cr crTarg where cenp = w ^?! cWorld . lWorld . creatureGroups . ix (cr ^?! crGroup . crGroupID) . crGroupCenter p = f crTarg cenp cr @@ -264,7 +264,7 @@ flockCenterFunc :: Reader World Creature flockCenterFunc f targFunc cr = reader $ \w -> case targFunc cr w of Nothing -> cr - Just crTarg -> cr & crActionPlan . apImpulse .~ mvPointMeleeTarg p cr crTarg + Just crTarg -> cr -- & crActionPlan . apImpulse .~ mvPointMeleeTarg p cr crTarg where cenp = w ^?! cWorld . lWorld . creatureGroups . ix (cr ^?! crGroup . crGroupID) . crGroupCenter p = f crTarg cenp cr @@ -277,7 +277,7 @@ flockPointTargetR :: Reader World Creature flockPointTargetR f targFunc cr = reader $ \w -> case targFunc cr w of Nothing -> cr - Just crTarg -> cr & crActionPlan . apImpulse .~ mvPointMeleeTarg p cr crTarg + Just crTarg -> cr -- & crActionPlan . apImpulse .~ mvPointMeleeTarg p cr crTarg where is = _swarm $ _crGroup cr --crs = IM.restrictKeys (_creatures (_cWorld w)) is diff --git a/src/Dodge/Creature/Impulse.hs b/src/Dodge/Creature/Impulse.hs index ee72a89c3..1bedbccfb 100644 --- a/src/Dodge/Creature/Impulse.hs +++ b/src/Dodge/Creature/Impulse.hs @@ -1,7 +1,8 @@ -{-# LANGUAGE TupleSections #-} +--{-# LANGUAGE TupleSections #-} module Dodge.Creature.Impulse (followImpulses) where +import Dodge.Creature.Action import Data.Maybe import NewInt import Linear @@ -20,14 +21,10 @@ import Geometry import LensHelp import System.Random ---followImpulses :: World -> Creature -> (World -> World, Creature) ---followImpulses w cr = foldl' (flip f) (id, cr) (reverse $ _apImpulse $ _crActionPlan cr) --- where --- f imp (theupdate, cr') = first (. theupdate) $ followImpulse cr' w imp - followImpulses :: Int -> World -> World -followImpulses cid w = foldl' (followImpulse cid) w - (reverse $ w ^?! cWorld . lWorld . creatures . ix cid . crActionPlan . apImpulse) +followImpulses cid w = let (is,cr) = performActions w (w ^?! cWorld . lWorld . creatures . ix cid) + in foldl' (followImpulse cid) (w & cWorld . lWorld . creatures . ix cid .~ cr) + (reverse is) -- note SwitchToItem doesn't necessarily update the root item correctly followImpulse :: Int -> World -> Impulse -> World diff --git a/src/Dodge/Creature/Perception.hs b/src/Dodge/Creature/Perception.hs index d316f990e..2af3c9847 100644 --- a/src/Dodge/Creature/Perception.hs +++ b/src/Dodge/Creature/Perception.hs @@ -82,7 +82,7 @@ chaseCritAwarenessUpdate w cr = case _cpAttention $ _crPerception cr of IM.unionWith cogRaised oldAwareness newAwareness thejitter = [RandomImpulse $ RandImpulseCircMove 3] maybeBark = fromMaybe id $ do - guard $ becomesCognizant + guard becomesCognizant guard $ cr ^? crVocalization . vcCoolDown == Just 0 let soundid = evalState (takeOne (crWarningSounds cr)) (_randGen w) numjits = fst $ randomR (15, 25) (_randGen w) diff --git a/src/Dodge/Creature/ReaderUpdate.hs b/src/Dodge/Creature/ReaderUpdate.hs index 76877cfb4..1c6e6c2e7 100644 --- a/src/Dodge/Creature/ReaderUpdate.hs +++ b/src/Dodge/Creature/ReaderUpdate.hs @@ -43,9 +43,9 @@ tryMeleeAttack cr tcr && Just (_crID tcr) == cr ^? crActionPlan . apStrategy . meleeTarget && dist tpos cpos < crRad (cr ^. crType) + crRad (tcr ^. crType) + 5 && abs (_crDir cr - argV (tpos -.- cpos)) < pi / 4 = - cr & crActionPlan . apImpulse .~ [Melee $ _crID tcr] - & crActionPlan . apAction - .~ [ DoReplicate 10 NoAction + cr & crActionPlan . apAction + .~ [ DoImpulses [Melee $ _crID tcr] `DoActionThen` + DoReplicate 10 NoAction `DoActionThen` DoImpulses [ChangeStrategy (CloseToMelee $ _crID tcr)] ] diff --git a/src/Dodge/Creature/SentinelAI.hs b/src/Dodge/Creature/SentinelAI.hs index 85897b0a8..6e377fd43 100644 --- a/src/Dodge/Creature/SentinelAI.hs +++ b/src/Dodge/Creature/SentinelAI.hs @@ -49,8 +49,7 @@ sentinelAI = sentinelFireType :: (Int -> Action) -> World -> Creature -> Creature sentinelFireType f = chainCreatureUpdates - [ performActions - , watchUpdateStrat + [ watchUpdateStrat [ ( crHasTargetLOS , \_ _ -> @@ -86,8 +85,7 @@ sentinelExtraWatchUpdate :: Creature sentinelExtraWatchUpdate xs = chainCreatureUpdates - [ performActions - , watchUpdateStrat + [ watchUpdateStrat (xs ++ [(const crAwayFromPost, const goToPostStrat)]) , perceptionUpdate [0] , const doStrategyActions diff --git a/src/Dodge/Creature/Update.hs b/src/Dodge/Creature/Update.hs index 730c56fc3..e3dd40742 100644 --- a/src/Dodge/Creature/Update.hs +++ b/src/Dodge/Creature/Update.hs @@ -1,5 +1,6 @@ module Dodge.Creature.Update (updateCreature) where +import Dodge.Creature.Impulse import Linear import NewInt import Color @@ -47,8 +48,9 @@ updateCreature' cr = LampCrit{} -> updateLampoid cr BarrelCrit bt -> updateBarreloid bt cr AvatarDead -> id - ChaseCrit {} -> crUpdate cid . updateHumanoid cr - _ -> crUpdate cid . updateHumanoid cr + ChaseCrit {} -> \w -> crUpdate cid . followImpulses cid + $ over (cWorld . lWorld . creatures . ix cid) (chaseCritInternal w) w + _ -> crUpdate cid where cid = cr ^. crID diff --git a/src/Dodge/Data/ActionPlan.hs b/src/Dodge/Data/ActionPlan.hs index cebb622fa..d0e052cbd 100644 --- a/src/Dodge/Data/ActionPlan.hs +++ b/src/Dodge/Data/ActionPlan.hs @@ -16,8 +16,8 @@ import Sound.Data data ActionPlan = Inanimate | ActionPlan - { _apImpulse :: [Impulse] -- done per frame - , _apAction :: [Action] -- updated per frame, likely persist across frames + { -- _apImpulse :: [Impulse] -- done per frame + _apAction :: [Action] -- updated per frame, likely persist across frames , _apStrategy :: Strategy -- current strategy , _apGoal :: [Goal] -- particular ordered goals } @@ -187,13 +187,6 @@ concat <$> mapM (deriveJSON defaultOptions) , ''Goal ] ---deriveJSON defaultOptions ''Impulse ---deriveJSON defaultOptions ''RandImpulse ---deriveJSON defaultOptions ''Action ---deriveJSON defaultOptions ''Strategy ---deriveJSON defaultOptions ''ActionPlan ---deriveJSON defaultOptions ''Goal - makeLenses ''ActionPlan makeLenses ''Impulse makeLenses ''Action diff --git a/src/Dodge/Debug.hs b/src/Dodge/Debug.hs index 87311f904..2ed3d8277 100644 --- a/src/Dodge/Debug.hs +++ b/src/Dodge/Debug.hs @@ -84,7 +84,7 @@ succB x debugWritableValues :: Universe -> Maybe [DebugItem] debugWritableValues u = Just $ - mapMaybe f $ + mapMaybe f [ (uvDebugV2_1, uvDebugV2_1) , (uvDebugV2_2, uvDebugV2_2) ] @@ -151,7 +151,7 @@ drawCrInfo u = foldMap f . IM.elems $ w ^. cWorld . lWorld . creatures , g "crPos" $ cr ^? crPos . _xy , g "cpVigilance" $ cr ^? crPerception . cpVigilance , g "crAction" $ cr ^? crActionPlan . apAction - , g "crImpulse" $ cr ^? crActionPlan . apImpulse +-- , g "crImpulse" $ cr ^? crActionPlan . apImpulse , g "crName" $ cr ^? crName , g "crIntention" $ cr ^? crIntention ] diff --git a/src/Dodge/Default/Creature.hs b/src/Dodge/Default/Creature.hs index 6b0edecb2..bc7efb7cb 100644 --- a/src/Dodge/Default/Creature.hs +++ b/src/Dodge/Default/Creature.hs @@ -43,7 +43,7 @@ defaultCreature = , _strideLength = yourDefaultStrideLength } , _crVocalization = Mute - , _crActionPlan = ActionPlan [] [] (StrategyActions WatchAndWait [StartSentinelPost]) [LiveLongAndProsper] + , _crActionPlan = ActionPlan [] (StrategyActions WatchAndWait [StartSentinelPost]) [LiveLongAndProsper] , _crPerception = defaultPerceptionState , _crMemory = defaultCreatureMemory , _crFaction = NoFaction diff --git a/src/Dodge/Humanoid.hs b/src/Dodge/Humanoid.hs index 74d0b4549..b4d07cf68 100644 --- a/src/Dodge/Humanoid.hs +++ b/src/Dodge/Humanoid.hs @@ -1,34 +1,24 @@ -module Dodge.Humanoid where +module Dodge.Humanoid (chaseCritInternal) where -import Dodge.Creature.Impulse -import Linear -import Data.Maybe -import Dodge.Creature.Action import Dodge.Creature -import Dodge.Data.CreatureEffect import Dodge.Data.World -import Geometry import LensHelp -import RandomHelp -updateHumanoid :: Creature -> World -> World -updateHumanoid cr = case cr ^?! crType of - ChaseCrit {} -> - humanoidAIList - [ const doStrategyActions - , performActions - , overrideMeleeCloseTarget - , setViewPos - , setMvPos - , chaseCritMv - , chaseCritPerceptionUpdate [0] - , targetYouWhenCognizant - , const searchIfDamaged - , const (crType . meleeCooldown %~ max 0 . subtract 1) - , const (crVocalization . vcCoolDown %~ max 0 . subtract 1) - ] - cr - _ -> id +chaseCritInternal :: World -> Creature -> Creature +chaseCritInternal = + chainCreatureUpdates + [ const doStrategyActions + , overrideMeleeCloseTarget + , setViewPos + , setMvPos + , chaseCritMv + , chaseCritPerceptionUpdate [0] + , targetYouWhenCognizant + , const searchIfDamaged + , const (crType . meleeCooldown %~ max 0 . subtract 1) + , const (crVocalization . vcCoolDown %~ max 0 . subtract 1) + ] + -- SpreadGunAI -> -- defaultImpulsive -- [ performActions @@ -180,97 +170,91 @@ updateHumanoid cr = case cr ^?! crType of -- , WaitThen 1 $ (DoImpulses [ChangeStrategy WatchAndWait]) -- ] -humanoidAIList :: [World -> Creature -> Creature] -> Creature -> World -> World -humanoidAIList l cr w = followImpulses cid $ - w & cWorld . lWorld . creatures . ix cid %~ chainCreatureUpdates l w - where - cid = cr ^. crID - -chooseMovementPistol :: Creature -> World -> Action -chooseMovementPistol cr w = - chooseMovementPistol' cr w - `DoActionThen` DoImpulses [ChangeStrategy WatchAndWait] - -chooseMovementPistol' :: Creature -> World -> Action -chooseMovementPistol' cr w = - takeOneWeighted - [chargeProb, retreatProb, strafeProb, strafeProb] - [ chargeActions - , retreatActionsPistol ycr cr - , strafeLeftActions - , strafeRightActions - ] - & evalState - $ g - where - g = _randGen w - cpos = cr ^. crPos . _xy - ycr = w ^?! cWorld . lWorld . creatures . ix 0 - ypos = ycr ^. crPos . _xy - chargeProb - | dist cpos ypos > 300 = 5 - | dist cpos ypos > 150 = 1 - | otherwise = 0 - strafeProb - | dist cpos ypos > 150 = 1 - | otherwise = 0 - retreatProb - | dist cpos ypos < 200 = 1 :: Float - | otherwise = 0 - chargeActions = - [TurnToward ypos 0.1] - `DoImpulsesAlongside` 3 - `DoReplicate` ImpulsesList (replicate 9 [Move (V2 3 0)] ++ [[Move (V2 3 0), UseItem]]) - strafeLeftActions = - DoImpulses [TurnToward yposr (2 * pi)] - `DoActionThen` 3 - `DoReplicate` ImpulsesList (replicate 9 [Move (V2 0 3)] ++ [[Move (V2 0 3), UseItem]]) - strafeRightActions = - DoImpulses [TurnToward yposl (2 * pi)] - `DoActionThen` 3 - `DoReplicate` ImpulsesList (replicate 9 [Move (V2 0 (-3))] ++ [[Move (V2 0 (-3)), UseItem]]) - yposl = ypos -.- 100 *.* vNormal (normalizeV $ ypos -.- cpos) - yposr = ypos +.+ 100 *.* vNormal (normalizeV $ ypos -.- cpos) - -retreatActionsPistol :: Creature -> Creature -> Action -retreatActionsPistol tcr cr = - [TurnToward retreatOffset 0.2] - `DoImpulsesAlongside` 3 - `DoReplicate` ImpulsesList (replicate 9 [Move (V2 (-3) 0)] ++ [[UseItem]]) - where - cpos = cr ^. crPos . _xy - tpos = tcr ^. crPos . _xy - retreatOffset = - let a - | dist cpos tpos < 50 = 0 - | isLeftOfA (_crDir cr) (argV $ tpos -.- cpos) = - -0.7 - | otherwise = 0.7 - in fromMaybe tpos $ - intersectLineLine - cpos - (cpos +.+ rotateV a (tpos -.- cpos)) - tpos - (tpos +.+ vNormal (cpos -.- tpos)) - -retreatFireLauncher :: Action -retreatFireLauncher = - ImpulsesList ([UseItem] : replicate 20 [Turn 0.16]) - `DoActionThen` holsterWeapon - `DoActionThen` ImpulsesList (replicate 30 [MoveForward 3]) - `DoActionThen` drawWeapon - `DoActionThen` ImpulsesList ([UseItem] : replicate 20 [Turn $ negate 0.16]) - `DoActionThen` holsterWeapon - `DoActionThen` ImpulsesList (replicate 15 [MoveForward 3]) - `DoActionThen` drawWeapon - `DoActionThen` ImpulsesList - ( replicate - 100 - [ UseItem - , ImpulseUseTarget (TurnTowardCr (pi / 16)) - ] - ) - `DoActionThen` 20 - `WaitThen` holsterWeapon - `DoActionThen` ImpulsesList (replicate 15 [MoveForward 3]) - `DoActionThen` DoImpulses [ChangeStrategy WatchAndWait] +--chooseMovementPistol :: Creature -> World -> Action +--chooseMovementPistol cr w = +-- chooseMovementPistol' cr w +-- `DoActionThen` DoImpulses [ChangeStrategy WatchAndWait] +-- +--chooseMovementPistol' :: Creature -> World -> Action +--chooseMovementPistol' cr w = +-- takeOneWeighted +-- [chargeProb, retreatProb, strafeProb, strafeProb] +-- [ chargeActions +-- , retreatActionsPistol ycr cr +-- , strafeLeftActions +-- , strafeRightActions +-- ] +-- & evalState +-- $ g +-- where +-- g = _randGen w +-- cpos = cr ^. crPos . _xy +-- ycr = w ^?! cWorld . lWorld . creatures . ix 0 +-- ypos = ycr ^. crPos . _xy +-- chargeProb +-- | dist cpos ypos > 300 = 5 +-- | dist cpos ypos > 150 = 1 +-- | otherwise = 0 +-- strafeProb +-- | dist cpos ypos > 150 = 1 +-- | otherwise = 0 +-- retreatProb +-- | dist cpos ypos < 200 = 1 :: Float +-- | otherwise = 0 +-- chargeActions = +-- [TurnToward ypos 0.1] +-- `DoImpulsesAlongside` 3 +-- `DoReplicate` ImpulsesList (replicate 9 [Move (V2 3 0)] ++ [[Move (V2 3 0), UseItem]]) +-- strafeLeftActions = +-- DoImpulses [TurnToward yposr (2 * pi)] +-- `DoActionThen` 3 +-- `DoReplicate` ImpulsesList (replicate 9 [Move (V2 0 3)] ++ [[Move (V2 0 3), UseItem]]) +-- strafeRightActions = +-- DoImpulses [TurnToward yposl (2 * pi)] +-- `DoActionThen` 3 +-- `DoReplicate` ImpulsesList (replicate 9 [Move (V2 0 (-3))] ++ [[Move (V2 0 (-3)), UseItem]]) +-- yposl = ypos -.- 100 *.* vNormal (normalizeV $ ypos -.- cpos) +-- yposr = ypos +.+ 100 *.* vNormal (normalizeV $ ypos -.- cpos) +-- +--retreatActionsPistol :: Creature -> Creature -> Action +--retreatActionsPistol tcr cr = +-- [TurnToward retreatOffset 0.2] +-- `DoImpulsesAlongside` 3 +-- `DoReplicate` ImpulsesList (replicate 9 [Move (V2 (-3) 0)] ++ [[UseItem]]) +-- where +-- cpos = cr ^. crPos . _xy +-- tpos = tcr ^. crPos . _xy +-- retreatOffset = +-- let a +-- | dist cpos tpos < 50 = 0 +-- | isLeftOfA (_crDir cr) (argV $ tpos -.- cpos) = +-- -0.7 +-- | otherwise = 0.7 +-- in fromMaybe tpos $ +-- intersectLineLine +-- cpos +-- (cpos +.+ rotateV a (tpos -.- cpos)) +-- tpos +-- (tpos +.+ vNormal (cpos -.- tpos)) +-- +--retreatFireLauncher :: Action +--retreatFireLauncher = +-- ImpulsesList ([UseItem] : replicate 20 [Turn 0.16]) +-- `DoActionThen` holsterWeapon +-- `DoActionThen` ImpulsesList (replicate 30 [MoveForward 3]) +-- `DoActionThen` drawWeapon +-- `DoActionThen` ImpulsesList ([UseItem] : replicate 20 [Turn $ negate 0.16]) +-- `DoActionThen` holsterWeapon +-- `DoActionThen` ImpulsesList (replicate 15 [MoveForward 3]) +-- `DoActionThen` drawWeapon +-- `DoActionThen` ImpulsesList +-- ( replicate +-- 100 +-- [ UseItem +-- , ImpulseUseTarget (TurnTowardCr (pi / 16)) +-- ] +-- ) +-- `DoActionThen` 20 +-- `WaitThen` holsterWeapon +-- `DoActionThen` ImpulsesList (replicate 15 [MoveForward 3]) +-- `DoActionThen` DoImpulses [ChangeStrategy WatchAndWait] diff --git a/src/Dodge/Path.hs b/src/Dodge/Path.hs index fbc529e6a..cd21c7dd7 100644 --- a/src/Dodge/Path.hs +++ b/src/Dodge/Path.hs @@ -57,7 +57,7 @@ walkableNodeNear w p = fmap fst . find (flip (isWalkable p) w . snd) $ nodesNear nodesNear = zonesExtract (w ^. pnZoning) . snailAround $ zoneOfPoint pnZoneSize p snailAround :: Int2 -> [Int2] -snailAround x = fmap (x+) $ smallSnailInt2 +snailAround x = (x+) <$> smallSnailInt2 smallSnailInt2 :: [Int2] smallSnailInt2 = sortOn (distance (V2 0 (0::Float)) . fmap fromIntegral) diff --git a/src/Dodge/Projectile/Update.hs b/src/Dodge/Projectile/Update.hs index 18865e6a9..27dfe331f 100644 --- a/src/Dodge/Projectile/Update.hs +++ b/src/Dodge/Projectile/Update.hs @@ -97,7 +97,7 @@ shellHitFloor p pj = . (topj . pjVel . _z %~ bouncez) . (topj . pjVel . _xy %~ decvel) . (topj . pjSpin *~ 0.9) - . (bounceSound pj) + . bounceSound pj where bouncez x = max 0 (-0.5 * x) topj = cWorld . lWorld . projectiles . ix (pj ^. pjID) diff --git a/src/Dodge/Render/ShapePicture.hs b/src/Dodge/Render/ShapePicture.hs index 40cf47030..adbe1a5b1 100644 --- a/src/Dodge/Render/ShapePicture.hs +++ b/src/Dodge/Render/ShapePicture.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE LambdaCase #-} +--{-# LANGUAGE LambdaCase #-} module Dodge.Render.ShapePicture (worldSPic) where import Dodge.Debug diff --git a/tags b/tags index 0e4c5f7fb..b509ae0fd 100644 --- a/tags +++ b/tags @@ -932,7 +932,7 @@ Opaque src/Dodge/Data/Wall.hs 44;" C OpticScope src/Dodge/Data/Item/Scope.hs 14;" C OptionScreen src/Dodge/Data/Universe.hs 82;" C OptionScreenFlag src/Dodge/Data/Universe.hs 72;" t -OutAction src/Dodge/Creature/Action.hs 44;" t +OutAction src/Dodge/Creature/Action.hs 42;" t OutLink src/Dodge/Data/Room.hs 44;" C OutsideTerminal src/Dodge/Data/Input.hs 30;" C OutwardShockwave src/Dodge/Data/Shockwave.hs 14;" C @@ -1526,7 +1526,6 @@ _amsfLink src/Dodge/Data/ComposedItem.hs 24;" f _amsfType src/Dodge/Data/ComposedItem.hs 24;" f _apAction src/Dodge/Data/ActionPlan.hs 20;" f _apGoal src/Dodge/Data/ActionPlan.hs 22;" f -_apImpulse src/Dodge/Data/ActionPlan.hs 19;" f _apInt src/Dodge/Data/Item/Use.hs 47;" f _apProjectiles src/Dodge/Data/Item/Use.hs 46;" f _apStrategy src/Dodge/Data/ActionPlan.hs 21;" f @@ -2628,7 +2627,7 @@ arcStepwisePositive src/Geometry.hs 340;" f arcTest src/Picture/Test.hs 9;" f arcTest' src/Picture/Test.hs 21;" f argV src/Geometry/Vector.hs 81;" f -armourChaseCrit src/Dodge/Creature/ArmourChase.hs 35;" f +armourChaseCrit src/Dodge/Creature/ArmourChase.hs 34;" f armouredChasers src/Dodge/Room/Boss.hs 64;" f armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f arms src/Dodge/Creature/Picture.hs 72;" f @@ -2802,9 +2801,10 @@ charToTupleGrad src/Picture/Text.hs 18;" f chartreuse src/Color.hs 24;" f chaseCrit src/Dodge/Creature/ChaseCrit.hs 27;" f chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 65;" f +chaseCritInternal src/Dodge/Humanoid.hs 7;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 120;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f -chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f +chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 36;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 180;" f chasmTest src/Dodge/Creature/Update.hs 133;" f chasmWallToSurface src/Dodge/Base/Collide.hs 120;" f @@ -2829,8 +2829,6 @@ chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 35;" f chooseFreeSite src/Dodge/Inventory/RBList.hs 47;" f chooseMovementLtAuto src/Dodge/CreatureEffect.hs 76;" f -chooseMovementPistol src/Dodge/Humanoid.hs 185;" f -chooseMovementPistol' src/Dodge/Humanoid.hs 190;" f chooseMovementSpreadGun src/Dodge/CreatureEffect.hs 59;" f circHitWall src/Dodge/Base/Collide.hs 242;" f circInPolygon src/Geometry/Polygon.hs 102;" f @@ -2982,7 +2980,7 @@ crShape src/Dodge/Creature/Shape.hs 8;" f crSpring src/Dodge/Update.hs 867;" f crStratConMatches src/Dodge/Creature/Test.hs 80;" f crStrength src/Dodge/Creature/Statistics.hs 29;" f -crUpdate src/Dodge/Creature/Update.hs 60;" f +crUpdate src/Dodge/Creature/Update.hs 64;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 66;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 48;" f crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f @@ -3421,9 +3419,9 @@ drawZoneCirc src/Dodge/Debug/Picture.hs 301;" f drawZoneCol src/Dodge/Debug/Picture.hs 149;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 294;" f dropAll src/Dodge/Creature/Update.hs 130;" f -dropExcept src/Dodge/Creature/Action.hs 163;" f +dropExcept src/Dodge/Creature/Action.hs 161;" f dropInventoryPath src/Dodge/HeldUse.hs 1351;" f -dropItem src/Dodge/Creature/Action.hs 170;" f +dropItem src/Dodge/Creature/Action.hs 168;" f dropper src/Dodge/Item/Scope.hs 76;" f drumMag src/Dodge/Item/Ammo.hs 34;" f dsZoneSize src/Dodge/Zoning/Cloud.hs 42;" f @@ -3568,8 +3566,8 @@ foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f foldMTRS src/Dodge/Room/Tutorial.hs 58;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 110;" f -followImpulse src/Dodge/Creature/Impulse.hs 39;" f -followImpulses src/Dodge/Creature/Impulse.hs 33;" f +followImpulse src/Dodge/Creature/Impulse.hs 30;" f +followImpulses src/Dodge/Creature/Impulse.hs 24;" f foot1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f foot2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 510;" f foot3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 622;" f @@ -3764,12 +3762,10 @@ horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f hotkeyToChar src/Dodge/Inventory/SelectionList.hs 188;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 82;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 185;" f -humanoidAIList src/Dodge/Humanoid.hs 182;" f iShape src/Dodge/Placement/Instance/LightSource.hs 87;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f ildtPropagate src/Dodge/DoubleTree.hs 111;" f -impulsiveAIBefore src/Dodge/Creature/Impulse.hs 24;" f inLink src/Dodge/RoomLink.hs 128;" f inSegArea src/Geometry/Intersect.hs 319;" f inSimplePoly src/Geometry/Polygon.hs 90;" f @@ -4400,11 +4396,11 @@ pedestalRoom src/Dodge/Room/Containing.hs 50;" f penThing src/Dodge/Bullet.hs 210;" f perMat src/MatrixHelper.hs 49;" f perceptionUpdate src/Dodge/Creature/Perception.hs 24;" f -performAction src/Dodge/Creature/Action.hs 90;" f +performAction src/Dodge/Creature/Action.hs 88;" f performActions src/Dodge/Creature/Action.hs 36;" f -performAimAt src/Dodge/Creature/Action.hs 46;" f -performPathTo src/Dodge/Creature/Action.hs 59;" f -performTurnToA src/Dodge/Creature/Action.hs 77;" f +performAimAt src/Dodge/Creature/Action.hs 44;" f +performPathTo src/Dodge/Creature/Action.hs 57;" f +performTurnToA src/Dodge/Creature/Action.hs 75;" f perspectiveMatrixb src/MatrixHelper.hs 11;" f pesNearCirc src/Dodge/Zoning/Pathing.hs 43;" f pesNearPoint src/Dodge/Zoning/Pathing.hs 33;" f @@ -4732,8 +4728,6 @@ restrictLinkType src/Dodge/RoomLink.hs 34;" f restrictOutLinks src/Dodge/RoomLink.hs 47;" f restrictRMInLinksPD src/Dodge/Room/Link.hs 25;" f resumeSound src/Dodge/SoundLogic.hs 48;" f -retreatActionsPistol src/Dodge/Humanoid.hs 231;" f -retreatFireLauncher src/Dodge/Humanoid.hs 252;" f retreatPointForFrom src/Dodge/Creature/Impulse/Flee.hs 9;" f reversePair src/Dodge/LevelGen.hs 85;" f rewinder src/Dodge/Item/Held/Utility.hs 36;" f @@ -4890,7 +4884,7 @@ sensorSPic src/Dodge/Machine/Draw.hs 81;" f sensorTut src/Dodge/Room/Tutorial.hs 338;" f sensorTypeDamages src/Dodge/Machine/Update.hs 234;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f -sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f +sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 81;" f sentinelFireType src/Dodge/Creature/SentinelAI.hs 49;" f setAimPosture src/Dodge/Creature/YourControl.hs 145;" f setChannelPos src/Sound.hs 150;" f @@ -5243,7 +5237,7 @@ thingsHit src/Dodge/WorldEvent/ThingsHit.hs 36;" f thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 119;" f thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 44;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f -throwItem src/Dodge/Creature/Action.hs 206;" f +throwItem src/Dodge/Creature/Action.hs 204;" f tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 192;" f tilesToLine src/Shader/AuxAddition.hs 66;" f @@ -5416,8 +5410,8 @@ updateCloud src/Dodge/Update.hs 798;" f updateClouds src/Dodge/Update.hs 669;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f updateCombineSections src/Dodge/DisplayInventory.hs 47;" f -updateCreature src/Dodge/Creature/Update.hs 32;" f -updateCreature' src/Dodge/Creature/Update.hs 41;" f +updateCreature src/Dodge/Creature/Update.hs 33;" f +updateCreature' src/Dodge/Creature/Update.hs 42;" f updateCreatureGroups src/Dodge/Update.hs 537;" f updateCreatureSoundPositions src/Dodge/Update.hs 516;" f updateDebris src/Dodge/Update.hs 572;" f @@ -5442,7 +5436,6 @@ updateFloatingCamera src/Dodge/Update/Camera.hs 35;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 363;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 359;" f updateGusts src/Dodge/Update.hs 781;" f -updateHumanoid src/Dodge/Humanoid.hs 13;" f updateIMl src/Dodge/Update.hs 531;" f updateIMl' src/Dodge/Update.hs 534;" f updateInGameCamera src/Dodge/Update/Camera.hs 79;" f @@ -5670,7 +5663,7 @@ yIntercepts' src/Dodge/Zoning/Base.hs 76;" f yV2 src/Geometry/Vector.hs 205;" f yellow src/Color.hs 17;" f you src/Dodge/Base/You.hs 13;" f -youDropItem src/Dodge/Creature/Action.hs 192;" f +youDropItem src/Dodge/Creature/Action.hs 190;" f yourAugmentedItem src/Dodge/Render/HUD.hs 238;" f yourControl src/Dodge/Creature/YourControl.hs 28;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 110;" f