Fix bug concerning effects when dropping items
This commit is contained in:
+19
-20
@@ -1,23 +1,23 @@
|
||||
module Dodge.Euse where
|
||||
|
||||
import Color
|
||||
import Control.Monad
|
||||
import Data.Maybe
|
||||
import Dodge.LightSource
|
||||
import Dodge.Item.HeldOffset
|
||||
import Dodge.Wall.Create
|
||||
import Color
|
||||
import Dodge.Default.Wall
|
||||
import Dodge.Creature.Test
|
||||
import Dodge.Creature.HandPos
|
||||
import Geometry
|
||||
import Dodge.Wall.Move
|
||||
import Dodge.Wall.Delete
|
||||
import Dodge.Wall.ForceField
|
||||
import Dodge.Item.Location
|
||||
import Dodge.Creature.Test
|
||||
import Dodge.Data.World
|
||||
import Dodge.Default.Wall
|
||||
import Dodge.Item.HeldOffset
|
||||
import Dodge.Item.Location
|
||||
import Dodge.Item.Weapon.ExtraEffect
|
||||
import Dodge.Item.Weapon.Radar
|
||||
import Dodge.LightSource
|
||||
import Dodge.SoundLogic.ExternallyGeneratedSounds
|
||||
import Dodge.Wall.Create
|
||||
import Dodge.Wall.Delete
|
||||
import Dodge.Wall.ForceField
|
||||
import Dodge.Wall.Move
|
||||
import Geometry
|
||||
import qualified IntMapHelp as IM
|
||||
import LensHelp
|
||||
|
||||
@@ -32,7 +32,7 @@ useE eo = case eo of
|
||||
EonWristShield -> onEquipWristShield
|
||||
EoffWristShield -> onRemoveWristShield
|
||||
EFuelSource 0 _ -> const . const id
|
||||
EFuelSource {} -> trySiphonFuel
|
||||
EFuelSource{} -> trySiphonFuel
|
||||
|
||||
trySiphonFuel :: Item -> Creature -> World -> World
|
||||
trySiphonFuel itm cr w = fromMaybe w $ do
|
||||
@@ -45,14 +45,15 @@ trySiphonFuel itm cr w = fromMaybe w $ do
|
||||
amax <- la ^? laMax
|
||||
acur <- la ^? laLoaded
|
||||
guard (amax > acur)
|
||||
return $ w & cWorld . lWorld . creatures . ix (_crID cr) . crInv %~
|
||||
( (ix hix . itUse . heldConsumption . laLoaded +~ 1)
|
||||
. (ix eix . itUse . equipEffect . eeUse . euseFuelAmount -~ 1)
|
||||
)
|
||||
return $
|
||||
w & cWorld . lWorld . creatures . ix (_crID cr) . crInv
|
||||
%~ ( (ix hix . itUse . heldConsumption . laLoaded +~ 1)
|
||||
. (ix eix . itUse . equipEffect . eeUse . euseFuelAmount -~ 1)
|
||||
)
|
||||
|
||||
isGas :: AmmoType -> Bool
|
||||
isGas a = case a of
|
||||
GasAmmo {} -> True
|
||||
GasAmmo{} -> True
|
||||
_ -> False
|
||||
|
||||
useMagShield :: Item -> Creature -> World -> World
|
||||
@@ -87,9 +88,7 @@ onRemoveWristShield itm _ =
|
||||
return $ deleteWallID i
|
||||
|
||||
setWristShieldPos :: Item -> Creature -> World -> World
|
||||
setWristShieldPos itm cr w =
|
||||
w
|
||||
& moveWallIDUnsafe i wlline
|
||||
setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline
|
||||
where
|
||||
i = _eparamID $ _eeParams $ _equipEffect $ _itUse itm
|
||||
wlline = (f (V3 (-10) 7 0), f (V3 10 7 0))
|
||||
|
||||
Reference in New Issue
Block a user