Require line of sight for creature targeting
This commit is contained in:
@@ -130,9 +130,6 @@ movementSideEff cr w
|
||||
|
||||
heldItemUpdate :: Int -> Item -> Item
|
||||
heldItemUpdate invid = (itIsHeld .~ True) . invItemUpdate invid
|
||||
-- . (itUse %~ useupdate)
|
||||
-- where
|
||||
-- useupdate = id
|
||||
|
||||
invItemUpdate :: Int -> Item -> Item
|
||||
invItemUpdate invid = (itUse %~ useupdate) . (itIsHeld .~ False) . (itInvPos ?~ invid)
|
||||
@@ -153,25 +150,17 @@ invSideEff cr w = weaponReloadSounds cr
|
||||
Just g -> g (_itEffect it) cr i w' & doitemupdate
|
||||
where
|
||||
doitemupdate
|
||||
| i == _crInvSel cr = doHeldItemTargeting cr . (itpointer %~ heldItemUpdate i)
|
||||
| otherwise = doNotHeldItemTargeting i cr . (itpointer %~ invItemUpdate i)
|
||||
| i == _crInvSel cr = doItemTargeting i cr . (itpointer %~ heldItemUpdate i)
|
||||
| otherwise = doItemTargeting i cr . (itpointer %~ invItemUpdate i)
|
||||
itpointer = creatures . ix (_crID cr) . crInv . ix i
|
||||
|
||||
doHeldItemTargeting :: Creature -> World -> World
|
||||
doHeldItemTargeting cr w = case cr ^? crInv . ix (_crInvSel cr) . itTargeting of
|
||||
doItemTargeting :: Int -> Creature -> World -> World
|
||||
doItemTargeting invid cr w = case cr ^? crInv . ix invid . itTargeting of
|
||||
Nothing -> w
|
||||
Just NoTargeting -> w
|
||||
Just t -> let (w',t') = _tgHeldUpdate t (_crInv cr IM.! _crInvSel cr) cr w t
|
||||
in w' & creatures . ix (_crID cr) . crInv . ix (_crInvSel cr) . itTargeting .~ t'
|
||||
-- & testString .~ const ["Held"]
|
||||
|
||||
doNotHeldItemTargeting :: Int -> Creature -> World -> World
|
||||
doNotHeldItemTargeting invid cr w = case cr ^? crInv . ix invid . itTargeting of
|
||||
Nothing -> w
|
||||
Just NoTargeting -> w
|
||||
Just t -> let (w',t') = _tgNotHeldUpdate t (_crInv cr IM.! invid) cr w t
|
||||
Just t -> let (w',t') = _tgUpdate t (_crInv cr IM.! invid) cr w t
|
||||
in w' & creatures . ix (_crID cr) . crInv . ix invid . itTargeting .~ t'
|
||||
-- & testString .~ const ["Not"]
|
||||
-- & testString .~ const ["Held"]
|
||||
|
||||
weaponReloadSounds :: Creature -> World -> World
|
||||
weaponReloadSounds cr w = case cr ^? crInv . ix (_crInvSel cr) . itConsumption of
|
||||
|
||||
Reference in New Issue
Block a user