From 3508d9c266c4fdb7af4b92a447088cd21fa92566 Mon Sep 17 00:00:00 2001 From: justin Date: Thu, 12 Jan 2023 13:08:09 +0000 Subject: [PATCH] Further tweak bullet modules --- src/Dodge/Combine/Combinations.hs | 8 ++++---- src/Dodge/Combine/Module.hs | 9 ++++++--- src/Dodge/Creature.hs | 8 ++++---- src/Dodge/Data/Bullet.hs | 8 ++++++++ src/Dodge/Data/Item/Combine.hs | 6 ++---- src/Dodge/Item/Craftable.hs | 2 +- src/Dodge/Item/Info.hs | 2 +- src/Dodge/Module.hs | 4 +--- src/Dodge/Module/Info.hs | 7 +++++++ 9 files changed, 34 insertions(+), 20 deletions(-) diff --git a/src/Dodge/Combine/Combinations.hs b/src/Dodge/Combine/Combinations.hs index e6b1eb35c..623f76fe6 100644 --- a/src/Dodge/Combine/Combinations.hs +++ b/src/Dodge/Combine/Combinations.hs @@ -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) ] ) , diff --git a/src/Dodge/Combine/Module.hs b/src/Dodge/Combine/Module.hs index 92f9d99a6..f8d59da85 100644 --- a/src/Dodge/Combine/Module.hs +++ b/src/Dodge/Combine/Module.hs @@ -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 -> diff --git a/src/Dodge/Creature.hs b/src/Dodge/Creature.hs index 11a94cfcb..a8d48a9ac 100644 --- a/src/Dodge/Creature.hs +++ b/src/Dodge/Creature.hs @@ -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) diff --git a/src/Dodge/Data/Bullet.hs b/src/Dodge/Data/Bullet.hs index 32e8ba4aa..83062f4d5 100644 --- a/src/Dodge/Data/Bullet.hs +++ b/src/Dodge/Data/Bullet.hs @@ -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 diff --git a/src/Dodge/Data/Item/Combine.hs b/src/Dodge/Data/Item/Combine.hs index 21a0fa61a..dda7f14dd 100644 --- a/src/Dodge/Data/Item/Combine.hs +++ b/src/Dodge/Data/Item/Combine.hs @@ -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 diff --git a/src/Dodge/Item/Craftable.hs b/src/Dodge/Item/Craftable.hs index ac53f3679..006781a07 100644 --- a/src/Dodge/Item/Craftable.hs +++ b/src/Dodge/Item/Craftable.hs @@ -27,7 +27,7 @@ incendiaryModule = bulletPayloadCraft IncBall bulletBodyCraft :: BulletEffect -> Item bulletBodyCraft ebt = - makeTypeCraft (BULBODYMODULE ebt) + makeTypeCraft (BULBODYCRAFT ebt) & itInvSize .~ 1 & itInvColor .~ chartreuse diff --git a/src/Dodge/Item/Info.hs b/src/Dodge/Item/Info.hs index b5023adef..a61bf06b7 100644 --- a/src/Dodge/Item/Info.hs +++ b/src/Dodge/Item/Info.hs @@ -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." diff --git a/src/Dodge/Module.hs b/src/Dodge/Module.hs index b9b4cf1ea..4a2c57704 100644 --- a/src/Dodge/Module.hs +++ b/src/Dodge/Module.hs @@ -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" diff --git a/src/Dodge/Module/Info.hs b/src/Dodge/Module/Info.hs index a248da6d3..929afa433 100644 --- a/src/Dodge/Module/Info.hs +++ b/src/Dodge/Module/Info.hs @@ -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"