Fix tile rendering
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
module Dodge.Item.Attachment
|
||||
( charFiringStratI
|
||||
, scrollCharMode
|
||||
, decreaseFuse
|
||||
, increaseFuse
|
||||
, changeFuse
|
||||
)
|
||||
where
|
||||
import Dodge.Data
|
||||
@@ -18,27 +17,25 @@ import qualified Data.IntMap.Strict as IM
|
||||
scrollCharMode
|
||||
:: Float -- ^ Amount scrolled
|
||||
-> Creature
|
||||
-> World
|
||||
-> World
|
||||
scrollCharMode x cr
|
||||
| x > 0 = incCharMode (_crInvSel cr)
|
||||
| x < 0 = decCharMode (_crInvSel cr)
|
||||
-> Item
|
||||
-> Item
|
||||
scrollCharMode x _
|
||||
| x > 0 = incCharMode
|
||||
| x < 0 = decCharMode
|
||||
| otherwise = id
|
||||
|
||||
incCharMode
|
||||
:: Int -- ^ Inventory selection
|
||||
-> World
|
||||
-> World
|
||||
incCharMode i = creatures . ix 0 . crInv . ix i . itAttachment . itCharMode %~ cycleL
|
||||
:: Item
|
||||
-> Item
|
||||
incCharMode = itAttachment . itCharMode %~ cycleL
|
||||
where
|
||||
cycleL (x :<| xs) = xs |> x
|
||||
cycleL xs = xs
|
||||
|
||||
decCharMode
|
||||
:: Int -- ^ Inventory selection
|
||||
-> World
|
||||
-> World
|
||||
decCharMode i = creatures . ix 0 . crInv . ix i . itAttachment . itCharMode %~ cycleR
|
||||
:: Item
|
||||
-> Item
|
||||
decCharMode = itAttachment . itCharMode %~ cycleR
|
||||
where
|
||||
cycleR (xs :|> x) = x <| xs
|
||||
cycleR xs = xs
|
||||
@@ -59,32 +56,15 @@ charFiringStratI strats eff item cr w = case w ^? creatures . ix cid . crInv
|
||||
where
|
||||
cid = _crID cr
|
||||
|
||||
increaseFuse
|
||||
:: Int -- ^ Old fuse time
|
||||
-> Int -- ^ Inventory item reference (I believe)
|
||||
-> World
|
||||
-> World
|
||||
increaseFuse fuse itid w = w
|
||||
& creatures . ix 0 . crInv . ix itid %~
|
||||
( itScrollUp .~ decreaseFuse newTime )
|
||||
. (itScrollDown .~ increaseFuse newTime )
|
||||
. ( itAttachment .~ ItFuse newTime )
|
||||
. ( itAimZoom .~ defaultItZoom{_itZoomMax = zm, _itZoomMin = zm} )
|
||||
changeFuse
|
||||
:: Float -- ^ Old fuse time
|
||||
-> Creature -- ^ Inventory item reference (I believe)
|
||||
-> Item
|
||||
-> Item
|
||||
changeFuse scrollAmount _ it = it
|
||||
& ( itAttachment .~ ItFuse newTime )
|
||||
& ( itAimZoom .~ defaultItZoom{_itZoomMax = zm, _itZoomMin = zm} )
|
||||
where
|
||||
newTime = min (fuse + 5) 90
|
||||
zm = 50 / fromIntegral newTime
|
||||
|
||||
decreaseFuse
|
||||
:: Int -- ^ Old fuse time
|
||||
-> Int -- ^ Inventory item reference (I believe)
|
||||
-> World
|
||||
-> World
|
||||
decreaseFuse fuse itid w = w
|
||||
& creatures . ix 0 . crInv . ix itid %~
|
||||
( itScrollUp .~ decreaseFuse newTime )
|
||||
. ( itScrollDown .~ increaseFuse newTime )
|
||||
. ( itAttachment .~ ItFuse newTime )
|
||||
. ( itAimZoom .~ defaultItZoom {_itZoomMax = zm, _itZoomMin = zm} )
|
||||
where
|
||||
newTime = max (fuse - 5) 20
|
||||
oldTime = _itFuseTime $ _itAttachment it
|
||||
newTime = min 90 $ max 20 $ oldTime - round (5 * scrollAmount)
|
||||
zm = 50 / fromIntegral newTime
|
||||
|
||||
@@ -528,18 +528,16 @@ longGun = defaultGun
|
||||
longGunPic :: Picture
|
||||
longGunPic = pictures [color orange $ polygon $ rectNESW 2 12 (-2) (-12) ]
|
||||
|
||||
zoomLongGun :: Float -> Creature -> World -> World
|
||||
zoomLongGun x cr
|
||||
| x > 0 = startZoomInLongGun (_crInvSel cr)
|
||||
| x < 0 = startZoomOutLongGun (_crInvSel cr)
|
||||
zoomLongGun :: Float -> Creature -> Item -> Item
|
||||
zoomLongGun x _
|
||||
| x > 0 = startZoomInLongGun
|
||||
| x < 0 = startZoomOutLongGun
|
||||
| otherwise = id
|
||||
|
||||
startZoomInLongGun :: Int -> World -> World
|
||||
startZoomInLongGun _ w = w & creatures . ix 0 . crInv . ix (_crInvSel (_creatures w IM.! 0))
|
||||
. itAttachment . scopeZoomChange %~ \x -> max 5 (x + 5)
|
||||
startZoomOutLongGun :: Int -> World -> World
|
||||
startZoomOutLongGun _ w = w & creatures . ix 0 . crInv . ix (_crInvSel (_creatures w IM.! 0))
|
||||
. itAttachment . scopeZoomChange %~ \x -> min (-5) (x-5)
|
||||
startZoomInLongGun :: Item -> Item
|
||||
startZoomInLongGun = itAttachment . scopeZoomChange %~ \x -> max 5 (x + 5)
|
||||
startZoomOutLongGun :: Item -> Item
|
||||
startZoomOutLongGun = itAttachment . scopeZoomChange %~ \x -> min (-5) (x-5)
|
||||
poisonSprayer :: Item
|
||||
poisonSprayer = defaultAutoGun
|
||||
{ _itName = "POISON"
|
||||
@@ -828,8 +826,7 @@ grenade = Throwable
|
||||
, _itInvDisplay = basicWeaponDisplay
|
||||
, _itEffect = wpRecock
|
||||
, _itHammer = HammerUp
|
||||
, _itScrollUp = decreaseFuse fuseTime
|
||||
, _itScrollDown = increaseFuse fuseTime
|
||||
, _itScroll = changeFuse
|
||||
, _itAimStance = OneHand
|
||||
}
|
||||
where
|
||||
|
||||
@@ -37,7 +37,7 @@ bezierGun = defaultGun
|
||||
, _itFloorPict = onLayer FlItLayer bezierGunPic
|
||||
, _itEquipPict = pictureWeaponOnAim bezierGunPic
|
||||
, _itAttachment = NoItAttachment
|
||||
, _itScroll = removeItTarget 0
|
||||
, _itScroll = \_ _ -> removeItTarget
|
||||
, _itHammer = HammerUp
|
||||
, _itEffect = rbSetTarget
|
||||
, _itZoom = defaultItZoom
|
||||
|
||||
@@ -3,7 +3,7 @@ module Dodge.Item.Weapon.Targeting
|
||||
import Dodge.Data
|
||||
|
||||
import Control.Lens
|
||||
import qualified Data.IntMap.Strict as IM
|
||||
--import qualified Data.IntMap.Strict as IM
|
||||
useTargetPos
|
||||
:: (Maybe Point2 -> Creature -> World -> World)
|
||||
-> Creature
|
||||
@@ -13,8 +13,5 @@ useTargetPos f cr w = case cr ^? crInv . ix (_crInvSel cr) . itTargeting . _Just
|
||||
Nothing -> w
|
||||
Just (g,_) -> f (g w) cr w
|
||||
|
||||
removeItTarget :: Int -> Float -> Creature -> World -> World
|
||||
removeItTarget i _ _ w = w & creatures . ix i . crInv . ix itRef . itTargeting .~ Nothing
|
||||
where
|
||||
cr = _creatures w IM.! i
|
||||
itRef = _crInvSel cr
|
||||
removeItTarget :: Item -> Item
|
||||
removeItTarget = itTargeting .~ Nothing
|
||||
|
||||
Reference in New Issue
Block a user