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)
|
||||
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 =
|
||||
watchCombinations ++
|
||||
backpackCombinations ++
|
||||
[ po [CRAFT PIPE, CRAFT HARDWARE] (bangStick 1)
|
||||
, po [HELD (BANGSTICK 1), CRAFT TIN] pistol
|
||||
, po [HELD PISTOL, CRAFT SPRING] autoPistol
|
||||
@@ -31,7 +41,7 @@ itemCombinations =
|
||||
, po [HELD REVOLVER, cr SPRING] $ revolverX 1
|
||||
, po [cr CAN, cr HARDWARE] bangCone
|
||||
, 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), HELD (BANGSTICK 1), HELD (BANGSTICK 1)] (volleyGun 3)
|
||||
, 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]]
|
||||
++ [ po [cr LIGHTER, cr PUMP, cr CAN] flameSpitter
|
||||
, po [HELD FLAMESPITTER, cr CAN, cr PUMP] blowTorch
|
||||
, po [HELD FLAMESPITTER, cr DRUM] flameThrower
|
||||
, po [HELD FLAMETHROWER, cr DRUM] flameWall
|
||||
, po [HELD FLAMESPITTER, cr STEELDRUM] flameThrower
|
||||
, po [HELD FLAMETHROWER, cr STEELDRUM] flameWall
|
||||
, po [HELD FLAMETHROWER, cr PUMP] flameTorrent
|
||||
, p [o $ cr PRISM, o $ cr TRANSFORMER, o $ cr PIPE] lasGun
|
||||
, 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 4 $ cr CAN] 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
|
||||
, 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 TRANSMITTER, cr LIGHTSENSOR] (autoDetector ITEMDETECTOR)
|
||||
, 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 (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 (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
|
||||
| (modtype, is, ms) <- moduleCombinations
|
||||
, it <- is
|
||||
@@ -110,7 +120,7 @@ moduleCombinations =
|
||||
, burstRifle
|
||||
]
|
||||
,
|
||||
[ amod [cr DRUM, cr HARDWARE] DRUMMAG
|
||||
[ amod [cr STEELDRUM, cr HARDWARE] DRUMMAG
|
||||
, amod [cr MOTOR, cr HARDWARE] BELTMAG
|
||||
]
|
||||
)
|
||||
@@ -122,7 +132,7 @@ moduleCombinations =
|
||||
, 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 PLANK
|
||||
, makeTypeCraftNum 1 PLATE
|
||||
, makeTypeCraftNum 1 DRUM
|
||||
, makeTypeCraftNum 1 STEELDRUM
|
||||
, makeTypeCraftNum 1 MOTOR
|
||||
]
|
||||
'F' ->
|
||||
@@ -171,7 +171,7 @@ inventoryX c = case c of
|
||||
, makeTypeCraftNum 5 MAGNET
|
||||
, makeTypeCraftNum 5 PLANK
|
||||
, makeTypeCraftNum 5 PLATE
|
||||
, makeTypeCraftNum 5 DRUM
|
||||
, makeTypeCraftNum 5 STEELDRUM
|
||||
, makeTypeCraftNum 5 MOTOR
|
||||
, makeTypeCraftNum 5 TRANSFORMER
|
||||
, makeTypeCraftNum 5 PRISM
|
||||
|
||||
@@ -29,17 +29,20 @@ data CraftType
|
||||
| TUBE
|
||||
| HARDWARE
|
||||
| SPRING
|
||||
| DUCTTAPE
|
||||
|
||||
| HOSE
|
||||
| TAPE
|
||||
|
||||
| CAN
|
||||
| TIN
|
||||
| DRUM
|
||||
| STEELDRUM
|
||||
| PLANK
|
||||
| SHARDGLASS
|
||||
| GLASSSHARD
|
||||
| SCRAPMETAL
|
||||
| PUMP
|
||||
| MOTOR
|
||||
| TRANSFORMER
|
||||
| PRISM
|
||||
| THERMOMETER
|
||||
| LIGHTER
|
||||
| MAGNET
|
||||
| ANTIMATTER
|
||||
@@ -57,6 +60,8 @@ data CraftType
|
||||
| LIGHTSENSOR
|
||||
| SOUNDSENSOR
|
||||
| HEATSENSOR
|
||||
| MICROPHONE
|
||||
| THERMOMETER
|
||||
| CREATURESENSOR
|
||||
| WIRE
|
||||
| BATTERY
|
||||
@@ -106,6 +111,7 @@ data EquipItemType
|
||||
| JUMPLEGS
|
||||
|
||||
| JETPACK
|
||||
| FUELPACK
|
||||
|
||||
| AUTODETECTOR Detector
|
||||
deriving (Eq,Ord,Show,Read)
|
||||
|
||||
@@ -43,6 +43,7 @@ itemFromEquipType et = case et of
|
||||
SPEEDLEGS -> speedLegs
|
||||
JUMPLEGS -> jumpLegs
|
||||
JETPACK -> jetPack
|
||||
FUELPACK -> fuelPack
|
||||
AUTODETECTOR d -> autoDetector d
|
||||
|
||||
itemFromLeftType :: LeftItemType -> Item
|
||||
|
||||
@@ -43,7 +43,12 @@ equipItemSPic et _ = case et of
|
||||
JETPACK ->
|
||||
(,) emptySH $
|
||||
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)
|
||||
|
||||
leftItemSPic :: LeftItemType -> Item -> SPic
|
||||
|
||||
@@ -9,6 +9,7 @@ module Dodge.Item.Equipment (
|
||||
frontArmour,
|
||||
headLamp,
|
||||
jetPack,
|
||||
fuelPack,
|
||||
speedLegs,
|
||||
jumpLegs,
|
||||
flameShield,
|
||||
@@ -49,6 +50,11 @@ wristArmour =
|
||||
& itUse . equipEffect . eeOnRemove .~ EoffWristShield
|
||||
& itType . iyBase .~ EQUIP WRISTARMOUR
|
||||
|
||||
fuelPack :: Item
|
||||
fuelPack =
|
||||
defaultEquipment
|
||||
& itUse . equipEffect . eeSite .~ GoesOnBack
|
||||
& itType . iyBase .~ EQUIP FUELPACK
|
||||
|
||||
jetPack :: Item
|
||||
jetPack =
|
||||
|
||||
+232
-7
@@ -1,12 +1,237 @@
|
||||
module Dodge.Item.Info where
|
||||
|
||||
import Dodge.Data.Item
|
||||
import qualified Data.Map.Strict as M
|
||||
import LensHelp
|
||||
|
||||
itmBaseInfo :: ItemBaseType -> String
|
||||
itmBaseInfo t = case t of
|
||||
HELD _ -> "THIS ITEM CAN BE HELD."
|
||||
LEFT _ -> "THIS ITEM CAN BE EQUIPPED. WHEN EQUIPPED, IT CAN BE ACTIVATED."
|
||||
EQUIP _ -> "THIS ITEM CAN BE EQUIPPED."
|
||||
Consumable _ -> "THIS ITEM CAN BE CONSUMED."
|
||||
CRAFT _ -> "THIS ITEM SEEMS USELESS ON ITS OWN."
|
||||
itmInfo :: Item -> String
|
||||
itmInfo itm = itmBaseInfo itm ++ " " ++ itmUsageInfo itm
|
||||
|
||||
itmBaseInfo :: Item -> String
|
||||
itmBaseInfo itm = case (itm ^. itType . iyBase) of
|
||||
HELD hit -> heldInfo hit
|
||||
LEFT lit -> leftInfo lit
|
||||
EQUIP eit -> equipInfo eit
|
||||
Consumable cit -> consumableInfo cit
|
||||
CRAFT fit -> craftInfo fit
|
||||
_ -> "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 $
|
||||
takeOne
|
||||
[ 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,
|
||||
) where
|
||||
|
||||
import Justify
|
||||
import Control.Lens
|
||||
import qualified Data.Map.Strict as M
|
||||
import Data.Maybe
|
||||
@@ -90,7 +91,7 @@ drawSubInventory subinv cfig w = case subinv of
|
||||
ExamineInventory mtweaki ->
|
||||
titledSub
|
||||
"EXAMINE"
|
||||
(defaultSubInvSelectionList & slItems .~ ammoTweakSelectionItems itm)
|
||||
(defaultSubInvSelectionList & slItems .~ ammoTweakSelectionItems itm ++ map f (mitmInfo itm))
|
||||
<> examineInventoryExtra mtweaki itm cfig
|
||||
DisplayTerminal tid -> displayTerminal tid cfig (w ^. cWorld . lWorld)
|
||||
CombineInventory mi ->
|
||||
@@ -103,6 +104,16 @@ drawSubInventory subinv cfig w = case subinv of
|
||||
invHead cfig subtitle
|
||||
<> drawSelectionList secondColumnParams cfig subitems
|
||||
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 cfig w =
|
||||
@@ -139,7 +150,7 @@ examineInventoryExtra mtweaki mitm cfig =
|
||||
-- consider moving this functionality out into a tweaks module
|
||||
tparam <- mitm ^? _Just . itTweaks . tweakParams . ix tweaki
|
||||
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
|
||||
@@ -170,32 +181,28 @@ secondColumnParams =
|
||||
& ldpPosY .~ 60
|
||||
& ldpCursorType .~ BorderCursor [North, South, West]
|
||||
|
||||
thirdColumnParams :: ListDisplayParams
|
||||
thirdColumnParams =
|
||||
defaultListDisplayParams
|
||||
& ldpPosX .~ 9 * fromIntegral topInvW + 275
|
||||
& ldpPosY .~ 60
|
||||
--thirdColumnParams :: ListDisplayParams
|
||||
--thirdColumnParams =
|
||||
-- defaultListDisplayParams
|
||||
-- & ldpPosX .~ 9 * fromIntegral topInvW + 275
|
||||
-- & ldpPosY .~ 60
|
||||
|
||||
thirdColumnPara :: [String] -> SelectionList ()
|
||||
thirdColumnPara strs = SelectionList (map f strs) Nothing (length strs)
|
||||
where
|
||||
f str =
|
||||
SelectionItem
|
||||
{ _siPictures = [text str]
|
||||
, _siHeight = 1
|
||||
, _siIsSelectable = True
|
||||
, _siWidth = length str
|
||||
, _siColor = white
|
||||
, _siOffX = 0
|
||||
, _siPayload = ()
|
||||
}
|
||||
--thirdColumnPara :: [String] -> SelectionList ()
|
||||
--thirdColumnPara strs = SelectionList (map f strs) Nothing (length strs)
|
||||
-- where
|
||||
-- f str =
|
||||
-- SelectionItem
|
||||
-- { _siPictures = [text str]
|
||||
-- , _siHeight = 1
|
||||
-- , _siIsSelectable = True
|
||||
-- , _siWidth = length str
|
||||
-- , _siColor = white
|
||||
-- , _siOffX = 0
|
||||
-- , _siPayload = ()
|
||||
-- }
|
||||
|
||||
itmInfo :: Maybe Item -> [String]
|
||||
itmInfo mit = fromMaybe [] $ do
|
||||
itm <- mit
|
||||
return $
|
||||
itmBaseInfo (itm ^. itType . iyBase) :
|
||||
(map show . M.assocs . _iyModules $ _itType itm)
|
||||
mitmInfo :: Maybe Item -> [String]
|
||||
mitmInfo = maybe [] $ makeParagraph 60 . itmInfo
|
||||
|
||||
displayTerminal :: Int -> Configuration -> LWorld -> Picture
|
||||
displayTerminal tid cfig w = fromMaybe mempty $ do
|
||||
|
||||
@@ -16,6 +16,6 @@ firstBreather = do
|
||||
, [itemFromBase $ CRAFT CAN]
|
||||
, [itemFromBase $ CRAFT TIN]
|
||||
, [itemFromBase $ CRAFT PLANK]
|
||||
, [itemFromBase $ CRAFT DRUM]
|
||||
, [itemFromBase $ CRAFT STEELDRUM]
|
||||
]
|
||||
roomsContaining [] itms
|
||||
|
||||
Reference in New Issue
Block a user