Tweak parameters on bezier gun, abstract out random accuracy direction

This commit is contained in:
2021-03-16 13:56:19 +01:00
parent ca5ff88522
commit 875679d25f
6 changed files with 69 additions and 87 deletions
+12 -12
View File
@@ -9,10 +9,10 @@ import qualified Data.IntMap as IM
import Control.Lens
import Data.Maybe (fromMaybe)
useItemContinuous :: Int -> World -> World
useItemContinuous n w = case (_crInv cr IM.! _crInvSel cr) ^? itHammer of
Just HammerUp -> useItem1 n $ setHammerDown w
Just NoHammer -> useItem1 n w
useItem :: Int -> World -> World
useItem n w = case (_crInv cr IM.! _crInvSel cr) ^? itHammer of
Just HammerUp -> equippedItemEffect n $ setHammerDown w
Just NoHammer -> equippedItemEffect n w
_ -> setHammerDown w
where
cr = _creatures w IM.! n
@@ -20,16 +20,16 @@ useItemContinuous n w = case (_crInv cr IM.! _crInvSel cr) ^? itHammer of
tryUseItem :: Int -> World -> World
tryUseItem cid w = case w ^? creatures . ix cid of
Just cr -> useItem2 cid (_crInv cr IM.! _crInvSel cr) w
Just cr -> itemEffect cid (_crInv cr IM.! _crInvSel cr) w
Nothing -> w
useItem1 :: Int -> World -> World
useItem1 n w = useItem2 n it w
equippedItemEffect :: Int -> World -> World
equippedItemEffect n w = itemEffect n it w
where c = (_creatures w IM.! n)
it = _crInv c IM.! _crInvSel c
useItem2 :: Int -> Item -> World -> World
useItem2 n (Consumable {_cnEffect=eff }) w = fromMaybe w $ fmap (rmInvItem n) $ eff n w
useItem2 n (Weapon {_wpFire=eff}) w = eff n w
useItem2 n (Throwable {_twFire = eff}) w = eff n w
useItem2 _ _ w = w
itemEffect :: Int -> Item -> World -> World
itemEffect n (Consumable {_cnEffect=eff }) w = fromMaybe w $ fmap (rmInvItem n) $ eff n w
itemEffect n (Weapon {_wpFire=eff}) w = eff n w
itemEffect n (Throwable {_twFire = eff}) w = eff n w
itemEffect _ _ w = w