Refactor world events
This commit is contained in:
@@ -94,7 +94,7 @@ type ChainEffect
|
||||
-> World
|
||||
|
||||
lockInvFor :: Int -> ChainEffect
|
||||
lockInvFor i f it cr = f it cr . (delayedEvents .:~ (i, unlockInv (_crID cr)))
|
||||
lockInvFor i f it cr = f it cr . (delayedEvents .:~ (i, UnlockInv (_crID cr)))
|
||||
. lockInv (_crID cr)
|
||||
|
||||
trigDoAlso'
|
||||
@@ -543,14 +543,10 @@ spreadLoaded eff item cr w = foldr f w dirs
|
||||
numBulLoaded = _laLoaded $ _itConsumption item
|
||||
|
||||
sideEffectOnFrame :: Int
|
||||
-> (Item -> Creature -> World -> World)
|
||||
-> (Item -> Creature -> WorldEffect)
|
||||
-> ChainEffect
|
||||
sideEffectOnFrame i sf f it cr w = f it cr w
|
||||
& delayedEvents .:~ (i, f')
|
||||
where
|
||||
f' w' = fromMaybe w' $ do
|
||||
cr' <- w' ^? creatures . ix (_crID cr)
|
||||
return $ sf it cr' w'
|
||||
& delayedEvents .:~ (i, sf it cr)
|
||||
|
||||
torqueSideEffect :: Float -> Item -> Creature -> World -> World
|
||||
torqueSideEffect torque _ cr w
|
||||
@@ -562,12 +558,13 @@ torqueSideEffect torque _ cr w
|
||||
|
||||
-- pump the updated creature into the chain in later frames
|
||||
repeatOnFrames :: [Int] -> ChainEffect
|
||||
repeatOnFrames is f it cr w = f it cr w
|
||||
& delayedEvents .++~ (is <&> (, f'))
|
||||
where
|
||||
f' w' = fromMaybe w' $ do
|
||||
cr' <- w' ^? creatures . ix (_crID cr)
|
||||
return $ f it cr' w'
|
||||
repeatOnFrames = const id
|
||||
--repeatOnFrames is f it cr w = f it cr w
|
||||
-- & delayedEvents .++~ (is <&> (, f'))
|
||||
-- where
|
||||
-- f' w' = fromMaybe w' $ do
|
||||
-- cr' <- w' ^? creatures . ix (_crID cr)
|
||||
-- return $ f it cr' w'
|
||||
|
||||
duplicateLoaded :: ChainEffect
|
||||
duplicateLoaded eff it cr w = foldr f w [1..numBul]
|
||||
|
||||
Reference in New Issue
Block a user