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