Remove Machine Pistol update when fail firing
This commit is contained in:
+3
-13
@@ -373,16 +373,9 @@ applyCME loc cr cme
|
|||||||
. applySidePush spush cr
|
. applySidePush spush cr
|
||||||
. applyTorqueCME itm cr
|
. applyTorqueCME itm cr
|
||||||
. applyRecoil loc cr
|
. applyRecoil loc cr
|
||||||
| otherwise = case itm ^. itType of
|
| otherwise = failsound
|
||||||
HELD MACHINEPISTOL ->
|
|
||||||
cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix itid . itParams
|
|
||||||
.~ WarmTime (coolstart - 1) True Nothing
|
|
||||||
-- the above is quite hacky for now
|
|
||||||
_ -> failsound
|
|
||||||
where
|
where
|
||||||
itm = loc ^. locDT . dtValue . _1
|
itm = loc ^. locDT . dtValue . _1
|
||||||
coolstart = fromMaybe 0 $ baseItemTriggerType itm ^? coolStart
|
|
||||||
itid = itm ^?! itLocation . ilInvID -- unsafe
|
|
||||||
spush = maybe 0 itemSidePush $ itm ^? itType . ibtHeld
|
spush = maybe 0 itemSidePush $ itm ^? itType . ibtHeld
|
||||||
failsound w = case w ^? input . mouseButtons . ix SDL.ButtonLeft of
|
failsound w = case w ^? input . mouseButtons . ix SDL.ButtonLeft of
|
||||||
Just 0 -> soundStart (CrWeaponFailSound (_crID cr)) (_crPos cr) click1S Nothing w
|
Just 0 -> soundStart (CrWeaponFailSound (_crID cr)) (_crPos cr) click1S Nothing w
|
||||||
@@ -632,10 +625,11 @@ heldTorqueAmount = \case
|
|||||||
BLINKER -> 0
|
BLINKER -> 0
|
||||||
BLINKERUNSAFE -> 0
|
BLINKERUNSAFE -> 0
|
||||||
|
|
||||||
|
-- fugly
|
||||||
loadMuzzle :: LocationDT OItem -> Creature -> (Bool, World) -> Muzzle -> (Bool, World)
|
loadMuzzle :: LocationDT OItem -> Creature -> (Bool, World) -> Muzzle -> (Bool, World)
|
||||||
loadMuzzle loc cr (b, w) mz = maybe (b, w) (True,) $ do
|
loadMuzzle loc cr (b, w) mz = maybe (b, w) (True,) $ do
|
||||||
case mz ^. mzAmmoSlot of
|
case mz ^. mzAmmoSlot of
|
||||||
NoAmmoRequired -> return (doMuzzleEffect loc cr mz Nothing w)
|
NoAmmoRequired -> return (useLoadedAmmo loc cr mz Nothing w)
|
||||||
as -> do
|
as -> do
|
||||||
mag <- case as of
|
mag <- case as of
|
||||||
MagBelow mi _ -> find (isAmmoIntLink mi . (^. dtValue . _2)) (loc ^. locDT . dtLeft)
|
MagBelow mi _ -> find (isAmmoIntLink mi . (^. dtValue . _2)) (loc ^. locDT . dtLeft)
|
||||||
@@ -723,10 +717,6 @@ basicMuzFlare pos dir =
|
|||||||
isAmmoIntLink :: Int -> ItemSF -> Bool
|
isAmmoIntLink :: Int -> ItemSF -> Bool
|
||||||
isAmmoIntLink i sf = Just i == sf ^? amsfLink
|
isAmmoIntLink i sf = Just i == sf ^? amsfLink
|
||||||
|
|
||||||
doMuzzleEffect :: LocationDT OItem -> Creature -> Muzzle
|
|
||||||
-> Maybe (Int, DTree OItem) -> World -> World
|
|
||||||
doMuzzleEffect _ _ _ _ = id
|
|
||||||
|
|
||||||
useLoadedAmmo ::
|
useLoadedAmmo ::
|
||||||
LocationDT OItem ->
|
LocationDT OItem ->
|
||||||
Creature ->
|
Creature ->
|
||||||
|
|||||||
Reference in New Issue
Block a user