Move bullet modifications from weapons to magazines
This commit is contained in:
+11
-19
@@ -1,37 +1,22 @@
|
||||
module Dodge.Item.Ammo where
|
||||
|
||||
import Dodge.Item.Weapon.Bullet
|
||||
import Control.Lens
|
||||
import Dodge.Data.World
|
||||
import Dodge.Default.Item
|
||||
import Dodge.Reloading.Action
|
||||
|
||||
revolveMag :: Item
|
||||
revolveMag =
|
||||
defaultHeldItem & itType . iyBase .~ ATTACH (AMMOATTACH REVOLVEMAG)
|
||||
& itUse
|
||||
.~ AttachUse
|
||||
{ _attachParams =
|
||||
AmmoAttachParams
|
||||
{ _ammoParams = DefaultAmmoParams
|
||||
, _ammoLoadStatus =
|
||||
InternalAmmo
|
||||
{ _iaMax = 6
|
||||
, _iaLoaded = 6
|
||||
, _iaPrimed = True
|
||||
, _iaCycle = [loadPartialInsert 10 1]
|
||||
, _iaProgress = Nothing
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tinMag :: Item
|
||||
tinMag =
|
||||
defaultHeldItem & itType . iyBase .~ ATTACH (AMMOATTACH TINMAG)
|
||||
& itType . iyModules . at ModBulletPayload ?~ EMPTYMODULE
|
||||
& itType . iyModules . at ModBulletTrajectory ?~ EMPTYMODULE
|
||||
& itUse
|
||||
.~ AttachUse
|
||||
{ _attachParams =
|
||||
AmmoAttachParams
|
||||
{ _ammoParams = DefaultAmmoParams
|
||||
{ _ammoParams = BulletParams defaultBullet
|
||||
, _ammoLoadStatus =
|
||||
InternalAmmo
|
||||
{ _iaMax = 15
|
||||
@@ -43,6 +28,13 @@ tinMag =
|
||||
}
|
||||
}
|
||||
|
||||
revolveMag :: Item
|
||||
revolveMag = tinMag
|
||||
& itType . iyBase .~ ATTACH (AMMOATTACH REVOLVEMAG)
|
||||
& itUse . attachParams . ammoLoadStatus . iaMax .~ 6
|
||||
& itUse . attachParams . ammoLoadStatus . iaLoaded .~ 6
|
||||
& itUse . attachParams . ammoLoadStatus . iaCycle .~ [loadPartialInsert 10 1]
|
||||
|
||||
drumMag :: Item
|
||||
drumMag =
|
||||
tinMag & itType . iyBase .~ ATTACH (AMMOATTACH DRUMMAG)
|
||||
|
||||
@@ -10,9 +10,6 @@ import Linear
|
||||
bangCone :: Item
|
||||
bangCone =
|
||||
defaultBulletWeapon
|
||||
{ _itParams =
|
||||
BulletShooter
|
||||
}
|
||||
& itDimension . dimRad .~ 8
|
||||
& itDimension . dimCenter .~ V3 5 0 0
|
||||
& itUse . heldDelay . rateMax .~ 20
|
||||
|
||||
@@ -35,7 +35,6 @@ launcher =
|
||||
& itUse . heldConsumption . laAmmoType
|
||||
.~ ProjectileAmmo
|
||||
{ _amPayload = ExplosionPayload
|
||||
, _amString = "EXPLOSIVE SHELL"
|
||||
, _amPjDraw = DrawShell
|
||||
, _amPjCreation = CreateShell
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ module Dodge.Item.Held.Rod (
|
||||
|
||||
import Dodge.Data.Item
|
||||
import Dodge.Default
|
||||
import Dodge.Item.Weapon.Bullet
|
||||
--import Dodge.Item.Weapon.Bullet
|
||||
--import Dodge.Reloading.Action
|
||||
import Geometry
|
||||
import LensHelp
|
||||
@@ -36,7 +36,7 @@ bangRod =
|
||||
& itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5}
|
||||
-- & itUse . heldAim . aimHandlePos .~ 5
|
||||
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 30 0) 0 0.1]
|
||||
& itUse . heldConsumption . laAmmoType .~ hvBulletAmmo
|
||||
-- & itUse . heldConsumption . laAmmoType .~ hvBulletAmmo
|
||||
|
||||
elephantGun :: Item
|
||||
elephantGun =
|
||||
|
||||
@@ -19,8 +19,7 @@ poisonSprayer =
|
||||
& itType . iyBase .~ HELD POISONSPRAYER
|
||||
& itUse . heldConsumption . laAmmoType
|
||||
.~ GasAmmo
|
||||
{ _amString = "POISONGAS"
|
||||
, _amCreateGas = CreatePoisonGas --aGasCloud
|
||||
{ _amCreateGas = CreatePoisonGas --aGasCloud
|
||||
}
|
||||
& itUse . heldMods .~ PoisonSprayerMod
|
||||
|
||||
@@ -96,8 +95,7 @@ flameThrower =
|
||||
.~ ( defaultLoadable
|
||||
& laAmmoType
|
||||
.~ GasAmmo
|
||||
{ _amString = "FLAME"
|
||||
, _amCreateGas = CreateFlame --aFlame
|
||||
{ _amCreateGas = CreateFlame --aFlame
|
||||
}
|
||||
)
|
||||
& itType . iyBase .~ HELD FLAMETHROWER
|
||||
|
||||
@@ -9,11 +9,8 @@ import Control.Lens
|
||||
import Geometry.Data
|
||||
|
||||
basicBulletAmmo :: AmmoType
|
||||
basicBulletAmmo =
|
||||
BulletAmmo
|
||||
{ _amString = "BASIC"
|
||||
, _amBullet = defaultBullet
|
||||
}
|
||||
basicBulletAmmo = SmallBulletAmmo
|
||||
-- , _amBullet = defaultBullet
|
||||
|
||||
defaultBullet :: Bullet
|
||||
defaultBullet =
|
||||
@@ -36,16 +33,11 @@ basicBulDams =
|
||||
[ Damage PIERCING 100 0 0 0 $ PushBackDamage 2
|
||||
]
|
||||
|
||||
hvBulletAmmo :: AmmoType
|
||||
hvBulletAmmo =
|
||||
BulletAmmo
|
||||
{ _amString = "HVBULLET"
|
||||
, _amBullet =
|
||||
defaultBullet
|
||||
hvBulletAmmo :: Bullet
|
||||
hvBulletAmmo = defaultBullet
|
||||
& buWidth .~ 6
|
||||
& buVel .~ V2 80 0
|
||||
& buDamages .~ heavyBulDams
|
||||
}
|
||||
|
||||
heavyBulDams :: [Damage]
|
||||
heavyBulDams =
|
||||
|
||||
@@ -16,7 +16,7 @@ droneLauncher =
|
||||
& itUse . heldAim . aimWeight .~ 8
|
||||
& itUse . heldAim . aimRange .~ 0.5
|
||||
& itUse . heldAim . aimStance .~ TwoHandOver
|
||||
& itUse . heldConsumption . laAmmoType .~ DroneAmmo{_amString = "LASDRONE"}
|
||||
& itUse . heldConsumption . laAmmoType .~ DroneAmmo
|
||||
& itType . iyBase .~ HELD DRONELAUNCHER
|
||||
|
||||
lasDronesPic :: Item -> SPic
|
||||
|
||||
Reference in New Issue
Block a user