Refactor, try to limit dependencies
This commit is contained in:
+11
-9
@@ -1,24 +1,26 @@
|
||||
module Dodge.HeldScroll
|
||||
( doHeldScroll
|
||||
) where
|
||||
import Dodge.Data
|
||||
import Dodge.Item.Weapon.ZoomScope
|
||||
import Control.Lens hiding ((|>),(<|))
|
||||
module Dodge.HeldScroll (
|
||||
doHeldScroll,
|
||||
) where
|
||||
|
||||
import Control.Lens hiding ((<|), (|>))
|
||||
import Data.Sequence
|
||||
import Dodge.Data.Creature
|
||||
import Dodge.Item.Weapon.ZoomScope
|
||||
-- should be able to just import data.item
|
||||
|
||||
doHeldScroll :: HeldScroll -> Float -> Creature -> Item -> Item
|
||||
doHeldScroll hs = case hs of
|
||||
HeldScrollDoNothing -> const . const id
|
||||
HeldScrollZoom -> zoomLongGun
|
||||
HeldScrollCharMode {} -> \ x _ -> itUse . heldScroll . hsCharMode %~ cycleSignum x
|
||||
HeldScrollInt {} -> undefined
|
||||
HeldScrollCharMode{} -> \x _ -> itUse . heldScroll . hsCharMode %~ cycleSignum x
|
||||
HeldScrollInt{} -> undefined
|
||||
|
||||
cycleSignum :: Float -> Seq a -> Seq a
|
||||
cycleSignum x
|
||||
| x > 0 = cycleL
|
||||
| otherwise = cycleR
|
||||
|
||||
cycleL,cycleR :: Seq a -> Seq a
|
||||
cycleL, cycleR :: Seq a -> Seq a
|
||||
cycleL (x :<| xs) = xs |> x
|
||||
cycleL xs = xs
|
||||
cycleR (xs :|> x) = x <| xs
|
||||
|
||||
Reference in New Issue
Block a user