|
|
|
@@ -93,35 +93,35 @@ heldInfo hit = case hit of
|
|
|
|
|
|
|
|
|
|
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."
|
|
|
|
|
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"
|
|
|
|
|
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."
|
|
|
|
|
TARGETINGHAT tt -> "Headwear that "++ targetingInfo tt
|
|
|
|
|
HEADLAMP -> "A TORCH STRAPPED TO A HAT."
|
|
|
|
|
POWERLEGS -> "STRENGTH ENHANCING LEGS."
|
|
|
|
|
SPEEDLEGS -> "SPEED ENHANCING LEGS."
|
|
|
|
|
JUMPLEGS -> "JUMP ENHANCING LEGS."
|
|
|
|
|
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."
|
|
|
|
|
BATTERYPACK -> "A COLLECTION OF BATTERIES WITH A UNIVERSAL ADAPTER."
|
|
|
|
|
JETPACK -> "A device enabling flight."
|
|
|
|
|
FUELPACK -> "A liquid container with attached hose."
|
|
|
|
|
BATTERYPACK -> "A collection of batteries with a universal adapter."
|
|
|
|
|
|
|
|
|
|
AUTODETECTOR d -> "A DEVICE THAT DETECTS "++detectorInfo d ++" IN AN EXPANDING RADIUS. PULSES AUTOMATICALLY. "
|
|
|
|
|
AUTODETECTOR d -> "A device that detects "++detectorInfo d ++" in an expanding radius. Pulses automatically. "
|
|
|
|
|
|
|
|
|
|
targetingInfo :: TargetType -> String
|
|
|
|
|
targetingInfo tt = case tt of
|
|
|
|
@@ -133,81 +133,81 @@ targetingInfo tt = case tt of
|
|
|
|
|
|
|
|
|
|
consumableInfo :: ConsumableItemType -> String
|
|
|
|
|
consumableInfo cit = case cit of
|
|
|
|
|
MEDKIT _ -> "A SELF-USE HEALING KIT."
|
|
|
|
|
EXPLOSIVES -> "EXPLOSIVES."
|
|
|
|
|
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."
|
|
|
|
|
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."
|
|
|
|
|
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."
|
|
|
|
|
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."
|
|
|
|
|
|
|
|
|
|
TARGETMODULE _ -> "A TARGETING MODULE."
|
|
|
|
|
TARGETMODULE _ -> "A targeting module."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
detectorInfo :: Detector -> String
|
|
|
|
|
detectorInfo d = case d of
|
|
|
|
|
ITEMDETECTOR -> "ITEMS"
|
|
|
|
|
CREATUREDETECTOR -> "CREATURES"
|
|
|
|
|
WALLDETECTOR -> "WALLS"
|
|
|
|
|
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."
|
|
|
|
|
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"
|
|
|
|
|
|
|
|
|
@@ -216,38 +216,38 @@ heldPositionInfo = maybe undefined aimStanceInfo . (^? itUse . heldAim . aimStan
|
|
|
|
|
|
|
|
|
|
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."
|
|
|
|
|
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 = maybe "" equipSiteInfo . (^? itUse . equipEffect . eeSite)
|
|
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
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 "
|
|
|
|
|
| m == mempty = ""
|
|
|
|
|
| otherwise = "Modifications can be made "
|
|
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
ModBulletCollision -> "that affect how fired bullets collide with objects"
|
|
|
|
|
ModBulletPayload -> "that change bullet payloads"
|
|
|
|
|
ModRifleMag -> "to the magazine"
|
|
|
|
|
ModAutoMag -> "to the magazine"
|
|
|
|
|
ModTarget -> "to add a targeting system"
|
|
|
|
|
ModBulletTrajectory -> "to the trajectory of fired bullets"
|
|
|
|
|
ModLauncherHoming -> "to add a homing system"
|
|
|
|
|
ModBattery -> "to its battery system"
|
|
|
|
|
ModTeleport -> "to add a teleporation system"
|
|
|
|
|
ModDualBeam -> "to the dual beams"
|
|
|
|
|
ModHeldAttach -> "by adding an attachment"
|
|
|
|
|