diff --git a/src/Dodge/Creature/Impulse/UseItem.hs b/src/Dodge/Creature/Impulse/UseItem.hs index 4a53ba651..93c75c9b1 100644 --- a/src/Dodge/Creature/Impulse/UseItem.hs +++ b/src/Dodge/Creature/Impulse/UseItem.hs @@ -50,8 +50,8 @@ useSelectedItem crid w = (worldEventFlags . at InventoryChange ?~ ()) . fromMayb activateDetonator :: LabelDoubleTree ItemLink ComposedItem -> Creature -> World -> World -activateDetonator det _ w = (foldl' remoteDetonate w - $ det ^. ldtValue . _1 . itUse . uaParams . apProjectiles) +activateDetonator det _ w = foldl' remoteDetonate w + (det ^. ldtValue . _1 . itUse . uaParams . apProjectiles) & pointerToItemID (det ^. ldtValue . _1 . itID) . itUse . uaParams . apProjectiles .~ [] remoteDetonate :: World -> Int -> World diff --git a/src/Dodge/Debug/Picture.hs b/src/Dodge/Debug/Picture.hs index 39078e3ff..c4324f917 100644 --- a/src/Dodge/Debug/Picture.hs +++ b/src/Dodge/Debug/Picture.hs @@ -112,7 +112,7 @@ drawCircCollisionTest :: World -> Picture drawCircCollisionTest w = concat $ do a <- w ^. input . heldWorldPos . at ButtonLeft b <- w ^. input . heldWorldPos . at ButtonRight - let col | (anythingHitCirc 2 a b w) = red + let col | anythingHitCirc 2 a b w = red | otherwise = green return $ setLayer DebugLayer (color col $ line [a, b]) diff --git a/src/Dodge/HeldUse.hs b/src/Dodge/HeldUse.hs index fbaecb3d5..e7e77531a 100644 --- a/src/Dodge/HeldUse.hs +++ b/src/Dodge/HeldUse.hs @@ -1,5 +1,5 @@ {-# OPTIONS -Wno-incomplete-uni-patterns #-} -{-# LANGUAGE TupleSections #-} +--{-# LANGUAGE TupleSections #-} module Dodge.HeldUse ( heldEffect, @@ -57,7 +57,7 @@ hammerCheck f it cr w = case it ^? ldtValue . itUse . heldTriggerType of _ -> w _ -> f it cr w where - nomakeauto = not . isJust $ lookup MakeAutoLink (it ^. ldtRight) + nomakeauto = isNothing $ lookup MakeAutoLink (it ^. ldtRight) -- | Applies a world effect after an item use cooldown check. useTimeCheck :: ChainEffect @@ -613,12 +613,12 @@ createProjectileR :: Creature -> World -> World -createProjectileR magtree muz itmtree cr = +createProjectileR magtree muz itmtree = createProjectile (Rocket (determineProjectileTracking magtree itmtree) smoke - ) magtree muz itmtree cr + ) magtree muz itmtree where smoke | isJust $ lookup SmokeReducerLink (magtree ^. ldtLeft) = Just ReducedRocketSmoke @@ -636,11 +636,10 @@ createProjectile pjtype magtree muz itmtree cr = fromMaybe failsound $ do magid <- magtree ^? ldtValue . itLocation . ilInvID ammoitem <- cr ^? crInv . ix magid let homing = determineProjectileTracking magtree itmtree - rdetonate = fmap (^. ldtValue . itID) $ + rdetonate = (^. ldtValue . itID) <$> lookup RemoteDetonatorLink (magtree ^. ldtLeft) - rscreen = fmap (^. ldtValue . itID) $ + rscreen = (^. ldtValue . itID) <$> lookup RemoteScreenLink (magtree ^. ldtLeft) --- issmokeless = isJust $ lookup SmokeReducerLink (magtree ^. ldtLeft) aparams <- ((magtree ^? ldtLeft) >>= lookup AmmoPayloadLink >>= (^? ldtValue . itType . ibtAttach . shellPayload)) <|> ammoitem ^? itConsumables . magParams . ampPayload return $ diff --git a/src/Dodge/Item/Draw/SPic.hs b/src/Dodge/Item/Draw/SPic.hs index c8aec07e7..90392dea8 100644 --- a/src/Dodge/Item/Draw/SPic.hs +++ b/src/Dodge/Item/Draw/SPic.hs @@ -59,7 +59,7 @@ craftItemSPic = \case GLASSSHARD -> colorSH azure $ upperPrismPolyST 1 [V2 0 (-1), V2 4 (-0.5), V2 0 1] SCRAPMETAL -> colorSH (greyN 0.3) $ upperPrismPolyST 3 $ square 4 PUMP -> colorSH yellow . translateSH (V3 4 0 0) $ - (upperCylinder Small Typical 1 $ polyCirc 4 4) + upperCylinder Small Typical 1 (polyCirc 4 4) <> upperPrismPolyST 1 (rectNSWE (-2) (-4) 4 0) <> upperPrismPolyST 1 (rectNSWE 4 2 0 (-4)) MOTOR -> colorSH orange $ xCylinderST 5 3 <> xCylinderST 3 5 diff --git a/src/Dodge/Payload.hs b/src/Dodge/Payload.hs index 085946390..6a7df2623 100644 --- a/src/Dodge/Payload.hs +++ b/src/Dodge/Payload.hs @@ -30,7 +30,7 @@ makeShrapnelAt p v w = & cWorld . lWorld . bullets .++~ buls where -- speed = magV v - vs = replicateM 75 (randInCirc $ 10) & evalState $ _randGen w + vs = replicateM 75 (randInCirc 10) & evalState $ _randGen w drags :: [Float] drags = replicateM 75 (state $ randomR (0.85,0.9)) & evalState $ _randGen w buls = zipWith f vs drags diff --git a/src/Dodge/Projectile/Draw.hs b/src/Dodge/Projectile/Draw.hs index 96d2ee9e3..03119ae5e 100644 --- a/src/Dodge/Projectile/Draw.hs +++ b/src/Dodge/Projectile/Draw.hs @@ -13,7 +13,7 @@ import ShapePicture drawProjectile :: Projectile -> SPic drawProjectile pj - | Just (DestroyPU{}) <- pj ^? prjUpdates . ix 0 = mempty + | Just DestroyPU{} <- pj ^? prjUpdates . ix 0 = mempty | Just NoHoming <- pj ^? prjType . rkHoming = drawShell Nothing pj | Just _ <- pj ^? prjType . rkHoming = diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index edfc3ca82..8e5ee4dd9 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -29,7 +29,7 @@ testStringInit :: Universe -> [String] testStringInit u = [show (u ^?! uvWorld . cWorld . lWorld . creatures . ix 0 . crPos)] <> - (map show $ u ^.. uvWorld . cWorld . lWorld . projectiles . each . prjPos) + map show (u ^.. uvWorld . cWorld . lWorld . projectiles . each . prjPos) --testStringInit u = foldMap prettyShort $ u ^. uvWorld . cWorld . lWorld . projectiles -- (map (show . _ebPos) $ u ^. uvWorld . cWorld . lWorld . energyBalls) -- <> diff --git a/tags b/tags index 8e404f37d..0a44431d4 100644 --- a/tags +++ b/tags @@ -70,13 +70,13 @@ AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 49;" C AmmoPerShot src/Dodge/Data/Item/Use.hs 162;" t AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 19;" C AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 48;" C -AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 44;" t +AmmoType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 35;" t AnRoom src/Dodge/Annotation/Data.hs 18;" C AnTree src/Dodge/Annotation/Data.hs 19;" C Analyser src/Dodge/Placement/Instance/Analyser.hs 1;" m Annotation src/Dodge/Annotation/Data.hs 14;" t Annotation src/Dodge/Annotation.hs 3;" m -ApplyGravityPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 41;" C +ApplyGravityPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 32;" C ArbitraryAction src/Dodge/Data/ActionPlan.hs 166;" C ArbitraryImpulse src/Dodge/Data/ActionPlan.hs 47;" C ArbitraryImpulseEffect src/Dodge/Data/ActionPlan.hs 48;" C @@ -161,7 +161,7 @@ BeamShooterParams src/Dodge/Data/Item/Use.hs 93;" C BeamSimple src/Dodge/Data/Beam.hs 50;" C BeamType src/Dodge/Data/Beam.hs 46;" t BecomePowerful src/Dodge/Data/Scenario.hs 9;" C -BeltBulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 47;" C +BeltBulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 38;" C Bezier src/Geometry/Bezier.hs 1;" m BezierTrajectory src/Dodge/Data/Bullet.hs 51;" C BezierTrajectoryType src/Dodge/Data/Bullet.hs 58;" C @@ -221,7 +221,7 @@ Bullet src/Dodge/Data/Bullet.hs 17;" t Bullet src/Dodge/Bullet.hs 1;" m Bullet src/Dodge/Data/Bullet.hs 6;" m Bullet src/Dodge/Item/Weapon/Bullet.hs 1;" m -BulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 46;" C +BulletAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 37;" C BulletEffect src/Dodge/Data/Bullet.hs 35;" t BulletGun src/Dodge/Item/Held/BulletGun.hs 1;" m BulletMod src/Dodge/Data/Item/BulletMod.hs 10;" t @@ -295,7 +295,7 @@ ChaseCritters src/Dodge/Data/Creature/State.hs 38;" C Check src/Framebuffer/Check.hs 1;" m CheckConsistency src/Dodge/Room/CheckConsistency.hs 1;" m CheckSlots src/Dodge/Inventory/CheckSlots.hs 1;" m -ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 58;" C +ChemFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 49;" C ChooseMovementLtAuto src/Dodge/Data/CreatureEffect.hs 62;" C ChooseMovementSpreadGun src/Dodge/Data/CreatureEffect.hs 61;" C ChooseTarget src/Dodge/Creature/ChooseTarget.hs 1;" m @@ -319,7 +319,7 @@ ClusterLink src/Dodge/Data/RoomCluster.hs 14;" t ClusterStatus src/Dodge/Data/RoomCluster.hs 9;" t Cognizant src/Dodge/Data/Creature/Perception.hs 67;" C Collide src/Dodge/Base/Collide.hs 14;" m -CollisionEffectPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 37;" C +CollisionEffectPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 28;" C Collision_test src/Dodge/Data/Config.hs 84;" C Color src/Color/Data.hs 33;" t Color src/Color.hs 1;" m @@ -413,8 +413,8 @@ Craftable src/Dodge/Item/Craftable.hs 1;" m Create src/Dodge/Projectile/Create.hs 1;" m Create src/Dodge/Prop/Create.hs 1;" m Create src/Dodge/Wall/Create.hs 1;" m -CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 61;" C -CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 61;" C +CreateFlame src/Dodge/Data/Item/Use/Consumption/Ammo.hs 52;" C +CreatePoisonGas src/Dodge/Data/Item/Use/Consumption/Ammo.hs 52;" C CreateShieldWall src/Dodge/Data/Item/Effect.hs 22;" C Creature src/Dodge/Data/Creature.hs 36;" t Creature src/Dodge/Creature.hs 1;" m @@ -493,7 +493,7 @@ DefaultArcStep src/Dodge/Data/ArcStep.hs 23;" C DefaultCrGroupUpdate src/Dodge/Data/CrGroupParams.hs 22;" C DefaultDrawButton src/Dodge/Data/Button.hs 17;" C DefaultDrawSwitch src/Dodge/Data/Button.hs 18;" C -DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 55;" C +DefaultForceField src/Dodge/Data/Item/Use/Consumption/Ammo.hs 46;" C DefaultHeldParams src/Dodge/Data/Item/Use.hs 80;" C DefaultLightSourceDraw src/Dodge/Data/LightSource.hs 13;" C DefaultRoomType src/Dodge/Data/Room.hs 31;" C @@ -504,7 +504,7 @@ Destroy src/Dodge/Machine/Destroy.hs 1;" m DestroyBeing src/Dodge/Data/Scenario.hs 8;" C DestroyBullet src/Dodge/Data/Bullet.hs 36;" C DestroyItem src/Dodge/Data/Scenario.hs 7;" C -DestroyPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 34;" C +DestroyPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" C Detector src/Dodge/Data/Item/Combine.hs 165;" t Dirt src/Dodge/Data/Material.hs 11;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t @@ -579,15 +579,11 @@ Draw src/Dodge/Tesla/Arc/Draw.hs 1;" m Draw src/Dodge/Tesla/Draw.hs 1;" m Draw src/Dodge/TractorBeam/Draw.hs 1;" m Draw src/Dodge/Wall/Draw.hs 1;" m -DrawBlankProjectile src/Dodge/Data/Item/Use/Consumption/Ammo.hs 20;" C -DrawDrone src/Dodge/Data/Item/Use/Consumption/Ammo.hs 20;" C DrawForceField src/Dodge/Data/Wall.hs 45;" C DrawNoButton src/Dodge/Data/Button.hs 19;" C -DrawRemoteShell src/Dodge/Data/Item/Use/Consumption/Ammo.hs 20;" C -DrawShell src/Dodge/Data/Item/Use/Consumption/Ammo.hs 20;" C DrawnWall src/Dodge/Data/Wall.hs 41;" C Drone src/Dodge/Item/Weapon/Drone.hs 1;" m -DroneAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 49;" C +DroneAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 40;" C DropAll src/Dodge/Data/Creature/State.hs 24;" C DropAmount src/Dodge/Data/Creature/State.hs 25;" C DropItem src/Dodge/Data/ActionPlan.hs 39;" C @@ -617,7 +613,7 @@ EffectWhileAttached src/Dodge/Data/Item/Effect.hs 25;" C EffectWhileRoot src/Dodge/Data/Item/Effect.hs 24;" C EighthRes src/Dodge/Data/Config.hs 97;" C Eldritch src/Dodge/Data/Scenario.hs 34;" C -ElectricalAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 48;" C +ElectricalAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" C Electronics src/Dodge/Data/Material.hs 11;" C EllShad src/Picture/Data.hs 39;" C Enable_debug src/Dodge/Data/Config.hs 68;" C @@ -658,7 +654,7 @@ Explosion src/Dodge/Data/SoundOrigin.hs 37;" C Explosion src/Dodge/WorldEvent/Explosion.hs 4;" m ExplosionPayload src/Dodge/Data/Payload.hs 11;" C ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 87;" C -ExplosivePutty src/Dodge/Data/Item/Use/Consumption/Ammo.hs 52;" C +ExplosivePutty src/Dodge/Data/Item/Use/Consumption/Ammo.hs 43;" C ExternallyGeneratedSounds src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 2;" m ExtraEffect src/Dodge/Item/Weapon/ExtraEffect.hs 6;" m Eyes src/Dodge/Data/Creature/Perception.hs 41;" C @@ -726,7 +722,7 @@ FootForward src/Dodge/Data/Creature/Stance.hs 31;" t FootstepSound src/Dodge/Data/SoundOrigin.hs 29;" C ForceField src/Dodge/ForceField.hs 1;" m ForceField src/Dodge/Wall/ForceField.hs 1;" m -ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 55;" t +ForceFieldType src/Dodge/Data/Item/Use/Consumption/Ammo.hs 46;" t Foreground src/Dodge/Room/Foreground.hs 1;" m ForegroundShape src/Dodge/Data/ForegroundShape.hs 14;" t ForegroundShape src/Dodge/Data/ForegroundShape.hs 6;" m @@ -750,10 +746,10 @@ GameOverOptions src/Dodge/Data/Universe.hs 70;" C GameRoom src/Dodge/GameRoom.hs 15;" t GameRoom src/Dodge/GameRoom.hs 8;" m Gas src/Dodge/Gas.hs 1;" m -GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 50;" C +GasAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 41;" C GasCloud src/Dodge/Data/Cloud.hs 31;" C -GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 61;" t -GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 58;" t +GasCreate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 52;" t +GasFuel src/Dodge/Data/Item/Use/Consumption/Ammo.hs 49;" t GasParams src/Dodge/Data/Item/Use.hs 115;" C GasSprayParams src/Dodge/Data/Item/Use.hs 81;" C GenCr src/Dodge/Data/Creature/State.hs 31;" C @@ -790,7 +786,7 @@ Graph src/Dodge/Combine/Graph.hs 3;" m Graph src/Dodge/Graph.hs 2;" m GraphHelp src/GraphHelp.hs 1;" m GraphVizHelp src/GraphVizHelp.hs 2;" m -Grenade src/Dodge/Data/Projectile.hs 15;" C +Grenade src/Dodge/Data/Projectile.hs 33;" C Grid src/Grid.hs 1;" m Gust src/Dodge/Data/Gust.hs 13;" t Gust src/Dodge/Data/Gust.hs 6;" m @@ -832,8 +828,8 @@ HeldUse src/Dodge/HeldUse.hs 4;" m HeldUseEffect src/Dodge/Data/Item/Use.hs 51;" t HelpNum src/HelpNum.hs 1;" m HiddenGoal src/Dodge/Data/Scenario.hs 14;" C -HomeUsingRemoteScreen src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" C -HomeUsingTargeting src/Dodge/Data/Item/Use/Consumption/Ammo.hs 26;" C +HomeUsingRemoteScreen src/Dodge/Data/Projectile.hs 42;" C +HomeUsingTargeting src/Dodge/Data/Projectile.hs 43;" C Hospital src/Dodge/Data/Scenario.hs 69;" C Hotkey src/Dodge/Data/Equipment/Misc.hs 32;" t Hotkey src/Dodge/Hotkey.hs 1;" m @@ -1001,7 +997,7 @@ LaserStart src/Dodge/Data/Laser.hs 21;" t LaserType src/Dodge/Data/Laser.hs 16;" t Launcher src/Dodge/Item/Held/Launcher.hs 1;" m LauncherAI src/Dodge/Data/Creature/Misc.hs 54;" C -LauncherAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 45;" C +LauncherAmmo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 36;" C LauncherCrit src/Dodge/Creature/LauncherCrit.hs 1;" m LaundrySS src/Dodge/Data/Scenario.hs 115;" C Layer src/Picture/Data.hs 22;" t @@ -1252,7 +1248,7 @@ NoFaction src/Dodge/Data/Creature/State.hs 40;" C NoFlare src/Dodge/Data/Item/Use.hs 131;" C NoHammer src/Dodge/Data/Hammer.hs 13;" C NoHeldUseEffect src/Dodge/Data/Item/Use.hs 52;" C -NoHoming src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" C +NoHoming src/Dodge/Data/Projectile.hs 41;" C NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C NoInvEffect src/Dodge/Data/Item/Effect.hs 20;" C NoItTargeting src/Dodge/Data/Item.hs 55;" C @@ -1468,17 +1464,15 @@ PressPlateId src/Dodge/Data/PressPlate.hs 15;" C PressType src/Dodge/Data/Input.hs 13;" t PreviousArcEffect src/Dodge/Data/Item/Params.hs 34;" t PrimitiveMode src/Shader/Data.hs 99;" t -PrintMaterial src/Dodge/Data/Item/Use/Consumption/Ammo.hs 51;" C +PrintMaterial src/Dodge/Data/Item/Use/Consumption/Ammo.hs 42;" C Prison src/Dodge/Data/Scenario.hs 65;" C Procedural src/Dodge/Room/Procedural.hs 2;" m -Projectile src/Dodge/Data/Projectile.hs 19;" t +Projectile src/Dodge/Data/Projectile.hs 16;" t Projectile src/Dodge/Data/Projectile.hs 6;" m Projectile src/Dodge/Projectile.hs 1;" m -ProjectileDraw src/Dodge/Data/Item/Use/Consumption/Ammo.hs 20;" t -ProjectileHoming src/Dodge/Data/Item/Use/Consumption/Ammo.hs 23;" t ProjectileParams src/Dodge/Data/Item/Use.hs 114;" C -ProjectileType src/Dodge/Data/Projectile.hs 14;" t -ProjectileUpdate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" t +ProjectileType src/Dodge/Data/Projectile.hs 32;" t +ProjectileUpdate src/Dodge/Data/Item/Use/Consumption/Ammo.hs 20;" t Prop src/Dodge/Data/Prop.hs 18;" t Prop src/Dodge/Data/Prop.hs 6;" m Prop src/Dodge/Default/Prop.hs 1;" m @@ -1579,14 +1573,15 @@ ReactorSS src/Dodge/Data/Scenario.hs 111;" C ReaderUpdate src/Dodge/Creature/ReaderUpdate.hs 1;" m RecRoomSS src/Dodge/Data/Scenario.hs 103;" C RectRoomType src/Dodge/Data/Room.hs 32;" C -ReduceSpinPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 33;" C +ReduceSpinPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" C +ReducedRocketSmoke src/Dodge/Data/Projectile.hs 47;" C ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C Religion src/Dodge/Data/Scenario.hs 47;" C Reload src/Dodge/Data/ActionPlan.hs 190;" C ReloadStatus src/Dodge/Data/Item/Use/Consumption.hs 20;" t RemoteDetonatorLink src/Dodge/Data/ComposedItem.hs 26;" C RemoteDetonatorSF src/Dodge/Data/ComposedItem.hs 44;" C -RemoteDirectionPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 32;" C +RemoteDirectionPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 23;" C RemoteScreenLink src/Dodge/Data/ComposedItem.hs 25;" C RemoteScreenSF src/Dodge/Data/ComposedItem.hs 42;" C RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 36;" C @@ -1614,7 +1609,9 @@ RightButtonOptions src/Dodge/Data/RightButtonOptions.hs 6;" m RightForward src/Dodge/Data/Creature/Stance.hs 33;" C RightwardLDT src/Dodge/Data/DoubleTree.hs 58;" C RoadBlock src/Dodge/Room/RoadBlock.hs 2;" m -Rocket src/Dodge/Data/Projectile.hs 16;" C +Rocket src/Dodge/Data/Projectile.hs 34;" C +RocketHoming src/Dodge/Data/Projectile.hs 40;" t +RocketSmoke src/Dodge/Data/Projectile.hs 46;" t Rod src/Dodge/Item/Held/Rod.hs 1;" m Room src/Dodge/Data/GenWorld.hs 94;" t Room src/Dodge/Data/Room.hs 4;" m @@ -1724,7 +1721,7 @@ ShapePicture src/ShapePicture.hs 1;" m ShapeProp src/Dodge/Data/Prop.hs 33;" C ShapeType src/Shape/Data.hs 16;" t Shatter src/Dodge/Item/Weapon/Shatter.hs 1;" m -Shell src/Dodge/Data/Projectile.hs 20;" C +Shell src/Dodge/Data/Projectile.hs 17;" C ShellSound src/Dodge/Data/SoundOrigin.hs 26;" C ShieldGroup src/Dodge/Data/Creature/State.hs 52;" C Shift src/Dodge/Placement/Shift.hs 1;" m @@ -1816,7 +1813,7 @@ Standing src/Dodge/Data/Creature/Stance.hs 25;" C Start src/Dodge/Room/Start.hs 3;" m StartNewGame src/Dodge/StartNewGame.hs 1;" m StartSentinelPost src/Dodge/Data/ActionPlan.hs 153;" C -StartSpinPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 31;" C +StartSpinPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 22;" C State src/Dodge/Creature/State.hs 1;" m State src/Dodge/Data/Creature/State.hs 6;" m StaticWalls src/Dodge/LevelGen/StaticWalls.hs 5;" m @@ -1934,14 +1931,14 @@ Text src/Picture/Text.hs 1;" m TextShad src/Picture/Data.hs 37;" C ThingsHit src/Dodge/WorldEvent/ThingsHit.hs 6;" m ThirdPartyLens src/ThirdPartyLens.hs 2;" m -ThrustPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 30;" C +ThrustPU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" C Tile src/Data/Tile.hs 14;" t Tile src/Data/Tile.hs 3;" m Tile src/Dodge/Tile.hs 1;" m Tile src/Tile.hs 2;" m Tiled src/Data/Tile.hs 13;" C TimeFlowStatus src/Dodge/Data/World.hs 58;" t -TimePU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 36;" C +TimePU src/Dodge/Data/Item/Use/Consumption/Ammo.hs 27;" C Tiny src/Shape/Data.hs 32;" C TmId src/Dodge/Data/Terminal.hs 60;" C TmTm src/Dodge/Data/Terminal.hs 59;" t @@ -2812,25 +2809,23 @@ _peZoning src/Dodge/Data/World.hs 53;" f _penEnd src/Dodge/Data/PathGraph.hs 35;" f _penPathEdge src/Dodge/Data/PathGraph.hs 36;" f _penStart src/Dodge/Data/PathGraph.hs 34;" f -_phRemoteID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" f -_phTargetingID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 26;" f +_phRemoteID src/Dodge/Data/Projectile.hs 42;" f +_phTargetingID src/Dodge/Data/Projectile.hs 43;" f _pickUpLevel src/Dodge/Layout/Generate.hs 14;" f _pickUps src/Dodge/Layout/Generate.hs 15;" f _pictureShaders src/Data/Preload/Render.hs 28;" f _piercedPoints src/Dodge/Data/Creature/State.hs 30;" f -_pjuCID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 31;" f -_pjuControlID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 37;" f -_pjuControllerID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 32;" f -_pjuDetonatorID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 38;" f -_pjuEnd src/Dodge/Data/Item/Use/Consumption/Ammo.hs 30;" f -_pjuReduceSpin src/Dodge/Data/Item/Use/Consumption/Ammo.hs 33;" f -_pjuScreenID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 34;" f -_pjuScreenID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 39;" f -_pjuSmokeless src/Dodge/Data/Item/Use/Consumption/Ammo.hs 30;" f -_pjuSpinAmound src/Dodge/Data/Item/Use/Consumption/Ammo.hs 31;" f -_pjuStart src/Dodge/Data/Item/Use/Consumption/Ammo.hs 30;" f -_pjuTime src/Dodge/Data/Item/Use/Consumption/Ammo.hs 31;" f -_pjuTimer src/Dodge/Data/Item/Use/Consumption/Ammo.hs 35;" f +_pjuCID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 22;" f +_pjuControlID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 28;" f +_pjuDetonatorID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 29;" f +_pjuEnd src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" f +_pjuReduceSpin src/Dodge/Data/Item/Use/Consumption/Ammo.hs 24;" f +_pjuScreenID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 25;" f +_pjuScreenID src/Dodge/Data/Item/Use/Consumption/Ammo.hs 30;" f +_pjuSpinAmound src/Dodge/Data/Item/Use/Consumption/Ammo.hs 22;" f +_pjuStart src/Dodge/Data/Item/Use/Consumption/Ammo.hs 21;" f +_pjuTime src/Dodge/Data/Item/Use/Consumption/Ammo.hs 22;" f +_pjuTimer src/Dodge/Data/Item/Use/Consumption/Ammo.hs 26;" f _plIDCont src/Dodge/Data/GenWorld.hs 81;" f _plMID src/Dodge/Data/GenWorld.hs 80;" f _plOrder src/Dodge/Data/GenWorld.hs 77;" f @@ -2871,18 +2866,17 @@ _preloadData src/Dodge/Data/Universe.hs 32;" f _pressPlates src/Dodge/Data/LWorld.hs 134;" f _pressedKeys src/Dodge/Data/Input.hs 45;" f _previousArcEffect src/Dodge/Data/Item/Params.hs 26;" f -_prjDir src/Dodge/Data/Projectile.hs 24;" f -_prjDraw src/Dodge/Data/Projectile.hs 26;" f -_prjID src/Dodge/Data/Projectile.hs 27;" f -_prjPayload src/Dodge/Data/Projectile.hs 28;" f -_prjPos src/Dodge/Data/Projectile.hs 21;" f -_prjSpin src/Dodge/Data/Projectile.hs 25;" f -_prjTimer src/Dodge/Data/Projectile.hs 29;" f -_prjType src/Dodge/Data/Projectile.hs 33;" f -_prjUpdates src/Dodge/Data/Projectile.hs 32;" f -_prjVel src/Dodge/Data/Projectile.hs 22;" f -_prjZ src/Dodge/Data/Projectile.hs 30;" f -_prjZVel src/Dodge/Data/Projectile.hs 31;" f +_prjDir src/Dodge/Data/Projectile.hs 20;" f +_prjID src/Dodge/Data/Projectile.hs 22;" f +_prjPayload src/Dodge/Data/Projectile.hs 23;" f +_prjPos src/Dodge/Data/Projectile.hs 18;" f +_prjSpin src/Dodge/Data/Projectile.hs 21;" f +_prjTimer src/Dodge/Data/Projectile.hs 24;" f +_prjType src/Dodge/Data/Projectile.hs 28;" f +_prjUpdates src/Dodge/Data/Projectile.hs 27;" f +_prjVel src/Dodge/Data/Projectile.hs 19;" f +_prjZ src/Dodge/Data/Projectile.hs 25;" f +_prjZVel src/Dodge/Data/Projectile.hs 26;" f _projectiles src/Dodge/Data/LWorld.hs 104;" f _props src/Dodge/Data/LWorld.hs 103;" f _proxDist src/Dodge/Data/Machine/Sensor.hs 26;" f @@ -2939,6 +2933,8 @@ _reverseAmount src/Dodge/Data/World.hs 64;" f _reverseAmount src/Dodge/Data/World.hs 70;" f _reverseAmount src/Dodge/Data/World.hs 74;" f _rifling src/Dodge/Data/Item/Use.hs 99;" f +_rkHoming src/Dodge/Data/Projectile.hs 35;" f +_rkSmoke src/Dodge/Data/Projectile.hs 36;" f _rlDir src/Dodge/Data/Room.hs 26;" f _rlPos src/Dodge/Data/Room.hs 25;" f _rlType src/Dodge/Data/Room.hs 24;" f @@ -3735,8 +3731,9 @@ createLightMap src/Render.hs 26;" f createNewArc src/Dodge/Tesla.hs 81;" f createNewArc src/Dodge/Tesla/Arc.hs 90;" f createPathGrid src/Dodge/Room/Path.hs 21;" f -createProjectile src/Dodge/HeldUse.hs 609;" f -createShell src/Dodge/Projectile/Create.hs 22;" f +createProjectile src/Dodge/HeldUse.hs 627;" f +createProjectileR src/Dodge/HeldUse.hs 609;" f +createShell src/Dodge/Projectile/Create.hs 16;" f createShieldWall src/Dodge/Euse.hs 107;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f createWall src/Dodge/Wall/Create.hs 8;" f @@ -3829,7 +3826,7 @@ debugMenuOptions src/Dodge/Menu.hs 119;" f debugOn src/Dodge/Data/Config.hs 151;" f debugSelectCreatureList src/Dodge/Debug.hs 86;" f debugSelectCreatureMessage src/Dodge/Debug.hs 77;" f -decTimMvVel src/Dodge/Projectile/Update.hs 187;" f +decTimMvVel src/Dodge/Projectile/Update.hs 178;" f decodedtmap src/Dodge/Terminal.hs 205;" f decomposeSelfTree src/Dodge/Tree/Compose.hs 60;" f decomposeTree src/Dodge/Tree/Compose.hs 57;" f @@ -4149,12 +4146,12 @@ drawPathEdge src/Dodge/Debug/Picture.hs 246;" f drawPathing src/Dodge/Debug/Picture.hs 416;" f drawPlus src/Dodge/Render/Picture.hs 134;" f drawPointLabel src/Dodge/Render/Label.hs 13;" f -drawProjectile src/Dodge/Projectile/Draw.hs 13;" f +drawProjectile src/Dodge/Projectile/Draw.hs 14;" f drawProp src/Dodge/Prop/Draw.hs 15;" f drawProp' src/Dodge/Prop/Draw.hs 12;" f drawRBOptions src/Dodge/Render/HUD.hs 237;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f -drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f +drawRemoteShell src/Dodge/Projectile/Draw.hs 38;" f drawReturn src/Dodge/Render/Picture.hs 123;" f drawRootCursor src/Dodge/Render/HUD.hs 70;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 31;" f @@ -4167,7 +4164,7 @@ drawSensor src/Dodge/Machine/Draw.hs 24;" f drawShader src/Shader.hs 27;" f drawShaderLay src/Shader.hs 16;" f drawShadowsByImportance src/Dodge/Shadows.hs 8;" f -drawShell src/Dodge/Projectile/Draw.hs 20;" f +drawShell src/Dodge/Projectile/Draw.hs 23;" f drawShockwave src/Dodge/Shockwave/Draw.hs 7;" f drawSpark src/Dodge/Spark/Draw.hs 6;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 16;" f @@ -4253,7 +4250,7 @@ expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f expireAndDamage src/Dodge/Bullet.hs 195;" f expireAndDamageFL src/Dodge/Flame.hs 47;" f -explodeShell src/Dodge/Projectile/Update.hs 200;" f +explodeShell src/Dodge/Projectile/Update.hs 190;" f explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 410;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 29;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f @@ -4502,7 +4499,6 @@ hitEffFromBul src/Dodge/Bullet.hs 158;" f hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 394;" f holdForm src/Dodge/Creature/Boid.hs 136;" f holsterWeapon src/Dodge/Creature/Volition.hs 14;" f -homingDrawType src/Dodge/Projectile/Create.hs 15;" f homingModule src/Dodge/Item/Scope.hs 36;" f horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 63;" f @@ -5135,7 +5131,7 @@ pipe src/Dodge/Item/Craftable.hs 32;" f pistol src/Dodge/Item/Held/Stick.hs 42;" f pistolCrit src/Dodge/Creature/PistolCrit.hs 12;" f pistolerRoom src/Dodge/Room/Room.hs 321;" f -pjRemoteSetDirection src/Dodge/Projectile/Update.hs 159;" f +pjRemoteSetDirection src/Dodge/Projectile/Update.hs 160;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f @@ -5384,7 +5380,7 @@ rectXY src/Geometry/Polygon.hs 35;" f rectanglePairs src/Dodge/LevelGen/DoorPane.hs 7;" f red src/Color.hs 14;" f reduceLocLDT src/Dodge/DoubleTree.hs 256;" f -reduceSpinBy src/Dodge/Projectile/Update.hs 184;" f +reduceSpinBy src/Dodge/Projectile/Update.hs 175;" f reflDirWall src/Dodge/Base/Wall.hs 16;" f reflVelWall src/Dodge/Base/Wall.hs 24;" f reflVelWallDamp src/Dodge/Base/Wall.hs 20;" f @@ -5403,7 +5399,6 @@ rememberSounds src/Dodge/Creature/Perception.hs 177;" f remoteDetonate src/Dodge/Creature/Impulse/UseItem.hs 57;" f remoteDetonator src/Dodge/Item/Scope.hs 63;" f remoteScreen src/Dodge/Item/Scope.hs 59;" f -remoteShellShape src/Dodge/Projectile/Draw.hs 42;" f removeAmmoFromMag src/Dodge/HeldUse.hs 397;" f removeDot src/ShortShow.hs 30;" f removeHotkey src/Dodge/Hotkey.hs 40;" f @@ -5659,7 +5654,7 @@ shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shellCollisionCheck src/Dodge/Projectile/Update.hs 84;" f shellMag src/Dodge/Item/Ammo.hs 61;" f shellModule src/Dodge/Item/Scope.hs 45;" f -shellShape src/Dodge/Projectile/Draw.hs 27;" f +shellShape src/Dodge/Projectile/Draw.hs 35;" f shellTrailCloud src/Dodge/WorldEvent/Cloud.hs 65;" f shieldWall src/Dodge/Euse.hs 87;" f shiftByV2 src/Dodge/PlacementSpot.hs 239;" f @@ -6045,7 +6040,7 @@ tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 26;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f trySeedFromClipboard src/Dodge/Menu.hs 88;" f -trySpinByCID src/Dodge/Projectile/Update.hs 141;" f +trySpinByCID src/Dodge/Projectile/Update.hs 142;" f trySynthBullet src/Dodge/Creature/State.hs 204;" f tryUseParent src/Dodge/Creature/State.hs 197;" f turnTo src/Dodge/Movement/Turn.hs 4;" f @@ -6227,16 +6222,16 @@ useLocation src/Dodge/Creature/Impulse/UseItem.hs 61;" f useMagShield src/Dodge/Euse.hs 46;" f useNormalCamera src/Dodge/Camera.hs 6;" f usePayload src/Dodge/Payload.hs 17;" f -useRewindGun src/Dodge/HeldUse.hs 677;" f +useRewindGun src/Dodge/HeldUse.hs 696;" f useRewindGun src/Dodge/Luse.hs 40;" f useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f useSelectedItem src/Dodge/Creature/Impulse/UseItem.hs 21;" f -useStopWatch src/Dodge/HeldUse.hs 658;" f +useStopWatch src/Dodge/HeldUse.hs 677;" f useStopWatch src/Dodge/Luse.hs 21;" f useTimeCheck src/Dodge/HeldUse.hs 63;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f -useTimeScrollGun src/Dodge/HeldUse.hs 666;" f +useTimeScrollGun src/Dodge/HeldUse.hs 685;" f useTimeScrollGun src/Dodge/Luse.hs 29;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f useUpdate src/Dodge/Creature/State.hs 433;" f