Delete some reified action/impulse stuff
This commit is contained in:
@@ -130,7 +130,6 @@ performAction cr w ac = case ac of
|
||||
tcr <- w ^? cWorld . lWorld . creatures . ix i
|
||||
return $ ([TurnTo (tcr ^. crPos . _xy +.+ rotateV (_crDir tcr) p)], Nothing)
|
||||
UseSelf f -> performAction cr w $ doCrAc f cr
|
||||
UseAheadPos f -> performAction cr w (doP2Ac f (cr ^. crPos . _xy +.+ 20 *.* unitVectorAtAngle (_crDir cr)))
|
||||
UseMvTargetPos f -> performAction cr w $ doMP2Ac f $ _mvToPoint $ _crIntention cr
|
||||
ArbitraryAction f -> performAction cr w (doCrWdAc f cr w)
|
||||
DoImpulsesAlongside sideImp mainAc -> case performAction cr w mainAc of
|
||||
|
||||
@@ -62,18 +62,11 @@ followImpulse cr w imp = case imp of
|
||||
DropItem -> undefined
|
||||
ChangeStrategy strat -> crup $ cr & crActionPlan . apStrategy .~ strat
|
||||
AddGoal gl -> crup $ cr & crActionPlan . apGoal .:~ gl
|
||||
ArbitraryImpulseFunction f -> crup $ doWdCrCr f w cr
|
||||
ArbitraryImpulse f -> followImpulse cr w (doCrWdImp f cr w)
|
||||
ArbitraryImpulseEffect f -> (doCrWdWd f cr, cr)
|
||||
-- ImpulseUseTargetCID f -> fromMaybe (crup cr) $ do
|
||||
-- i <- cr ^? crIntention . targetCr . _Just
|
||||
-- tcr <- w ^? cWorld . lWorld . creatures . ix i
|
||||
-- return $ followImpulse cr w (doIntImp f $ _crID tcr)
|
||||
ImpulseUseTarget f -> fromMaybe (crup cr) $ do
|
||||
i <- cr ^? crIntention . targetCr . _Just
|
||||
tcr <- w ^? cWorld . lWorld . creatures . ix i
|
||||
return $ followImpulse cr w (doCrImp f tcr)
|
||||
ImpulseUseAheadPos f -> followImpulse cr w (doP2Imp f (cr ^. crPos . _xy +.+ 20 *.* unitVectorAtAngle (_crDir cr)))
|
||||
MvForward -> crup $ crMvForward speed (w ^. cWorld . lWorld) cr
|
||||
MvTurnToward p ->
|
||||
crup $
|
||||
|
||||
@@ -10,14 +10,6 @@ import Dodge.Path
|
||||
import Geometry
|
||||
import Control.Lens
|
||||
|
||||
doWdCrCr :: WdCrCr -> World -> Creature -> Creature
|
||||
doWdCrCr ce = case ce of
|
||||
NoCreatureEffect -> const id
|
||||
|
||||
doCrWdImp :: CrWdImp -> Creature -> World -> Impulse
|
||||
doCrWdImp cwi = case cwi of
|
||||
NoCrWdImp -> const $ const ImpulseNothing
|
||||
|
||||
doCrWdWd :: CrWdWd -> Creature -> World -> World
|
||||
doCrWdWd cww = case cww of
|
||||
CrWdWdId -> const id
|
||||
@@ -31,10 +23,6 @@ doCrImp ci = case ci of
|
||||
NoCrImp -> const ImpulseNothing
|
||||
TurnTowardCr x -> \cr -> TurnToward (cr ^. crPos . _xy) x
|
||||
|
||||
doP2Imp :: P2Imp -> Point2 -> Impulse
|
||||
doP2Imp p2i = case p2i of
|
||||
P2ImpNo -> const ImpulseNothing
|
||||
|
||||
doWdCrBl :: WdCrBl -> World -> Creature -> Bool
|
||||
doWdCrBl wcb = case wcb of
|
||||
WdCrTrue -> const $ const True
|
||||
@@ -64,10 +52,6 @@ doCrAc ca = case ca of
|
||||
--fleeFromTarget :: Creature -> Action
|
||||
--fleeFromTarget cr = fleeFrom cr (_targetCr (_crIntention cr))
|
||||
|
||||
doP2Ac :: P2Ac -> Point2 -> Action
|
||||
doP2Ac p2a = case p2a of
|
||||
P2NoAction -> const ActionNothing
|
||||
|
||||
doMP2Ac :: MP2Ac -> Maybe Point2 -> Action
|
||||
doMP2Ac mp2a = case mp2a of
|
||||
MP2NoAction -> const ActionNothing
|
||||
|
||||
@@ -43,20 +43,9 @@ data Impulse
|
||||
| MakeSound SoundID
|
||||
| ChangeStrategy Strategy
|
||||
| AddGoal Goal
|
||||
| ArbitraryImpulseFunction WdCrCr
|
||||
| ArbitraryImpulse CrWdImp
|
||||
| ArbitraryImpulseEffect CrWdWd
|
||||
-- | ImpulseUseTargetCID
|
||||
-- { _impulseUseTargetCID :: IntImp
|
||||
-- }
|
||||
| ImpulseUseTarget
|
||||
{ _impulseUseTarget :: CrImp
|
||||
}
|
||||
| ImpulseUseAheadPos
|
||||
{ _impulseUseAheadPos :: P2Imp
|
||||
}
|
||||
| ImpulseUseTarget { _impulseUseTarget :: CrImp }
|
||||
| ImpulseNothing
|
||||
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
deriving (Eq, Ord, Show) --Generic, Flat)
|
||||
|
||||
data RandImpulse
|
||||
@@ -152,9 +141,6 @@ data Action
|
||||
| UseSelf
|
||||
{ _useSelf :: CrAc
|
||||
}
|
||||
| UseAheadPos
|
||||
{ _useAheadPos :: P2Ac
|
||||
}
|
||||
| UseMvTargetPos
|
||||
{ _useMvTargetPos :: MP2Ac
|
||||
}
|
||||
|
||||
@@ -8,25 +8,16 @@ module Dodge.Data.CreatureEffect where
|
||||
import Data.Aeson
|
||||
import Data.Aeson.TH
|
||||
|
||||
data WdCrCr = NoCreatureEffect
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
data CrWdImp = NoCrWdImp
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
data CrWdWd = CrWdWdId
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
--data IntImp = NoIntImp
|
||||
-- deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
data CrImp
|
||||
= NoCrImp
|
||||
| TurnTowardCr Float -- turn amount
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
data P2Imp = P2ImpNo
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
--data P2Imp = P2ImpNo
|
||||
-- deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
data WdCrBl
|
||||
= WdCrTrue
|
||||
@@ -45,9 +36,6 @@ data CrBl
|
||||
data CrAc = CrTurnAround
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
data P2Ac = P2NoAction
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
data MP2Ac = MP2NoAction
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
@@ -57,15 +45,12 @@ data CrWdAc
|
||||
| ChooseMovementLtAuto
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
deriveJSON defaultOptions ''WdCrCr
|
||||
deriveJSON defaultOptions ''CrWdImp
|
||||
--deriveJSON defaultOptions ''WdCrCr
|
||||
--deriveJSON defaultOptions ''CrWdImp
|
||||
deriveJSON defaultOptions ''CrWdWd
|
||||
--deriveJSON defaultOptions ''IntImp
|
||||
deriveJSON defaultOptions ''CrImp
|
||||
deriveJSON defaultOptions ''P2Imp
|
||||
deriveJSON defaultOptions ''CrBl
|
||||
deriveJSON defaultOptions ''WdCrBl
|
||||
deriveJSON defaultOptions ''CrAc
|
||||
deriveJSON defaultOptions ''P2Ac
|
||||
deriveJSON defaultOptions ''MP2Ac
|
||||
deriveJSON defaultOptions ''CrWdAc
|
||||
|
||||
Reference in New Issue
Block a user