Explicitly store list of barrels for weapons

This commit is contained in:
2023-05-20 17:48:51 +01:00
parent 03611c6b95
commit 4cfb7d431a
9 changed files with 73 additions and 98 deletions
+6 -15
View File
@@ -7,7 +7,7 @@ module Dodge.Item.Held.Cane (
miniGunX,
) where
import Dodge.Item.Held.SingleBarrel
import Dodge.Base
import Dodge.Data.Item
import Dodge.Default
import Dodge.Reloading.Action
@@ -22,7 +22,7 @@ defaultBangCane =
{ _muzVel = 0.8
, _rifling = 0.9
, _bore = 2
, _gunBarrels = singleBarrel 0.01
, _gunBarrels = [GunBarrel 0 0 0.01]
, _recoil = 50
, _torqueAfter = 0.1
, _randomOffset = 0
@@ -54,17 +54,13 @@ volleyGun i =
{ _muzVel = 0.8
, _rifling = 0.9
, _bore = 2
, _gunBarrels = singleBarrel 0.01
, _gunBarrels = [GunBarrel 0 0 0.01]
, _recoil = 50
, _torqueAfter = 0.1
, _randomOffset = 0
}
& itParams . gunBarrels
.~ MultiBarrel
{ _brlSpread = AlignedBarrels
, _brlNum = i
, _brlInaccuracy = 0.1
}
.~ [ GunBarrel (V2 0 x) 0 0.1 | x <- spreadAroundCenter i 3]
& itParams . torqueAfter .~ 0.48 + 0.2 * fromIntegral i
& itType . iyBase .~ HELD (VOLLEYGUN i)
@@ -100,7 +96,7 @@ burstRifle :: Item
burstRifle =
repeater
& itType . iyBase .~ HELD BURSTRIFLE
& itParams . gunBarrels . brlInaccuracy .~ 0.05
& itParams . gunBarrels . ix 0 . barlInaccuracy .~ 0.05
& itUse . heldDelay . rateMax .~ 18
& itUse . heldMods .~ BurstRifleMod
@@ -133,12 +129,7 @@ miniGunX i =
{ _muzVel = 1
, _rifling = 0.9
, _bore = 2
, _gunBarrels =
MultiBarrel
{ _brlSpread = RotatingBarrels 0.01
, _brlNum = i
, _brlInaccuracy = 0
}
, _gunBarrels = replicate i (GunBarrel 0 0 0.05)
, _recoil = 10
, _torqueAfter = 0
, _randomOffset = 10
+1 -2
View File
@@ -1,6 +1,5 @@
module Dodge.Item.Held.Cone
where
import Dodge.Item.Held.SingleBarrel
import Dodge.Default.Item
import Dodge.Data.Item
import Dodge.Reloading.Action
@@ -15,7 +14,7 @@ bangCone =
{ _muzVel = 0.7
, _rifling = 0.8
, _bore = 5
, _gunBarrels = singleBarrel 0.5
, _gunBarrels = [GunBarrel 0 0 0.5]
, _recoil = 150
, _torqueAfter = 0.1
, _randomOffset = 12
+3 -4
View File
@@ -7,7 +7,6 @@ module Dodge.Item.Held.Rod (
machineGun,
) where
import Dodge.Item.Held.SingleBarrel
import Dodge.Data.Item
import Dodge.Default
import Dodge.Item.Weapon.Bullet
@@ -23,7 +22,7 @@ bangRod =
{ _muzVel = 0.8
, _rifling = 1
, _bore = 2
, _gunBarrels = singleBarrel 0.1
, _gunBarrels = [GunBarrel 0 0 0.1]
, _recoil = 50
, _torqueAfter = 0.3
, _randomOffset = 0
@@ -48,7 +47,7 @@ elephantGun =
bangRod
& itType . iyBase .~ HELD ELEPHANTGUN
& itUse . heldAim . aimStance .~ TwoHandTwist
& itParams . gunBarrels .~ singleBarrel 0.05
& itParams . gunBarrels .~ [GunBarrel 0 0 0.05]
& itUse . heldMods .~ ElephantGunMod
& itParams . recoil .~ 50
& itParams . torqueAfter .~ 0.1
@@ -69,7 +68,7 @@ sniperRifle :: Item
sniperRifle =
elephantGun
& itType . iyBase .~ HELD SNIPERRIFLE
& itParams . gunBarrels .~ singleBarrel 0
& itParams . gunBarrels .~ [GunBarrel 0 0 0]
& itUse . heldAim . aimZoom .~ defaultItZoom{_izMax = 0.5, _izMin = 0.5,_izFac = 1}
& itUse . heldScroll .~ HeldScrollZoom -- zoomLongGun
& itScope .~ ZoomScope (V2 0 0) 1 0.5 False
+3 -8
View File
@@ -8,7 +8,7 @@ module Dodge.Item.Held.Stick (
revolverX,
) where
import Dodge.Item.Held.SingleBarrel
import Dodge.Base
import Dodge.Data.Item
import Dodge.Default.Item
import Dodge.Reloading.Action
@@ -23,12 +23,7 @@ bangStick i =
{ _muzVel = 0.8
, _rifling = 0.8
, _bore = 2
, _gunBarrels =
MultiBarrel
{ _brlNum = i
, _brlSpread = SpreadBarrels baseStickSpread
, _brlInaccuracy = 0.01
}
, _gunBarrels = [GunBarrel 0 a 0.01 | a <- spreadAroundCenter i baseStickSpread]
, _recoil = 25
, _torqueAfter = 0.18 + 0.02 * fromIntegral i
, _randomOffset = 0
@@ -71,7 +66,7 @@ pistol =
%~ ( (muzVel .~ 0.8)
. (rifling .~ 0.8)
. (bore .~ 2)
. (gunBarrels .~ singleBarrel 0.05)
. (gunBarrels .~ [GunBarrel 0 0 0.05])
. (recoil .~ 10)
. (torqueAfter .~ 0.2)
)