Further tweak bullet modules
This commit is contained in:
@@ -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)
|
||||
]
|
||||
)
|
||||
,
|
||||
|
||||
@@ -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 ->
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -27,7 +27,7 @@ incendiaryModule = bulletPayloadCraft IncBall
|
||||
|
||||
bulletBodyCraft :: BulletEffect -> Item
|
||||
bulletBodyCraft ebt =
|
||||
makeTypeCraft (BULBODYMODULE ebt)
|
||||
makeTypeCraft (BULBODYCRAFT ebt)
|
||||
& itInvSize .~ 1
|
||||
& itInvColor .~ chartreuse
|
||||
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user