Cleanup, fix broken records in LeftUse

This commit is contained in:
2024-10-03 10:34:17 +01:00
parent e88b3c7443
commit 1953fb2d0c
19 changed files with 71 additions and 114 deletions
+5 -5
View File
@@ -83,24 +83,24 @@ useMagShield it cr w = w & cWorld . lWorld . magnets . at mgid ?~ themagnet
onEquipWristShield :: Item -> Creature -> World -> World
onEquipWristShield itm cr w =
w
& pointerToItem itm . itUse . equipEffect . eeParams .~ EquipID i
& pointerToItem itm . itUse . uequipEffect . eeParams .~ EquipID i
& cWorld . lWorld . walls . at i ?~ forceField{_wlID = i}
& setWristShieldPos (itm & itUse . equipEffect . eeParams .~ EquipID i) cr
& setWristShieldPos (itm & itUse . uequipEffect . eeParams .~ EquipID i) cr
where
i = IM.newKey (w ^. cWorld . lWorld . walls)
onRemoveWristShield :: Item -> Creature -> World -> World
onRemoveWristShield itm _ =
(pointerToItem itm . itUse . equipEffect . eeParams .~ NoEquipParams) . mremovewall
(pointerToItem itm . itUse . uequipEffect . eeParams .~ NoEquipParams) . mremovewall
where
mremovewall = fromMaybe id $ do
i <- itm ^? itUse . equipEffect . eeParams . eparamID
i <- itm ^? itUse . uequipEffect . eeParams . eparamID
return $ deleteWallID i
setWristShieldPos :: Item -> Creature -> World -> World
setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline
where
i = _eparamID $ _eeParams $ _equipEffect $ _itUse itm
i = _eparamID $ _eeParams $ _uequipEffect $ _itUse itm
wlline = (f (V3 (-10) 7 0), f (V3 10 7 0))
invid = _ilInvID (_itLocation itm)
handtrans = case cr ^? crInvEquipped . ix invid of