Delete cruft, add Reader monad to some internal ai
This commit is contained in:
@@ -9,7 +9,7 @@ import Control.Lens
|
||||
strafeTo :: Float -> Point2 -> Int -> World -> World
|
||||
strafeTo speed targPos cid w = over (creatures . ix cid . crPos) (+.+ q) w
|
||||
where q = (*.*) (speed * equipFactor * wpFactor)
|
||||
$ safeNormalizeV $ (targPos -.- _crPos cr)
|
||||
$ safeNormalizeV $ targPos -.- _crPos cr
|
||||
equipFactor = product $ map equipSpeed $ IM.elems $ _crInv $ _creatures w IM.! cid
|
||||
cr = _creatures w IM.! cid
|
||||
wpFactor = _itAimingSpeed (_crInv cr IM.! _crInvSel cr)
|
||||
|
||||
@@ -7,10 +7,13 @@ import Dodge.Inventory
|
||||
import qualified Data.IntMap as IM
|
||||
|
||||
import Control.Lens
|
||||
import Data.Maybe (fromMaybe)
|
||||
import Data.Maybe (maybe)
|
||||
|
||||
useItem :: Int -> World -> World
|
||||
useItem n w = equippedItemEffect n w
|
||||
useItem n w = itemEffect n it w
|
||||
where
|
||||
c = _creatures w IM.! n
|
||||
it = _crInv c IM.! _crInvSel c
|
||||
|
||||
crUseItem :: Creature -> World -> World
|
||||
--crUseItem cr = itemEffect (_crID cr) (_crInv cr IM.! _crInvSel cr)
|
||||
@@ -24,18 +27,12 @@ tryUseItem cid w = case w ^? creatures . ix cid of
|
||||
Just cr -> itemEffect cid (_crInv cr IM.! _crInvSel cr) w
|
||||
Nothing -> w
|
||||
|
||||
equippedItemEffect :: Int -> World -> World
|
||||
equippedItemEffect n w = itemEffect n it w
|
||||
where
|
||||
c = _creatures w IM.! n
|
||||
it = _crInv c IM.! _crInvSel c
|
||||
|
||||
itemEffect
|
||||
:: Int -- ^ Creature id (I am almost certain)
|
||||
-> Item
|
||||
-> World
|
||||
-> World
|
||||
itemEffect n (Consumable {_cnEffect=eff }) w = fromMaybe w $ rmSelectedInvItem n <$> eff n w
|
||||
itemEffect n (Weapon {_wpFire=eff}) w = eff n w
|
||||
itemEffect n (Throwable {_twFire = eff}) w = eff n w
|
||||
itemEffect n Consumable{_cnEffect=eff } w = maybe w (rmSelectedInvItem 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
|
||||
|
||||
Reference in New Issue
Block a user