diff --git a/src/Dodge/Data/MuzzleEffect.hs b/src/Dodge/Data/MuzzleEffect.hs index 0bf5b9cb6..d5cfe0f27 100644 --- a/src/Dodge/Data/MuzzleEffect.hs +++ b/src/Dodge/Data/MuzzleEffect.hs @@ -12,9 +12,7 @@ import Control.Lens --import Dodge.Data.Item.Use.Consumption.Ammo data CumulativeMuzzleEffect = CME - { _cmeRecoil :: Float - , _cmeTorque :: Float - , _cmeSound :: Bool + { _cmeSound :: Bool } deriving (Eq, Ord, Show, Read) diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index ffcb4ead3..6c1918965 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -138,7 +138,7 @@ heldEffectMuzzles :: LabelDoubleTree ComposeLinkType Item -> Creature -> World - heldEffectMuzzles t cr w = doHeldUseEffect t cr . uncurry (applyCME (_ldtValue t) cr) . - foldl' (useLoadedAmmo t cr) (CME 0 0 False, w) $ zip [0 ..] loadedmuzzles + foldl' (useLoadedAmmo t cr) (CME False, w) $ loadedmuzzles where -- & doWeaponRepetitions upitm cr @@ -558,10 +558,10 @@ useLoadedAmmo :: LabelDoubleTree ComposeLinkType Item -> Creature -> (CumulativeMuzzleEffect, World) -> - (Int, Maybe (Muzzle, Int, LabelDoubleTree ComposeLinkType Item)) -> + Maybe (Muzzle, Int, LabelDoubleTree ComposeLinkType Item) -> (CumulativeMuzzleEffect, World) -useLoadedAmmo _ _ (cme, w) (_, Nothing) = (cme, w) -useLoadedAmmo itmtree cr (cme, w) (mzid, Just (mz, x, magtree)) = (,) (cme & cmeSound .~ True) $ +useLoadedAmmo _ _ (cme, w) Nothing = (cme, w) +useLoadedAmmo itmtree cr (cme, w) (Just (mz, x, magtree)) = (,) (cme & cmeSound .~ True) $ removeAmmoFromMag x mid cr . makeMuzzleFlare mz itmtree cr $ case _mzEffect mz of MuzzleShootBullet -> shootBullet itmtree cr (mz, x, magtree) w MuzzleLaser -> creatureShootLaser itmtree cr mz w @@ -576,7 +576,7 @@ useLoadedAmmo itmtree cr (cme, w) (mzid, Just (mz, x, magtree)) = (,) (cme & cme mz cr w - MuzzleNozzle{} -> useGasParams mid mz itm cr $ walkNozzle mzid mz itm cr w + MuzzleNozzle{} -> useGasParams mid mz itm cr $ walkNozzle mz itm cr w MuzzleShatter -> shootShatter itm cr w MuzzleDetector -> itemDetectorEffect @@ -615,20 +615,14 @@ itemDetectorEffect itm mitid armitid cr w = fromMaybe w $ do f CREATUREDETECTOR = ObCreature f WALLDETECTOR = ObWall -walkNozzle :: Int -> Muzzle -> Item -> Creature -> World -> World -walkNozzle mzid mz itm cr w = fromMaybe w $ do +walkNozzle :: Muzzle -> Item -> Creature -> World -> World +walkNozzle mz itm cr w = fromMaybe w $ do invid <- itm ^? itLocation . ilInvID return $ w & cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itParams . nzAngle %~ f --- . itUse --- . heldMuzzles --- . ix mzid --- . mzEffect --- . nzCurrentWalkAngle --- .~ wa & randGen .~ g where nz = _mzEffect mz @@ -636,7 +630,6 @@ walkNozzle mzid mz itm cr w = fromMaybe w $ do aspeed = _nzWalkSpeed nz maxa = _nzMaxWalkAngle nz f x = min maxa $ max (negate maxa) (x + walkamount) --- wa = min maxa $ max (negate maxa) (_nzCurrentWalkAngle nz + walkamount) shootTractorBeam :: Creature -> World -> World shootTractorBeam cr w =