diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index 8a5e73f27..a4cdedc4c 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -45,9 +45,7 @@ import Sound.Data gadgetEffect :: PressType -> LocationDT OItem -> Creature -> World -> World gadgetEffect pt loc | UseHeld{} <- loc ^. locDT . dtValue . _1 . itUse = - heldEffect - pt - loc + heldEffect pt loc | DROPPER x <- loc ^. locDT . dtValue . _1 . itType , Just i <- loc ^? locDT . dtValue . _1 . itUse . uInt , pt == InitialPress = @@ -98,8 +96,8 @@ hammerCheck f pt loc cr w = case itemTriggerType loc of & randGen .~ gen HammerTrigger t | w ^. cWorld . lWorld . lClock - t > timelastused --- , isNothing $ lookup MakeAutoLink (tree ^. ldtRight) - , pt == InitialPress -> + , -- , isNothing $ lookup MakeAutoLink (tree ^. ldtRight) + pt == InitialPress -> f loc cr w AutoTrigger t | w ^. cWorld . lWorld . lClock - t > timelastused -> @@ -671,7 +669,7 @@ loadMuzzle :: loadMuzzle t@(DT _ l _) mz = fromMaybe (t, Nothing) $ do let as = _mzAmmoSlot mz amamount = _mzAmmoPerShot mz - (i, mag) <- findWithIx (isAmmoIntLink as . (^. dtValue . _2)) l + (i, mag) <- findWithIx (isAmmoIntLink as . (^. dtValue . _2)) l availableammo <- mag ^. dtValue . _1 . itConsumables let usedammo = case amamount of UseUpTo x -> min x availableammo @@ -763,7 +761,7 @@ useLoadedAmmo :: useLoadedAmmo _ _ (cme, w) Nothing = (cme, w) useLoadedAmmo loc cr (_, w) (Just (mz, x, magtree)) = (,) True $ removeAmmoFromMag x mid cr . makeMuzzleFlare mz loc cr $ case _mzEffect mz of - MuzzleShootBullet -> shootBullets loc cr (mz, x, magtree) w + MuzzleShootBullet -> shootBullets loc cr (mz, x, magtree) w MuzzleLaser -> creatureShootLaser loc cr mz w MuzzleTesla -> shootTeslaArc loc cr mz w MuzzleTractor -> shootTractorBeam cr w @@ -932,14 +930,14 @@ getBulletType magtree = attree ^? dtValue . _1 . itUse . ubMod . bmPayload ispayload :: DTree OItem -> Bool ispayload y = case y ^. dtValue . _2 of - AmmoPayloadSF {} -> True + AmmoPayloadSF{} -> True _ -> False beffect = fromMaybe DestroyBullet $ do attree <- find isammoeffect (magtree ^. dtLeft) attree ^? dtValue . _1 . itUse . ubMod . bmEffect isammoeffect :: DTree OItem -> Bool isammoeffect y = case y ^. dtValue . _2 of - AmmoEffectSF {} -> True + AmmoEffectSF{} -> True _ -> False magAmmoParams :: Item -> Maybe AmmoParams @@ -1245,19 +1243,19 @@ determineProjectileTracking magtree itmtree = return $ HomeUsingTargeting (targetingtree ^. dtValue . _1 . itID) isremscreen :: DTree OItem -> Bool isremscreen x = case x ^. dtValue . _2 of - RemoteScreenSF {} -> True + RemoteScreenSF{} -> True _ -> False isjoystick :: DTree OItem -> Bool isjoystick x = case x ^. dtValue . _2 of - JoystickSF {} -> True + JoystickSF{} -> True _ -> False isammotargeting :: DTree OItem -> Bool isammotargeting x = case x ^. dtValue . _2 of - AmmoTargetingSF {} -> True + AmmoTargetingSF{} -> True _ -> False isweapontargeting :: DTree OItem -> Bool isweapontargeting x = case x ^. dtValue . _2 of - WeaponTargetingSF {} -> True + WeaponTargetingSF{} -> True _ -> False createProjectileR :: @@ -1283,7 +1281,7 @@ createProjectileR loc magtree = | otherwise = Nothing issmokereducer :: DTree OItem -> Bool issmokereducer y = case y ^. dtValue . _2 of - SmokeReducerSF {} -> True + SmokeReducerSF{} -> True _ -> False getPJStabiliser :: DTree OItem -> Maybe PJStabiliser @@ -1295,8 +1293,8 @@ getPJStabiliser ldt = case find isprojstab (ldt ^. dtRight) of _ -> Nothing where isprojstab :: DTree OItem -> Bool - isprojstab y = case y ^.dtValue . _2 of - ProjectileStabiliserSF {} -> True + isprojstab y = case y ^. dtValue . _2 of + ProjectileStabiliserSF{} -> True _ -> False getGrenadeHitEffect :: DTree OItem -> GrenadeHitEffect @@ -1307,8 +1305,8 @@ getGrenadeHitEffect t = case find isghiteff (t ^. dtRight) of _ -> GBounce 2 where isghiteff :: DTree OItem -> Bool - isghiteff y = case y ^. dtValue . _2 of - GrenadeHitEffectSF {} -> True + isghiteff y = case y ^. dtValue . _2 of + GrenadeHitEffectSF{} -> True _ -> False createProjectile :: @@ -1338,16 +1336,16 @@ createProjectile x pjtype magtree stab muz cr = fromMaybe failsound $ do . startthesound where isrdet :: DTree OItem -> Bool - isrdet y = case y ^. dtValue . _2 of - RemoteDetonatorSF {} -> True + isrdet y = case y ^. dtValue . _2 of + RemoteDetonatorSF{} -> True _ -> False isrscreen :: DTree OItem -> Bool - isrscreen y = case y ^. dtValue . _2 of - RemoteScreenSF {} -> True + isrscreen y = case y ^. dtValue . _2 of + RemoteScreenSF{} -> True _ -> False isampay :: DTree OItem -> Bool - isampay y = case y ^. dtValue . _2 of - AmmoPayloadSF {} -> True + isampay y = case y ^. dtValue . _2 of + AmmoPayloadSF{} -> True _ -> False -- the sound should be moved to the projectile firing diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index e430166fe..45ba29013 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -118,8 +118,7 @@ itemToFunction itm = case itm ^. itType of HELD{} -> case itUseCondition itm of UseableWhenAimed -> HeldPlatformSF _ -> GadgetPlatformSF - _ - | Just amtype <- magAmmoType itm-- ^? itConsumables . magType + _ | Just amtype <- magAmmoType itm-- ^? itConsumables . magType , Just _ <- itm ^? itLocation . ilEquipSite . _Just -> AmmoMagSF 0 amtype AMMOMAG{} -> maybe NoSF (AmmoMagSF 0) $ magAmmoType itm -- ^? itConsumables . magType @@ -161,16 +160,12 @@ type DTComb a = DTree a -> DTree a -> Maybe (DTree a) leftIsParentCombine :: DTComb CItem leftIsParentCombine ltree rtree = do - let l = rightChildList ltree - xs = dropWhile (\s -> not $ S.member s (treeToPotentialFunction rtree)) l - sf <- safeHead xs + sf <- find (`S.member` treeToPotentialFunction rtree) (rightChildList ltree) return $ ltree & dtRight .:~ ( rtree & dtValue . _2 .~ sf) rightIsParentCombine :: DTComb CItem rightIsParentCombine ltree rtree = do - let l = leftChildList rtree - xs = dropWhile (\s -> not $ S.member s (treeToPotentialFunction ltree)) l - sf <- safeHead xs + sf <- find (`S.member` treeToPotentialFunction ltree) (leftChildList rtree) return $ rtree & dtLeft .:~ ( ltree & dtValue . _2 .~ sf) leftChildList :: DTree CItem -> [ItemSF]