Implement launcher using attachment weapon chain effects

This commit is contained in:
2024-09-18 22:12:14 +01:00
parent 765e08117a
commit 6f972bb316
3 changed files with 19 additions and 5 deletions
+4 -3
View File
@@ -276,9 +276,10 @@ stackedInventory =
, bulletSynthesizer
, drumMag
, launcher
, shellMag
, shellMag
, shellMag
, launcherX 3
, megaShellMag
, megaShellMag
, megaShellMag
, pipe
, scrollWatch
, rewindWatch
+5
View File
@@ -46,6 +46,11 @@ beltMag =
& itUse . amagLoadStatus . iaMax .~ 20000
& itUse . amagType .~ BeltBulletAmmo
megaShellMag :: Item
megaShellMag = shellMag
& itUse . amagLoadStatus . iaMax .~ 1000000
& itUse . amagLoadStatus . iaLoaded .~ 1000000
shellMag :: Item
shellMag =
defaultHeldItem & itType . iyBase .~ AMMOMAG SHELLMAG
+10 -2
View File
@@ -1,5 +1,6 @@
module Dodge.Item.Held.Launcher where
import Dodge.SoundLogic.ExternallyGeneratedSounds
import Control.Applicative
import Dodge.Default.Item
--import Dodge.Reloading.Action
@@ -26,7 +27,8 @@ launcher =
& itDimension . dimCenter .~ V3 10 0 0
& itUse . heldDelay . rateMax .~ 20
-- & itUse . heldUse .~ HeldPJCreation --usePjCreation
& itUse . heldMods .~ LauncherMod
-- & itUse . heldMods .~ LauncherMod
& itUse . heldMods .~ PistolMod
& itUse . heldAim . aimWeight .~ 8
& itUse . heldAim . aimRange .~ 0.5
& itUse . heldAim . aimStance .~ TwoHandOver
@@ -36,19 +38,25 @@ launcher =
& itUse . heldAmmoTypes .~ singleAmmo ProjectileAmmo
& itType . iyBase .~ HELD LAUNCHER
& itType . iyModules . at ModLauncherHoming ?~ EMPTYMODULE
& itUse . heldParams . muzVel .~ ConstFloat 0
& itUse . heldParams . rifling .~ ConstFloat 0
& itUse . heldParams . recoil .~ 0
& itUse . heldParams . torqueAfter .~ 0
& itUse . heldParams . bulGunSound .~ (tap4S, 0)
launcherX :: Int -> Item
launcherX i =
launcher
& itType . iyBase .~ HELD (LAUNCHERX i)
-- & itUse . heldUse .~ HeldPJCreationX i
& itUse . heldMods .~ LauncherXMod i
-- & itUse . heldMods .~ LauncherXMod i
& itUse . heldAim . aimMuzzles .~ getZipList
(ZipList [Muzzle (V2 20 0) a 0 | a <- angles]
<*> ZipList [0..]
<*> pure DefaultFlareType
<*> pure MuzzleLauncher
)
& itUse . heldAmmoTypes .~ IM.fromList [(j,ProjectileAmmo) | j <- [0..i-1]]
where
angles = take i [0,2*pi/ fromIntegral i ..]
--angles = take i [1,2 ..]