From 7116129a37c52c57e2621acdd40148192bd78ea0 Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 11 Dec 2021 19:44:48 +0000 Subject: [PATCH] Cleanup --- src/Dodge/Creature.hs | 6 +++--- src/Dodge/Creature/ArmourChase.hs | 2 +- src/Dodge/Creature/AutoCrit.hs | 2 +- src/Dodge/Creature/ChaseCrit.hs | 2 +- src/Dodge/Creature/LauncherCrit.hs | 2 +- src/Dodge/Creature/LtAutoCrit.hs | 2 +- src/Dodge/Creature/PistolCrit.hs | 2 +- src/Dodge/Creature/ReaderUpdate.hs | 4 ++-- src/Dodge/Creature/SpreadGunCrit.hs | 2 +- src/Dodge/Creature/State.hs | 9 ++------- src/Dodge/Creature/SwarmCrit.hs | 2 +- src/Dodge/Creature/YourControl.hs | 4 ++-- src/Dodge/Debug/Terminal.hs | 6 +++--- src/Dodge/Placement/Instance/Turret.hs | 2 +- src/Dodge/RemoveCreatureEndo.hs | 15 --------------- 15 files changed, 21 insertions(+), 41 deletions(-) delete mode 100644 src/Dodge/RemoveCreatureEndo.hs diff --git a/src/Dodge/Creature.hs b/src/Dodge/Creature.hs index a85d0a1cf..25c409211 100644 --- a/src/Dodge/Creature.hs +++ b/src/Dodge/Creature.hs @@ -68,7 +68,7 @@ spawnerCrit = defaultCreature miniGunCrit :: Creature miniGunCrit = defaultCreature { _crPict = basicCrPict red - , _crUpdate = stateUpdate' $ impulsiveAI $ + , _crUpdate = stateUpdate $ impulsiveAI $ sentinelFireType (const shootTillEmpty) , _crActionPlan = ActionPlan { _crImpulse = [] @@ -89,7 +89,7 @@ longCrit :: Creature longCrit = defaultCreature { _crPict = basicCrPict red -- , _crUpdate = stateUpdate sniperAI - , _crUpdate = stateUpdate' $ impulsiveAI $ sentinelFireType $ const shootTillEmpty + , _crUpdate = stateUpdate $ impulsiveAI $ sentinelFireType $ const shootTillEmpty , _crActionPlan = ActionPlan { _crImpulse = [] , _crAction = [] @@ -109,7 +109,7 @@ multGunCrit = defaultCreature , _crInvSel = 0 , _crRad = 10 , _crHP = 300 - , _crUpdate = stateUpdate' $ impulsiveAI $ sentinelExtraWatchUpdate + , _crUpdate = stateUpdate $ impulsiveAI $ sentinelExtraWatchUpdate [ ( not . crHasAmmo , \_ _ -> StrategyActions Reload reloadActions ) diff --git a/src/Dodge/Creature/ArmourChase.hs b/src/Dodge/Creature/ArmourChase.hs index d069f2ff9..7a44b8b0c 100644 --- a/src/Dodge/Creature/ArmourChase.hs +++ b/src/Dodge/Creature/ArmourChase.hs @@ -19,7 +19,7 @@ import Control.Lens armourChaseCrit :: Creature armourChaseCrit = defaultCreature - { _crUpdate = stateUpdate' $ impulsiveAI $ chainCreatureUpdatesLR + { _crUpdate = stateUpdate $ impulsiveAI $ chainCreatureUpdatesLR [ Left $ watchUpdateStrat [] , Right doStrategyActions , Left performActions diff --git a/src/Dodge/Creature/AutoCrit.hs b/src/Dodge/Creature/AutoCrit.hs index f72b7ec9b..67cc94119 100644 --- a/src/Dodge/Creature/AutoCrit.hs +++ b/src/Dodge/Creature/AutoCrit.hs @@ -21,7 +21,7 @@ import qualified Data.IntMap.Strict as IM autoCrit :: Creature autoCrit = defaultCreature { _crPict = basicCrPict red - , _crUpdate = stateUpdate' $ impulsiveAI sentinelAI + , _crUpdate = stateUpdate $ impulsiveAI sentinelAI , _crActionPlan = ActionPlan { _crImpulse = [] , _crAction = [] diff --git a/src/Dodge/Creature/ChaseCrit.hs b/src/Dodge/Creature/ChaseCrit.hs index ea2e290d6..747b35583 100644 --- a/src/Dodge/Creature/ChaseCrit.hs +++ b/src/Dodge/Creature/ChaseCrit.hs @@ -33,7 +33,7 @@ smallChaseCrit = chaseCrit } chaseCrit :: Creature chaseCrit = defaultCreature - { _crUpdate = stateUpdate' $ impulsiveAI $ chainCreatureUpdatesLR + { _crUpdate = stateUpdate $ impulsiveAI $ chainCreatureUpdatesLR [ Right doStrategyActions , Left performActions , Right overrideMeleeCloseTarget diff --git a/src/Dodge/Creature/LauncherCrit.hs b/src/Dodge/Creature/LauncherCrit.hs index 90dac5d6a..50e1a412a 100644 --- a/src/Dodge/Creature/LauncherCrit.hs +++ b/src/Dodge/Creature/LauncherCrit.hs @@ -24,7 +24,7 @@ import Control.Lens launcherCrit :: Creature launcherCrit = defaultCreature { _crPict = basicCrPict red - , _crUpdate = stateUpdate' $ impulsiveAI $ chainCreatureUpdatesLR + , _crUpdate = stateUpdate $ impulsiveAI $ chainCreatureUpdatesLR [ Left performActions , Left $ watchUpdateStrat [ (crHasTargetLOS, \_ _ -> StrategyActions (ShootAt 0) [retreatFire]) diff --git a/src/Dodge/Creature/LtAutoCrit.hs b/src/Dodge/Creature/LtAutoCrit.hs index 92e605d18..e9c6a4409 100644 --- a/src/Dodge/Creature/LtAutoCrit.hs +++ b/src/Dodge/Creature/LtAutoCrit.hs @@ -26,7 +26,7 @@ import Control.Lens ltAutoCrit :: Creature ltAutoCrit = defaultCreature { _crPict = basicCrPict red - , _crUpdate = stateUpdate' $ impulsiveAI $ chainCreatureUpdatesLR + , _crUpdate = stateUpdate $ impulsiveAI $ chainCreatureUpdatesLR [ Left performActions , Left $ watchUpdateStrat [ (crHasTargetLOS, \_ _ -> StrategyActions (ShootAt 0) diff --git a/src/Dodge/Creature/PistolCrit.hs b/src/Dodge/Creature/PistolCrit.hs index 23875ff2c..f13561521 100644 --- a/src/Dodge/Creature/PistolCrit.hs +++ b/src/Dodge/Creature/PistolCrit.hs @@ -29,7 +29,7 @@ import Control.Monad.State pistolCrit :: Creature pistolCrit = defaultCreature { _crPict = basicCrPict red - , _crUpdate = stateUpdate' $ impulsiveAI $ chainCreatureUpdatesLR + , _crUpdate = stateUpdate $ impulsiveAI $ chainCreatureUpdatesLR [Left performActions ,Left $ watchUpdateStrat [ (crHasTargetLOS, \w cr -> StrategyActions (ShootAt 0) diff --git a/src/Dodge/Creature/ReaderUpdate.hs b/src/Dodge/Creature/ReaderUpdate.hs index c308199e7..872254447 100644 --- a/src/Dodge/Creature/ReaderUpdate.hs +++ b/src/Dodge/Creature/ReaderUpdate.hs @@ -33,7 +33,6 @@ tryMeleeAttack cr tcr | _crMeleeCooldown cr == 0 && dist (_crPos tcr) cpos < _crRad cr + _crRad tcr + 5 && abs (_crDir cr - argV (_crPos tcr -.- cpos)) < pi/4 - -- = cr & crActionPlan . crStrategy .~ StrategyActions MeleeStrike meleeActions = cr & crActionPlan . crImpulse .~ [Melee $ _crID tcr] | otherwise = cr where @@ -117,7 +116,8 @@ reloadOverride cr where reloadActions = [ holsterWeapon - , WaitThen 1 $ DoActionWhileInterrupt NoAction crIsReloading (DoImpulses [ChangeStrategy WatchAndWait]) + , 1 `WaitThen` + DoActionWhileInterrupt NoAction crIsReloading (DoImpulses [ChangeStrategy WatchAndWait]) ] overrideInternal :: (Creature -> Bool) -> (Creature -> Creature) -> Creature -> Creature diff --git a/src/Dodge/Creature/SpreadGunCrit.hs b/src/Dodge/Creature/SpreadGunCrit.hs index 02e4a3e68..1b709cd09 100644 --- a/src/Dodge/Creature/SpreadGunCrit.hs +++ b/src/Dodge/Creature/SpreadGunCrit.hs @@ -27,7 +27,7 @@ import Control.Lens spreadGunCrit :: Creature spreadGunCrit = defaultCreature { _crPict = basicCrPict red - , _crUpdate = stateUpdate' $ impulsiveAI $ chainCreatureUpdatesLR + , _crUpdate = stateUpdate $ impulsiveAI $ chainCreatureUpdatesLR [Left performActions ,Left $ watchUpdateStrat [ (crHasTargetLOS, \_ _ -> StrategyActions (ShootAt 0) diff --git a/src/Dodge/Creature/State.hs b/src/Dodge/Creature/State.hs index 5523a1361..ade735f7b 100644 --- a/src/Dodge/Creature/State.hs +++ b/src/Dodge/Creature/State.hs @@ -1,6 +1,5 @@ module Dodge.Creature.State ( stateUpdate - , stateUpdate' , stateUpdateDamage , stateUpdateDamage' , doDamage @@ -44,13 +43,9 @@ import qualified Data.Vector.Mutable as MV -- the creature before or after it has moved? -- currently invSideEffects are applied after the creature moves, to correctly -- update shield positions -stateUpdate :: CRUpdate -> Creature -> World -> World -stateUpdate f cr w = let (fw,mcr) = stateUpdateDamage doDamage f cr w - in fw $ w & creatures . at (_crID cr) .~ mcr - -stateUpdate' :: (Creature -> World -> (World -> World, Creature)) +stateUpdate :: (Creature -> World -> (World -> World, Creature)) -> Creature -> World -> World -stateUpdate' f cr w = let (fw,mcr) = stateUpdateDamage' doDamage f cr w +stateUpdate f cr w = let (fw,mcr) = stateUpdateDamage' doDamage f cr w in fw $ w & creatures . at (_crID cr) .~ mcr stateUpdateDamage :: (Creature -> Creature) -> CRUpdate -> CRUpdate diff --git a/src/Dodge/Creature/SwarmCrit.hs b/src/Dodge/Creature/SwarmCrit.hs index edb890c7a..52d472251 100644 --- a/src/Dodge/Creature/SwarmCrit.hs +++ b/src/Dodge/Creature/SwarmCrit.hs @@ -18,7 +18,7 @@ import Control.Lens swarmCrit :: Creature swarmCrit = defaultCreature - { _crUpdate = stateUpdate' $ impulsiveAI $ chainCreatureUpdatesLR + { _crUpdate = stateUpdate $ impulsiveAI $ chainCreatureUpdatesLR [ Left $ flockToPointUsing' (encircleDistP 100) (meleeHeadingMove 0.1 0.1 (pi/4) 3.9) , Right $ (crMeleeCooldown %~ max 0 . subtract 1) , Left $ perceptionUpdate' [0] diff --git a/src/Dodge/Creature/YourControl.hs b/src/Dodge/Creature/YourControl.hs index 356f6518b..24fa073ac 100644 --- a/src/Dodge/Creature/YourControl.hs +++ b/src/Dodge/Creature/YourControl.hs @@ -16,10 +16,10 @@ import Data.Maybe yourControl :: Creature -> World - -> (World -> World, Maybe Creature) + -> (World -> World, Creature) yourControl cr w = ( updateUsingInput - , Just . mouseActionsCr (_mouseButtons w) $ wasdWithAiming w speed 0 cr + , mouseActionsCr (_mouseButtons w) $ wasdWithAiming w speed 0 cr ) where speed = _mvSpeed $ _crMvType cr diff --git a/src/Dodge/Debug/Terminal.hs b/src/Dodge/Debug/Terminal.hs index 5c55e2c79..8afc63435 100644 --- a/src/Dodge/Debug/Terminal.hs +++ b/src/Dodge/Debug/Terminal.hs @@ -1,7 +1,6 @@ module Dodge.Debug.Terminal where import Dodge.Data -import Dodge.RemoveCreatureEndo import Dodge.Creature import Dodge.Creature.YourControl import Dodge.Creature.State @@ -12,8 +11,9 @@ applyTerminalString :: String -> Universe -> Universe applyTerminalString "NOCLIP" w = w & config . debug_noclip %~ not applyTerminalString "LOADME" w = w & uvWorld . creatures . ix 0 . crInv .~ stackedInventory & uvWorld . creatures . ix 0 . crInvCapacity .~ 50 -applyTerminalString "GODON" u = u & uvWorld . creatures . ix 0 . crUpdate .~ toCrUpdate' (stateUpdateDamage clearDamage yourControl) -applyTerminalString "GODOFF" u = u & uvWorld . creatures . ix 0 . crUpdate .~ stateUpdate yourControl +--applyTerminalString "GODON" u = u +-- & uvWorld . creatures . ix 0 . crUpdate .~ (stateUpdateDamage' clearDamage yourControl) +--applyTerminalString "GODOFF" u = u & uvWorld . creatures . ix 0 . crUpdate .~ stateUpdate yourControl applyTerminalString "LOADTEST" w = w & uvWorld . creatures . ix 0 . crInv .~ testInventory & uvWorld . creatures . ix 0 . crInvCapacity .~ 50 applyTerminalString "LM" w = applyTerminalString "LOADME" w diff --git a/src/Dodge/Placement/Instance/Turret.hs b/src/Dodge/Placement/Instance/Turret.hs index b308fee44..6434389da 100644 --- a/src/Dodge/Placement/Instance/Turret.hs +++ b/src/Dodge/Placement/Instance/Turret.hs @@ -73,7 +73,7 @@ updateTurret rotSpeed mc w & crPict .~ (\cr _ _ -> drawCrEquipment cr) -- & crPict .~ basicCrPict red -- & crUpdate .~ (\cr -> crUpCrUp stepReloading cr . invSideEff cr) - & crUpdate .~ stateUpdate' (\cr w'' -> followImpulses w'' cr) + & crUpdate .~ stateUpdate (\cr w'' -> followImpulses w'' cr) & crStance . posture .~ Aiming Just cid -> w' & creatures . ix cid . crPos .~ mcpos diff --git a/src/Dodge/RemoveCreatureEndo.hs b/src/Dodge/RemoveCreatureEndo.hs deleted file mode 100644 index 9751581ac..000000000 --- a/src/Dodge/RemoveCreatureEndo.hs +++ /dev/null @@ -1,15 +0,0 @@ --- | stopgap module, making creature update simpler --- should probably end up removed after further refactoring -module Dodge.RemoveCreatureEndo - ( - toCrUpdate' - )where -import Dodge.Data -import Control.Lens - -toCrUpdate' :: (Creature -> World -> (World -> World, Maybe Creature)) - -> Creature - -> World - -> World -toCrUpdate' f cr w = let (fw,mcr) = f cr w - in fw $ w & creatures . at (_crID cr) .~ mcr