diff --git a/src/Dodge/Inventory/FindRoot.hs b/src/Dodge/Inventory/FindRoot.hs new file mode 100644 index 000000000..517261698 --- /dev/null +++ b/src/Dodge/Inventory/FindRoot.hs @@ -0,0 +1,17 @@ +module Dodge.Inventory.FindRoot where + +import Dodge.Item.Grammar +import Dodge.Data.Creature +import Data.Maybe +import Control.Lens + +getRootItemID :: Int -> Creature -> Int +getRootItemID i cr = fromMaybe i $ do + let adj = invAdj (_crInv cr) + adj ^? ix i . _1 . _Just . _1 + +updateRootItemID :: Creature -> Creature +updateRootItemID cr = fromMaybe cr $ do + i <- cr ^? crManipulation . manObject . inInventory . imSelectedItem + return $ cr & crManipulation . manObject . inInventory . imRootItem .~ + getRootItemID i cr