Implement simple flak and frag bullets
This commit is contained in:
+40
-1
@@ -3,6 +3,8 @@ module Dodge.Bullet (
|
|||||||
useAmmoParams,
|
useAmmoParams,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
import Dodge.Item.Weapon.Bullet
|
||||||
|
import System.Random
|
||||||
import Data.Foldable
|
import Data.Foldable
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Dodge.Base.Coordinate
|
import Dodge.Base.Coordinate
|
||||||
@@ -27,7 +29,9 @@ updateBullet w bu = case _buDelayFraction bu of
|
|||||||
|
|
||||||
mvBullet :: Float -> World -> Bullet -> (World, Maybe Bullet)
|
mvBullet :: Float -> World -> Bullet -> (World, Maybe Bullet)
|
||||||
mvBullet x w bu
|
mvBullet x w bu
|
||||||
| _buTimer bu <= 0 || magV (_buVel bu) < 1 = (endspawn w, Nothing)
|
-- | magV (_buVel bu) < 1 = (w, Nothing)
|
||||||
|
-- | _buTimer bu <= 0 = (endspawn w, Nothing)
|
||||||
|
| magV (_buVel bu) < 1 || _buTimer bu <= 0 = (endspawn w, Nothing)
|
||||||
| otherwise =
|
| otherwise =
|
||||||
second (fmap updateBulVel)
|
second (fmap updateBulVel)
|
||||||
. hitEffFromBul x w
|
. hitEffFromBul x w
|
||||||
@@ -88,9 +92,44 @@ bounceDir _ = Nothing
|
|||||||
bulletSpawn :: Bullet -> Maybe (Point2 -> World -> World)
|
bulletSpawn :: Bullet -> Maybe (Point2 -> World -> World)
|
||||||
bulletSpawn bu = case _buSpawn bu of
|
bulletSpawn bu = case _buSpawn bu of
|
||||||
BulSpark -> Nothing
|
BulSpark -> Nothing
|
||||||
|
BulFlak -> Just (makeFlak bu)
|
||||||
|
BulFrag -> Just makeFragBullets
|
||||||
|
BulGas -> Just (flip makeGasCloud (V2 0 0))
|
||||||
BulBall IncBall -> Just incBallAt
|
BulBall IncBall -> Just incBallAt
|
||||||
BulBall ConcBall -> Just $ \p -> cWorld . lWorld . shockwaves .:~ concBall p
|
BulBall ConcBall -> Just $ \p -> cWorld . lWorld . shockwaves .:~ concBall p
|
||||||
BulBall TeslaBall -> Just makeStaticBall
|
BulBall TeslaBall -> Just makeStaticBall
|
||||||
|
BulBall FlashBall -> Just makeFlashBall
|
||||||
|
|
||||||
|
makeFragBullets :: Point2 -> World -> World
|
||||||
|
makeFragBullets p w = w & cWorld . lWorld . instantBullets .++~ bus
|
||||||
|
where
|
||||||
|
bus = zipWith f (take 10 as) (take 10 ss)
|
||||||
|
as = randomRs (0, 2 * pi) $ _randGen w
|
||||||
|
ss = randomRs (5, 15) $ _randGen w
|
||||||
|
f a s = defaultBullet & buVel .~ s *.* (unitVectorAtAngle a)
|
||||||
|
& buDrag .~ 0.8
|
||||||
|
& buPos .~ p
|
||||||
|
& buOldPos .~ p
|
||||||
|
& buWidth .~ 1
|
||||||
|
& buDamages .~
|
||||||
|
[ Damage PIERCING 5 0 0 0 NoDamageEffect
|
||||||
|
, Damage PUSHDAM 1 0 0 0 . PushBackDamage $ 2
|
||||||
|
]
|
||||||
|
|
||||||
|
makeFlak :: Bullet -> Point2 -> World -> World
|
||||||
|
makeFlak bu _ w = w & cWorld . lWorld . instantBullets .++~ [f x | x <- xs]
|
||||||
|
where
|
||||||
|
s = min 10 (0.5 * magV (_buVel bu))
|
||||||
|
xs = take 5 $ randomRs (-s,s) $ _randGen w
|
||||||
|
f x = bu & buVel %~ g x
|
||||||
|
& buTimer .~ 97
|
||||||
|
& buSpawn .~ BulSpark
|
||||||
|
& buWidth .~ 0.5
|
||||||
|
& buDamages .~
|
||||||
|
[ Damage PIERCING 25 0 0 0 NoDamageEffect
|
||||||
|
, Damage PUSHDAM 1 0 0 0 . PushBackDamage $ 2
|
||||||
|
]
|
||||||
|
g x v = v +.+ x *.* normalizeV (vNormal v)
|
||||||
|
|
||||||
hitEffFromBul ::
|
hitEffFromBul ::
|
||||||
Float ->
|
Float ->
|
||||||
|
|||||||
@@ -94,8 +94,8 @@ itemCombinations =
|
|||||||
, po [cr MICROCHIP, cr TRANSMITTER, cr HEATSENSOR] (autoDetector CREATUREDETECTOR)
|
, po [cr MICROCHIP, cr TRANSMITTER, cr HEATSENSOR] (autoDetector CREATUREDETECTOR)
|
||||||
, po [cr BATTERY, cr LED] torch
|
, po [cr BATTERY, cr LED] torch
|
||||||
, po [hd TORCH, eq HAT] headLamp
|
, po [hd TORCH, eq HAT] headLamp
|
||||||
, po [cr LIGHTER, cr THERMOMETER, cr MICROCHIP] (bulletPayloadCraft IncBall)
|
, po [cr LIGHTER, cr THERMOMETER, cr MICROCHIP] (energyBallCraft IncBall)
|
||||||
, po [cr TRANSFORMER, cr BATTERY, cr MICROCHIP] (bulletPayloadCraft TeslaBall)
|
, po [cr TRANSFORMER, cr BATTERY, cr MICROCHIP] (energyBallCraft TeslaBall)
|
||||||
]
|
]
|
||||||
++ map (\i -> po [HELD (LASWIDE i), cr TRANSFORMER] $ lasWide (i + 1)) [2 .. 9]
|
++ map (\i -> po [HELD (LASWIDE i), cr TRANSFORMER] $ lasWide (i + 1)) [2 .. 9]
|
||||||
++ map (\i -> po [cr PIPE, HELD (BANGSTICK i)] $ bangStick (i + 1)) [1 .. 8]
|
++ map (\i -> po [cr PIPE, HELD (BANGSTICK i)] $ bangStick (i + 1)) [1 .. 8]
|
||||||
@@ -166,7 +166,11 @@ moduleCombinations =
|
|||||||
( ModBulletPayload
|
( ModBulletPayload
|
||||||
, bulletWeapons
|
, bulletWeapons
|
||||||
,
|
,
|
||||||
[ amod [cr (BULPAYLOADMODULE x)] (BULPAY x) | x <- [minBound ..]
|
[ amod [cr (ENERGYBALLCRAFT x)] (BULPAY (BulBall x)) | x <- [minBound ..]
|
||||||
|
] ++
|
||||||
|
[ amod [cr GASINJECTOR] (BULPAY BulGas)
|
||||||
|
, amod [cr FRAGCRAFT] (BULPAY BulFrag)
|
||||||
|
, amod [cr FLAKCRAFT] (BULPAY BulFlak)
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
,
|
,
|
||||||
@@ -191,9 +195,9 @@ moduleCombinations =
|
|||||||
( ModDualBeam
|
( ModDualBeam
|
||||||
, [dualBeam]
|
, [dualBeam]
|
||||||
,
|
,
|
||||||
[ amod [cr (BULPAYLOADMODULE IncBall)] INCENDLAS
|
[ amod [cr (ENERGYBALLCRAFT IncBall)] INCENDLAS
|
||||||
, amod [cr TRANSFORMER] SPLITLAS
|
, amod [cr TRANSFORMER] SPLITLAS
|
||||||
, amod [cr (BULPAYLOADMODULE TeslaBall)] STATICLAS
|
, amod [cr (ENERGYBALLCRAFT TeslaBall)] STATICLAS
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
,
|
,
|
||||||
|
|||||||
@@ -13,7 +13,9 @@ moduleModification imt = case imt of
|
|||||||
DRUMMAG -> itUse . heldConsumption . laMax .~ 45
|
DRUMMAG -> itUse . heldConsumption . laMax .~ 45
|
||||||
BELTMAG -> itUse . heldConsumption . laMax .~ 150
|
BELTMAG -> itUse . heldConsumption . laMax .~ 150
|
||||||
MAGNETMAG -> itUse . heldDelay . rateMax .~ 4
|
MAGNETMAG -> itUse . heldDelay . rateMax .~ 4
|
||||||
BULPAY thepayload -> itUse . heldConsumption . laAmmoType . amBullet . buSpawn .~ BulBall thepayload
|
BULPAY BulFlak -> (itUse . heldConsumption . laAmmoType . amBullet . buSpawn .~ BulFlak)
|
||||||
|
. (itUse . heldConsumption . laAmmoType . amBullet . buTimer .~ 3)
|
||||||
|
BULPAY thepayload -> itUse . heldConsumption . laAmmoType . amBullet . buSpawn .~ 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
|
||||||
BULTRAJ BasicBulletTrajectoryType -> id
|
BULTRAJ BasicBulletTrajectoryType -> id
|
||||||
|
|||||||
+10
-10
@@ -176,16 +176,16 @@ inventoryX c = case c of
|
|||||||
, makeTypeCraftNum 5 TRANSFORMER
|
, makeTypeCraftNum 5 TRANSFORMER
|
||||||
, makeTypeCraftNum 5 PRISM
|
, makeTypeCraftNum 5 PRISM
|
||||||
, makeTypeCraftNum 5 LIGHTER
|
, makeTypeCraftNum 5 LIGHTER
|
||||||
, makeTypeCraftNum 5 (BULPAYLOADMODULE IncBall)
|
, makeTypeCraftNum 5 (ENERGYBALLCRAFT IncBall)
|
||||||
]
|
]
|
||||||
'G' ->
|
'G' ->
|
||||||
[ autoPistol
|
[ autoPistol
|
||||||
, pistol
|
, pistol
|
||||||
, makeTypeCraftNum 2 HARDWARE
|
, makeTypeCraftNum 2 HARDWARE
|
||||||
, makeTypeCraftNum 2 MAGNET
|
, makeTypeCraftNum 2 MAGNET
|
||||||
, makeTypeCraftNum 5 (BULPAYLOADMODULE IncBall)
|
, makeTypeCraftNum 5 (ENERGYBALLCRAFT IncBall)
|
||||||
, makeTypeCraftNum 5 (BULPAYLOADMODULE TeslaBall)
|
, makeTypeCraftNum 5 (ENERGYBALLCRAFT TeslaBall)
|
||||||
, makeTypeCraftNum 5 (BULPAYLOADMODULE ConcBall)
|
, makeTypeCraftNum 5 (ENERGYBALLCRAFT ConcBall)
|
||||||
, makeTypeCraftNum 5 (BULBODYCRAFT BounceBullet)
|
, makeTypeCraftNum 5 (BULBODYCRAFT BounceBullet)
|
||||||
, makeTypeCraftNum 5 (BULBODYCRAFT PenetrateBullet)
|
, makeTypeCraftNum 5 (BULBODYCRAFT PenetrateBullet)
|
||||||
]
|
]
|
||||||
@@ -216,9 +216,9 @@ inventoryX c = case c of
|
|||||||
, makeTypeCraftNum 1 HEATSENSOR
|
, makeTypeCraftNum 1 HEATSENSOR
|
||||||
, makeTypeCraftNum 1 (BULBODYCRAFT BounceBullet)
|
, makeTypeCraftNum 1 (BULBODYCRAFT BounceBullet)
|
||||||
, makeTypeCraftNum 1 (BULBODYCRAFT PenetrateBullet)
|
, makeTypeCraftNum 1 (BULBODYCRAFT PenetrateBullet)
|
||||||
, makeTypeCraftNum 1 (BULPAYLOADMODULE IncBall)
|
, makeTypeCraftNum 1 (ENERGYBALLCRAFT IncBall)
|
||||||
, makeTypeCraftNum 1 (BULPAYLOADMODULE TeslaBall)
|
, makeTypeCraftNum 1 (ENERGYBALLCRAFT TeslaBall)
|
||||||
, makeTypeCraftNum 1 (BULPAYLOADMODULE ConcBall)
|
, makeTypeCraftNum 1 (ENERGYBALLCRAFT ConcBall)
|
||||||
]
|
]
|
||||||
'L' -> [scrollWatch]
|
'L' -> [scrollWatch]
|
||||||
'M' -> stackedInventory
|
'M' -> stackedInventory
|
||||||
@@ -238,9 +238,9 @@ testInventory =
|
|||||||
, flatShield
|
, flatShield
|
||||||
, sniperRifle
|
, sniperRifle
|
||||||
, makeTypeCraftNum 1 MOTOR
|
, makeTypeCraftNum 1 MOTOR
|
||||||
, makeTypeCraft (BULPAYLOADMODULE IncBall)
|
, makeTypeCraft (ENERGYBALLCRAFT IncBall)
|
||||||
, makeTypeCraft (BULPAYLOADMODULE TeslaBall)
|
, makeTypeCraft (ENERGYBALLCRAFT TeslaBall)
|
||||||
, makeTypeCraft (BULPAYLOADMODULE ConcBall)
|
, makeTypeCraft (ENERGYBALLCRAFT ConcBall)
|
||||||
, teleportModule
|
, teleportModule
|
||||||
, makeTypeCraftNum 10 HARDWARE
|
, makeTypeCraftNum 10 HARDWARE
|
||||||
, makeTypeCraftNum 3 SPRING
|
, makeTypeCraftNum 3 SPRING
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ data Bullet = Bullet
|
|||||||
deriving (Show, Eq, Ord, Read) --Generic, Flat)
|
deriving (Show, Eq, Ord, Read) --Generic, Flat)
|
||||||
|
|
||||||
data EnergyBallType = IncBall | TeslaBall | ConcBall
|
data EnergyBallType = IncBall | TeslaBall | ConcBall
|
||||||
|
| FlashBall
|
||||||
deriving (Show, Eq, Ord, Enum, Bounded, Read) --Generic, Flat)
|
deriving (Show, Eq, Ord, Enum, Bounded, Read) --Generic, Flat)
|
||||||
|
|
||||||
data BulletUpdateMod = NoBulletUpdateMod
|
data BulletUpdateMod = NoBulletUpdateMod
|
||||||
@@ -43,7 +44,12 @@ data BulletEffect
|
|||||||
| PenetrateBullet
|
| PenetrateBullet
|
||||||
deriving (Eq, Ord, Show, Enum, Bounded, Read) --Generic, Flat)
|
deriving (Eq, Ord, Show, Enum, Bounded, Read) --Generic, Flat)
|
||||||
|
|
||||||
data BulletSpawn = BulBall {_spawnEBT :: EnergyBallType} | BulSpark
|
data BulletSpawn
|
||||||
|
= BulBall {_spawnEBT :: EnergyBallType}
|
||||||
|
| BulSpark
|
||||||
|
| BulFlak
|
||||||
|
| BulFrag
|
||||||
|
| BulGas
|
||||||
deriving (Show, Eq, Ord, Read) --Generic, Flat)
|
deriving (Show, Eq, Ord, Read) --Generic, Flat)
|
||||||
|
|
||||||
data BulletTrajectory
|
data BulletTrajectory
|
||||||
|
|||||||
@@ -69,7 +69,10 @@ data CraftType
|
|||||||
| PORTABLEFUSION
|
| PORTABLEFUSION
|
||||||
| FRAGMODULE
|
| FRAGMODULE
|
||||||
| FLASHMODULE
|
| FLASHMODULE
|
||||||
| BULPAYLOADMODULE EnergyBallType
|
| GASINJECTOR
|
||||||
|
| FLAKCRAFT
|
||||||
|
| FRAGCRAFT
|
||||||
|
| ENERGYBALLCRAFT EnergyBallType
|
||||||
| BULBODYCRAFT BulletEffect
|
| BULBODYCRAFT BulletEffect
|
||||||
| TELEPORTMODULE
|
| TELEPORTMODULE
|
||||||
| TIMEMODULE
|
| TIMEMODULE
|
||||||
@@ -183,7 +186,7 @@ data ItemModuleType
|
|||||||
| DRUMMAG
|
| DRUMMAG
|
||||||
| BELTMAG
|
| BELTMAG
|
||||||
| MAGNETMAG
|
| MAGNETMAG
|
||||||
| BULPAY EnergyBallType
|
| BULPAY BulletSpawn
|
||||||
| BULBODY BulletEffect
|
| BULBODY BulletEffect
|
||||||
| BULTRAJ BulletTrajectoryType
|
| BULTRAJ BulletTrajectoryType
|
||||||
| TARGET TargetType
|
| TARGET TargetType
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
module Dodge.EnergyBall
|
module Dodge.EnergyBall
|
||||||
( updateEnergyBall
|
( updateEnergyBall
|
||||||
, incBallAt
|
, incBallAt
|
||||||
|
, makeFlashBall
|
||||||
, makeFlamelet
|
, makeFlamelet
|
||||||
) where
|
) where
|
||||||
|
|
||||||
@@ -70,6 +71,26 @@ incBallAt p w =
|
|||||||
, _ebRot = rot
|
, _ebRot = rot
|
||||||
}
|
}
|
||||||
|
|
||||||
|
makeFlashBall :: Point2 -> World -> World
|
||||||
|
makeFlashBall p w =
|
||||||
|
w & cWorld . lWorld . energyBalls .:~ theincball
|
||||||
|
& randGen .~ g
|
||||||
|
where
|
||||||
|
(theincball, g) = runState thestate (_randGen w)
|
||||||
|
thestate = do
|
||||||
|
rot <- state $ randomR (0, 3)
|
||||||
|
return
|
||||||
|
EnergyBall
|
||||||
|
{ _ebVel = 0
|
||||||
|
, _ebColor = yellow
|
||||||
|
, _ebPos = p
|
||||||
|
, _ebWidth = 3
|
||||||
|
, _ebTimer = 20
|
||||||
|
, _ebEff = (LASERING, 1)
|
||||||
|
, _ebZ = 20
|
||||||
|
, _ebRot = rot
|
||||||
|
}
|
||||||
|
|
||||||
ebFlicker :: EnergyBall -> World -> World
|
ebFlicker :: EnergyBall -> World -> World
|
||||||
ebFlicker pt
|
ebFlicker pt
|
||||||
| _ebTimer pt `mod` 7 == 0 =
|
| _ebTimer pt `mod` 7 == 0 =
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@ initialAnoTree =
|
|||||||
[ IntAnno $ AnTree . startRoom
|
[ IntAnno $ AnTree . startRoom
|
||||||
, IntAnno $
|
, IntAnno $
|
||||||
PassthroughLockKeyLists
|
PassthroughLockKeyLists
|
||||||
[(sensorRoomRunPast ELECTRICAL, takeOne [CRAFT (BULPAYLOADMODULE TeslaBall), HELD SPARKGUN])]
|
[(sensorRoomRunPast ELECTRICAL, takeOne [CRAFT (ENERGYBALLCRAFT TeslaBall), HELD SPARKGUN])]
|
||||||
itemRooms
|
itemRooms
|
||||||
, IntAnno $ AnTree . lasSensorTurretTest
|
, IntAnno $ AnTree . lasSensorTurretTest
|
||||||
, -- , AnRoom $ tanksRoom [] [] <&> rmPmnts .~ []
|
, -- , AnRoom $ tanksRoom [] [] <&> rmPmnts .~ []
|
||||||
|
|||||||
@@ -16,14 +16,14 @@ makeTypeCraftNum i ct =
|
|||||||
makeTypeCraft :: CraftType -> Item
|
makeTypeCraft :: CraftType -> Item
|
||||||
makeTypeCraft = makeTypeCraftNum 1
|
makeTypeCraft = makeTypeCraftNum 1
|
||||||
|
|
||||||
bulletPayloadCraft :: EnergyBallType -> Item
|
energyBallCraft :: EnergyBallType -> Item
|
||||||
bulletPayloadCraft ebt =
|
energyBallCraft ebt =
|
||||||
makeTypeCraft (BULPAYLOADMODULE ebt)
|
makeTypeCraft (ENERGYBALLCRAFT ebt)
|
||||||
& itInvSize .~ 1
|
& itInvSize .~ 1
|
||||||
& itInvColor .~ chartreuse
|
& itInvColor .~ chartreuse
|
||||||
|
|
||||||
incendiaryModule :: Item
|
incendiaryModule :: Item
|
||||||
incendiaryModule = bulletPayloadCraft IncBall
|
incendiaryModule = energyBallCraft IncBall
|
||||||
|
|
||||||
bulletBodyCraft :: BulletEffect -> Item
|
bulletBodyCraft :: BulletEffect -> Item
|
||||||
bulletBodyCraft ebt =
|
bulletBodyCraft ebt =
|
||||||
|
|||||||
@@ -257,6 +257,7 @@ bulletPayloadColor ebt = case ebt of
|
|||||||
IncBall -> orange
|
IncBall -> orange
|
||||||
TeslaBall -> cyan
|
TeslaBall -> cyan
|
||||||
ConcBall -> white
|
ConcBall -> white
|
||||||
|
FlashBall -> yellow
|
||||||
|
|
||||||
volleyGunSPic :: Int -> Item -> SPic
|
volleyGunSPic :: Int -> Item -> SPic
|
||||||
volleyGunSPic i it =
|
volleyGunSPic i it =
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
module Dodge.Item.Info where
|
module Dodge.Item.Info where
|
||||||
|
|
||||||
|
import StringHelp
|
||||||
import Dodge.Module.Info
|
import Dodge.Module.Info
|
||||||
import Data.Char
|
import Data.Char
|
||||||
import Dodge.Data.Item
|
import Dodge.Data.Item
|
||||||
@@ -182,10 +183,11 @@ craftInfo fit = case fit of
|
|||||||
BATTERY -> "A store of electical potential energy."
|
BATTERY -> "A store of electical potential energy."
|
||||||
FUELCELL -> "A devices that converts chemical energy into electricity."
|
FUELCELL -> "A devices that converts chemical energy into electricity."
|
||||||
PORTABLEFUSION -> "A miniature nuclear reactor."
|
PORTABLEFUSION -> "A miniature nuclear reactor."
|
||||||
BULPAYLOADMODULE ebt -> "A device that converts projectiles into " ++ displayBulletPayload ebt ++ " projectiles."
|
GASINJECTOR -> "A device that can inject small quantities of gas into objects."
|
||||||
|
ENERGYBALLCRAFT ebt -> "A device that can create " ++ addIndefiniteArticle (displayEnergyBallType ebt) ++ " effect."
|
||||||
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."
|
||||||
BULBODYCRAFT be -> "A device that converts projectiles into " ++ displayBulletBody be ++ " projectiles."
|
BULBODYCRAFT be -> "A device that converts bullets 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."
|
||||||
@@ -193,6 +195,9 @@ craftInfo fit = case fit of
|
|||||||
|
|
||||||
TARGETMODULE _ -> "A targeting module."
|
TARGETMODULE _ -> "A targeting module."
|
||||||
|
|
||||||
|
FLAKCRAFT -> "Creates flak bullets."
|
||||||
|
FRAGCRAFT -> "Creates fragmentation bullets."
|
||||||
|
|
||||||
|
|
||||||
detectorInfo :: Detector -> String
|
detectorInfo :: Detector -> String
|
||||||
detectorInfo d = case d of
|
detectorInfo d = case d of
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
module Dodge.Item.Weapon.Bullet (
|
module Dodge.Item.Weapon.Bullet (
|
||||||
basicBullet,
|
basicBullet,
|
||||||
hvBullet,
|
hvBullet,
|
||||||
|
defaultBullet,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Dodge.Data.Item.Use.Consumption.Ammo
|
import Dodge.Data.Item.Use.Consumption.Ammo
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ lockRoomMultiItems =
|
|||||||
lockRoomKeyItems :: RandomGen g => [(Int -> State g (MetaTree Room String), State g ItemBaseType)]
|
lockRoomKeyItems :: RandomGen g => [(Int -> State g (MetaTree Room String), State g ItemBaseType)]
|
||||||
lockRoomKeyItems =
|
lockRoomKeyItems =
|
||||||
[ (lasCenSensEdge, takeOne [HELD LAUNCHER, HELD LASGUN, HELD SPARKGUN, HELD FLATSHIELD, HELD FORCEFIELDGUN])
|
[ (lasCenSensEdge, takeOne [HELD LAUNCHER, HELD LASGUN, HELD SPARKGUN, HELD FLATSHIELD, HELD FORCEFIELDGUN])
|
||||||
, (sensorRoomRunPast ELECTRICAL, takeOne [CRAFT (BULPAYLOADMODULE TeslaBall), HELD SPARKGUN])
|
, (sensorRoomRunPast ELECTRICAL, takeOne [CRAFT (ENERGYBALLCRAFT TeslaBall), HELD SPARKGUN])
|
||||||
, (sensorRoomRunPast FLAMING, takeOne [HELD FLAMESPITTER, CRAFT (BULPAYLOADMODULE IncBall)])
|
, (sensorRoomRunPast FLAMING, takeOne [HELD FLAMESPITTER, CRAFT (ENERGYBALLCRAFT IncBall)])
|
||||||
, (sensorRoomRunPast LASERING, return $ HELD LASGUN)
|
, (sensorRoomRunPast LASERING, return $ HELD LASGUN)
|
||||||
, (const slowDoorRoomRunPast, return $ HELD (MINIGUNX 3))
|
, (const slowDoorRoomRunPast, return $ HELD (MINIGUNX 3))
|
||||||
, (const longRoomRunPast, takeOne [HELD SNIPERRIFLE, HELD FLATSHIELD])
|
, (const longRoomRunPast, takeOne [HELD SNIPERRIFLE, HELD FLATSHIELD])
|
||||||
@@ -107,17 +107,17 @@ itemRooms =
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
,
|
,
|
||||||
( CRAFT (BULPAYLOADMODULE IncBall)
|
( CRAFT (ENERGYBALLCRAFT IncBall)
|
||||||
, join $
|
, join $
|
||||||
takeOne
|
takeOne
|
||||||
[ rc [incendiaryModule]
|
[ rc [incendiaryModule]
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
,
|
,
|
||||||
( CRAFT (BULPAYLOADMODULE TeslaBall)
|
( CRAFT (ENERGYBALLCRAFT TeslaBall)
|
||||||
, join $
|
, join $
|
||||||
takeOne
|
takeOne
|
||||||
[ rc [makeTypeCraft (BULPAYLOADMODULE TeslaBall)]
|
[ rc [makeTypeCraft (ENERGYBALLCRAFT TeslaBall)]
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|||||||
+19
-10
@@ -5,18 +5,27 @@ import Dodge.Data.Item
|
|||||||
displayBulletBody :: BulletEffect -> String
|
displayBulletBody :: BulletEffect -> String
|
||||||
displayBulletBody be = case be of
|
displayBulletBody be = case be of
|
||||||
DestroyBullet -> "DESBUL-shouldn't display"
|
DestroyBullet -> "DESBUL-shouldn't display"
|
||||||
BounceBullet -> "BOUNCING"
|
BounceBullet -> "bouncing"
|
||||||
PenetrateBullet -> "PENETRATING"
|
PenetrateBullet -> "penetrating"
|
||||||
|
|
||||||
displayBulletPayload :: EnergyBallType -> String
|
displayBulletPayload :: BulletSpawn -> String
|
||||||
displayBulletPayload ebt = case ebt of
|
displayBulletPayload x = case x of
|
||||||
IncBall -> "INCENDIARY"
|
BulSpark -> ""
|
||||||
TeslaBall -> "STATIC"
|
BulFrag -> "fragmentation"
|
||||||
ConcBall -> "CONCUSSIVE"
|
BulFlak -> "flak"
|
||||||
|
BulGas -> "gaseous"
|
||||||
|
BulBall y -> displayEnergyBallType y
|
||||||
|
|
||||||
|
displayEnergyBallType :: EnergyBallType -> String
|
||||||
|
displayEnergyBallType ebt = case ebt of
|
||||||
|
IncBall -> "incendiary"
|
||||||
|
TeslaBall -> "static"
|
||||||
|
ConcBall -> "concussive"
|
||||||
|
FlashBall -> "blinding"
|
||||||
|
|
||||||
displayBulletTraj :: BulletTrajectoryType -> String
|
displayBulletTraj :: BulletTrajectoryType -> String
|
||||||
displayBulletTraj x = case x of
|
displayBulletTraj x = case x of
|
||||||
BasicBulletTrajectoryType-> "BTRAJ-shouldn't display"
|
BasicBulletTrajectoryType-> "BTRAJ-shouldn't display"
|
||||||
BezierTrajectoryType -> "MAGNET"
|
BezierTrajectoryType -> "magnet"
|
||||||
FlechetteTrajectoryType -> "FLECHETTE"
|
FlechetteTrajectoryType -> "flechette"
|
||||||
MagnetTrajectoryType -> "BEZIER CURVE"
|
MagnetTrajectoryType -> "bezier curve"
|
||||||
|
|||||||
Reference in New Issue
Block a user