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