Continue refactor of reloading

This commit is contained in:
2022-06-20 11:12:24 +01:00
parent 2f4b381484
commit a85cf4d1fb
27 changed files with 243 additions and 299 deletions
+11 -15
View File
@@ -21,7 +21,6 @@ import Dodge.Default
--import Dodge.Item.Weapon.InventoryDisplay
import Dodge.Item.Weapon.AmmoParams
import Dodge.Item.Draw
import Dodge.Item.Weapon.Bullet
import Dodge.Item.Weapon.TriggerType
import Dodge.SoundLogic.LoadSound
import Picture
@@ -38,7 +37,7 @@ import LensHelp
--import System.Random
bangCane :: Item
bangCane = defaultGun
bangCane = defaultBulletWeapon
{ _itParams = BulletShooter
{ _muzVel = 0.8
, _rifling = 0.9
@@ -50,12 +49,6 @@ bangCane = defaultGun
, _torqueAfter = 0.1
, _randomOffset = 0
}
, _itConsumption = defaultAmmo
{ _laType = basicBullet
, _laMax = 1
, _laReloadTime = 15
, _laReloadType = ActivePartial 1
}
, _itUse = ruseAmmoParamsRate 6 upHammer
[ ammoHammerCheck
, useTimeCheck
@@ -79,6 +72,8 @@ bangCane = defaultGun
}
} & itUse . useAim . aimStance .~ OneHand
& itType . iyBase .~ BANGCANE
& itConsumption . laMax .~ 1
& itConsumption . laLoadType .~ ActivePartial 10 1 NoTransfer
bangCaneX :: Int -> Item
bangCaneX i = bangCane
{ _itUse = ruseAmmoParamsRate 6 upHammer
@@ -144,6 +139,7 @@ rifle = bangCane
& itUse . useAim . aimStance .~ TwoHandTwist
& itType . iyBase .~ RIFLE
& itConsumption . laMax .~ 1
& itConsumption . laLoadType .~ ActiveEject 5 5 NoTransfer
& itUse . useAim . aimWeight .~ 6
& itUse . useAim . aimRange .~ 1
-- & itUse . useAim . aimZoom .~ defaultItZoom {_itZoomFac = 1.5}
@@ -152,8 +148,8 @@ repeater :: Item
repeater = rifle
& itType . iyModules . at ModRifleMag ?~ EMPTYMODULE
& itType . iyBase .~ REPEATER
& itConsumption . laReloadType .~ ActiveClear
& itConsumption . laReloadTime .~ 80
& itConsumption . laLoadType . ejectTime .~ 40
& itConsumption . laLoadType . insertTime .~ 40
& itConsumption . laMax .~ 15
& itDimension . dimSPic .~ (\it -> noPic $ baseRifleShape
<> makeTinClipAt 0 (V3 10 (-2) 0) it
@@ -252,14 +248,14 @@ miniGunUse i = ruseInstant (useAmmoParams $ Just 1) NoHammer $
miniGunX :: Int -> Item
miniGunX i = defaultAutoGun
{ _itConsumption = defaultAmmo
{ _laType = basicBullet
, _laMax = 1500
{ _itConsumption = defaultBulletLoadable
{ _laMax = 1500
, _laLoaded = 1500
, _laReloadTime = 200
}
& laLoadType . ejectTime .~ 60
& laLoadType . insertTime .~ 60
, _itUse = miniGunUse i
& useDelay .~ WarmUpNoDelay {_warmTime = 0,_warmMax = 200}
& useDelay .~ WarmUpNoDelay {_warmTime = 0,_warmMax = 100}
& useAim . aimWeight .~ 6
& useAim . aimRange .~ 1
& useAim . aimStance .~ TwoHandTwist
+7 -9
View File
@@ -22,7 +22,6 @@ import Dodge.Item.Weapon.ExtraEffect
--import Dodge.Item.Weapon.InventoryDisplay
import Dodge.Item.Weapon.AmmoParams
--import Dodge.Item.Draw
import Dodge.Item.Weapon.Bullet
import Dodge.Item.Weapon.TriggerType
import Dodge.SoundLogic.LoadSound
import Picture
@@ -38,7 +37,7 @@ import LensHelp
--import System.Random
bangRod :: Item
bangRod = defaultGun
bangRod = defaultBulletWeapon
{ _itParams = BulletShooter
{ _muzVel = 0.8
, _rifling = 1
@@ -69,18 +68,16 @@ bangRod = defaultGun
, _dimSPic = \it -> noPic $ baseRodShape
<> makeSingleClipAt (V3 5 0 3) it
}
, _itConsumption = defaultAmmo
{ _laType = basicBullet
, _laMax = 1
, _laReloadTime = 20
}
}
& itConsumption . laMax .~ 1
& itConsumption . laLoadType . ejectTime .~ 10
& itConsumption . laLoadType . insertTime .~ 10
& itType . iyBase .~ BANGROD
& itUse . useAim . aimWeight .~ 8
& itUse . useAim . aimRange .~ 1
& itUse . useAim . aimStance .~ OneHand
& itUse . useAim . aimZoom .~ defaultItZoom {_itZoomFac = 1.5}
& itConsumption . laType . amBulEff .~ expireAndDamage heavyBulDams
& itConsumption . laAmmoType . amBulEff .~ expireAndDamage heavyBulDams
baseRodShape :: Shape
baseRodShape = colorSH orange $ upperPrismPoly 3 $ rectXH 20 2
baseAMRShape :: Shape
@@ -145,6 +142,7 @@ machineGun = bangRod
& useDelay .~ VariableRate {_rateMax = 25, _rateMaxMax = 24, _rateMinMax = 7, _rateTime = 0}
)
& itConsumption . laMax .~ 100
& itConsumption . laReloadTime .~ 75
& itConsumption . laLoadType . ejectTime .~ 25
& itConsumption . laLoadType . insertTime .~ 25
& itInvSize .~ 3
& itParams. torqueAfter .~ 0.2 -- not sure if this is necessary?
+14 -29
View File
@@ -18,7 +18,6 @@ import Dodge.Default
--import Dodge.Item.Weapon.InventoryDisplay
import Dodge.Item.Weapon.AmmoParams
--import Dodge.Item.Draw
import Dodge.Item.Weapon.Bullet
import Dodge.Item.Weapon.TriggerType
import Dodge.SoundLogic.LoadSound
import Picture
@@ -40,14 +39,8 @@ bangStickSoundChoice it
| otherwise = shotgunS
bangStick :: Int -> Item
bangStick i = defaultGun
{ _itConsumption = defaultAmmo
{ _laType = basicBullet
, _laMax = i
, _laReloadTime = 10
, _laReloadType = ActivePartial 1
}
, _itUse = ruseAmmoParamsRate 8 upHammer
bangStick i = defaultBulletWeapon
{ _itUse = ruseAmmoParamsRate 8 upHammer
[ ammoHammerCheck
, useTimeCheck
, withSoundItemChoiceStart bangStickSoundChoice
@@ -84,6 +77,8 @@ bangStick i = defaultGun
}
}
& itType . iyBase .~ BANGSTICK i
& itConsumption . laMax .~ i
& itConsumption . laLoadType .~ ActivePartial 10 1 NoTransfer
baseStickShapeX :: Int -> Shape
baseStickShapeX i = foldMap f [0..i-1]
where
@@ -110,14 +105,10 @@ stickClip it = case it ^? itConsumption . laLoaded of
revolver :: Item
revolver = pistol
{ _itConsumption = defaultAmmo
{ _laType = basicBullet
, _laMax = 6
, _laLoaded = 0
, _laReloadTime = 10
, _laReloadType = ActivePartial 1
}
}
& itConsumption .~
(defaultBulletLoadable
& laMax .~ 6
& laLoadType .~ ActivePartial 10 1 NoTransfer )
& itDimension . dimSPic .~ (\it -> noPic $ baseStickShape <> revolverClip it)
& itType . iyBase .~ REVOLVER
@@ -164,18 +155,12 @@ smgAfterHamMods =
pistol :: Item
pistol = (bangStick 1)
{ _itConsumption = defaultAmmo
{ _laType = basicBullet
, _laMax = 15
, _laLoaded = 0
, _laReloadTime = 70
, _laReloadType = ActiveClear
}
, _itUse = ruseAmmoParamsRate 6 upHammer
(ammoHammerCheck : pistolAfterHamMods)
-- , _itZoom = defaultItZoom
-- , _itEquipPict = pictureWeaponAim pistolPic
} & itDimension . dimSPic .~ (\it -> noPic $ baseStickShape <> makeTinClipAt pi (V3 5 2 0) it)
& itConsumption .~ ( defaultBulletLoadable
& laMax .~ 15
& laLoadType . ejectTime .~ 20
& laLoadType . insertTime .~ 20 )
& itUse .~ ruseAmmoParamsRate 6 upHammer (ammoHammerCheck : pistolAfterHamMods)
& itDimension . dimSPic .~ (\it -> noPic $ baseStickShape <> makeTinClipAt pi (V3 5 2 0) it)
& itParams %~
( ( muzVel .~ 0.8 )
. ( rifling .~ 0.8 )