Add prospective data types for more complex item attachments
This commit is contained in:
@@ -18,6 +18,15 @@ data ComposeLinkType
|
||||
| RemoteScreenLink
|
||||
deriving (Eq,Ord,Show,Read)
|
||||
|
||||
data ItemStructuralFunction
|
||||
= WeaponPlatformSF
|
||||
| WeaponScopeSF
|
||||
| WeaponBarrelAttachmentSF
|
||||
| AmmoMagazineSF
|
||||
| RemoteScreenSF
|
||||
| UncomposableIsolateSF
|
||||
deriving (Eq,Ord,Show,Read)
|
||||
|
||||
data ComposedItem = WeaponCI
|
||||
| WeaponScopeCI
|
||||
| WeaponTargetingCI
|
||||
|
||||
@@ -19,8 +19,23 @@ import Dodge.DoubleTree
|
||||
type ComposedItemStructure
|
||||
= (Item,ComposedItem,[(ComposeLinkType,ComposedItem)], [(ComposeLinkType,ComposedItem)])
|
||||
|
||||
type PartiallyComposedItem = (Item,ItemStructuralFunction,LinkTest)
|
||||
|
||||
type CIL = (ComposedItem,[(ComposeLinkType,ComposedItem)], [(ComposeLinkType,ComposedItem)])
|
||||
|
||||
data LinkTest = LinkTest
|
||||
{ _tryLeftLink :: PartiallyComposedItem -> Maybe LinkUpdate
|
||||
, _tryRightLink :: PartiallyComposedItem -> Maybe LinkUpdate
|
||||
}
|
||||
|
||||
-- may want to upgrade the children's possible links as well, but this is not obvious
|
||||
data LinkUpdate = LinkUpdate
|
||||
{ _luLinkType :: ComposeLinkType
|
||||
, _luNewLinkTest :: LinkTest
|
||||
, _luParentUpdate :: (Item,PartiallyComposedItem) -> (Item,PartiallyComposedItem)
|
||||
, _luChildUpdate :: (Item,PartiallyComposedItem) -> (Item,PartiallyComposedItem)
|
||||
}
|
||||
|
||||
cisToItem :: ComposedItemStructure -> Item
|
||||
cisToItem (x,_,_,_) = x
|
||||
|
||||
|
||||
Reference in New Issue
Block a user