Remove equipment records
This commit is contained in:
@@ -12,14 +12,13 @@ import Dodge.Data.ArcStep
|
||||
|
||||
data ItemParams
|
||||
= NoParams
|
||||
| FlatShieldParams
|
||||
{_flatShieldWlMIX :: Maybe Int}
|
||||
| Arcing
|
||||
{ _currentArc :: [ArcStep]}
|
||||
| FlatShieldParams {_flatShieldWlMIX :: Maybe Int}
|
||||
| Arcing { _currentArc :: [ArcStep]}
|
||||
| NozzleAngle {_nzAngle :: Float}
|
||||
| VolleyUnfiredBarrels {_unfiredBarrels :: [Int]}
|
||||
| AlteRifleSwitch {_alteRifleSwitch :: Int}
|
||||
| WarmTime {_wTime :: Int}
|
||||
| ItemParamID {_itParamID :: Int}
|
||||
|
||||
data ShrinkGunStatus = FullSize | Shrunk
|
||||
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
@@ -17,8 +17,8 @@ data EquipEffect = EquipEffect
|
||||
{ _eeUse :: Euse --Item -> Creature -> World -> World
|
||||
, _eeOnEquip :: ItmCrWdWd --Item -> Creature -> World -> World
|
||||
, _eeOnRemove :: ItmCrWdWd --Item -> Creature -> World -> World
|
||||
, _eeParams :: EquipParams
|
||||
, _eeViewDist :: Maybe Float
|
||||
-- , _eeParams :: EquipParams
|
||||
-- , _eeViewDist :: Maybe Float
|
||||
-- , _eeAttachPos :: Point3
|
||||
}
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
@@ -30,15 +30,15 @@ data ItmCrWdWd
|
||||
| EoffWristShield
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
data EquipParams
|
||||
= NoEquipParams
|
||||
| EquipID {_eparamID :: Int}
|
||||
| EquipCounter {_eparamInt :: Int}
|
||||
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
--data EquipParams
|
||||
-- = NoEquipParams
|
||||
---- | EquipID {_eparamID :: Int}
|
||||
---- | EquipCounter {_eparamInt :: Int}
|
||||
-- deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
makeLenses ''EquipEffect
|
||||
makeLenses ''EquipParams
|
||||
--makeLenses ''EquipParams
|
||||
makeLenses ''ItmCrWdWd
|
||||
deriveJSON defaultOptions ''ItmCrWdWd
|
||||
deriveJSON defaultOptions ''EquipParams
|
||||
--deriveJSON defaultOptions ''EquipParams
|
||||
deriveJSON defaultOptions ''EquipEffect
|
||||
|
||||
@@ -11,6 +11,6 @@ defaultEquip =
|
||||
, _eeOnEquip = ItmCrWdWdDoNothing
|
||||
, _eeOnRemove = ItmCrWdWdDoNothing
|
||||
, _eeParams = NoEquipParams
|
||||
, _eeViewDist = Nothing
|
||||
-- , _eeViewDist = Nothing
|
||||
-- , _eeAttachPos = 0
|
||||
}
|
||||
|
||||
+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