Move function fields outside equipment

This commit is contained in:
2022-07-20 20:40:13 +01:00
parent e9f0130013
commit 845c1f282e
14 changed files with 87 additions and 29 deletions
+5 -3
View File
@@ -4,6 +4,8 @@ module Dodge.Creature.Impulse.UseItem
) where
import Dodge.Data
import Dodge.Luse
import Dodge.Cuse
import Dodge.Euse
import Dodge.Inventory
import Dodge.Reloading
import Dodge.Item.Location
@@ -31,7 +33,7 @@ itemEffect cr it w = case it ^? itUse of
Just LeftUse {} -> doequipmentchange
Just EquipUse{} -> doequipmentchange
-- ConsumeUse will cause problems if the item is not selected
Just (ConsumeUse eff) -> setuhamdown $ hammerTest $ eff it cr . rmInvItem (_crID cr) (crSel cr)
Just (ConsumeUse eff) -> setuhamdown $ hammerTest $ (useC eff) it cr . rmInvItem (_crID cr) (crSel cr)
Just NoUse -> setuhamdown w
Nothing -> setuhamdown w
where
@@ -92,8 +94,8 @@ toggleEquipmentAt rbops invid cr w = case rbops ^? opAllocateEquipment of
crpoint = creatures . ix (_crID cr)
itmat i = _crInv cr IM.! i
itm = itmat (crSel cr)
onequip itm' = (_eqOnEquip . _eqEq . _itUse) itm' itm'
onremove itm' = (_eqOnRemove . _eqEq . _itUse) itm' itm'
onequip itm' = useE ((_eqOnEquip . _eqEq . _itUse) itm') itm'
onremove itm' = useE ((_eqOnRemove . _eqEq . _itUse) itm') itm'
useLeftItem :: Int -> World -> World
useLeftItem cid w
+2 -1
View File
@@ -3,6 +3,7 @@ module Dodge.Creature.State
, doDamage
) where
import Dodge.Data
import Dodge.Euse
import Dodge.EnergyBall
import Dodge.Damage
import Dodge.Hammer
@@ -181,7 +182,7 @@ useUpdate = (useHammer %~ moveHammerUp)
. (useDelay . rateTime %~ decreaseToZero)
useEquipment :: Creature -> Int -> World -> World
useEquipment cr i = _eqUse (_eqEq $ _itUse itm) itm cr
useEquipment cr i = useE (_eqUse (_eqEq $ _itUse itm)) itm cr
where
itm = _crInv cr IM.! i
-- a map updating all inventory items