Simplify item composition structure
This commit is contained in:
+10
-10
@@ -34,12 +34,12 @@ tryAttachItems ::
|
||||
tryAttachItems = leftRightCombine leftIsParentCombine rightIsParentCombine
|
||||
|
||||
useBreakL ::
|
||||
[(ItemStructuralFunction, CLinkType)] ->
|
||||
[(ItemStructuralFunction, CLinkType)] ->
|
||||
[(ItemStructuralFunction, ItemLink)] ->
|
||||
[(ItemStructuralFunction, ItemLink)] ->
|
||||
LinkTest
|
||||
useBreakL x y = useBreakListsLinkTest (map (uncurry noa) x) (map (uncurry noa) y)
|
||||
where
|
||||
noa a b = (a, ILink b)
|
||||
noa a b = (a, b)
|
||||
|
||||
useBreakListsLinkTest ::
|
||||
[(ItemStructuralFunction, ItemLink)] ->
|
||||
@@ -67,7 +67,7 @@ useBreakListsLinkTest llist rlist = LTest ltest rtest
|
||||
itemToBreakLists ::
|
||||
Item ->
|
||||
ItemStructuralFunction ->
|
||||
([(ItemStructuralFunction, CLinkType)], [(ItemStructuralFunction, CLinkType)])
|
||||
([(ItemStructuralFunction, ItemLink)], [(ItemStructuralFunction, ItemLink)])
|
||||
itemToBreakLists itm itmf = case (itm ^. itType, itmf) of
|
||||
(HELD TORCH, _) -> (getAmmoLinks itm, [])
|
||||
(ATTACH UNDERBARRELSLOT, _) -> ([(UnderBarrelPlatformSF, UnderBarrelPlatformLink)], [])
|
||||
@@ -117,12 +117,12 @@ itemToBreakLists itm itmf = case (itm ^. itType, itmf) of
|
||||
([(AmmoMagSF ElectricalAmmo, AmmoInLink 0 ElectricalAmmo)], [])
|
||||
_ -> ([], [])
|
||||
|
||||
getAutoSpringLinks :: Item -> [(ItemStructuralFunction, CLinkType)]
|
||||
getAutoSpringLinks :: Item -> [(ItemStructuralFunction, ItemLink)]
|
||||
getAutoSpringLinks itm = case itemTriggerType itm of
|
||||
HammerTrigger -> [(MakeAutoSF, MakeAutoLink)]
|
||||
_ -> []
|
||||
|
||||
extraWeaponLinks :: Item -> [(ItemStructuralFunction, CLinkType)]
|
||||
extraWeaponLinks :: Item -> [(ItemStructuralFunction, ItemLink)]
|
||||
extraWeaponLinks itm = case itm ^. itType of
|
||||
HELD GLAUNCHER -> launcherlinks <> [(GrenadeHitEffectSF,GrenadeHitEffectLink)]
|
||||
HELD RLAUNCHER -> launcherlinks
|
||||
@@ -131,14 +131,14 @@ extraWeaponLinks itm = case itm ^. itType of
|
||||
where
|
||||
launcherlinks = [(ProjectileStabiliserSF,ProjectileStabiliserLink)]
|
||||
|
||||
extraWeaponLinksBelow :: Item -> [(ItemStructuralFunction, CLinkType)]
|
||||
extraWeaponLinksBelow :: Item -> [(ItemStructuralFunction, ItemLink)]
|
||||
extraWeaponLinksBelow itm
|
||||
-- | Just TwoHandUnder <- itm ^? itUse . heldAim . aimStance
|
||||
| TwoHandUnder <- itemBaseStance itm
|
||||
= [(UnderBarrelSlotSF,UnderBarrelSlotLink)]
|
||||
| otherwise = []
|
||||
|
||||
getAmmoLinks :: Item -> [(ItemStructuralFunction, CLinkType)]
|
||||
getAmmoLinks :: Item -> [(ItemStructuralFunction, ItemLink)]
|
||||
getAmmoLinks itm =
|
||||
map
|
||||
(\(i, a) -> (AmmoMagSF a, AmmoInLink i a))
|
||||
@@ -215,7 +215,7 @@ llright itm pci = case pci ^. ldtValue . _1 . itType of
|
||||
toLasgunUpdate :: Item -> LinkUpdate
|
||||
toLasgunUpdate itm =
|
||||
LUpdate
|
||||
(ILink FunctionChangeLink)
|
||||
FunctionChangeLink
|
||||
(\(par, _, _) -> (par, HeldPlatformSF, uncurry useBreakL $ itemToBreakLists itm HeldPlatformSF))
|
||||
(\(chi, _, up) -> (chi, FunctionChangeSF, up))
|
||||
|
||||
@@ -225,7 +225,7 @@ springLinkTest = LTest (const Nothing) $
|
||||
CRAFT HARDWARE ->
|
||||
Just
|
||||
( LUpdate
|
||||
(ILink FunctionChangeLink)
|
||||
(FunctionChangeLink)
|
||||
(\(par, _, up) -> (par, MakeAutoSF, up))
|
||||
(\(chi, _, up) -> (chi, FunctionChangeSF, up))
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user