Partially working change to selected items
This commit is contained in:
+34
-32
@@ -143,32 +143,33 @@ floorItemPickupInfo n itm
|
||||
| n >= ceiling (_itInvSize itm) = ", but you have space to pick it up."
|
||||
| otherwise = ", and you don't have space to pick it up."
|
||||
|
||||
-- this should not produce Nothing, and the logic should be changed to reflect
|
||||
-- this
|
||||
yourAugmentedItem :: (Item -> a) -> a -> (Either FloorItem Button -> a) -> World -> a
|
||||
yourAugmentedItem f x g w
|
||||
| i < n = f $ yourInv w ^?! ix i
|
||||
| i == n = x
|
||||
| otherwise = g $ w ^?! hud . closeObjects . ix (i - n - 1)
|
||||
yourAugmentedItem f x g w = case you w ^? crInvSel . isel of
|
||||
Just (SelItem i _) -> f $ yourInv w ^?! ix i
|
||||
Just (SelCloseObject i) -> g $ w ^?! hud . closeObjects . ix (i - n - 1)
|
||||
_ -> x
|
||||
where
|
||||
i = crSel (you w)
|
||||
n = length $ yourInv w
|
||||
|
||||
drawNoSubInventory :: Configuration -> World -> Picture
|
||||
drawNoSubInventory cfig w =
|
||||
pictures
|
||||
[ closeobjectcursor
|
||||
, equipcursors
|
||||
[ --closeobjectcursor
|
||||
equipcursors
|
||||
, equipcursor -- the order is important, this should go on top of the other equipcursors
|
||||
, rboptions
|
||||
]
|
||||
where
|
||||
closeobjectcursor = case selectedCloseObject w of
|
||||
Nothing -> mempty
|
||||
Just (i, _) ->
|
||||
drawCursorAt
|
||||
(invDisplayParams w & ldpCursorType .~ BorderCursor [North, South])
|
||||
cfig
|
||||
(Just i)
|
||||
(inventorySelectionList w)
|
||||
-- closeobjectcursor = case selectedCloseObject w of
|
||||
-- Nothing -> mempty
|
||||
-- Just (i, _) ->
|
||||
-- drawCursorAt
|
||||
-- (invDisplayParams w & ldpCursorType .~ BorderCursor [North, South])
|
||||
-- cfig
|
||||
-- (Just i)
|
||||
-- (inventorySelectionList w)
|
||||
equipcursor = case cr ^. crLeftInvSel . lisMPos of
|
||||
Just invid -> f cyan invid (_crInvEquipped cr IM.! invid)
|
||||
_ -> mempty
|
||||
@@ -267,27 +268,28 @@ displayTerminal tid cfig w = fromMaybe mempty $ do
|
||||
| otherwise = []
|
||||
|
||||
drawRBOptions :: Configuration -> World -> RightButtonOptions -> Picture
|
||||
drawRBOptions cfig w EquipOptions{_opEquip = es, _opSel = i, _opAllocateEquipment = ae} =
|
||||
listPicturesAtOff 342 0 cfig (curpos - i) (map (text . eqPosText) es)
|
||||
<> case ae of
|
||||
DoNotMoveEquipment -> mempty
|
||||
PutOnEquipment{} ->
|
||||
midtext "PUT ONTO"
|
||||
MoveEquipment{} ->
|
||||
midtext "MOVE TO" <> extratext []
|
||||
SwapEquipment{_allocOldPos = oldp, _allocSwapID = sid} ->
|
||||
midtext "MOVE TO" <> extratext ("SWAPS " ++ otheritem sid ++ " ONTO " ++ eqPosText oldp)
|
||||
ReplaceEquipment{_allocRemoveID = rid} ->
|
||||
midtext "PUT ONTO" <> extratext ("REMOVES " ++ otheritem rid)
|
||||
RemoveEquipment{} ->
|
||||
midtext "TAKE OFF"
|
||||
drawRBOptions cfig w EquipOptions{_opEquip = es, _opSel = i, _opAllocateEquipment = ae}
|
||||
= fromMaybe mempty $ do
|
||||
curpos <- you w ^? crInvSel . isel . ispItem
|
||||
let midtext str = listTextPictureAt 252 0 cfig curpos (text str)
|
||||
let extratext str = listTextPictureAt 432 0 cfig curpos (text (str ++ deactivatetext))
|
||||
return $ listPicturesAtOff 342 0 cfig (curpos - i) (map (text . eqPosText) es)
|
||||
<> case ae of
|
||||
DoNotMoveEquipment -> mempty
|
||||
PutOnEquipment{} ->
|
||||
midtext "PUT ONTO"
|
||||
MoveEquipment{} ->
|
||||
midtext "MOVE TO" <> extratext []
|
||||
SwapEquipment{_allocOldPos = oldp, _allocSwapID = sid} ->
|
||||
midtext "MOVE TO" <> extratext ("SWAPS " ++ otheritem sid ++ " ONTO " ++ eqPosText oldp)
|
||||
ReplaceEquipment{_allocRemoveID = rid} ->
|
||||
midtext "PUT ONTO" <> extratext ("REMOVES " ++ otheritem rid)
|
||||
RemoveEquipment{} ->
|
||||
midtext "TAKE OFF"
|
||||
where
|
||||
midtext str = listTextPictureAt 252 0 cfig curpos (text str)
|
||||
extratext str = listTextPictureAt 432 0 cfig curpos (text (str ++ deactivatetext))
|
||||
deactivatetext = case w ^? rbOptions . opActivateEquipment . deactivateEquipment of
|
||||
Just k -> " DEACTIVATES " ++ show (_iyBase $ _itType (_crInv (you w) IM.! k))
|
||||
Nothing -> ""
|
||||
curpos = invSelPos w
|
||||
otheritem j = show $ _iyBase $ _itType (_crInv (you w) IM.! j)
|
||||
drawRBOptions _ _ _ = mempty
|
||||
|
||||
|
||||
Reference in New Issue
Block a user