Delete cruft, add Reader monad to some internal ai
This commit is contained in:
+10
-66
@@ -9,10 +9,8 @@ module Dodge.Creature
|
||||
where
|
||||
import Dodge.Creature.Stance.Data
|
||||
import Dodge.Creature.State.Data
|
||||
import Dodge.Creature.Impulse.Data
|
||||
import Dodge.Creature.ImpulseRat
|
||||
import Dodge.Creature.ActionRat
|
||||
import Dodge.Creature.Rationality.Data
|
||||
import Dodge.Creature.AlertLevel
|
||||
import Dodge.Creature.SetTarget
|
||||
import Dodge.Creature.Test
|
||||
@@ -21,7 +19,6 @@ import Dodge.Creature.PistolCrit
|
||||
import Dodge.Creature.LtAutoCrit
|
||||
import Dodge.Creature.SpreadGunCrit
|
||||
import Dodge.Data
|
||||
import Dodge.AIs
|
||||
import Dodge.Default
|
||||
import Dodge.Base
|
||||
import Dodge.Item.Weapon
|
||||
@@ -35,7 +32,6 @@ import Dodge.Creature.Rationality
|
||||
import Dodge.Creature.ChooseTarget
|
||||
import Dodge.Item
|
||||
import Dodge.Picture.Layer
|
||||
import Dodge.Creature.Picture
|
||||
import Picture
|
||||
import Geometry
|
||||
|
||||
@@ -63,7 +59,6 @@ spawnerCrit = defaultCreature
|
||||
{ --_crUpdate = stateUpdate $ spawnerAI chaseCrit
|
||||
_crHP = 300
|
||||
, _crPict = basicCrPict blue
|
||||
, _crState = defaultState {_goals = [[WaitFor 0]] }
|
||||
, _crInv = IM.empty -- IM.fromList [(0,frontArmour)]
|
||||
}
|
||||
smallChaseCrit :: Creature
|
||||
@@ -78,10 +73,11 @@ smallChaseCrit = defaultCreature
|
||||
}
|
||||
chaseCrit :: Creature
|
||||
chaseCrit = defaultCreature
|
||||
{ _crUpdate = stateUpdate $ impulsiveAI $ composeInternalAIs
|
||||
[ chaseTarget targetYouLOS
|
||||
, \ _ -> crMeleeCooldown . _Just %~ (max 0 . subtract 1)
|
||||
]
|
||||
{ _crUpdate = stateUpdate $ impulsiveAIR $
|
||||
chaseTargetR targetYouLOS <=<
|
||||
overrideMeleeCloseTargetR <=<
|
||||
basicPerceptionUpdateR [0] <=<
|
||||
return . (crMeleeCooldown . _Just %~ (max 0 . subtract 1))
|
||||
, _crHP = 300
|
||||
, _crPict = basicCrPict green
|
||||
, _crInv = IM.empty
|
||||
@@ -93,7 +89,6 @@ armourChaseCrit = defaultCreature
|
||||
{ _crUpdate = stateUpdate $ meleeCooldown $ impulsiveAI $ chaseTarget targetYouLOS
|
||||
, _crHP = 300
|
||||
, _crPict = basicCrPict green
|
||||
, _crState = defaultState {_goals = [[Wait]]}
|
||||
, _crInv = IM.fromList
|
||||
[(0,frontArmour)
|
||||
,(1,medkit 200)
|
||||
@@ -139,7 +134,6 @@ longCrit = defaultCreature
|
||||
, _crInv = IM.fromList [(0,longGun),(1,medkit 100)]
|
||||
, _crInvSel = 0
|
||||
, _crRad = 10
|
||||
, _crState = defaultState {_goals = [[InitGuard]]}
|
||||
, _crHP = 300
|
||||
}
|
||||
multGunCrit :: Creature
|
||||
@@ -149,7 +143,6 @@ multGunCrit = defaultCreature
|
||||
, _crInv = IM.fromList [(0,multGun),(1,medkit 100)]
|
||||
, _crInvSel = 0
|
||||
, _crRad = 10
|
||||
, _crState = defaultState {_goals = [[InitGuard]]}
|
||||
, _crHP = 300
|
||||
, _crUpdate = stateUpdate $ impulsiveAI $ composeInternalAIs
|
||||
[ performActions
|
||||
@@ -197,68 +190,21 @@ autoCrit = defaultCreature
|
||||
, _crInv = IM.fromList [(0,autoGun),(1,medkit 100)]
|
||||
, _crInvSel = 0
|
||||
, _crRad = 10
|
||||
, _crState = defaultState {_goals = [[InitGuard]]}
|
||||
, _crHP = 300
|
||||
}
|
||||
addArmour :: Creature -> Creature
|
||||
addArmour = over crInv insarmour
|
||||
where
|
||||
insarmour xs = IM.insert (newKey xs) frontArmour xs
|
||||
|
||||
--packCrits :: (Int -> World -> World) -> [Int] -> [Creature]
|
||||
--packCrits ai is = [(defaultCreature i)
|
||||
-- { _crPos = (150,10+20*fromIntegral i)
|
||||
-- , _crPict = swarmPict
|
||||
-- , _crUpdate = ai i
|
||||
-- --, _crUpdate = swarmAI is i
|
||||
-- , _crRad = 3
|
||||
-- , _crHP = 1
|
||||
-- , _crMass = 2
|
||||
-- }
|
||||
-- | i <- is]
|
||||
|
||||
--queenBeeCrit :: Int -> Creature
|
||||
--queenBeeCrit cID = (defaultCreature cID)
|
||||
-- { _crRad = 20
|
||||
-- , _crCorpse = color (greyN 0.5) $ circleSolid 20
|
||||
-- , _crPict = const $ pictures [color black $ circSolid 20
|
||||
-- ,color yellow $ circLine 20
|
||||
-- ]
|
||||
-- , _crUpdate = checkDead cID . makeStateAI queenBeeAI cID
|
||||
-- , _crState = QueenBee 0 20
|
||||
-- , _crMass = 20
|
||||
-- }
|
||||
|
||||
--antCrit :: Int -> Creature
|
||||
--antCrit cID = (defaultCreature cID)
|
||||
-- { _crPos = (0,100 + 3 * fromIntegral cID)
|
||||
-- , _crUpdate = checkDead cID . makeStateAI (antAI 2) cID
|
||||
-- , _crState = AntMove 50
|
||||
-- , _crPict = antPic
|
||||
-- , _crRad = 3
|
||||
-- , _crHP = 1
|
||||
-- , _crMass = 2
|
||||
-- , _crCorpse = color (greyN 0.5) $ circSolid 3
|
||||
-- }
|
||||
-- where i = evalState (state (randomR (1::Int,100))) (mkStdGen cID)
|
||||
--antPic = const $ pictures [ translate (-1) 0 $ circleSolid 2
|
||||
-- , translate (2) 0 $ circleSolid 1
|
||||
-- , translate (1) 0 $ circleSolid 1
|
||||
-- , line [(3,3),(-3,-3)]
|
||||
-- , line [(-3,3),(3,-3)]
|
||||
-- , line [(0,-3),(0,3)]
|
||||
-- ]
|
||||
{- |
|
||||
The creature you control.
|
||||
ID 0.
|
||||
-}
|
||||
{- | The creature you control.
|
||||
ID 0. -}
|
||||
startCr :: Creature
|
||||
startCr = defaultCreature
|
||||
{ _crPos = (0,0)
|
||||
, _crOldPos = (0,0)
|
||||
, _crDir = 0
|
||||
, _crID = 0
|
||||
, _crPict = basicCrPict $ black
|
||||
, _crPict = basicCrPict black
|
||||
, _crUpdate = stateUpdate yourControl
|
||||
, _crRad = 10
|
||||
, _crMass = 10
|
||||
@@ -268,9 +214,7 @@ startCr = defaultCreature
|
||||
, _crCorpse = onLayer CorpseLayer $ color (greyN 0.5) $ pictures [color (greyN 0.8) $ circleSolid 10, circLine 10]
|
||||
, _crFaction = PlayerFaction
|
||||
}
|
||||
{- |
|
||||
Items you start with.
|
||||
-}
|
||||
{- | Items you start with. -}
|
||||
startInventory = IM.fromList (zip [0..20]
|
||||
(
|
||||
[bezierGun
|
||||
@@ -298,5 +242,5 @@ startInventory = IM.fromList (zip [0..20]
|
||||
++
|
||||
repeat NoItem))
|
||||
|
||||
smokeGenGun = effectGun "smoke" $ \_ -> spawnSmokeAtCursor
|
||||
smokeGenGun = effectGun "smoke" $ const spawnSmokeAtCursor
|
||||
|
||||
|
||||
Reference in New Issue
Block a user