Add various item info
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.4 KiB |
@@ -19,9 +19,19 @@ watchCombinations =
|
|||||||
po xs it = (map o xs, it)
|
po xs it = (map o xs, it)
|
||||||
o = (1,)
|
o = (1,)
|
||||||
|
|
||||||
|
backpackCombinations :: [([(ItAmount,ItemBaseType)],Item)]
|
||||||
|
backpackCombinations =
|
||||||
|
[ po [CRAFT HOSE, CRAFT STEELDRUM] fuelPack
|
||||||
|
]
|
||||||
|
where
|
||||||
|
po xs it = (map o xs, it)
|
||||||
|
o = (1,)
|
||||||
|
|
||||||
|
|
||||||
itemCombinations :: [([(ItAmount, ItemBaseType)], Item)]
|
itemCombinations :: [([(ItAmount, ItemBaseType)], Item)]
|
||||||
itemCombinations =
|
itemCombinations =
|
||||||
watchCombinations ++
|
watchCombinations ++
|
||||||
|
backpackCombinations ++
|
||||||
[ po [CRAFT PIPE, CRAFT HARDWARE] (bangStick 1)
|
[ po [CRAFT PIPE, CRAFT HARDWARE] (bangStick 1)
|
||||||
, po [HELD (BANGSTICK 1), CRAFT TIN] pistol
|
, po [HELD (BANGSTICK 1), CRAFT TIN] pistol
|
||||||
, po [HELD PISTOL, CRAFT SPRING] autoPistol
|
, po [HELD PISTOL, CRAFT SPRING] autoPistol
|
||||||
@@ -31,7 +41,7 @@ itemCombinations =
|
|||||||
, po [HELD REVOLVER, cr SPRING] $ revolverX 1
|
, po [HELD REVOLVER, cr SPRING] $ revolverX 1
|
||||||
, po [cr CAN, cr HARDWARE] bangCone
|
, po [cr CAN, cr HARDWARE] bangCone
|
||||||
, po [HELD BANGCONE, cr PLANK] blunderbuss
|
, po [HELD BANGCONE, cr PLANK] blunderbuss
|
||||||
, po [HELD BLUNDERBUSS, cr DRUM] (grapeCannon 1)
|
, po [HELD BLUNDERBUSS, cr STEELDRUM] (grapeCannon 1)
|
||||||
, po [HELD (BANGSTICK 1), cr PLANK] rifle
|
, po [HELD (BANGSTICK 1), cr PLANK] rifle
|
||||||
, po [HELD (BANGSTICK 1), HELD (BANGSTICK 1), HELD (BANGSTICK 1)] (volleyGun 3)
|
, po [HELD (BANGSTICK 1), HELD (BANGSTICK 1), HELD (BANGSTICK 1)] (volleyGun 3)
|
||||||
, po [HELD RIFLE, cr TIN] repeater
|
, po [HELD RIFLE, cr TIN] repeater
|
||||||
@@ -50,8 +60,8 @@ itemCombinations =
|
|||||||
++ [p [p 2 $ cr TUBE, o $ HELD (LAUNCHERX i)] (launcherX (i + 1)) | i <- [2 .. 9]]
|
++ [p [p 2 $ cr TUBE, o $ HELD (LAUNCHERX i)] (launcherX (i + 1)) | i <- [2 .. 9]]
|
||||||
++ [ po [cr LIGHTER, cr PUMP, cr CAN] flameSpitter
|
++ [ po [cr LIGHTER, cr PUMP, cr CAN] flameSpitter
|
||||||
, po [HELD FLAMESPITTER, cr CAN, cr PUMP] blowTorch
|
, po [HELD FLAMESPITTER, cr CAN, cr PUMP] blowTorch
|
||||||
, po [HELD FLAMESPITTER, cr DRUM] flameThrower
|
, po [HELD FLAMESPITTER, cr STEELDRUM] flameThrower
|
||||||
, po [HELD FLAMETHROWER, cr DRUM] flameWall
|
, po [HELD FLAMETHROWER, cr STEELDRUM] flameWall
|
||||||
, po [HELD FLAMETHROWER, cr PUMP] flameTorrent
|
, po [HELD FLAMETHROWER, cr PUMP] flameTorrent
|
||||||
, p [o $ cr PRISM, o $ cr TRANSFORMER, o $ cr PIPE] lasGun
|
, p [o $ cr PRISM, o $ cr TRANSFORMER, o $ cr PIPE] lasGun
|
||||||
, po [HELD LASGUN, HELD LASGUN, cr HARDWARE] dualBeam
|
, po [HELD LASGUN, HELD LASGUN, cr HARDWARE] dualBeam
|
||||||
@@ -65,10 +75,10 @@ itemCombinations =
|
|||||||
, p [p 2 $ cr PIPE, o $ cr PLATE, o $ cr MOTOR] powerLegs
|
, p [p 2 $ cr PIPE, o $ cr PLATE, o $ cr MOTOR] powerLegs
|
||||||
, p [p 4 $ cr CAN] plateCraft
|
, p [p 4 $ cr CAN] plateCraft
|
||||||
, p [p 3 $ cr TIN] plateCraft
|
, p [p 3 $ cr TIN] plateCraft
|
||||||
, p [p 2 $ cr DRUM] plateCraft
|
, p [p 2 $ cr STEELDRUM] plateCraft
|
||||||
, p [p 2 $ cr PLATE] flatShield
|
, p [p 2 $ cr PLATE] flatShield
|
||||||
, po [cr MICROCHIP, cr PRISM] (makeTypeCraft LIGHTSENSOR)
|
, po [cr MICROCHIP, cr PRISM] (makeTypeCraft LIGHTSENSOR)
|
||||||
, po [cr MICROCHIP, cr MAGNET] (makeTypeCraft SOUNDSENSOR)
|
, po [cr MICROCHIP, cr MICROPHONE] (makeTypeCraft SOUNDSENSOR)
|
||||||
, po [cr MICROCHIP, cr THERMOMETER] (makeTypeCraft HEATSENSOR)
|
, po [cr MICROCHIP, cr THERMOMETER] (makeTypeCraft HEATSENSOR)
|
||||||
, po [cr MICROCHIP, cr TRANSMITTER, cr LIGHTSENSOR] (autoDetector ITEMDETECTOR)
|
, po [cr MICROCHIP, cr TRANSMITTER, cr LIGHTSENSOR] (autoDetector ITEMDETECTOR)
|
||||||
, po [cr MICROCHIP, cr TRANSMITTER, cr SOUNDSENSOR] (autoDetector WALLDETECTOR)
|
, po [cr MICROCHIP, cr TRANSMITTER, cr SOUNDSENSOR] (autoDetector WALLDETECTOR)
|
||||||
@@ -83,7 +93,7 @@ itemCombinations =
|
|||||||
++ map (\i -> po [hd (REVOLVERX i), cr CAN] $ revolverX (i + 1)) [1 .. 5]
|
++ map (\i -> po [hd (REVOLVERX i), cr CAN] $ revolverX (i + 1)) [1 .. 5]
|
||||||
++ map (\i -> po [hd (VOLLEYGUN i), HELD (BANGSTICK 1)] $ volleyGun (i + 1)) [3 .. 5]
|
++ map (\i -> po [hd (VOLLEYGUN i), HELD (BANGSTICK 1)] $ volleyGun (i + 1)) [3 .. 5]
|
||||||
++ map (\i -> po [hd (MINIGUNX i), HELD (BANGSTICK 1)] $ miniGunX (i + 1)) [3 .. 15]
|
++ map (\i -> po [hd (MINIGUNX i), HELD (BANGSTICK 1)] $ miniGunX (i + 1)) [3 .. 15]
|
||||||
++ map (\i -> po [hd (GRAPECANNON i), cr DRUM] $ grapeCannon (i + 1)) [1, 2, 3]
|
++ map (\i -> po [hd (GRAPECANNON i), cr STEELDRUM] $ grapeCannon (i + 1)) [1, 2, 3]
|
||||||
++ [ po (_iyBase (_itType it) : mtype) $ it & itType . iyModules . ix modtype .~ m
|
++ [ po (_iyBase (_itType it) : mtype) $ it & itType . iyModules . ix modtype .~ m
|
||||||
| (modtype, is, ms) <- moduleCombinations
|
| (modtype, is, ms) <- moduleCombinations
|
||||||
, it <- is
|
, it <- is
|
||||||
@@ -110,7 +120,7 @@ moduleCombinations =
|
|||||||
, burstRifle
|
, burstRifle
|
||||||
]
|
]
|
||||||
,
|
,
|
||||||
[ amod [cr DRUM, cr HARDWARE] DRUMMAG
|
[ amod [cr STEELDRUM, cr HARDWARE] DRUMMAG
|
||||||
, amod [cr MOTOR, cr HARDWARE] BELTMAG
|
, amod [cr MOTOR, cr HARDWARE] BELTMAG
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@@ -122,7 +132,7 @@ moduleCombinations =
|
|||||||
, burstRifle
|
, burstRifle
|
||||||
]
|
]
|
||||||
,
|
,
|
||||||
[ amod [cr DUCTTAPE, HELD TORCH] ATTACHTORCH
|
[ amod [cr TAPE, HELD TORCH] ATTACHTORCH
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
,
|
,
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ inventoryX c = case c of
|
|||||||
, makeTypeCraftNum 1 SPRING
|
, makeTypeCraftNum 1 SPRING
|
||||||
, makeTypeCraftNum 1 PLANK
|
, makeTypeCraftNum 1 PLANK
|
||||||
, makeTypeCraftNum 1 PLATE
|
, makeTypeCraftNum 1 PLATE
|
||||||
, makeTypeCraftNum 1 DRUM
|
, makeTypeCraftNum 1 STEELDRUM
|
||||||
, makeTypeCraftNum 1 MOTOR
|
, makeTypeCraftNum 1 MOTOR
|
||||||
]
|
]
|
||||||
'F' ->
|
'F' ->
|
||||||
@@ -171,7 +171,7 @@ inventoryX c = case c of
|
|||||||
, makeTypeCraftNum 5 MAGNET
|
, makeTypeCraftNum 5 MAGNET
|
||||||
, makeTypeCraftNum 5 PLANK
|
, makeTypeCraftNum 5 PLANK
|
||||||
, makeTypeCraftNum 5 PLATE
|
, makeTypeCraftNum 5 PLATE
|
||||||
, makeTypeCraftNum 5 DRUM
|
, makeTypeCraftNum 5 STEELDRUM
|
||||||
, makeTypeCraftNum 5 MOTOR
|
, makeTypeCraftNum 5 MOTOR
|
||||||
, makeTypeCraftNum 5 TRANSFORMER
|
, makeTypeCraftNum 5 TRANSFORMER
|
||||||
, makeTypeCraftNum 5 PRISM
|
, makeTypeCraftNum 5 PRISM
|
||||||
|
|||||||
@@ -29,17 +29,20 @@ data CraftType
|
|||||||
| TUBE
|
| TUBE
|
||||||
| HARDWARE
|
| HARDWARE
|
||||||
| SPRING
|
| SPRING
|
||||||
| DUCTTAPE
|
|
||||||
|
| HOSE
|
||||||
|
| TAPE
|
||||||
|
|
||||||
| CAN
|
| CAN
|
||||||
| TIN
|
| TIN
|
||||||
| DRUM
|
| STEELDRUM
|
||||||
| PLANK
|
| PLANK
|
||||||
| SHARDGLASS
|
| GLASSSHARD
|
||||||
|
| SCRAPMETAL
|
||||||
| PUMP
|
| PUMP
|
||||||
| MOTOR
|
| MOTOR
|
||||||
| TRANSFORMER
|
| TRANSFORMER
|
||||||
| PRISM
|
| PRISM
|
||||||
| THERMOMETER
|
|
||||||
| LIGHTER
|
| LIGHTER
|
||||||
| MAGNET
|
| MAGNET
|
||||||
| ANTIMATTER
|
| ANTIMATTER
|
||||||
@@ -57,6 +60,8 @@ data CraftType
|
|||||||
| LIGHTSENSOR
|
| LIGHTSENSOR
|
||||||
| SOUNDSENSOR
|
| SOUNDSENSOR
|
||||||
| HEATSENSOR
|
| HEATSENSOR
|
||||||
|
| MICROPHONE
|
||||||
|
| THERMOMETER
|
||||||
| CREATURESENSOR
|
| CREATURESENSOR
|
||||||
| WIRE
|
| WIRE
|
||||||
| BATTERY
|
| BATTERY
|
||||||
@@ -106,6 +111,7 @@ data EquipItemType
|
|||||||
| JUMPLEGS
|
| JUMPLEGS
|
||||||
|
|
||||||
| JETPACK
|
| JETPACK
|
||||||
|
| FUELPACK
|
||||||
|
|
||||||
| AUTODETECTOR Detector
|
| AUTODETECTOR Detector
|
||||||
deriving (Eq,Ord,Show,Read)
|
deriving (Eq,Ord,Show,Read)
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ itemFromEquipType et = case et of
|
|||||||
SPEEDLEGS -> speedLegs
|
SPEEDLEGS -> speedLegs
|
||||||
JUMPLEGS -> jumpLegs
|
JUMPLEGS -> jumpLegs
|
||||||
JETPACK -> jetPack
|
JETPACK -> jetPack
|
||||||
|
FUELPACK -> fuelPack
|
||||||
AUTODETECTOR d -> autoDetector d
|
AUTODETECTOR d -> autoDetector d
|
||||||
|
|
||||||
itemFromLeftType :: LeftItemType -> Item
|
itemFromLeftType :: LeftItemType -> Item
|
||||||
|
|||||||
@@ -43,7 +43,12 @@ equipItemSPic et _ = case et of
|
|||||||
JETPACK ->
|
JETPACK ->
|
||||||
(,) emptySH $
|
(,) emptySH $
|
||||||
setDepth 20 $
|
setDepth 20 $
|
||||||
pictures [color yellow $ polygon $ reverse $ rectNSWE 5 (-5) (-11) (-3)]
|
pictures [color yellow $ polygon $ reverse $ rectNSWE 5 (-5) (-4) (-4)]
|
||||||
|
FUELPACK ->
|
||||||
|
(,) emptySH $
|
||||||
|
setDepth 20 $
|
||||||
|
--pictures [color yellow $ polygon $ reverse $ rectNSWE 5 (-5) (-11) (-3)]
|
||||||
|
pictures [color yellow $ polygon $ reverse $ polyCirc 3 5]
|
||||||
AUTODETECTOR dt -> noPic (colorSH (detectorColor dt) $ upperPrismPoly 3 $ rectWH 2 2)
|
AUTODETECTOR dt -> noPic (colorSH (detectorColor dt) $ upperPrismPoly 3 $ rectWH 2 2)
|
||||||
|
|
||||||
leftItemSPic :: LeftItemType -> Item -> SPic
|
leftItemSPic :: LeftItemType -> Item -> SPic
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ module Dodge.Item.Equipment (
|
|||||||
frontArmour,
|
frontArmour,
|
||||||
headLamp,
|
headLamp,
|
||||||
jetPack,
|
jetPack,
|
||||||
|
fuelPack,
|
||||||
speedLegs,
|
speedLegs,
|
||||||
jumpLegs,
|
jumpLegs,
|
||||||
flameShield,
|
flameShield,
|
||||||
@@ -49,6 +50,11 @@ wristArmour =
|
|||||||
& itUse . equipEffect . eeOnRemove .~ EoffWristShield
|
& itUse . equipEffect . eeOnRemove .~ EoffWristShield
|
||||||
& itType . iyBase .~ EQUIP WRISTARMOUR
|
& itType . iyBase .~ EQUIP WRISTARMOUR
|
||||||
|
|
||||||
|
fuelPack :: Item
|
||||||
|
fuelPack =
|
||||||
|
defaultEquipment
|
||||||
|
& itUse . equipEffect . eeSite .~ GoesOnBack
|
||||||
|
& itType . iyBase .~ EQUIP FUELPACK
|
||||||
|
|
||||||
jetPack :: Item
|
jetPack :: Item
|
||||||
jetPack =
|
jetPack =
|
||||||
|
|||||||
+232
-7
@@ -1,12 +1,237 @@
|
|||||||
module Dodge.Item.Info where
|
module Dodge.Item.Info where
|
||||||
|
|
||||||
import Dodge.Data.Item
|
import Dodge.Data.Item
|
||||||
|
import qualified Data.Map.Strict as M
|
||||||
|
import LensHelp
|
||||||
|
|
||||||
itmBaseInfo :: ItemBaseType -> String
|
itmInfo :: Item -> String
|
||||||
itmBaseInfo t = case t of
|
itmInfo itm = itmBaseInfo itm ++ " " ++ itmUsageInfo itm
|
||||||
HELD _ -> "THIS ITEM CAN BE HELD."
|
|
||||||
LEFT _ -> "THIS ITEM CAN BE EQUIPPED. WHEN EQUIPPED, IT CAN BE ACTIVATED."
|
itmBaseInfo :: Item -> String
|
||||||
EQUIP _ -> "THIS ITEM CAN BE EQUIPPED."
|
itmBaseInfo itm = case (itm ^. itType . iyBase) of
|
||||||
Consumable _ -> "THIS ITEM CAN BE CONSUMED."
|
HELD hit -> heldInfo hit
|
||||||
CRAFT _ -> "THIS ITEM SEEMS USELESS ON ITS OWN."
|
LEFT lit -> leftInfo lit
|
||||||
|
EQUIP eit -> equipInfo eit
|
||||||
|
Consumable cit -> consumableInfo cit
|
||||||
|
CRAFT fit -> craftInfo fit
|
||||||
_ -> "THIS SHOULD NOT BE DISPLAYED"
|
_ -> "THIS SHOULD NOT BE DISPLAYED"
|
||||||
|
|
||||||
|
showInt :: Int -> String
|
||||||
|
showInt i = case i of
|
||||||
|
0 -> "ZERO"
|
||||||
|
1 -> "ONE"
|
||||||
|
2 -> "TWO"
|
||||||
|
3 -> "THREE"
|
||||||
|
4 -> "FOUR"
|
||||||
|
5 -> "FIVE"
|
||||||
|
6 -> "SIX"
|
||||||
|
7 -> "SEVEN"
|
||||||
|
8 -> "EIGHT"
|
||||||
|
9 -> "NINE"
|
||||||
|
10 -> "TEN"
|
||||||
|
11 -> "ELEVEN"
|
||||||
|
12 -> "A DOZEN"
|
||||||
|
_ -> "MANY"
|
||||||
|
|
||||||
|
heldInfo :: HeldItemType -> String
|
||||||
|
heldInfo hit = case hit of
|
||||||
|
BANGSTICK 1 -> "A MAKESHIFT FIREARM WITH A SHORT BARREL THAT REQUIRES RELOADING AFTER EACH SHOT."
|
||||||
|
BANGSTICK i -> showInt i++" SMALL GUN BARRELS STRAPPED TOGETHER. EACH BARREL MUST BE INDIVIDUALLY LOADED, BUT NOT ALL NEED BE LOADED FOR THE WEAPON TO FIRE. ALL LOADED BARRELS DISCHARGE SIMULATNEOUSLY, WITH SIGNIFICANT SPREAD."
|
||||||
|
PISTOL -> "A SMALL FIREARM FED BY A MAKESHIFT MAGAZINE. THE ENTIRE MAGAZINE MUST BE REPLACED WHEN RELOADING THE WEAPON."
|
||||||
|
REVOLVER -> "A SMALL FIREARM FED BY A REVOLVING CYLINDER. SINGLE SHOT AND LOAD."
|
||||||
|
REVOLVERX i -> "A SMALL FIREARM FED BY "++ showInt i++ "REVOLVING CYLINDERS."
|
||||||
|
MACHINEPISTOL -> "A SMALL FIREARM AUTOMATICALLY, AND EXTREMELY RAPIDLY, FED BY A MAKESHIFT MAGAZINE. THE ENTIRE MAGAZINE MUST BE REPLACED WHEN RELOADING THE WEAPON."
|
||||||
|
AUTOPISTOL -> "A SMALL FIREARM AUTOMATICALLY FED BY A MAKESHIFT MAGAZINE. THE ENTIRE MAGAZINE MUST BE REPLACED WHEN RELOADING THE WEAPON."
|
||||||
|
SMG -> "A SMALL FIREARM WITH AN ATTACHED STOCK FOR STABILITY."
|
||||||
|
BANGCONE -> "A CONTAINER FOR DEBRIS. EXPOSIVE ACTION PROPELS THE DEBRIS AWAY FROM THE USER. QUITE UNWEILDY."
|
||||||
|
BLUNDERBUSS -> "A CONTAINER FOR DEBRIS ON THE END OF A STICK. EXPLOSIVE ACTION PROPELS THE DEBRIS AWAY FROM THE USER."
|
||||||
|
GRAPECANNON 1 -> "A LARGE CONTAINER FOR DEBRIS ON THE END OF A STICK. EXPLOSIVE ACTION PROPELS THE DEBRIS AWAY FROM THE USER."
|
||||||
|
GRAPECANNON i -> "AN "++ replicate (i-1) 'X' ++"L CONTAINER FOR DEBRIS ON THE END OF A STICK. EXPLOSIVE ACTION PROPELS THE DEBRIS AWAY FROM THE USER."
|
||||||
|
MINIGUNX i -> showInt i ++ " GUN BARRELS THAT REVOLVE RAPIDLY AROUND A CENTRAL STICK. REQUIRES CONSIDERABLE TIME TO WARM UP, BUT HAS AN EXTREMELY RAPID RATE OF FIRE. IT IS ALSO EXTREMELY DIFFICULT TO STABILISE."
|
||||||
|
VOLLEYGUN i -> showInt i ++ " GUN BARRELS LINED UP TO BE ROUGHLY PARALLEL. EACH BARREL MUST BE INDIVIDUALLY LOADED, BUT NOT ALL NEED BE LOADED FOR THE WEAPON TO FIRE. ALL LOADED BARRELS DISCHARGE SIMULTANEOUSLY."
|
||||||
|
RIFLE -> "A MAKESHIFT FIREARM WITH A MID LENGTH BARREL THAT REQUIRES RELOADING AFTER EACH SHOT."
|
||||||
|
REPEATER -> "A FIREARM FED BY A MAKESHIFT MAGAZINE. THE ENTIRE MAGAZINE MUST BE REPLACED WHEN RELOADING THE WEAPON."
|
||||||
|
AUTORIFLE -> "A FIREARM AUTOMATICALLY FED BY A MAKESHIFT MAGAZINE. THE ENTIRE MAGAZINE MUST BE REPLACED WHEN RELOADING THE WEAPON."
|
||||||
|
BURSTRIFLE -> "A FIREARM THAT RAPIDLY FIRES THREE PROJECTILES FROM ITS MAKESHIFT MAGAZINE. THE ENTIRE MAGAZINE MUST BE REPLACED WHEN RELOADING THE WEAPON."
|
||||||
|
BANGROD -> "A FIREARM WITH A LONG BARREL THAT REQUIRES RELOADING AFTER EACH SHOT."
|
||||||
|
ELEPHANTGUN -> "A FIREARM WITH A LONG BARREL THAT REQUIRES RELOADING AFTER EACH SHOT. ITS STOPPING POWER IS ONLY NOMINAL."
|
||||||
|
AMR -> "A MAKESHIFT ANTIMATERIEL RIFLE, DESIGNED TO DISABLE MILITARY EQUIPMENT. ITS LONG BARREL IS FED BY A MAKESHIFT MAGAZINE THAT MUST BE REPLACED WHEN RELOADING THE WEAPON."
|
||||||
|
AUTOAMR -> "A MAKESHIFT AUTOMATIC ANTIMATERIEL RIFLE, DESIGNED TO DISABLE MILITARY EQUIPMENT. ITS LONG BARREL IS FED BY A MAKESHIFT MAGAZINE THAT MUST BE REPLACED WHEN RELOADING THE WEAPON."
|
||||||
|
SNIPERRIFLE -> "A FIREARM DESIGNED WITH LONG RANGE CAPABILITY IN MIND. ITS LONG BARREL REQUIRES RELOADING AFTER EACH SHOT."
|
||||||
|
MACHINEGUN -> "A HEAVY FIREARM WHOSE RATE OF FIRE INCREASES DURING A BARRAGE."
|
||||||
|
FLAMESPITTER -> "A WEAPON THAT SQUIRTS OUT GLOBULES OF BURNING FUEL."
|
||||||
|
FLAMETHROWER -> "A WEAPON THAT SQUIRTS OUT BURNING FUEL."
|
||||||
|
FLAMETORRENT -> "A WEAPON THAT STREAMS OUT BURNING FUEL IN A TORRENT."
|
||||||
|
FLAMEWALL -> "A WEAPON THAT SQUIRTS OUT BURNING FUEL ALL AROUND THE USER."
|
||||||
|
BLOWTORCH -> "A WEAPON THAT PRODUCES A CONCENTRATED FLAME."
|
||||||
|
SPARKGUN -> "A WEAPON THAT PRODUCES AN ARC OF ELECTRICITY. THE ARC WILL ATTEMPT TO DISCHARGE AT A NEARBY OBJECT."
|
||||||
|
TESLAGUN -> "A WEAPON THAT DISCHARGES A SUSTAINED ARC OF ELECTRICITY. THE ARC WILL ATTEMPT TO DISCHARGE AT A NEARBY OBJECT."
|
||||||
|
LASGUN -> "A WEAPON THAT CONTINUOUSLY EMITS PHOTONS IN A NARROW BEAM."
|
||||||
|
LASCIRCLE -> "A EXTENSIVE CONFIGURATION OF PRISMS AND MIRRORS THAT PRODUCES MULTIPLE LASER BEAMS AROUND ITS USER."
|
||||||
|
DUALBEAM -> "A WEAPON THAT EMITS TWO BEAMS THAT CONVERGE AT A SELECTABLE POINT IN FRONT OF THE USER."
|
||||||
|
LASWIDE _ -> "A WEAPON THAT CONTINUOUSLY EMITS PHOTONS IN A NARROW BEAM. THE BEAM EXPANDS AS THE WEAPON HEATS UP."
|
||||||
|
TRACTORGUN -> "AN ITEM THAT PRODUCES A BEAM OF GRAVITONS."
|
||||||
|
LAUNCHER -> "A LARGE TUBE THAT CAN LAUNCH SELF PROPELLED PROJECTILES. MOVING THE TUBE AFTER LAUNCH WILL CAUSE THE PROJECTILE TO SPIN."
|
||||||
|
LAUNCHERX i -> showInt i++" TUBES THAT CAN LAUNCH SELF PROPELLED PROJECTILES. TUBES THAT DO NOT FACE FORWARD LAUNCH THEIR PROJECITLES AT AN ANGLE."
|
||||||
|
REMOTELAUNCHER -> "A LARGE TUBE THAT CAN LAUNCH SELF PROPELLED PROJECTILES. CONTAINS A TRANSMITTER ALLOWING FOR REMOTE CONTROL OF LAUNCHED PROJECTILES."
|
||||||
|
POISONSPRAYER -> "A WEAPON THAT RELEASES NOXIOUS GASES."
|
||||||
|
DRONELAUNCHER -> "A DEVICE FOR LAUNCHING DRONES."
|
||||||
|
SHATTERGUN -> "A SEISMIC DEVICE THAT SHATTERS HARD ITEMS IN ITS LINE OF FIRE."
|
||||||
|
FORCEFIELDGUN -> "A DEVICE THAT PRODUCES A DURABLE FORCEFIELD."
|
||||||
|
HELDDETECTOR d -> "A DEVICE THAT DETECTS "++detectorInfo d ++" IN AN EXPANDING RADIUS."
|
||||||
|
TORCH -> "A STICK WITH A LIGHT ON THE END."
|
||||||
|
FLATSHIELD -> "A PANEL OF METAL THAT BLOCKS UNWANTED OBJECTS FROM THE FRONT OF THE USER."
|
||||||
|
KEYCARD i -> "A KEYCARD. IT IS LABELLED " ++ show i++ "."
|
||||||
|
|
||||||
|
leftInfo :: LeftItemType -> String
|
||||||
|
leftInfo lit = case lit of
|
||||||
|
BOOSTER -> "A DEVICE THAT ALLOWS TRAVEL AT SPEED."
|
||||||
|
STOPWATCH -> "A DEVICE THAT TEMPORARILY PAUSES TIME."
|
||||||
|
REWINDWATCH -> "A DEVICE THAT REWINDS TIME A SHORT AMOUNT."
|
||||||
|
SCROLLWATCH -> "A DEVICE THAT CAN BE USED TO SCROLL THROUGH RECENT EVENTS."
|
||||||
|
BLINKER -> "A DEVICE THAT ALLOWS LOCAL TELEPORTATION."
|
||||||
|
BLINKERUNSAFE -> "A DEVICE THAT ALLOWS LOCAL TELEPORTATION. POTENTIALLY HAZARDOUS AROUND WALLS."
|
||||||
|
SHRINKER -> "A DEVICE THAT SHRINKS THE USER."
|
||||||
|
SPAWNER -> "A DEVICE THAT SPAWNS CREATURES."
|
||||||
|
|
||||||
|
equipInfo :: EquipItemType -> String
|
||||||
|
equipInfo eit = case eit of
|
||||||
|
MAGSHIELD -> "A DEVICE DESIGNED TO REPULSE NEARBY METALLIC OBJECTS."
|
||||||
|
FLAMESHIELD -> "A DEVICE DESIGNED TO REPULSE NEARBY FLAMES."
|
||||||
|
FRONTARMOUR -> "A DEVICE DESIGNED TO SHIELD FROM THE FRONT."
|
||||||
|
WRISTARMOUR -> "A DEVICE THAT PROJECTS A FORCEFIELD."
|
||||||
|
INVISIBILITYEQUIPMENT _ -> "A DEVICE THAT BENDS LIGHT AROUND ITS USER."
|
||||||
|
BRAINHAT -> "AN IQ ENHANCER. USELESS."
|
||||||
|
HAT -> "A HAT"
|
||||||
|
HEADLAMP -> "A TORCH STRAPPED TO A HAT."
|
||||||
|
POWERLEGS -> "STRENGTH ENHANCING LEGS."
|
||||||
|
SPEEDLEGS -> "SPEED ENHANCING LEGS."
|
||||||
|
JUMPLEGS -> "JUMP ENHANCING LEGS."
|
||||||
|
|
||||||
|
JETPACK -> "A DEVICE ENABLING FLIGHT."
|
||||||
|
FUELPACK -> "A LIQUID CONTAINER WITH ATTACHED HOSE."
|
||||||
|
|
||||||
|
AUTODETECTOR d -> "A DEVICE THAT DETECTS "++detectorInfo d ++" IN AN EXPANDING RADIUS. PULSES AUTOMATICALLY. "
|
||||||
|
|
||||||
|
consumableInfo :: ConsumableItemType -> String
|
||||||
|
consumableInfo cit = case cit of
|
||||||
|
MEDKIT _ -> "A SELF-USE HEALING KIT."
|
||||||
|
EXPLOSIVES -> "EXPLOSIVES."
|
||||||
|
|
||||||
|
craftInfo :: CraftType -> String
|
||||||
|
craftInfo fit = case fit of
|
||||||
|
PIPE -> "A RIGID CYLINDER."
|
||||||
|
TUBE -> "A WIDE RIGID CYLINDER."
|
||||||
|
HARDWARE -> "A COLLECTION OF EQUIPMENT AND DEVICES USEFUL FOR GENERAL CONSTRUCTION."
|
||||||
|
SPRING -> "AN OBJECT THAT EXERTS AN OPPOSING FORCE WHEN COMPRESSED OR STRETCHED."
|
||||||
|
|
||||||
|
HOSE -> "A FLEXIBLE CYLINDER."
|
||||||
|
TAPE -> "A STRIP OF MATERIAL WITH AN ADHESIVE SIDE."
|
||||||
|
|
||||||
|
CAN -> "A SMALL METAL CYLINDRICAL CONTAINER."
|
||||||
|
TIN -> "A SMALL METAL CONTINER."
|
||||||
|
STEELDRUM -> "A METAL CYLINDRICAL CONTAINER."
|
||||||
|
PLANK -> "A STURDY PIECE OF WOOD."
|
||||||
|
GLASSSHARD -> "A BROKEN PIECE OF GLASS."
|
||||||
|
SCRAPMETAL -> "A BROKEN PIECE OF METAL."
|
||||||
|
PUMP -> "A DEVICE THAT CAN CREATE PRESSURE."
|
||||||
|
MOTOR -> "A DEVICE THAT CAN CREATE ROTATIONAL FORCE."
|
||||||
|
TRANSFORMER -> "A DEVICE THAT CAN STEP UP OR DOWN VOLTAGE AND CURRENT."
|
||||||
|
PRISM -> "AN OBJECT THAT REFRACTS LIGHT."
|
||||||
|
THERMOMETER -> "AN OBJECT THAT MEASURES TEMPERATURE."
|
||||||
|
LIGHTER -> "A DEVICE THAT CAN CREATE A SMALL FLAME."
|
||||||
|
MAGNET -> "A DEVICE THAT ATTRACTS ACCORDING TO ITS DIPOLES."
|
||||||
|
ANTIMATTER -> "A COLLECTION OF MATERIAL WITH INVERSE QUANTUM VALUES."
|
||||||
|
PLATE -> "A FLAT RIGID SHEET."
|
||||||
|
TRANSMITTER -> "A DEVICE THAT CAN EMIT RADIO SIGNALS."
|
||||||
|
MICROCHIP -> "A MINITURIZED COLLECTION OF ELECTRONIC CIRCUITS."
|
||||||
|
HARDDRIVE -> "A DEVICE DESIGNED TO STORE DATA WHEN UNPOWERED."
|
||||||
|
RAM -> "A DEVICE THAT CAN STORE DATA WHEN POWERED."
|
||||||
|
AIUNIT -> "A GENERAL PURPOSE ARTIFICIAL INTELLIGENCE UNIT."
|
||||||
|
CAMERA -> "A DEVICE DESIGNED TO CAPTURE LIGHT SIGNALS."
|
||||||
|
MINIDISPLAY -> "A DEVICE DESIGNED TO DISPLAY PICTURES."
|
||||||
|
LED -> "A LIGHT EMITTING DIODE."
|
||||||
|
NAILBOX -> "A BOX OF WOOD FASTENINGS."
|
||||||
|
IRONBAR -> "A RIGID PIECE OF METAL."
|
||||||
|
LIGHTSENSOR -> "A DEVICE THAT DETECTS PHOTONS."
|
||||||
|
HEATSENSOR -> "AN OBJECT THAT DETECTS TEMPERATURE."
|
||||||
|
SOUNDSENSOR -> "A DEVICE THAT DETECTS AIR VIBRATION."
|
||||||
|
MICROPHONE -> "A DEVICE THAT MEASURES AIR VIBRATION."
|
||||||
|
CREATURESENSOR -> "A DEVICE FOR DETECTING LIVING BEINGS."
|
||||||
|
WIRE -> "A SMALL THIN OBJECT THAT CONDUCTS ELECTRICITY."
|
||||||
|
BATTERY -> "A STORE OF ELECTICAL POTENTIAL ENERGY."
|
||||||
|
FUELCELL -> "A DEVICES THAT CONVERTS CHEMICAL ENERGY INTO ELECTRICITY."
|
||||||
|
PORTABLEFUSION -> "A MINIATURE NUCLEAR REACTOR."
|
||||||
|
INCENDIARYMODULE -> "A DEVICE THAT CONVERTS PROJECTILES INTO INCENDIARY PROJECTILES."
|
||||||
|
STATICMODULE -> "A DEVICE THAT CONVERTS PROJECTILES INTO ELECTROSTATIC PROJECTILES."
|
||||||
|
CONCUSSMODULE -> "A DEVICE THAT CONVERTS PROJECTILES INTO CONCUSSIVE PROJECTILES."
|
||||||
|
FRAGMODULE -> "A DEVICE THAT CONVERTS PROJECTILES INTO FRAGMENTATION PROJECTILES."
|
||||||
|
FLASHMODULE -> "A DEVICE THAT CONVERTS PROJECTILES INTO FLASHBANG PROJECTILES."
|
||||||
|
BOUNCEMODULE -> "A DEVICE THAT CONVERTS PROJECTILES INTO BOUNCING PROJECTILES."
|
||||||
|
PENMODULE -> "A DEVICE THAT CONVERTS PROJECTILES INTO PENTRATING 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."
|
||||||
|
GRAVITYMODULE -> "A DEVICE THAT CAN AFFECT GRAVITATIONAL FIELDS."
|
||||||
|
|
||||||
|
|
||||||
|
detectorInfo :: Detector -> String
|
||||||
|
detectorInfo d = case d of
|
||||||
|
ITEMDETECTOR -> "ITEMS"
|
||||||
|
CREATUREDETECTOR -> "CREATURES"
|
||||||
|
WALLDETECTOR -> "WALLS"
|
||||||
|
|
||||||
|
itmUsageInfo :: Item -> String
|
||||||
|
itmUsageInfo itm = case (itm ^. itType . iyBase) of
|
||||||
|
HELD _ -> heldPositionInfo itm
|
||||||
|
LEFT _ -> "THIS ITEM CAN BE EQUIPPED" ++ itmEquipSiteInfo itm
|
||||||
|
++ ". WHEN EQUIPPED, IT CAN BE ACTIVATED."
|
||||||
|
EQUIP _ -> "THIS ITEM CAN BE EQUIPPED " ++ itmEquipSiteInfo itm ++ "."
|
||||||
|
Consumable _ -> "THIS ITEM CAN BE CONSUMED."
|
||||||
|
CRAFT _ -> ""
|
||||||
|
_ -> "THIS SHOULD NOT BE DISPLAYED"
|
||||||
|
|
||||||
|
heldPositionInfo :: Item -> String
|
||||||
|
heldPositionInfo itm = case itm ^? itUse . heldAim . aimStance of
|
||||||
|
Nothing -> undefined
|
||||||
|
Just as -> aimStanceInfo as
|
||||||
|
|
||||||
|
aimStanceInfo :: AimStance -> String
|
||||||
|
aimStanceInfo as = case as of
|
||||||
|
TwoHandTwist -> "IT IS HELD IN TWO HANDS ALONG ITS LENGTH."
|
||||||
|
TwoHandFlat -> "IT IS HELD IN TWO HANDS AT ITS SIDES."
|
||||||
|
OneHand -> "IT IS HELD IN ONE HAND."
|
||||||
|
LeaveHolstered -> "IT IS TO BE LEFT HOLSTERED."
|
||||||
|
|
||||||
|
itmEquipSiteInfo :: Item -> String
|
||||||
|
itmEquipSiteInfo itm = case itm ^? itUse . equipEffect . eeSite of
|
||||||
|
Nothing -> ""
|
||||||
|
Just es -> equipSiteInfo es
|
||||||
|
|
||||||
|
equipSiteInfo :: EquipSite -> String
|
||||||
|
equipSiteInfo es = case es of
|
||||||
|
GoesOnHead -> " ON THE HEAD"
|
||||||
|
GoesOnChest -> " ON THE CHEST"
|
||||||
|
GoesOnBack -> " ON THE BACK"
|
||||||
|
GoesOnWrist -> " ON A WRIST"
|
||||||
|
GoesOnLegs -> " ON BOTH LEGS"
|
||||||
|
GoesOnSpecial -> " IN A UNIQUE LOCATION"
|
||||||
|
|
||||||
|
itmModuleInfo :: M.Map ModuleSlot ItemModuleType -> String
|
||||||
|
itmModuleInfo m
|
||||||
|
| m == mempty = "IT CANNOT BE MODIFIED WITHOUT CHANGING ITS FORM ENTIRELY."
|
||||||
|
| otherwise = "IT CAN BE MODIFIED "
|
||||||
|
|
||||||
|
moduleInfo :: ModuleSlot -> String
|
||||||
|
moduleInfo imt = case imt of
|
||||||
|
ModBullet -> "WITH A NEW BULLET TYPE"
|
||||||
|
ModBulletSpawn -> "TO CHANGE ITS BULLET PAYLOAD"
|
||||||
|
ModRifleMag -> "TO CHANGE ITS MAGAZINE"
|
||||||
|
ModAutoMag -> "TO CHANGE ITS MAGAZINE"
|
||||||
|
ModTarget -> "BY ADDING A TARGETING SYSTEM"
|
||||||
|
ModBulletTrajectory -> "TO CHANGE THE TRAJECTORY OF FIRED BULLETS"
|
||||||
|
ModLauncherHoming -> "TO CHANGE ITS HOMING SYSTEM"
|
||||||
|
ModBattery -> "TO CHANGE ITS BATTERY SYSTEM"
|
||||||
|
ModTeleport -> "TO CHANGE ITS TELEPORT SYSTEM"
|
||||||
|
ModDualBeam -> "TO CHANGE ITS DUAL BEAMS"
|
||||||
|
ModHeldAttach -> "BY ADDING AN ATTACHEMENT"
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ itemRooms =
|
|||||||
, join $
|
, join $
|
||||||
takeOne
|
takeOne
|
||||||
[ rc $ map makeTypeCraft [PLATE, PLATE]
|
[ rc $ map makeTypeCraft [PLATE, PLATE]
|
||||||
, rc $ map makeTypeCraft [DRUM, DRUM, PLATE]
|
, rc $ map makeTypeCraft [STEELDRUM, STEELDRUM, PLATE]
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
,
|
,
|
||||||
|
|||||||
+33
-26
@@ -3,6 +3,7 @@ module Dodge.Render.HUD (
|
|||||||
drawHUD,
|
drawHUD,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
import Justify
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
@@ -90,7 +91,7 @@ drawSubInventory subinv cfig w = case subinv of
|
|||||||
ExamineInventory mtweaki ->
|
ExamineInventory mtweaki ->
|
||||||
titledSub
|
titledSub
|
||||||
"EXAMINE"
|
"EXAMINE"
|
||||||
(defaultSubInvSelectionList & slItems .~ ammoTweakSelectionItems itm)
|
(defaultSubInvSelectionList & slItems .~ ammoTweakSelectionItems itm ++ map f (mitmInfo itm))
|
||||||
<> examineInventoryExtra mtweaki itm cfig
|
<> examineInventoryExtra mtweaki itm cfig
|
||||||
DisplayTerminal tid -> displayTerminal tid cfig (w ^. cWorld . lWorld)
|
DisplayTerminal tid -> displayTerminal tid cfig (w ^. cWorld . lWorld)
|
||||||
CombineInventory mi ->
|
CombineInventory mi ->
|
||||||
@@ -103,6 +104,16 @@ drawSubInventory subinv cfig w = case subinv of
|
|||||||
invHead cfig subtitle
|
invHead cfig subtitle
|
||||||
<> drawSelectionList secondColumnParams cfig subitems
|
<> drawSelectionList secondColumnParams cfig subitems
|
||||||
itm = yourItem w
|
itm = yourItem w
|
||||||
|
f str =
|
||||||
|
SelectionItem
|
||||||
|
{ _siPictures = [text str]
|
||||||
|
, _siHeight = 1
|
||||||
|
, _siIsSelectable = True
|
||||||
|
, _siWidth = length str
|
||||||
|
, _siColor = white
|
||||||
|
, _siOffX = 0
|
||||||
|
, _siPayload = ()
|
||||||
|
}
|
||||||
|
|
||||||
drawNoSubInventory :: Configuration -> World -> Picture
|
drawNoSubInventory :: Configuration -> World -> Picture
|
||||||
drawNoSubInventory cfig w =
|
drawNoSubInventory cfig w =
|
||||||
@@ -139,7 +150,7 @@ examineInventoryExtra mtweaki mitm cfig =
|
|||||||
-- consider moving this functionality out into a tweaks module
|
-- consider moving this functionality out into a tweaks module
|
||||||
tparam <- mitm ^? _Just . itTweaks . tweakParams . ix tweaki
|
tparam <- mitm ^? _Just . itTweaks . tweakParams . ix tweaki
|
||||||
return $ listCursorNSW subInvX 60 cfig tweaki white (length $ showTweak tparam) 15
|
return $ listCursorNSW subInvX 60 cfig tweaki white (length $ showTweak tparam) 15
|
||||||
, drawSelectionList thirdColumnParams cfig (thirdColumnPara (itmInfo mitm))
|
-- , drawSelectionList thirdColumnParams cfig (thirdColumnPara (itmInfo mitm))
|
||||||
]
|
]
|
||||||
|
|
||||||
combineInventoryExtra :: Maybe Int -> Configuration -> World -> Picture
|
combineInventoryExtra :: Maybe Int -> Configuration -> World -> Picture
|
||||||
@@ -170,32 +181,28 @@ secondColumnParams =
|
|||||||
& ldpPosY .~ 60
|
& ldpPosY .~ 60
|
||||||
& ldpCursorType .~ BorderCursor [North, South, West]
|
& ldpCursorType .~ BorderCursor [North, South, West]
|
||||||
|
|
||||||
thirdColumnParams :: ListDisplayParams
|
--thirdColumnParams :: ListDisplayParams
|
||||||
thirdColumnParams =
|
--thirdColumnParams =
|
||||||
defaultListDisplayParams
|
-- defaultListDisplayParams
|
||||||
& ldpPosX .~ 9 * fromIntegral topInvW + 275
|
-- & ldpPosX .~ 9 * fromIntegral topInvW + 275
|
||||||
& ldpPosY .~ 60
|
-- & ldpPosY .~ 60
|
||||||
|
|
||||||
thirdColumnPara :: [String] -> SelectionList ()
|
--thirdColumnPara :: [String] -> SelectionList ()
|
||||||
thirdColumnPara strs = SelectionList (map f strs) Nothing (length strs)
|
--thirdColumnPara strs = SelectionList (map f strs) Nothing (length strs)
|
||||||
where
|
-- where
|
||||||
f str =
|
-- f str =
|
||||||
SelectionItem
|
-- SelectionItem
|
||||||
{ _siPictures = [text str]
|
-- { _siPictures = [text str]
|
||||||
, _siHeight = 1
|
-- , _siHeight = 1
|
||||||
, _siIsSelectable = True
|
-- , _siIsSelectable = True
|
||||||
, _siWidth = length str
|
-- , _siWidth = length str
|
||||||
, _siColor = white
|
-- , _siColor = white
|
||||||
, _siOffX = 0
|
-- , _siOffX = 0
|
||||||
, _siPayload = ()
|
-- , _siPayload = ()
|
||||||
}
|
-- }
|
||||||
|
|
||||||
itmInfo :: Maybe Item -> [String]
|
mitmInfo :: Maybe Item -> [String]
|
||||||
itmInfo mit = fromMaybe [] $ do
|
mitmInfo = maybe [] $ makeParagraph 60 . itmInfo
|
||||||
itm <- mit
|
|
||||||
return $
|
|
||||||
itmBaseInfo (itm ^. itType . iyBase) :
|
|
||||||
(map show . M.assocs . _iyModules $ _itType itm)
|
|
||||||
|
|
||||||
displayTerminal :: Int -> Configuration -> LWorld -> Picture
|
displayTerminal :: Int -> Configuration -> LWorld -> Picture
|
||||||
displayTerminal tid cfig w = fromMaybe mempty $ do
|
displayTerminal tid cfig w = fromMaybe mempty $ do
|
||||||
|
|||||||
@@ -16,6 +16,6 @@ firstBreather = do
|
|||||||
, [itemFromBase $ CRAFT CAN]
|
, [itemFromBase $ CRAFT CAN]
|
||||||
, [itemFromBase $ CRAFT TIN]
|
, [itemFromBase $ CRAFT TIN]
|
||||||
, [itemFromBase $ CRAFT PLANK]
|
, [itemFromBase $ CRAFT PLANK]
|
||||||
, [itemFromBase $ CRAFT DRUM]
|
, [itemFromBase $ CRAFT STEELDRUM]
|
||||||
]
|
]
|
||||||
roomsContaining [] itms
|
roomsContaining [] itms
|
||||||
|
|||||||
Reference in New Issue
Block a user