Further tweak bullet modules

This commit is contained in:
2023-01-12 13:08:09 +00:00
parent 37e26f53e6
commit 3508d9c266
9 changed files with 34 additions and 20 deletions
+4 -4
View File
@@ -159,7 +159,7 @@ moduleCombinations =
( ModBulletCollision
, bulletWeapons
,
[ amod [cr (BULBODYMODULE be)] (BULBODY be) | be <- [minBound..]
[ amod [cr (BULBODYCRAFT be)] (BULBODY be) | be <- [minBound..]
]
)
,
@@ -182,9 +182,9 @@ moduleCombinations =
( ModBulletTrajectory
, bulletWeapons
,
[ amod [cr MAGNET, cr MICROCHIP, cr HARDWARE] MAGNETTRAJ
, amod [cr MICROCHIP, cr HARDWARE] FLECHETRAJ
, amod [cr ANTIMATTER, cr HARDWARE] BEZIERTRAJ
[ amod [cr MAGNET, cr MICROCHIP, cr HARDWARE] (BULTRAJ MagnetTrajectoryType)
, amod [cr MICROCHIP, cr HARDWARE] (BULTRAJ FlechetteTrajectoryType)
, amod [cr ANTIMATTER, cr HARDWARE] (BULTRAJ BezierTrajectoryType)
]
)
,
+6 -3
View File
@@ -16,11 +16,14 @@ moduleModification imt = case imt of
BULPAY thepayload -> itUse . heldConsumption . laAmmoType . amBullet . buSpawn .~ BulBall thepayload
BULBODY thebody -> itUse . heldConsumption . laAmmoType . amBullet . buEffect .~ thebody
TARGET t -> itUse . useTargeting ?~ t
MAGNETTRAJ ->
BULTRAJ BasicBulletTrajectoryType -> id
BULTRAJ MagnetTrajectoryType ->
(itUse . heldConsumption . laAmmoType . amBullet . buTrajectory .~ MagnetTrajectory 0)
. (itUse . heldConsumption . laAmmoType . amBullet . buVel .~ V2 10 0)
FLECHETRAJ -> itUse . heldConsumption . laAmmoType . amBullet . buTrajectory .~ FlechetteTrajectory 0
BEZIERTRAJ -> itUse . heldConsumption . laAmmoType . amBullet . buTrajectory .~ BezierTrajectory 0 0 0
BULTRAJ FlechetteTrajectoryType ->
itUse . heldConsumption . laAmmoType . amBullet . buTrajectory .~ FlechetteTrajectory 0
BULTRAJ BezierTrajectoryType ->
itUse . heldConsumption . laAmmoType . amBullet . buTrajectory .~ BezierTrajectory 0 0 0
INCENDLAS -> itParams . lasBeam .~ BeamCombine FlameBeamCombine
SPLITLAS -> itParams . lasBeam .~ BeamCombine SplitBeamCombine
STATICLAS ->
+4 -4
View File
@@ -186,8 +186,8 @@ inventoryX c = case c of
, makeTypeCraftNum 5 (BULPAYLOADMODULE IncBall)
, makeTypeCraftNum 5 (BULPAYLOADMODULE TeslaBall)
, makeTypeCraftNum 5 (BULPAYLOADMODULE ConcBall)
, makeTypeCraftNum 5 (BULBODYMODULE BounceBullet)
, makeTypeCraftNum 5 (BULBODYMODULE PenetrateBullet)
, makeTypeCraftNum 5 (BULBODYCRAFT BounceBullet)
, makeTypeCraftNum 5 (BULBODYCRAFT PenetrateBullet)
]
'H' -> [shatterGun]
'I' ->
@@ -214,8 +214,8 @@ inventoryX c = case c of
, makeTypeCraftNum 1 LIGHTSENSOR
, makeTypeCraftNum 1 SOUNDSENSOR
, makeTypeCraftNum 1 HEATSENSOR
, makeTypeCraftNum 1 (BULBODYMODULE BounceBullet)
, makeTypeCraftNum 1 (BULBODYMODULE PenetrateBullet)
, makeTypeCraftNum 1 (BULBODYCRAFT BounceBullet)
, makeTypeCraftNum 1 (BULBODYCRAFT PenetrateBullet)
, makeTypeCraftNum 1 (BULPAYLOADMODULE IncBall)
, makeTypeCraftNum 1 (BULPAYLOADMODULE TeslaBall)
, makeTypeCraftNum 1 (BULPAYLOADMODULE ConcBall)
+8
View File
@@ -53,6 +53,13 @@ data BulletTrajectory
| MagnetTrajectory Point2
deriving (Show, Eq, Ord, Read) --Generic, Flat)
data BulletTrajectoryType
= BasicBulletTrajectoryType
| BezierTrajectoryType
| FlechetteTrajectoryType
| MagnetTrajectoryType
deriving (Show, Eq, Ord, Read) --Generic, Flat)
makeLenses ''Bullet
makeLenses ''BulletSpawn
deriveJSON defaultOptions ''EnergyBallType
@@ -60,4 +67,5 @@ deriveJSON defaultOptions ''BulletUpdateMod
deriveJSON defaultOptions ''BulletEffect
deriveJSON defaultOptions ''BulletSpawn
deriveJSON defaultOptions ''BulletTrajectory
deriveJSON defaultOptions ''BulletTrajectoryType
deriveJSON defaultOptions ''Bullet
+2 -4
View File
@@ -70,7 +70,7 @@ data CraftType
| FRAGMODULE
| FLASHMODULE
| BULPAYLOADMODULE EnergyBallType
| BULBODYMODULE BulletEffect
| BULBODYCRAFT BulletEffect
| TELEPORTMODULE
| TIMEMODULE
| SIZEMODULE
@@ -185,10 +185,8 @@ data ItemModuleType
| MAGNETMAG
| BULPAY EnergyBallType
| BULBODY BulletEffect
| BULTRAJ BulletTrajectoryType
| TARGET TargetType
| MAGNETTRAJ
| FLECHETRAJ
| BEZIERTRAJ
| INCENDLAS
| SPLITLAS
| STATICLAS
+1 -1
View File
@@ -27,7 +27,7 @@ incendiaryModule = bulletPayloadCraft IncBall
bulletBodyCraft :: BulletEffect -> Item
bulletBodyCraft ebt =
makeTypeCraft (BULBODYMODULE ebt)
makeTypeCraft (BULBODYCRAFT ebt)
& itInvSize .~ 1
& itInvColor .~ chartreuse
+1 -1
View File
@@ -185,7 +185,7 @@ craftInfo fit = case fit of
BULPAYLOADMODULE ebt -> "A device that converts projectiles into " ++ displayBulletPayload ebt ++ " projectiles."
FRAGMODULE -> "A device that converts projectiles into fragmentation projectiles."
FLASHMODULE -> "A device that converts projectiles into flashbang projectiles."
BULBODYMODULE be -> "A device that converts projectiles into " ++ displayBulletBody be ++ " projectiles."
BULBODYCRAFT be -> "A device that converts projectiles into " ++ displayBulletBody be ++ " projectiles."
TELEPORTMODULE -> "A device that allows for near-instant translocation across space."
TIMEMODULE -> "A device that can affect temporality."
SIZEMODULE -> "A device that can affect physical size."
+1 -3
View File
@@ -27,14 +27,12 @@ moduleName imt = case imt of
MAGNETMAG -> Just "+MAGNET FEED"
BULPAY thepayload -> Just $ "+" ++ displayBulletPayload thepayload
BULBODY thebody -> Just $ "+" ++ displayBulletBody thebody
BULTRAJ thetraj -> Just $ "+" ++ displayBulletTraj thetraj
TARGET TargetRBCreature -> Just "+CREATURETARGETING"
TARGET TargetLaser -> Just "+LASERTARGETING"
TARGET TargetRBPress -> Just "+POSTIONALTARGETING"
TARGET TargetCursor -> Just "+CURSORTARGETING"
TARGET TargetRBLine -> Just "+LINETARGETING"
MAGNETTRAJ -> Just "+MAGNETTRAJECTORY"
FLECHETRAJ -> Just "+FLECHETTETRAJECTORY"
BEZIERTRAJ -> Just "+BEZIERTRAJECTORY"
INCENDLAS -> Just "+INCENDIARY"
SPLITLAS -> Just "+SPLIT"
STATICLAS -> Just "+STATIC"
+7
View File
@@ -13,3 +13,10 @@ displayBulletPayload ebt = case ebt of
IncBall -> "INCENDIARY"
TeslaBall -> "STATIC"
ConcBall -> "CONCUSSIVE"
displayBulletTraj :: BulletTrajectoryType -> String
displayBulletTraj x = case x of
BasicBulletTrajectoryType-> "BTRAJ-shouldn't display"
BezierTrajectoryType -> "MAGNET"
FlechetteTrajectoryType -> "FLECHETTE"
MagnetTrajectoryType -> "BEZIER CURVE"