This commit is contained in:
2022-03-25 12:00:35 +00:00
parent cb9bdf9c55
commit a07647d89d
5 changed files with 44 additions and 46 deletions
+11 -11
View File
@@ -47,16 +47,15 @@ stateUpdate :: (Creature -> World -> (World -> World, Creature))
-> Creature -> World -> World
stateUpdate = stateUpdateDamage doDamage
stateUpdateDamage :: (Creature -> (World -> World,Creature))
stateUpdateDamage :: (Creature -> World -> World)
-> (Creature -> World -> (World -> World, Creature))
-- -> CRUpdate
-> Creature -> World -> World
stateUpdateDamage damageupdate u cr w =
mvcrhammerup . invSideEff upcr . movementSideEff cr . deathEff . f . g $ w
& creatures . at (_crID cr) .~ (stepReloading <$> crOrCorpse upcr')
stateUpdateDamage damageupdate u cr w = damageupdate cr $
mvcrhammerup . invSideEff upcr . movementSideEff cr . deathEff . f $ w
& creatures . at (_crID cr) .~ (stepReloading <$> crOrCorpse upcr)
where
(f,upcr) = u (updateMovement cr) w
(g,upcr') = damageupdate upcr
mvcrhammerup = creatures . ix (_crID cr) . crHammerPosition %~ moveHammerUp
crOrCorpse cr'
| cr' ^. crHP > 0 = Just cr'
@@ -82,13 +81,14 @@ setOldPos cr = cr
& crOldPos .~ _crPos cr
& crOldDir .~ _crDir cr
clearDamage :: Creature -> (World-> World,Creature)
clearDamage cr = (id,cr&crState . crDamage .~ [])
clearDamage :: Creature -> World -> World
clearDamage cr = creatures . ix (_crID cr) . crState . crDamage .~ []
doDamage :: Creature -> (World -> World, Creature)
doDamage cr = set (_2 . crState . crDamage) []
. over (_2 . crState . crPastDamage) (advancePastDamages dams)
$ _crApplyDamage cr dams cr
doDamage :: Creature -> World -> World
doDamage cr w = w
& creatures . ix (_crID cr) . crState . crDamage .~ []
& creatures . ix (_crID cr) . crState . crPastDamage %~ advancePastDamages dams
& _crApplyDamage cr dams cr
where
dams = _crDamage $ _crState cr