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