Remove equipment records

This commit is contained in:
2025-06-05 15:18:59 +01:00
parent 482ed6514c
commit 619ad4edc8
5 changed files with 26 additions and 20 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+3 -4
View File
@@ -12,14 +12,13 @@ import Dodge.Data.ArcStep
data ItemParams data ItemParams
= NoParams = NoParams
| FlatShieldParams | FlatShieldParams {_flatShieldWlMIX :: Maybe Int}
{_flatShieldWlMIX :: Maybe Int} | Arcing { _currentArc :: [ArcStep]}
| Arcing
{ _currentArc :: [ArcStep]}
| NozzleAngle {_nzAngle :: Float} | NozzleAngle {_nzAngle :: Float}
| VolleyUnfiredBarrels {_unfiredBarrels :: [Int]} | VolleyUnfiredBarrels {_unfiredBarrels :: [Int]}
| AlteRifleSwitch {_alteRifleSwitch :: Int} | AlteRifleSwitch {_alteRifleSwitch :: Int}
| WarmTime {_wTime :: Int} | WarmTime {_wTime :: Int}
| ItemParamID {_itParamID :: Int}
data ShrinkGunStatus = FullSize | Shrunk data ShrinkGunStatus = FullSize | Shrunk
--deriving (Eq, Ord, Show, Read) --Generic, Flat) --deriving (Eq, Ord, Show, Read) --Generic, Flat)
+9 -9
View File
@@ -17,8 +17,8 @@ data EquipEffect = EquipEffect
{ _eeUse :: Euse --Item -> Creature -> World -> World { _eeUse :: Euse --Item -> Creature -> World -> World
, _eeOnEquip :: ItmCrWdWd --Item -> Creature -> World -> World , _eeOnEquip :: ItmCrWdWd --Item -> Creature -> World -> World
, _eeOnRemove :: ItmCrWdWd --Item -> Creature -> World -> World , _eeOnRemove :: ItmCrWdWd --Item -> Creature -> World -> World
, _eeParams :: EquipParams -- , _eeParams :: EquipParams
, _eeViewDist :: Maybe Float -- , _eeViewDist :: Maybe Float
-- , _eeAttachPos :: Point3 -- , _eeAttachPos :: Point3
} }
deriving (Eq, Ord, Show, Read) --Generic, Flat) deriving (Eq, Ord, Show, Read) --Generic, Flat)
@@ -30,15 +30,15 @@ data ItmCrWdWd
| EoffWristShield | EoffWristShield
deriving (Eq, Ord, Show, Read) --Generic, Flat) deriving (Eq, Ord, Show, Read) --Generic, Flat)
data EquipParams --data EquipParams
= NoEquipParams -- = NoEquipParams
| EquipID {_eparamID :: Int} ---- | EquipID {_eparamID :: Int}
| EquipCounter {_eparamInt :: Int} ---- | EquipCounter {_eparamInt :: Int}
deriving (Eq, Ord, Show, Read) --Generic, Flat) -- deriving (Eq, Ord, Show, Read) --Generic, Flat)
makeLenses ''EquipEffect makeLenses ''EquipEffect
makeLenses ''EquipParams --makeLenses ''EquipParams
makeLenses ''ItmCrWdWd makeLenses ''ItmCrWdWd
deriveJSON defaultOptions ''ItmCrWdWd deriveJSON defaultOptions ''ItmCrWdWd
deriveJSON defaultOptions ''EquipParams --deriveJSON defaultOptions ''EquipParams
deriveJSON defaultOptions ''EquipEffect deriveJSON defaultOptions ''EquipEffect
+1 -1
View File
@@ -11,6 +11,6 @@ defaultEquip =
, _eeOnEquip = ItmCrWdWdDoNothing , _eeOnEquip = ItmCrWdWdDoNothing
, _eeOnRemove = ItmCrWdWdDoNothing , _eeOnRemove = ItmCrWdWdDoNothing
, _eeParams = NoEquipParams , _eeParams = NoEquipParams
, _eeViewDist = Nothing -- , _eeViewDist = Nothing
-- , _eeAttachPos = 0 -- , _eeAttachPos = 0
} }
+12 -5
View File
@@ -56,24 +56,31 @@ useMagShield mt _ cr w = w & cWorld . lWorld . magnets .:~ themagnet
onEquipWristShield :: Item -> Creature -> World -> World onEquipWristShield :: Item -> Creature -> World -> World
onEquipWristShield itm cr w = onEquipWristShield itm cr w =
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} & 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 where
i = IM.newKey (w ^. cWorld . lWorld . walls) i = IM.newKey (w ^. cWorld . lWorld . walls)
onRemoveWristShield :: Item -> Creature -> World -> World onRemoveWristShield :: Item -> Creature -> World -> World
onRemoveWristShield itm _ = onRemoveWristShield itm _ =
(pointerToItem itm . itUse . uequipEffect . eeParams .~ NoEquipParams) . mremovewall --(pointerToItem itm . itUse . uequipEffect . eeParams .~ NoEquipParams) . mremovewall
(pointerToItem itm . itParams .~ NoParams) . mremovewall
where where
mremovewall = fromMaybe id $ do mremovewall = fromMaybe id $ do
i <- itm ^? itUse . uequipEffect . eeParams . eparamID --i <- itm ^? itUse . uequipEffect . eeParams . eparamID
i <- itm ^? itParams . itParamID
return $ deleteWallID i return $ deleteWallID i
setWristShieldPos :: Item -> Creature -> World -> World setWristShieldPos :: Item -> Creature -> World -> World
setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline
where 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)) wlline = (f (V3 (-10) 7 0), f (V3 10 7 0))
invid = _ilInvID (_itLocation itm) invid = _ilInvID (_itLocation itm)
handtrans = case cr ^? crInv . ix invid . itLocation . ilEquipSite . _Just of handtrans = case cr ^? crInv . ix invid . itLocation . ilEquipSite . _Just of