From 6622dd301860765ed16f29f74c9d1348d3aa0d41 Mon Sep 17 00:00:00 2001 From: Griffin Smith Date: Sun, 22 Dec 2019 23:22:25 -0500 Subject: 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. --- src/Xanthous/Entities/Character.hs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/Xanthous/Entities/Character.hs') diff --git a/src/Xanthous/Entities/Character.hs b/src/Xanthous/Entities/Character.hs index 5ddf33c29434..8a3e7c452082 100644 --- a/src/Xanthous/Entities/Character.hs +++ b/src/Xanthous/Entities/Character.hs @@ -20,6 +20,8 @@ module Xanthous.Entities.Character , hands , leftHand , rightHand + , inLeftHand + , inRightHand , doubleHanded , wieldedItems , WieldedItem(..) @@ -100,9 +102,15 @@ hands = prism' (uncurry Hands) $ \case leftHand :: Traversal' Wielded WieldedItem leftHand = hands . _1 . _Just +inLeftHand :: WieldedItem -> Wielded +inLeftHand wi = Hands (Just wi) Nothing + rightHand :: Traversal' Wielded WieldedItem rightHand = hands . _2 . _Just +inRightHand :: WieldedItem -> Wielded +inRightHand wi = Hands Nothing (Just wi) + doubleHanded :: Prism' Wielded WieldedItem doubleHanded = prism' DoubleHanded $ \case DoubleHanded i -> Just i -- cgit 1.4.1