diff options
author | Griffin Smith <root@gws.fyi> | 2019-12-23T04·22-0500 |
---|---|---|
committer | Griffin Smith <root@gws.fyi> | 2019-12-23T04·22-0500 |
commit | 6622dd301860765ed16f29f74c9d1348d3aa0d41 (patch) | |
tree | c8936207422e9ae884ba73ce0309603b0a6004f8 /src/Xanthous/Util.hs | |
parent | 5b1c7799a76480335f838356ad78bed50715d4c0 (diff) |
Add a wield command
Add a Wield command, which prompts for a wieldable item, if any, to take out of the character's inventory and put in their right hand. Eventually we should support other hands, but for now hardcoding the right hand should be fine.
Diffstat (limited to 'src/Xanthous/Util.hs')
-rw-r--r-- | src/Xanthous/Util.hs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/Xanthous/Util.hs b/src/Xanthous/Util.hs index 814f9371150f..b8b789e1b1ea 100644 --- a/src/Xanthous/Util.hs +++ b/src/Xanthous/Util.hs @@ -25,17 +25,19 @@ module Xanthous.Util -- ** Bag sequence algorithms , takeWhileInclusive , smallestNotIn + , removeVectorIndex -- * Type-level programming utils , KnownBool(..) ) where -------------------------------------------------------------------------------- -import Xanthous.Prelude hiding (foldr) +import Xanthous.Prelude hiding (foldr) -------------------------------------------------------------------------------- -import Test.QuickCheck.Checkers -import Data.Foldable (foldr) -import Data.Monoid -import Data.Proxy +import Test.QuickCheck.Checkers +import Data.Foldable (foldr) +import Data.Monoid +import Data.Proxy +import qualified Data.Vector as V -------------------------------------------------------------------------------- newtype EqEqProp a = EqEqProp a @@ -210,6 +212,12 @@ smallestNotIn xs = case uniq $ sort xs of | otherwise -> snd . headEx . filter (uncurry (/=)) $ zip (xs' ++ [minBound]) [minBound..] +-- | Remove the element at the given index, if any, from the given vector +removeVectorIndex :: Int -> Vector a -> Vector a +removeVectorIndex idx vect = + let (before, after) = V.splitAt idx vect + in before <> fromMaybe Empty (tailMay after) + -------------------------------------------------------------------------------- -- | This class gives a boolean associated with a type-level bool, a'la |