Move bullet modifications from weapons to magazines
This commit is contained in:
+10
-1
@@ -1 +1,10 @@
|
|||||||
All good (615 modules, at 00:01:24)
|
/home/justin/Haskell/loop/src/Dodge/Bullet.hs:75:5-11: warning: [-Wunused-local-binds]
|
||||||
|
Defined but not used: ‘bultype’
|
||||||
|
|
|
||||||
|
75 | bultype = _laAmmoType $ _heldConsumption $ _itUse it
|
||||||
|
| ^^^^^^^
|
||||||
|
/home/justin/Haskell/loop/src/Dodge/HeldUse.hs:371:14: warning: [-Wunused-matches]
|
||||||
|
Defined but not used: ‘x’
|
||||||
|
|
|
||||||
|
371 | moddelay x = id
|
||||||
|
| ^
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
+5
-3
@@ -59,9 +59,11 @@ updateBulVel bt = case _buTrajectory bt of
|
|||||||
-- should be made safe?
|
-- should be made safe?
|
||||||
-- should be renamed to shootBullet or something
|
-- should be renamed to shootBullet or something
|
||||||
useAmmoParams :: Item -> Creature -> World -> World
|
useAmmoParams :: Item -> Creature -> World -> World
|
||||||
useAmmoParams it cr w =
|
useAmmoParams it cr w = fromMaybe (error "cannot find bullet ammo when expected to") $ do
|
||||||
w & cWorld . lWorld . instantBullets
|
invid <- it ^? itLocation . ipInvID
|
||||||
.:~ ( _amBullet bultype
|
thebullet <- cr ^? crInv . ix (invid + 1) . itUse . attachParams . ammoParams . ampBullet
|
||||||
|
return $ w & cWorld . lWorld . instantBullets
|
||||||
|
.:~ ( thebullet
|
||||||
& buPos .~ _crPos cr
|
& buPos .~ _crPos cr
|
||||||
& buTrajectory %~ settrajectory
|
& buTrajectory %~ settrajectory
|
||||||
& buVel %~ (rotateV dir . (muzvel *.*))
|
& buVel %~ (rotateV dir . (muzvel *.*))
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ moduleCombinations =
|
|||||||
)
|
)
|
||||||
,
|
,
|
||||||
( ModBulletPayload
|
( ModBulletPayload
|
||||||
, bulletWeapons
|
, bulletMagazines
|
||||||
,
|
,
|
||||||
[ amod [cr (ENERGYBALLCRAFT x)] (BULPAY (BulBall x)) | x <- [minBound ..]
|
[ amod [cr (ENERGYBALLCRAFT x)] (BULPAY (BulBall x)) | x <- [minBound ..]
|
||||||
] ++
|
] ++
|
||||||
@@ -229,6 +229,14 @@ batteryGuns =
|
|||||||
teleportableWeapons :: [Item]
|
teleportableWeapons :: [Item]
|
||||||
teleportableWeapons = bulletWeapons ++ batteryGuns ++ homingLaunchers
|
teleportableWeapons = bulletWeapons ++ batteryGuns ++ homingLaunchers
|
||||||
|
|
||||||
|
bulletMagazines :: [Item]
|
||||||
|
bulletMagazines =
|
||||||
|
[tinMag
|
||||||
|
,revolveMag
|
||||||
|
,drumMag
|
||||||
|
,beltMag
|
||||||
|
]
|
||||||
|
|
||||||
bulletWeapons :: [Item]
|
bulletWeapons :: [Item]
|
||||||
bulletWeapons =
|
bulletWeapons =
|
||||||
[bangStick i | i <- [1 .. 9]]
|
[bangStick i | i <- [1 .. 9]]
|
||||||
|
|||||||
@@ -12,19 +12,19 @@ moduleModification imt = case imt of
|
|||||||
EMPTYMODULE -> id
|
EMPTYMODULE -> id
|
||||||
-- BELTMAG -> itUse . heldConsumption . laSource . _InternalSource . iaMax .~ 150
|
-- BELTMAG -> itUse . heldConsumption . laSource . _InternalSource . iaMax .~ 150
|
||||||
MAGNETMAG -> itUse . heldDelay . rateMax .~ 4
|
MAGNETMAG -> itUse . heldDelay . rateMax .~ 4
|
||||||
BULPAY BulFlak -> (itUse . heldConsumption . laAmmoType . amBullet . buSpawn .~ BulFlak)
|
BULPAY BulFlak -> (itUse . attachParams . ammoParams . ampBullet . buSpawn .~ BulFlak)
|
||||||
. (itUse . heldConsumption . laAmmoType . amBullet . buTimer .~ 3)
|
. (itUse . attachParams . ammoParams . ampBullet . buTimer .~ 3)
|
||||||
BULPAY thepayload -> itUse . heldConsumption . laAmmoType . amBullet . buSpawn .~ thepayload
|
BULPAY thepayload -> itUse . attachParams . ammoParams . ampBullet . buSpawn .~ thepayload
|
||||||
BULBODY thebody -> itUse . heldConsumption . laAmmoType . amBullet . buEffect .~ thebody
|
BULBODY thebody -> itUse . attachParams . ammoParams . ampBullet . buEffect .~ thebody
|
||||||
TARGET {} -> id -- itUse . useTargeting ?~ t
|
TARGET {} -> id -- itUse . useTargeting ?~ t
|
||||||
BULTRAJ BasicBulletTrajectoryType -> id
|
BULTRAJ BasicBulletTrajectoryType -> id
|
||||||
BULTRAJ MagnetTrajectoryType ->
|
BULTRAJ MagnetTrajectoryType ->
|
||||||
(itUse . heldConsumption . laAmmoType . amBullet . buTrajectory .~ MagnetTrajectory 0)
|
(itUse . attachParams . ammoParams . ampBullet . buTrajectory .~ MagnetTrajectory 0)
|
||||||
. (itUse . heldConsumption . laAmmoType . amBullet . buVel .~ V2 10 0)
|
. (itUse . attachParams . ammoParams . ampBullet . buVel .~ V2 10 0)
|
||||||
BULTRAJ FlechetteTrajectoryType ->
|
BULTRAJ FlechetteTrajectoryType ->
|
||||||
itUse . heldConsumption . laAmmoType . amBullet . buTrajectory .~ FlechetteTrajectory 0
|
itUse . attachParams . ammoParams . ampBullet . buTrajectory .~ FlechetteTrajectory 0
|
||||||
BULTRAJ BezierTrajectoryType ->
|
BULTRAJ BezierTrajectoryType ->
|
||||||
itUse . heldConsumption . laAmmoType . amBullet . buTrajectory .~ BezierTrajectory 0 0 0
|
itUse . attachParams . ammoParams . ampBullet . buTrajectory .~ BezierTrajectory 0 0 0
|
||||||
INCENDLAS -> itParams . lasBeam .~ BeamCombine FlameBeamCombine
|
INCENDLAS -> itParams . lasBeam .~ BeamCombine FlameBeamCombine
|
||||||
SPLITLAS -> itParams . lasBeam .~ BeamCombine SplitBeamCombine
|
SPLITLAS -> itParams . lasBeam .~ BeamCombine SplitBeamCombine
|
||||||
STATICLAS ->
|
STATICLAS ->
|
||||||
|
|||||||
@@ -44,7 +44,6 @@ data ItemParams
|
|||||||
, _dbGap :: Float
|
, _dbGap :: Float
|
||||||
}
|
}
|
||||||
| Attracting {_attractionPower :: Point2}
|
| Attracting {_attractionPower :: Point2}
|
||||||
| BulletShooter
|
|
||||||
| Sprayer {_sprayNozzles :: [Nozzle]}
|
| Sprayer {_sprayNozzles :: [Nozzle]}
|
||||||
| AngleWalk
|
| AngleWalk
|
||||||
{ _maxWalkAngle :: Float
|
{ _maxWalkAngle :: Float
|
||||||
|
|||||||
@@ -75,15 +75,7 @@ data AttachParams
|
|||||||
}
|
}
|
||||||
| TargetAttachParams
|
| TargetAttachParams
|
||||||
|
|
||||||
data AmmoParams = DefaultAmmoParams
|
data AmmoParams = BulletParams {_ampBullet :: Bullet}
|
||||||
| BulletParams
|
|
||||||
{ _bupEffect :: BulletEffect
|
|
||||||
, _bupSpawn :: BulletSpawn
|
|
||||||
, _bupDrag :: Float
|
|
||||||
, _bupWidth :: Float
|
|
||||||
, _bupTimer :: Int
|
|
||||||
, _bupDamages :: [Damage]
|
|
||||||
}
|
|
||||||
|
|
||||||
data ScrollAttachParams
|
data ScrollAttachParams
|
||||||
= ZoomScrollParams
|
= ZoomScrollParams
|
||||||
|
|||||||
@@ -44,19 +44,14 @@ data AmmoSourceType
|
|||||||
data AmmoType
|
data AmmoType
|
||||||
= ProjectileAmmo
|
= ProjectileAmmo
|
||||||
{ _amPayload :: Payload
|
{ _amPayload :: Payload
|
||||||
, _amString :: String
|
|
||||||
, _amPjDraw :: ProjectileDraw
|
, _amPjDraw :: ProjectileDraw
|
||||||
, _amPjCreation :: ProjectileCreate
|
, _amPjCreation :: ProjectileCreate
|
||||||
}
|
}
|
||||||
| BulletAmmo
|
| SmallBulletAmmo
|
||||||
{ _amString :: String
|
| LargeBulletAmmo
|
||||||
, _amBullet :: Bullet
|
|
||||||
}
|
|
||||||
| DroneAmmo
|
| DroneAmmo
|
||||||
{_amString :: String}
|
|
||||||
| GasAmmo
|
| GasAmmo
|
||||||
{ _amString :: String
|
{ _amCreateGas :: GasCreate
|
||||||
, _amCreateGas :: GasCreate
|
|
||||||
}
|
}
|
||||||
| ForceFieldAmmo
|
| ForceFieldAmmo
|
||||||
{ _amForceFieldType :: ForceFieldType
|
{ _amForceFieldType :: ForceFieldType
|
||||||
|
|||||||
@@ -47,8 +47,8 @@ defaultBulletWeapon =
|
|||||||
& itUse . heldConsumption .~ defaultBulletLoadable
|
& itUse . heldConsumption .~ defaultBulletLoadable
|
||||||
& itUse . heldUse .~ HeldUseAmmoParams -- useAmmoParams
|
& itUse . heldUse .~ HeldUseAmmoParams -- useAmmoParams
|
||||||
& itType . iyModules . at ModBulletCollision ?~ EMPTYMODULE
|
& itType . iyModules . at ModBulletCollision ?~ EMPTYMODULE
|
||||||
& itType . iyModules . at ModBulletPayload ?~ EMPTYMODULE
|
-- & itType . iyModules . at ModBulletPayload ?~ EMPTYMODULE
|
||||||
& itType . iyModules . at ModBulletTrajectory ?~ EMPTYMODULE
|
-- & itType . iyModules . at ModBulletTrajectory ?~ EMPTYMODULE
|
||||||
|
|
||||||
defaultWeapon :: Item
|
defaultWeapon :: Item
|
||||||
defaultWeapon =
|
defaultWeapon =
|
||||||
|
|||||||
@@ -368,7 +368,8 @@ useMod hm = case hm of
|
|||||||
where
|
where
|
||||||
p = fromMaybe (_crPos cr) $ cr ^? crTargeting . ctPos . _Just
|
p = fromMaybe (_crPos cr) $ cr ^? crTargeting . ctPos . _Just
|
||||||
a = argV (mouseWorldPos (w ^. input) (w ^. wCam) -.- p)
|
a = argV (mouseWorldPos (w ^. input) (w ^. wCam) -.- p)
|
||||||
moddelay x = itUse . heldConsumption . laAmmoType . amBullet . buDelayFraction .~ x
|
moddelay x = id
|
||||||
|
--moddelay x = itUse . heldConsumption . laAmmoType . amBullet . buDelayFraction .~ x
|
||||||
modcrpos x cr =
|
modcrpos x cr =
|
||||||
cr & crDir %~ tweenAngles x (_crOldDir cr)
|
cr & crDir %~ tweenAngles x (_crOldDir cr)
|
||||||
& crPos %~ alongSegBy x (_crOldPos cr)
|
& crPos %~ alongSegBy x (_crOldPos cr)
|
||||||
@@ -493,9 +494,10 @@ bangStickSoundChoice :: Item -> SoundID
|
|||||||
bangStickSoundChoice = caneStickSoundChoice
|
bangStickSoundChoice = caneStickSoundChoice
|
||||||
|
|
||||||
coneRandItemUpdate :: State StdGen (Item -> Item)
|
coneRandItemUpdate :: State StdGen (Item -> Item)
|
||||||
coneRandItemUpdate = do
|
coneRandItemUpdate = return id
|
||||||
wth <- state $ randomR (1, 5)
|
-- do
|
||||||
return (itUse . heldConsumption . laAmmoType . amBullet . buWidth .~ wth)
|
-- wth <- state $ randomR (1, 5)
|
||||||
|
-- return (itUse . heldConsumption . laAmmoType . amBullet . buWidth .~ wth)
|
||||||
|
|
||||||
coneRandItemParams :: State StdGen (Item -> Item)
|
coneRandItemParams :: State StdGen (Item -> Item)
|
||||||
coneRandItemParams = do
|
coneRandItemParams = do
|
||||||
|
|||||||
+11
-19
@@ -1,37 +1,22 @@
|
|||||||
module Dodge.Item.Ammo where
|
module Dodge.Item.Ammo where
|
||||||
|
|
||||||
|
import Dodge.Item.Weapon.Bullet
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Dodge.Data.World
|
import Dodge.Data.World
|
||||||
import Dodge.Default.Item
|
import Dodge.Default.Item
|
||||||
import Dodge.Reloading.Action
|
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 :: Item
|
||||||
tinMag =
|
tinMag =
|
||||||
defaultHeldItem & itType . iyBase .~ ATTACH (AMMOATTACH TINMAG)
|
defaultHeldItem & itType . iyBase .~ ATTACH (AMMOATTACH TINMAG)
|
||||||
|
& itType . iyModules . at ModBulletPayload ?~ EMPTYMODULE
|
||||||
|
& itType . iyModules . at ModBulletTrajectory ?~ EMPTYMODULE
|
||||||
& itUse
|
& itUse
|
||||||
.~ AttachUse
|
.~ AttachUse
|
||||||
{ _attachParams =
|
{ _attachParams =
|
||||||
AmmoAttachParams
|
AmmoAttachParams
|
||||||
{ _ammoParams = DefaultAmmoParams
|
{ _ammoParams = BulletParams defaultBullet
|
||||||
, _ammoLoadStatus =
|
, _ammoLoadStatus =
|
||||||
InternalAmmo
|
InternalAmmo
|
||||||
{ _iaMax = 15
|
{ _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 :: Item
|
||||||
drumMag =
|
drumMag =
|
||||||
tinMag & itType . iyBase .~ ATTACH (AMMOATTACH DRUMMAG)
|
tinMag & itType . iyBase .~ ATTACH (AMMOATTACH DRUMMAG)
|
||||||
|
|||||||
@@ -10,9 +10,6 @@ import Linear
|
|||||||
bangCone :: Item
|
bangCone :: Item
|
||||||
bangCone =
|
bangCone =
|
||||||
defaultBulletWeapon
|
defaultBulletWeapon
|
||||||
{ _itParams =
|
|
||||||
BulletShooter
|
|
||||||
}
|
|
||||||
& itDimension . dimRad .~ 8
|
& itDimension . dimRad .~ 8
|
||||||
& itDimension . dimCenter .~ V3 5 0 0
|
& itDimension . dimCenter .~ V3 5 0 0
|
||||||
& itUse . heldDelay . rateMax .~ 20
|
& itUse . heldDelay . rateMax .~ 20
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ launcher =
|
|||||||
& itUse . heldConsumption . laAmmoType
|
& itUse . heldConsumption . laAmmoType
|
||||||
.~ ProjectileAmmo
|
.~ ProjectileAmmo
|
||||||
{ _amPayload = ExplosionPayload
|
{ _amPayload = ExplosionPayload
|
||||||
, _amString = "EXPLOSIVE SHELL"
|
|
||||||
, _amPjDraw = DrawShell
|
, _amPjDraw = DrawShell
|
||||||
, _amPjCreation = CreateShell
|
, _amPjCreation = CreateShell
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ module Dodge.Item.Held.Rod (
|
|||||||
|
|
||||||
import Dodge.Data.Item
|
import Dodge.Data.Item
|
||||||
import Dodge.Default
|
import Dodge.Default
|
||||||
import Dodge.Item.Weapon.Bullet
|
--import Dodge.Item.Weapon.Bullet
|
||||||
--import Dodge.Reloading.Action
|
--import Dodge.Reloading.Action
|
||||||
import Geometry
|
import Geometry
|
||||||
import LensHelp
|
import LensHelp
|
||||||
@@ -36,7 +36,7 @@ bangRod =
|
|||||||
& itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5}
|
& itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5}
|
||||||
-- & itUse . heldAim . aimHandlePos .~ 5
|
-- & itUse . heldAim . aimHandlePos .~ 5
|
||||||
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 30 0) 0 0.1]
|
& itUse . heldAim . aimMuzzles .~ [Muzzle (V2 30 0) 0 0.1]
|
||||||
& itUse . heldConsumption . laAmmoType .~ hvBulletAmmo
|
-- & itUse . heldConsumption . laAmmoType .~ hvBulletAmmo
|
||||||
|
|
||||||
elephantGun :: Item
|
elephantGun :: Item
|
||||||
elephantGun =
|
elephantGun =
|
||||||
|
|||||||
@@ -19,8 +19,7 @@ poisonSprayer =
|
|||||||
& itType . iyBase .~ HELD POISONSPRAYER
|
& itType . iyBase .~ HELD POISONSPRAYER
|
||||||
& itUse . heldConsumption . laAmmoType
|
& itUse . heldConsumption . laAmmoType
|
||||||
.~ GasAmmo
|
.~ GasAmmo
|
||||||
{ _amString = "POISONGAS"
|
{ _amCreateGas = CreatePoisonGas --aGasCloud
|
||||||
, _amCreateGas = CreatePoisonGas --aGasCloud
|
|
||||||
}
|
}
|
||||||
& itUse . heldMods .~ PoisonSprayerMod
|
& itUse . heldMods .~ PoisonSprayerMod
|
||||||
|
|
||||||
@@ -96,8 +95,7 @@ flameThrower =
|
|||||||
.~ ( defaultLoadable
|
.~ ( defaultLoadable
|
||||||
& laAmmoType
|
& laAmmoType
|
||||||
.~ GasAmmo
|
.~ GasAmmo
|
||||||
{ _amString = "FLAME"
|
{ _amCreateGas = CreateFlame --aFlame
|
||||||
, _amCreateGas = CreateFlame --aFlame
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
& itType . iyBase .~ HELD FLAMETHROWER
|
& itType . iyBase .~ HELD FLAMETHROWER
|
||||||
|
|||||||
@@ -9,11 +9,8 @@ import Control.Lens
|
|||||||
import Geometry.Data
|
import Geometry.Data
|
||||||
|
|
||||||
basicBulletAmmo :: AmmoType
|
basicBulletAmmo :: AmmoType
|
||||||
basicBulletAmmo =
|
basicBulletAmmo = SmallBulletAmmo
|
||||||
BulletAmmo
|
-- , _amBullet = defaultBullet
|
||||||
{ _amString = "BASIC"
|
|
||||||
, _amBullet = defaultBullet
|
|
||||||
}
|
|
||||||
|
|
||||||
defaultBullet :: Bullet
|
defaultBullet :: Bullet
|
||||||
defaultBullet =
|
defaultBullet =
|
||||||
@@ -36,16 +33,11 @@ basicBulDams =
|
|||||||
[ Damage PIERCING 100 0 0 0 $ PushBackDamage 2
|
[ Damage PIERCING 100 0 0 0 $ PushBackDamage 2
|
||||||
]
|
]
|
||||||
|
|
||||||
hvBulletAmmo :: AmmoType
|
hvBulletAmmo :: Bullet
|
||||||
hvBulletAmmo =
|
hvBulletAmmo = defaultBullet
|
||||||
BulletAmmo
|
|
||||||
{ _amString = "HVBULLET"
|
|
||||||
, _amBullet =
|
|
||||||
defaultBullet
|
|
||||||
& buWidth .~ 6
|
& buWidth .~ 6
|
||||||
& buVel .~ V2 80 0
|
& buVel .~ V2 80 0
|
||||||
& buDamages .~ heavyBulDams
|
& buDamages .~ heavyBulDams
|
||||||
}
|
|
||||||
|
|
||||||
heavyBulDams :: [Damage]
|
heavyBulDams :: [Damage]
|
||||||
heavyBulDams =
|
heavyBulDams =
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ droneLauncher =
|
|||||||
& itUse . heldAim . aimWeight .~ 8
|
& itUse . heldAim . aimWeight .~ 8
|
||||||
& itUse . heldAim . aimRange .~ 0.5
|
& itUse . heldAim . aimRange .~ 0.5
|
||||||
& itUse . heldAim . aimStance .~ TwoHandOver
|
& itUse . heldAim . aimStance .~ TwoHandOver
|
||||||
& itUse . heldConsumption . laAmmoType .~ DroneAmmo{_amString = "LASDRONE"}
|
& itUse . heldConsumption . laAmmoType .~ DroneAmmo
|
||||||
& itType . iyBase .~ HELD DRONELAUNCHER
|
& itType . iyBase .~ HELD DRONELAUNCHER
|
||||||
|
|
||||||
lasDronesPic :: Item -> SPic
|
lasDronesPic :: Item -> SPic
|
||||||
|
|||||||
Reference in New Issue
Block a user