Move function fields outside equipment
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user