Move UseCondition out of record

This commit is contained in:
2025-06-05 19:41:33 +01:00
parent 16f5c05f19
commit 816ab4222f
15 changed files with 325 additions and 382 deletions
+8 -14
View File
@@ -3,11 +3,11 @@ module Dodge.Equipment (
effectOnEquip,
) where
import Dodge.Data.Equipment.Misc
import Control.Lens
import Data.Maybe
import Dodge.Creature.HandPos
import Dodge.Creature.Test
import Dodge.Data.Equipment.Misc
import Dodge.Data.World
import Dodge.Item.Location
import Dodge.Wall.Delete
@@ -18,34 +18,29 @@ import qualified IntMapHelp as IM
effectOnRemove :: Item -> Creature -> World -> World
effectOnRemove itm = case itm ^. itType of
EQUIP WRISTARMOUR -> onRemoveWristShield' itm
EQUIP WRISTARMOUR -> onRemoveWristShield itm
_ -> \_ -> id
onRemoveWristShield' :: Item -> Creature -> World -> World
onRemoveWristShield' itm _ =
--(pointerToItem itm . itUse . uequipEffect . eeParams .~ NoEquipParams) . mremovewall
onRemoveWristShield :: Item -> Creature -> World -> World
onRemoveWristShield itm _ =
(pointerToItem itm . itParams .~ NoParams) . mremovewall
where
mremovewall = fromMaybe id $ do
--i <- itm ^? itUse . uequipEffect . eeParams . eparamID
i <- itm ^? itParams . itParamID
return $ deleteWallID i
effectOnEquip :: Item -> Creature -> World -> World
effectOnEquip itm = case itm ^. itType of
EQUIP WRISTARMOUR -> onEquipWristShield' itm
EQUIP WRISTARMOUR -> onEquipWristShield itm
_ -> \_ -> id
onEquipWristShield' :: Item -> Creature -> World -> World
onEquipWristShield' itm cr w =
onEquipWristShield :: Item -> Creature -> World -> World
onEquipWristShield itm cr w =
w
-- & pointerToItem itm . itUse . uequipEffect . eeParams .~ EquipID i
& pointerToItem itm . itParams .~ ItemParamID{_itParamID = i}
& cWorld . lWorld . walls . at i ?~ forceField{_wlID = i}
& setWristShieldPos
( itm
-- & itUse . uequipEffect . eeParams .~ EquipID i
& itParams .~ ItemParamID{_itParamID = i}
( itm & itParams .~ ItemParamID{_itParamID = i}
)
cr
where
@@ -54,7 +49,6 @@ onEquipWristShield' itm cr w =
setWristShieldPos :: Item -> Creature -> World -> World
setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline
where
--i = _eparamID $ _eeParams $ _uequipEffect $ _itUse itm
i = _itParamID $ _itParams itm
wlline = (f (V3 (-10) 7 0), f (V3 10 7 0))
invid = _ilInvID (_itLocation itm)