Work on rocket/grenade launcher
This commit is contained in:
+13
-7
@@ -594,11 +594,16 @@ determineProjectileTracking ::
|
||||
LabelDoubleTree ComposeLinkType Item ->
|
||||
LabelDoubleTree ComposeLinkType Item ->
|
||||
ProjectileHoming
|
||||
determineProjectileTracking magtree itmtree = case lookup RemoteControllerLink (magtree ^. ldtLeft) of
|
||||
Just screen -> HomeUsingRemoteScreen (screen ^. ldtValue . itID)
|
||||
Nothing -> fromMaybe NoHoming $ do
|
||||
_ <- lookup AmmoTargetingLink (magtree ^. ldtLeft) -- should not have to give a direction
|
||||
targetingtree <- lookup WeaponTargetingLink (itmtree ^. ldtRight) -- left or right for these
|
||||
determineProjectileTracking magtree itmtree = fromMaybe NoHoming $
|
||||
finddronecontrols <|> findexternaltracking
|
||||
where
|
||||
finddronecontrols = do
|
||||
screen <- lookup RemoteScreenLink (magtree ^. ldtLeft)
|
||||
_ <- lookup JoystickLink (screen ^. ldtLeft)
|
||||
return $ HomeUsingRemoteScreen (screen ^. ldtValue . itID)
|
||||
findexternaltracking = do
|
||||
_ <- lookup AmmoTargetingLink (magtree ^. ldtLeft)
|
||||
targetingtree <- lookup WeaponTargetingLink (itmtree ^. ldtRight)
|
||||
return $ HomeUsingTargeting (targetingtree ^. ldtValue . itID)
|
||||
|
||||
createProjectile ::
|
||||
@@ -616,10 +621,11 @@ createProjectile magtree muz itmtree cr = fromMaybe failsound $ do
|
||||
lookup RemoteDetonatorLink (magtree ^. ldtLeft)
|
||||
rscreen = fmap (^. 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 $
|
||||
createShell homing rdetonate rscreen aparams muz cr
|
||||
createGShell homing rdetonate rscreen issmokeless Rocket aparams muz cr
|
||||
. startthesound
|
||||
where
|
||||
-- the sound should be moved to the projectile firing
|
||||
@@ -651,7 +657,7 @@ createGProjectile magtree muz itmtree cr = fromMaybe failsound $ do
|
||||
aparams <- ((magtree ^? ldtLeft) >>= lookup AmmoPayloadLink >>= (^? ldtValue . itType . ibtAttach . shellPayload))
|
||||
<|> ammoitem ^? itConsumables . magParams . ampPayload
|
||||
return $
|
||||
createGShell homing rdetonate rscreen aparams muz cr
|
||||
createGShell homing rdetonate rscreen False Grenade aparams muz cr
|
||||
. startthesound
|
||||
where
|
||||
-- the sound should be moved to the projectile firing
|
||||
|
||||
Reference in New Issue
Block a user