Files
loop/src/Dodge/Item/Held/Rod.hs
T
2025-06-04 09:50:18 +01:00

71 lines
2.1 KiB
Haskell

module Dodge.Item.Held.Rod (
bangRod,
elephantGun,
amr,
autoAmr,
sniperRifle,
-- machineGun,
) where
--import Dodge.SoundLogic.ExternallyGeneratedSounds
import Dodge.Data.Item
import Dodge.Default
--import Dodge.Item.Weapon.Bullet
--import Dodge.Reloading.Action
import Geometry
import LensHelp
bangRod :: Item
bangRod =
defaultBulletWeapon
-- & itUse . heldParams . recoil .~ 50
& itUse . heldParams . torqueAfter .~ 0.3
-- & itUse . heldParams . bulGunSound ?~ (bangEchoS,0)
& itUse . heldDelay . rateMax .~ 12
& itType .~ HELD BANGROD
-- & itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5}
-- & itUse . heldAim . aimHandlePos .~ 5
& itUse . heldMuzzles . ix 0 . mzPos .~ V2 30 0
& itUse . heldMuzzles . ix 0 . mzFlareType .~ HeavySmokeFlare
-- & itUse . heldConsumption . laAmmoType .~ hvBulletAmmo
elephantGun :: Item
elephantGun =
bangRod
& itType .~ HELD ELEPHANTGUN
& itUse . heldMuzzles . ix 0 . mzInaccuracy .~ 0.05
-- & itUse . heldParams . recoil .~ 50
amr :: Item
amr =
elephantGun
& itType .~ HELD AMR
autoAmr :: Item
autoAmr =
amr
& itType .~ HELD AUTOAMR
sniperRifle :: Item
sniperRifle =
elephantGun
& itType .~ HELD SNIPERRIFLE
& itUse . heldMuzzles . ix 0 . mzInaccuracy .~ 0
-- & itUse . heldAim . aimZoom .~ defaultItZoom{_izMax = 0.5, _izMin = 0.5,_izFac = 1}
--machineGun :: Item
--machineGun =
-- bangRod
-- & itType . iyBase .~ HELD MACHINEGUN
---- & itUse . heldMods .~ MachineGunMod
-- & itUse . heldMods .~ PistolMod
-- & itUse . heldAim . aimWeight .~ 8
-- & itUse . heldAim . aimRange .~ 1
-- & itUse . heldAim . aimStance .~ TwoHandUnder
-- & itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5}
-- & itUse . heldDelay .~ VariableRate
-- {_rateMax = 25, _rateMaxMax = 24, _rateMinMax = 7, _rateTime = 0}
-- & itInvSize .~ 3
-- & itUse . heldParams . torqueAfter .~ 0.2 -- not sure if this is necessary?
-- & itUse . heldTriggerType .~ AutoTrigger