From 80e5c69489edf7f1f879e67a9b2ac4cf2661abe7 Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 21 Sep 2024 22:00:31 +0100 Subject: [PATCH] Add file --- src/Dodge/Inventory/FindRoot.hs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/Dodge/Inventory/FindRoot.hs 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