Remove equipment records
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user