Remove equipment records
This commit is contained in:
+12
-5
@@ -56,24 +56,31 @@ useMagShield mt _ cr w = w & cWorld . lWorld . magnets .:~ themagnet
|
||||
onEquipWristShield :: Item -> Creature -> World -> World
|
||||
onEquipWristShield itm cr w =
|
||||
w
|
||||
& pointerToItem itm . itUse . uequipEffect . eeParams .~ EquipID i
|
||||
-- & 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) cr
|
||||
& setWristShieldPos (itm
|
||||
-- & itUse . uequipEffect . eeParams .~ EquipID i
|
||||
& itParams .~ ItemParamID {_itParamID = i}
|
||||
) cr
|
||||
where
|
||||
i = IM.newKey (w ^. cWorld . lWorld . walls)
|
||||
|
||||
onRemoveWristShield :: Item -> Creature -> World -> World
|
||||
onRemoveWristShield itm _ =
|
||||
(pointerToItem itm . itUse . uequipEffect . eeParams .~ NoEquipParams) . mremovewall
|
||||
--(pointerToItem itm . itUse . uequipEffect . eeParams .~ NoEquipParams) . mremovewall
|
||||
(pointerToItem itm . itParams .~ NoParams) . mremovewall
|
||||
where
|
||||
mremovewall = fromMaybe id $ do
|
||||
i <- itm ^? itUse . uequipEffect . eeParams . eparamID
|
||||
--i <- itm ^? itUse . uequipEffect . eeParams . eparamID
|
||||
i <- itm ^? itParams . itParamID
|
||||
return $ deleteWallID i
|
||||
|
||||
setWristShieldPos :: Item -> Creature -> World -> World
|
||||
setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline
|
||||
where
|
||||
i = _eparamID $ _eeParams $ _uequipEffect $ _itUse itm
|
||||
--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)
|
||||
handtrans = case cr ^? crInv . ix invid . itLocation . ilEquipSite . _Just of
|
||||
|
||||
Reference in New Issue
Block a user