Move towards unifying weapon barrels
This commit is contained in:
@@ -88,12 +88,9 @@ data GunBarrels
|
||||
, _brlNum :: Int
|
||||
, _brlInaccuracy :: Float
|
||||
}
|
||||
| BarrelList [GunBarrel]
|
||||
| RotBarrel
|
||||
{ _brlNum :: Int
|
||||
, _brlInaccuracy :: Float
|
||||
| BarrelList
|
||||
{ _brlList :: [GunBarrel]
|
||||
}
|
||||
| SingleBarrel {_brlInaccuracy :: Float}
|
||||
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
||||
|
||||
data Nozzle = Nozzle
|
||||
|
||||
@@ -7,6 +7,7 @@ module Dodge.Item.Held.Cane (
|
||||
miniGunX,
|
||||
) where
|
||||
|
||||
import Dodge.Item.Held.SingleBarrel
|
||||
import Dodge.Data.Item
|
||||
import Dodge.Default
|
||||
import Dodge.Reloading.Action
|
||||
@@ -21,10 +22,7 @@ defaultBangCane =
|
||||
{ _muzVel = 0.8
|
||||
, _rifling = 0.9
|
||||
, _bore = 2
|
||||
, _gunBarrels =
|
||||
SingleBarrel
|
||||
{ _brlInaccuracy = 0.01
|
||||
}
|
||||
, _gunBarrels = singleBarrel 0.01
|
||||
, _recoil = 50
|
||||
, _torqueAfter = 0.1
|
||||
, _randomOffset = 0
|
||||
@@ -56,10 +54,7 @@ volleyGun i =
|
||||
{ _muzVel = 0.8
|
||||
, _rifling = 0.9
|
||||
, _bore = 2
|
||||
, _gunBarrels =
|
||||
SingleBarrel
|
||||
{ _brlInaccuracy = 0.01
|
||||
}
|
||||
, _gunBarrels = singleBarrel 0.01
|
||||
, _recoil = 50
|
||||
, _torqueAfter = 0.1
|
||||
, _randomOffset = 0
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
module Dodge.Item.Held.Cone
|
||||
where
|
||||
import Dodge.Item.Held.SingleBarrel
|
||||
import Dodge.Default.Item
|
||||
import Dodge.Data.Item
|
||||
import Dodge.Reloading.Action
|
||||
@@ -14,7 +15,7 @@ bangCone =
|
||||
{ _muzVel = 0.7
|
||||
, _rifling = 0.8
|
||||
, _bore = 5
|
||||
, _gunBarrels = SingleBarrel 0.5
|
||||
, _gunBarrels = singleBarrel 0.5
|
||||
, _recoil = 150
|
||||
, _torqueAfter = 0.1
|
||||
, _randomOffset = 12
|
||||
|
||||
@@ -7,6 +7,7 @@ module Dodge.Item.Held.Rod (
|
||||
machineGun,
|
||||
) where
|
||||
|
||||
import Dodge.Item.Held.SingleBarrel
|
||||
import Dodge.Data.Item
|
||||
import Dodge.Default
|
||||
import Dodge.Item.Weapon.Bullet
|
||||
@@ -22,7 +23,7 @@ bangRod =
|
||||
{ _muzVel = 0.8
|
||||
, _rifling = 1
|
||||
, _bore = 2
|
||||
, _gunBarrels = SingleBarrel 0.1
|
||||
, _gunBarrels = singleBarrel 0.1
|
||||
, _recoil = 50
|
||||
, _torqueAfter = 0.3
|
||||
, _randomOffset = 0
|
||||
@@ -47,7 +48,7 @@ elephantGun =
|
||||
bangRod
|
||||
& itType . iyBase .~ HELD ELEPHANTGUN
|
||||
& itUse . heldAim . aimStance .~ TwoHandTwist
|
||||
& itParams . gunBarrels .~ SingleBarrel 0.05
|
||||
& itParams . gunBarrels .~ singleBarrel 0.05
|
||||
& itUse . heldMods .~ ElephantGunMod
|
||||
& itParams . recoil .~ 50
|
||||
& itParams . torqueAfter .~ 0.1
|
||||
@@ -68,7 +69,7 @@ sniperRifle :: Item
|
||||
sniperRifle =
|
||||
elephantGun
|
||||
& itType . iyBase .~ HELD SNIPERRIFLE
|
||||
& itParams . gunBarrels .~ SingleBarrel 0
|
||||
& itParams . gunBarrels .~ singleBarrel 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
|
||||
|
||||
@@ -8,6 +8,7 @@ module Dodge.Item.Held.Stick (
|
||||
revolverX,
|
||||
) where
|
||||
|
||||
import Dodge.Item.Held.SingleBarrel
|
||||
import Dodge.Data.Item
|
||||
import Dodge.Default.Item
|
||||
import Dodge.Reloading.Action
|
||||
@@ -70,7 +71,7 @@ pistol =
|
||||
%~ ( (muzVel .~ 0.8)
|
||||
. (rifling .~ 0.8)
|
||||
. (bore .~ 2)
|
||||
. (gunBarrels .~ SingleBarrel 0.05)
|
||||
. (gunBarrels .~ singleBarrel 0.05)
|
||||
. (recoil .~ 10)
|
||||
. (torqueAfter .~ 0.2)
|
||||
)
|
||||
|
||||
@@ -63,6 +63,7 @@ module Dodge.Item.Weapon.TriggerType (
|
||||
blCheck,
|
||||
) where
|
||||
|
||||
import Control.Applicative
|
||||
import qualified SDL
|
||||
import Data.Foldable
|
||||
import Data.Maybe
|
||||
@@ -497,7 +498,10 @@ crAtMuzPos f it cr = f it (cr & crPos +.+.~ (aimingMuzzlePos cr it *.* unitVecto
|
||||
applyInaccuracy :: ChainEffect
|
||||
applyInaccuracy f it = withRandomDirI acc f it
|
||||
where
|
||||
acc = _brlInaccuracy . _gunBarrels $ _itParams it
|
||||
acc = fromMaybe 0 $
|
||||
(it ^? itParams . gunBarrels . brlList . ix 0 . barlInaccuracy)
|
||||
<|>
|
||||
(it ^? itParams . gunBarrels . brlInaccuracy)
|
||||
|
||||
-- | Applies the effect to a randomly rotated creature.
|
||||
withRandomDirI ::
|
||||
|
||||
Reference in New Issue
Block a user