diff --git a/aurorastation.dme b/aurorastation.dme
index 86ce60a4b4b..c31d86727e2 100644
--- a/aurorastation.dme
+++ b/aurorastation.dme
@@ -1518,15 +1518,6 @@
#include "code\modules\events\vent_clog.dm"
#include "code\modules\events\wallrot.dm"
#include "code\modules\examine\examine.dm"
-#include "code\modules\examine\descriptions\atmospherics.dm"
-#include "code\modules\examine\descriptions\engineering.dm"
-#include "code\modules\examine\descriptions\medical.dm"
-#include "code\modules\examine\descriptions\mobs.dm"
-#include "code\modules\examine\descriptions\paperwork.dm"
-#include "code\modules\examine\descriptions\stacks.dm"
-#include "code\modules\examine\descriptions\structures.dm"
-#include "code\modules\examine\descriptions\turfs.dm"
-#include "code\modules\examine\descriptions\weapons.dm"
#include "code\modules\ext_scripts\python.dm"
#include "code\modules\flufftext\Dreaming.dm"
#include "code\modules\flufftext\TextFilters.dm"
diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
index 803ac0977e7..4d8d26320a7 100644
--- a/code/ATMOSPHERICS/components/binary_devices/circulator.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
@@ -4,6 +4,8 @@
/obj/machinery/atmospherics/binary/circulator
name = "circulator"
desc = "A gas circulator turbine and heat exchanger."
+ desc_info = "This generates electricity, depending on the difference in temperature between each side of the machine. The meter in \
+ the center of the machine gives an indicator of how much elecrtricity is being generated."
icon = 'icons/obj/pipes.dmi'
icon_state = "circ-off"
anchored = FALSE
diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
index d0a2e940c23..fbff11a4661 100644
--- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
@@ -3,13 +3,13 @@
#define REGULATE_OUTPUT 2 //shuts off when output side is above the target pressure
/obj/machinery/atmospherics/binary/passive_gate
+ name = "pressure regulator"
+ desc = "A one-way air valve that can be used to regulate input or output pressure, and flow rate. Does not require power."
+ desc_info = "This is a one-way regulator, allowing gas to flow only at a specific pressure and flow rate. If the light is green, it is flowing."
icon = 'icons/atmos/passive_gate.dmi'
icon_state = "map"
level = 1
- name = "pressure regulator"
- desc = "A one-way air valve that can be used to regulate input or output pressure, and flow rate. Does not require power."
-
use_power = 0
interact_offline = 1
var/unlocked = 0 //If 0, then the valve is locked closed, otherwise it is open(-able, it's a one-way valve so it closes if gas would flow backwards).
diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm
index c90b6281fd0..f4c3565a15c 100644
--- a/code/ATMOSPHERICS/components/binary_devices/pump.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm
@@ -13,13 +13,13 @@ Thus, the two variables affect pump operation are set in New():
*/
/obj/machinery/atmospherics/binary/pump
+ name = "gas pump"
+ desc = "A pump."
+ desc_info = "This moves gas from one pipe to another. A higher target pressure demands more energy. The side with the red end is the output."
icon = 'icons/atmos/pump.dmi'
icon_state = "map_off"
level = 1
- name = "gas pump"
- desc = "A pump"
-
var/target_pressure = ONE_ATMOSPHERE
//var/max_volume_transfer = 10000
diff --git a/code/ATMOSPHERICS/components/omni_devices/filter.dm b/code/ATMOSPHERICS/components/omni_devices/filter.dm
index fd88eb8385c..71ab8333df9 100644
--- a/code/ATMOSPHERICS/components/omni_devices/filter.dm
+++ b/code/ATMOSPHERICS/components/omni_devices/filter.dm
@@ -5,6 +5,8 @@
name = "omni gas filter"
icon_state = "map_filter"
base_icon = "filter"
+ desc_info = "Filters gas from a custom input direction, with up to two filtered outputs and a 'everything else' \
+ output. The filtered output's arrows glow orange."
var/list/active_filters = new()
var/datum/omni_port/input
diff --git a/code/ATMOSPHERICS/components/omni_devices/mixer.dm b/code/ATMOSPHERICS/components/omni_devices/mixer.dm
index 977aa387a11..38d2eb20222 100644
--- a/code/ATMOSPHERICS/components/omni_devices/mixer.dm
+++ b/code/ATMOSPHERICS/components/omni_devices/mixer.dm
@@ -5,6 +5,7 @@
name = "omni gas mixer"
icon_state = "map_mixer"
base_icon = "mixer"
+ desc_info = "Combines gas from custom input and output directions. The percentage of combined gas can be defined."
use_power = 1
idle_power_usage = 150 //internal circuitry, friction losses and stuff
diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/ATMOSPHERICS/components/tvalve.dm
index ba56dcce33a..842af8d2160 100644
--- a/code/ATMOSPHERICS/components/tvalve.dm
+++ b/code/ATMOSPHERICS/components/tvalve.dm
@@ -1,10 +1,10 @@
/obj/machinery/atmospherics/tvalve
+ name = "manual switching valve"
+ desc = "A pipe valve."
+ desc_info = "Click this to toggle the mode. The direction with the green light is where the gas will flow."
icon = 'icons/atmos/tvalve.dmi'
icon_state = "map_tvalve0"
- name = "manual switching valve"
- desc = "A pipe valve"
-
level = 1
dir = SOUTH
initialize_directions = SOUTH|NORTH|WEST
diff --git a/code/ATMOSPHERICS/components/unary/cold_sink.dm b/code/ATMOSPHERICS/components/unary/cold_sink.dm
index 09588b2c4cc..4f2aac5073f 100644
--- a/code/ATMOSPHERICS/components/unary/cold_sink.dm
+++ b/code/ATMOSPHERICS/components/unary/cold_sink.dm
@@ -3,7 +3,10 @@
/obj/machinery/atmospherics/unary/freezer
name = "gas cooling system"
- desc = "Cools gas when connected to pipe network"
+ desc = "Cools gas when connected to pipe network."
+ desc_info = "Cools down the gas of the pipe it is connected to. It uses massive amounts of electricity while on. \
+ It can be upgraded by replacing the capacitors, manipulators, and matter bins. It can be deconstructed by screwing the maintenance panel open with a \
+ screwdriver, and then using a crowbar."
icon = 'icons/obj/sleeper.dmi'
icon_state = "freezer_0"
density = 1
diff --git a/code/ATMOSPHERICS/components/unary/heat_source.dm b/code/ATMOSPHERICS/components/unary/heat_source.dm
index a44d857d7a1..34556bab5b2 100644
--- a/code/ATMOSPHERICS/components/unary/heat_source.dm
+++ b/code/ATMOSPHERICS/components/unary/heat_source.dm
@@ -3,7 +3,10 @@
/obj/machinery/atmospherics/unary/heater
name = "gas heating system"
- desc = "Heats gas when connected to a pipe network"
+ desc = "Heats gas when connected to a pipe network."
+ desc_info = "Heats up the gas of the pipe it is connected to. It uses massive amounts of electricity while on. \
+ It can be upgraded by replacing the capacitors, manipulators, and matter bins. It can be deconstructed by screwing the maintenance panel open with a \
+ screwdriver, and then using a crowbar."
icon = 'icons/obj/sleeper.dmi'
icon_state = "heater_0"
density = 1
diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm
index 5991c0fd9de..ed9a0db5aa1 100644
--- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm
+++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm
@@ -3,13 +3,14 @@
//When it receives the "inject" signal, it will try to pump it's entire contents into the environment regardless of pressure, using power.
/obj/machinery/atmospherics/unary/outlet_injector
+ name = "air injector"
+ desc = "Passively injects air into its surroundings. Has a valve attached to it that can control flow rate."
+ desc_info = "Outputs the pipe's gas into the atmosphere, similar to an airvent. It can be controlled by a nearby atmospherics computer. \
+ A green light on it means it is on."
icon = 'icons/atmos/injector.dmi'
icon_state = "map_injector"
layer = 3
- name = "air injector"
- desc = "Passively injects air into its surroundings. Has a valve attached to it that can control flow rate."
-
use_power = 0
idle_power_usage = 150 //internal circuitry, friction losses and stuff
power_rating = 15000 //15000 W ~ 20 HP
diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm
index 97edf465885..afa8c3b14b1 100644
--- a/code/ATMOSPHERICS/components/unary/vent_pump.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm
@@ -8,11 +8,12 @@
#define PRESSURE_CHECK_INTERNAL 2
/obj/machinery/atmospherics/unary/vent_pump
+ name = "air vent"
+ desc = "Has a valve and pump attached to it."
+ desc_info = "This pumps the contents of the attached pipe out into the atmosphere, if needed. It can be controlled from an Air Alarm."
icon = 'icons/atmos/vent_pump.dmi'
icon_state = "map_vent"
- name = "Air Vent"
- desc = "Has a valve and pump attached to it"
use_power = 0
idle_power_usage = 150 //internal circuitry, friction losses and stuff
power_rating = 7500 //7500 W ~ 10 HP
diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
index b4d316c60aa..f018865bcfe 100644
--- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
@@ -1,9 +1,11 @@
/obj/machinery/atmospherics/unary/vent_scrubber
+ name = "air scrubber"
+ desc = "Has a valve and pump attached to it."
+ desc_info = "This filters the atmosphere of harmful gas. Filtered gas goes to the pipes connected to it, typically a scrubber pipe. \
+ It can be controlled from an Air Alarm. It can be configured to drain all air rapidly with a 'panic syphon' from an air alarm."
icon = 'icons/atmos/vent_scrubber.dmi'
icon_state = "map_scrubber_off"
- name = "Air Scrubber"
- desc = "Has a valve and pump attached to it"
use_power = 0
idle_power_usage = 150 //internal circuitry, friction losses and stuff
power_rating = 7500 //7500 W ~ 10 HP
diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm
index 9d985828ca0..3c79ab31646 100644
--- a/code/ATMOSPHERICS/components/valve.dm
+++ b/code/ATMOSPHERICS/components/valve.dm
@@ -1,10 +1,10 @@
/obj/machinery/atmospherics/valve
+ name = "manual valve"
+ desc = "A pipe valve."
+ desc_info = "Click this to turn the valve. If red, the pipes on each end are seperated. Otherwise, they are connected."
icon = 'icons/atmos/valve.dmi'
icon_state = "map_valve0"
- name = "manual valve"
- desc = "A pipe valve"
-
level = 1
dir = SOUTH
initialize_directions = SOUTH|NORTH
diff --git a/code/ATMOSPHERICS/he_pipes.dm b/code/ATMOSPHERICS/he_pipes.dm
index 0a1d923ed54..d55721195ae 100644
--- a/code/ATMOSPHERICS/he_pipes.dm
+++ b/code/ATMOSPHERICS/he_pipes.dm
@@ -1,4 +1,5 @@
/obj/machinery/atmospherics/pipe/simple/heat_exchanging
+ desc_info = "This radiates heat from the pipe's gas to space, cooling it down."
icon = 'icons/atmos/heat.dmi'
icon_state = "intact"
pipe_icon = "hepipe"
diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm
index bdb4008268e..e7baf19a246 100644
--- a/code/ATMOSPHERICS/pipes.dm
+++ b/code/ATMOSPHERICS/pipes.dm
@@ -1,5 +1,6 @@
/obj/machinery/atmospherics/pipe
-
+ desc_info = "This pipe, and all other pipes, can be connected or disconnected by a wrench. The internal pressure of the pipe must \
+ be below 300 kPa to do this. More pipes can be obtained from the pipe dispenser."
var/datum/gas_mixture/air_temporary // used when reconstructing a pipeline that broke
var/datum/pipeline/parent
var/volume = 0
@@ -22,6 +23,8 @@
if(istype(get_turf(src), /turf/simulated/wall) || istype(get_turf(src), /turf/unsimulated/wall))
level = 1
. = ..()
+ desc_info += "
Most pipes and atmospheric devices can be connected or disconnected with a wrench. The pipe's pressure must not be too high, \
+ or if it is a device, it must be turned off first."
/obj/machinery/atmospherics/pipe/hides_under_flooring()
return level != 2
@@ -321,12 +324,16 @@
return null
/obj/machinery/atmospherics/pipe/simple/visible
+ desc_info = "This is a special 'scrubber' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
+ a Universal Adapter pipe."
icon_state = "intact"
level = 2
/obj/machinery/atmospherics/pipe/simple/visible/scrubbers
name = "Scrubbers pipe"
- desc = "A one meter section of scrubbers pipe"
+ desc = "A one meter section of scrubbers pipe."
+ desc_info = "This is a special 'supply' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
+ a Universal Adapter pipe."
icon_state = "intact-scrubbers"
connect_types = CONNECT_TYPE_SCRUBBER
layer = 2.38
@@ -368,7 +375,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers
name = "Scrubbers pipe"
- desc = "A one meter section of scrubbers pipe"
+ desc = "A one meter section of scrubbers pipe."
+ desc_info = "This is a special 'scrubber' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
+ a Universal Adapter pipe."
icon_state = "intact-scrubbers"
connect_types = CONNECT_TYPE_SCRUBBER
layer = 2.38
@@ -377,7 +386,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply
name = "Air supply pipe"
- desc = "A one meter section of supply pipe"
+ desc = "A one meter section of supply pipe."
+ desc_info = "This is a special 'supply' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
+ a Universal Adapter pipe."
icon_state = "intact-supply"
connect_types = CONNECT_TYPE_SUPPLY
layer = 2.39
@@ -403,6 +414,7 @@
color = PIPE_COLOR_BLUE
/obj/machinery/atmospherics/pipe/simple/insulated
+ desc_info = "This is completely useless, use a normal pipe."
icon = 'icons/obj/atmospherics/red_pipe.dmi'
icon_state = "intact"
@@ -416,10 +428,11 @@
/obj/machinery/atmospherics/pipe/manifold
+ name = "pipe manifold"
+ desc = "A manifold composed of regular pipes."
+ desc_info = "A normal pipe with three ends to connect to."
icon = 'icons/atmos/manifold.dmi'
icon_state = ""
- name = "pipe manifold"
- desc = "A manifold composed of regular pipes"
volume = ATMOS_DEFAULT_VOLUME_PIPE * 1.5
@@ -598,8 +611,10 @@
level = 2
/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers
- name="Scrubbers pipe manifold"
+ name = "scrubbers pipe manifold"
desc = "A manifold composed of scrubbers pipes"
+ desc_info = "This is a special 'scrubber' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
+ a Universal Adapter pipe."
icon_state = "map-scrubbers"
connect_types = CONNECT_TYPE_SCRUBBER
layer = 2.38
@@ -607,8 +622,10 @@
color = PIPE_COLOR_RED
/obj/machinery/atmospherics/pipe/manifold/visible/supply
- name="Air supply pipe manifold"
- desc = "A manifold composed of supply pipes"
+ name = "air supply pipe manifold"
+ desc = "A manifold composed of supply pipes."
+ desc_info = "This is a special 'supply' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
+ a Universal Adapter pipe."
icon_state = "map-supply"
connect_types = CONNECT_TYPE_SUPPLY
layer = 2.39
@@ -640,8 +657,10 @@
alpha = 128 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers
- name="Scrubbers pipe manifold"
- desc = "A manifold composed of scrubbers pipes"
+ name = "scrubbers pipe manifold"
+ desc = "A manifold composed of scrubbers pipes."
+ desc_info = "This is a special 'scrubber' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
+ a Universal Adapter pipe."
icon_state = "map-scrubbers"
connect_types = CONNECT_TYPE_SCRUBBER
layer = 2.38
@@ -649,8 +668,10 @@
color = PIPE_COLOR_RED
/obj/machinery/atmospherics/pipe/manifold/hidden/supply
- name="Air supply pipe manifold"
- desc = "A manifold composed of supply pipes"
+ name = "air supply pipe manifold"
+ desc = "A manifold composed of supply pipes."
+ desc_info = "This is a special 'supply' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
+ a Universal Adapter pipe."
icon_state = "map-supply"
connect_types = CONNECT_TYPE_SUPPLY
layer = 2.39
@@ -676,10 +697,11 @@
color = PIPE_COLOR_BLUE
/obj/machinery/atmospherics/pipe/manifold4w
+ name = "4-way pipe manifold"
+ desc = "A manifold composed of regular pipes."
+ desc_info = "This is a four-way pipe."
icon = 'icons/atmos/manifold.dmi'
icon_state = ""
- name = "4-way pipe manifold"
- desc = "A manifold composed of regular pipes"
volume = ATMOS_DEFAULT_VOLUME_PIPE * 2
@@ -859,8 +881,10 @@
level = 2
/obj/machinery/atmospherics/pipe/manifold4w/visible/scrubbers
- name="4-way scrubbers pipe manifold"
- desc = "A manifold composed of scrubbers pipes"
+ name = "4-way scrubbers pipe manifold"
+ desc = "A manifold composed of scrubbers pipes."
+ desc_info = "This is a special 'scrubber' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
+ a Universal Adapter pipe."
icon_state = "map_4way-scrubbers"
connect_types = CONNECT_TYPE_SCRUBBER
layer = 2.38
@@ -868,8 +892,10 @@
color = PIPE_COLOR_RED
/obj/machinery/atmospherics/pipe/manifold4w/visible/supply
- name="4-way air supply pipe manifold"
+ name = "4-way air supply pipe manifold"
desc = "A manifold composed of supply pipes"
+ desc_info = "This is a special 'supply' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
+ a Universal Adapter pipe."
icon_state = "map_4way-supply"
connect_types = CONNECT_TYPE_SUPPLY
layer = 2.39
@@ -900,8 +926,10 @@
alpha = 128 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game
/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers
- name="4-way scrubbers pipe manifold"
- desc = "A manifold composed of scrubbers pipes"
+ name = "4-way scrubbers pipe manifold"
+ desc = "A manifold composed of scrubbers pipes."
+ desc_info = "This is a special 'scrubber' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
+ a Universal Adapter pipe."
icon_state = "map_4way-scrubbers"
connect_types = CONNECT_TYPE_SCRUBBER
layer = 2.38
@@ -909,8 +937,10 @@
color = PIPE_COLOR_RED
/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply
- name="4-way air supply pipe manifold"
- desc = "A manifold composed of supply pipes"
+ name = "4-way air supply pipe manifold"
+ desc = "A manifold composed of supply pipes."
+ desc_info = "This is a special 'supply' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
+ a Universal Adapter pipe."
icon_state = "map_4way-supply"
connect_types = CONNECT_TYPE_SUPPLY
layer = 2.39
@@ -938,6 +968,7 @@
/obj/machinery/atmospherics/pipe/cap
name = "pipe endcap"
desc = "An endcap for pipes"
+ desc_info = "This is a cosmetic attachment, as pipes do not spill their contents into the air."
icon = 'icons/atmos/pipes.dmi'
icon_state = ""
level = 2
@@ -1301,8 +1332,9 @@
/obj/machinery/atmospherics/pipe/simple/visible/universal
- name="Universal pipe adapter"
- desc = "An adapter for regular, supply and scrubbers pipes"
+ name = "universal pipe adapter"
+ desc = "An adapter for regular, supply and scrubbers pipes."
+ desc_info = "This allows you to connect 'normal' pipes, red 'scrubber' pipes, and blue 'supply' pipes."
connect_types = CONNECT_TYPE_REGULAR|CONNECT_TYPE_SUPPLY|CONNECT_TYPE_SCRUBBER
icon_state = "map_universal"
gfi_layer_rotation = GFI_ROTATION_OVERDIR
@@ -1337,8 +1369,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/universal
- name="Universal pipe adapter"
- desc = "An adapter for regular, supply and scrubbers pipes"
+ name = "universal pipe adapter"
+ desc = "An adapter for regular, supply and scrubbers pipes."
+ desc_info = "This allows you to connect 'normal' pipes, red 'scrubber' pipes, and blue 'supply' pipes."
connect_types = CONNECT_TYPE_REGULAR|CONNECT_TYPE_SUPPLY|CONNECT_TYPE_SCRUBBER
icon_state = "map_universal"
gfi_layer_rotation = GFI_ROTATION_OVERDIR
diff --git a/code/__defines/_layers.dm b/code/__defines/_layers.dm
index 567eddffb30..44e54762a3f 100644
--- a/code/__defines/_layers.dm
+++ b/code/__defines/_layers.dm
@@ -7,6 +7,7 @@
#define ON_TURF_LAYER (TURF_LAYER + 0.1) // sitting on the turf - should be preferred over direct use of TURF_LAYER
#define AO_LAYER (ON_TURF_LAYER + 0.1)
#define PIPE_LAYER 2.4 //under wires with their 2.44
+#define UNDER_PIPE_LAYER (PIPE_LAYER - 0.1)
#define CABLE_LAYER 2.44
#define ABOVE_CABLE_LAYER (CABLE_LAYER + 0.1)
#define DOOR_OPEN_LAYER 2.7 //Under all objects if opened. 2.7 due to tables being at 2.6
diff --git a/code/game/gamemodes/cult/items/sword.dm b/code/game/gamemodes/cult/items/sword.dm
index e0a77c183fa..643c29c0cda 100644
--- a/code/game/gamemodes/cult/items/sword.dm
+++ b/code/game/gamemodes/cult/items/sword.dm
@@ -1,6 +1,7 @@
/obj/item/melee/cultblade
name = "eldritch blade"
desc = "A sword humming with unholy energy. It glows with a dim red light."
+ desc_antag = "This sword is a powerful weapon, capable of severing limbs easily, if they are targeted. Non-believers are unable to use this weapon."
icon = 'icons/obj/sword.dmi'
icon_state = "cultblade"
item_state = "cultblade"
diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm
index 2b116c83860..fdce2f51d8c 100644
--- a/code/game/machinery/OpTable.dm
+++ b/code/game/machinery/OpTable.dm
@@ -1,6 +1,7 @@
/obj/machinery/optable
name = "operating table"
desc = "Used for advanced medical procedures."
+ desc_info = "Click your target with Grab intent, then click on the table with an empty hand, to place them on it."
icon = 'icons/obj/surgery.dmi'
icon_state = "table2-idle"
var/modify_state = "table2"
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index 73e6826bbf3..c95bd89038b 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -1,10 +1,20 @@
/obj/machinery/sleeper
name = "sleeper"
desc = "A fancy bed with built-in injectors, a dialysis machine, and a limited health scanner."
+ desc_info = "The sleeper allows you to clean the blood by means of dialysis, and to administer medication in a controlled environment.
\
+
\
+ Click your target with Grab intent, then click on the sleeper to place them in it. Click the green console, with an empty hand, to open the menu. \
+ Click 'Start Dialysis' to begin filtering unwanted chemicals from the occupant's blood. The beaker contained will begin to fill with their \
+ contaminated blood, and will need to be emptied when full.
\
+
\
+ You can also inject common medicines directly into their bloodstream.\
+
\
+ Right-click the cell and click 'Eject Occupant' to remove them. You can enter the cell yourself by right clicking and selecting 'Enter Sleeper'. \
+ Note that you cannot control the sleeper while inside of it."
icon = 'icons/obj/sleeper.dmi'
icon_state = "sleeper"
- density = 1
- anchored = 1
+ density = TRUE
+ anchored = TRUE
clicksound = 'sound/machines/buttonbeep.ogg'
clickvol = 30
@@ -27,6 +37,7 @@
/obj/item/stock_parts/console_screen,
/obj/item/reagent_containers/glass/beaker/large
)
+
/obj/machinery/sleeper/Initialize()
. = ..()
update_icon()
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index 1a772b53ae8..dbfa32a4238 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -1,7 +1,26 @@
-// Pretty much everything here is stolen from the dna scanner FYI
-
-
/obj/machinery/bodyscanner
+ name = "body scanner"
+ desc = "A state-of-the-art medical diagnostics machine. Guaranteed detection of all your bodily ailments or your money back!"
+ desc_info = "The advanced scanner detects and reports internal injuries such as bone fractures, internal bleeding, and organ damage. \
+ This is useful if you are about to perform surgery.
\
+
\
+ Click your target with Grab intent, then click on the scanner to place them in it. Click the red terminal to operate. \
+ Right-click the scanner and click 'Eject Occupant' to remove them. You can enter the scanner yourself in a similar way, using the 'Enter Body Scanner' \
+ verb."
+ icon = 'icons/obj/sleeper.dmi'
+ icon_state = "body_scanner"
+ density = TRUE
+ anchored = TRUE
+ component_types = list(
+ /obj/item/circuitboard/bodyscanner,
+ /obj/item/stock_parts/capacitor = 2,
+ /obj/item/stock_parts/scanning_module = 2,
+ /obj/item/device/healthanalyzer
+ )
+ use_power = 1
+ idle_power_usage = 60
+ active_power_usage = 10000 //10 kW. It's a big all-body scanner.
+
var/mob/living/carbon/occupant
var/last_occupant_name = ""
var/locked
@@ -19,22 +38,6 @@
"Diona",
"Monkey"
)
- name = "Body Scanner"
- desc = "A state-of-the-art medical diagnostics machine. Guaranteed detection of all your bodily ailments or your money back!"
- icon = 'icons/obj/sleeper.dmi'
- icon_state = "body_scanner"
- density = 1
- anchored = 1
- component_types = list(
- /obj/item/circuitboard/bodyscanner,
- /obj/item/stock_parts/capacitor = 2,
- /obj/item/stock_parts/scanning_module = 2,
- /obj/item/device/healthanalyzer
- )
-
- use_power = 1
- idle_power_usage = 60
- active_power_usage = 10000 //10 kW. It's a big all-body scanner.
/obj/machinery/bodyscanner/Initialize()
. = ..()
diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm
index e4e5ba37b10..20abde5679c 100644
--- a/code/game/machinery/atmoalter/canister.dm
+++ b/code/game/machinery/atmoalter/canister.dm
@@ -1,6 +1,11 @@
/obj/machinery/portable_atmospherics/canister
name = "canister"
desc = "Holds gas. Has a built-in valve to allow for filling portable tanks."
+ desc_info = "The canister can be connected to a connector port with a wrench. Tanks of gas (the kind you can hold in your hand) \
+ can be filled by the canister, by using the tank on the canister, increasing the release pressure, then opening the valve until it is full, and then close it. \
+ *DO NOT* remove the tank until the valve is closed. A gas analyzer can be used to check the contents of the canister."
+
+ desc_antag = "Canisters can be damaged, spilling their contents into the air, or you can just leave the release valve open."
icon = 'icons/obj/atmos.dmi'
icon_state = "yellow"
density = 1
diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm
index d9e20c4fb04..5162cb0396b 100644
--- a/code/game/machinery/atmoalter/meter.dm
+++ b/code/game/machinery/atmoalter/meter.dm
@@ -1,6 +1,7 @@
/obj/machinery/meter
name = "meter"
desc = "It measures something."
+ desc_info = "Measures the volume and temperature of the pipe under the meter."
icon = 'icons/obj/meter.dmi'
icon_state = "meterX"
var/obj/machinery/atmospherics/pipe/target = null
diff --git a/code/game/machinery/atmoalter/pump.dm b/code/game/machinery/atmoalter/pump.dm
index 02f281d0215..6bd0a58c8e9 100644
--- a/code/game/machinery/atmoalter/pump.dm
+++ b/code/game/machinery/atmoalter/pump.dm
@@ -1,6 +1,9 @@
/obj/machinery/portable_atmospherics/powered/pump
name = "portable air pump"
desc = "Used to fill or drain rooms without differentiating between gasses."
+ desc_info = "Invaluable for filling air in a room rapidly after a breach repair. The internal gas container can be filled by \
+ connecting it to a connector port. The pump can pump the air in (sucking) or out (blowing), at a specific target pressure. The powercell inside can be \
+ replaced by using a screwdriver, and then adding a new cell. A tank of gas can also be attached to the air pump."
icon = 'icons/obj/atmos.dmi'
icon_state = "psiphon:0"
diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm
index eaf113d0bb0..a1fb3b1a23a 100644
--- a/code/game/machinery/atmoalter/scrubber.dm
+++ b/code/game/machinery/atmoalter/scrubber.dm
@@ -1,6 +1,9 @@
/obj/machinery/portable_atmospherics/powered/scrubber
- name = "Portable Air Scrubber"
+ name = "portable air scrubber"
desc = "Scrubs contaminants from the local atmosphere or the connected portable tank."
+ desc_info = "Filters the air, placing harmful gases into the internal gas container. The container can be emptied by \
+ connecting it to a connector port. The pump can pump the air in (sucking) or out (blowing), at a specific target pressure. The powercell inside can be \
+ replaced by using a screwdriver, and then adding a new cell. A tank of gas can also be attached to the scrubber. "
icon = 'icons/obj/atmos.dmi'
icon_state = "pscrubber:0"
diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm
index 06194c18bcc..86843d497a8 100644
--- a/code/game/machinery/computer/Operating.dm
+++ b/code/game/machinery/computer/Operating.dm
@@ -2,8 +2,9 @@
/obj/machinery/computer/operating
name = "patient monitoring console"
- density = 1
- anchored = 1.0
+ desc_info = "This console gives information on the status of the patient on the adjacent operating table, notably their consciousness."
+ density = TRUE
+ anchored = TRUE
light_color = LIGHT_COLOR_CYAN
icon_screen = "crew"
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index a2f4354b1f6..74ba889b852 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -2,12 +2,27 @@
/obj/machinery/atmospherics/unary/cryo_cell
name = "cryo cell"
+ desc_info = "The cryogenic chamber, or 'cryo', treats most damage types, most notably genetic damage. It also stabilizes patients \
+ in critical condition by placing them in stasis, so they can be treated at a later time.
\
+
\
+ In order for it to work, it must be loaded with chemicals, and the temperature of the solution must reach a certain point. Additionally, it \
+ requires a supply of pure oxygen, provided by canisters that are attached. The most commonly used chemicals in the chambers are Cryoxadone and \
+ Clonexadone. Clonexadone is more effective in treating all damage, including Genetic damage, but is otherwise functionally identical.
\
+
\
+ Activating the freezer nearby, and setting it to a temperature setting below 150, is recommended before operation! Further, any clothing the patient \
+ is wearing that act as an insulator will reduce its effectiveness, and should be removed.
\
+
\
+ Clicking the tube with a beaker full of chemicals in hand will place it in its storage to distribute when it is activated.
\
+
\
+ Click your target with Grab intent, then click on the tube, with an empty hand, to place them in it. Click the tube again to open the menu. \
+ Press the button on the menu to activate it. Once they have reached 100 health, right-click the cell and click 'Eject Occupant' to remove them. \
+ Remember to turn it off, once you've finished, to save power and chemicals!"
icon = 'icons/obj/cryogenics.dmi' // map only
icon_state = "pod_preview"
- density = 1
- anchored = 1.0
+ density = TRUE
+ anchored = TRUE
layer = 2.8
- interact_offline = 1
+ interact_offline = TRUE
var/on = 0
use_power = 1
diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm
index cf5559c810e..4789ddf9cb2 100644
--- a/code/game/machinery/pipe/pipe_dispenser.dm
+++ b/code/game/machinery/pipe/pipe_dispenser.dm
@@ -1,6 +1,8 @@
/obj/machinery/pipedispenser
- name = "Pipe Dispenser"
+ name = "pipe dispenser"
icon = 'icons/obj/stationobjs.dmi'
+ desc_info = "This can be moved by using a wrench. You will need to wrench it again when you want to use it. You can put \
+ excess (atmospheric) pipes into the dispenser, as well. The dispenser requires electricity to function."
icon_state = "pipe_d"
density = 1
anchored = 1
diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm
index 4becd199243..691a110a7ac 100644
--- a/code/game/objects/items/stacks/rods.dm
+++ b/code/game/objects/items/stacks/rods.dm
@@ -17,10 +17,12 @@ var/global/list/datum/stack_recipe/rod_recipes = list(
/obj/item/stack/rods
name = "metal rod"
desc = "Some rods. Can be used for building, or something."
+ desc_info = "Made from metal sheets. You can build a grille by using it in your hand. \
+ Clicking on a floor without any tiles will reinforce the floor. You can make reinforced glass by combining rods and normal glass sheets."
singular_name = "metal rod"
icon_state = "rods"
flags = CONDUCT
- w_class = 3.0
+ w_class = ITEMSIZE_NORMAL
force = 9.0
throwforce = 15.0
throw_speed = 5
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index f1a1d508a7b..d20e66ba6e1 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -14,6 +14,7 @@
/obj/item/stack/material/glass
name = "glass"
singular_name = "glass sheet"
+ desc_info = "Use in your hand to build a window. Can be upgraded to reinforced glass by adding metal rods, which are made from metal sheets."
icon_state = "sheet-glass"
var/created_window = /obj/structure/window/basic
var/is_reinforced = 0
@@ -102,6 +103,7 @@
*/
/obj/item/stack/material/glass/reinforced
name = "reinforced glass"
+ desc_info = "Use in your hand to build a window. Reinforced glass is much stronger against damage."
singular_name = "reinforced glass sheet"
icon_state = "sheet-rglass"
default_type = "reinforced glass"
diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm
index e8f6b46bbc7..b09e304a520 100644
--- a/code/game/objects/items/weapons/melee/energy.dm
+++ b/code/game/objects/items/weapons/melee/energy.dm
@@ -211,6 +211,9 @@
color
name = "energy sword"
desc = "May the force be within you."
+ desc_antag = "The energy sword is a very strong melee weapon, capable of severing limbs easily, if they are targeted. It can also has a chance \
+ to block projectiles and melee attacks while it is on and being held. The sword can be toggled on or off by using it in your hand. While it is off, \
+ it can be concealed in your pocket or bag."
icon_state = "sword0"
active_force = 30
active_throwforce = 20
diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm
index a907fce3b22..94200c731e3 100644
--- a/code/game/objects/items/weapons/stunbaton.dm
+++ b/code/game/objects/items/weapons/stunbaton.dm
@@ -2,6 +2,9 @@
/obj/item/melee/baton
name = "stunbaton"
desc = "A stun baton for incapacitating people with."
+ desc_info = "The baton needs to be turned on to apply the stunning effect. Use it in your hand to toggle it on or off. If your intent is \
+ set to 'harm', you will inflict damage when using it, regardless if it is on or not. Each stun reduces the baton's charge, which can be replenished by \
+ putting it inside a weapon recharger."
icon_state = "stunbaton"
item_state = "baton"
slot_flags = SLOT_BELT
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index b61a8c78913..a0bdd575af8 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -1,5 +1,8 @@
/obj/structure/girder
desc = "The basic building block of all walls."
+ desc_info = "Use metal sheets on this to build a normal wall.
\
+ A false wall can be made by using a crowbar on this girder, and then adding some material.
\
+ You can dismantle the grider with a wrench, or add support struts with a screwdriver to enable further reinforcement."
icon_state = "girder"
anchored = 1
density = 1
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index d38014db583..a13cad180de 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -1,12 +1,14 @@
/obj/structure/grille
name = "grille"
desc = "A flimsy lattice of metal rods, with screws to secure it to the floor."
+ desc_info = "A powered and knotted wire underneath this will cause the grille to shock anyone not wearing insulated gloves.
\
+ Wirecutters will turn the grille into metal rods instantly. Grilles are made with metal rods.
\
+ Can be fixed with a single metal rod if damaged."
icon = 'icons/obj/structures.dmi'
icon_state = "grille"
- density = 1
- anchored = 1
+ density = TRUE
+ anchored = TRUE
flags = CONDUCT
- layer = 2.9
explosion_resistance = 1
var/health = 10
var/destroyed = 0
diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm
index be836726581..61fc7c2ff2f 100644
--- a/code/game/objects/structures/inflatable.dm
+++ b/code/game/objects/structures/inflatable.dm
@@ -1,6 +1,7 @@
/obj/item/inflatable
name = "inflatable"
- w_class = 2
+ desc_info = "Inflate by using it in your hand. The inflatable barrier will inflate on your tile. To deflate it, use the 'deflate' verb."
+ w_class = ITEMSIZE_SMALL
icon = 'icons/obj/inflatable.dmi'
var/deploy_path = null
@@ -14,7 +15,6 @@
R.add_fingerprint(user)
qdel(src)
-
/obj/item/inflatable/wall
name = "inflatable wall"
desc = "A folded membrane which rapidly expands into a large cubical shape on activation."
@@ -30,6 +30,7 @@
/obj/structure/inflatable
name = "inflatable"
desc = "An inflated membrane. Do not puncture."
+ desc_info = "To remove these safely, use the 'deflate' verb. Hitting these with any objects will probably puncture and break it forever."
density = 1
anchored = 1
opacity = 0
@@ -145,9 +146,11 @@
/obj/structure/inflatable/door //Based on mineral door code
name = "inflatable door"
- density = 1
- anchored = 1
- opacity = 0
+ desc_info = "Click the door to open or close it. It only stops air while closed.
\
+ To remove these safely, use the 'deflate' verb. Hitting these with any objects will probably puncture and break it forever."
+ density = TRUE
+ anchored = TRUE
+ opacity = FALSE
icon_state = "door_closed"
undeploy_path = /obj/item/inflatable/door
diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm
index 25bfce85027..a9938791135 100644
--- a/code/game/objects/structures/lattice.dm
+++ b/code/game/objects/structures/lattice.dm
@@ -1,13 +1,14 @@
/obj/structure/lattice
name = "lattice"
desc = "A lightweight support lattice."
+ desc_info = "Add a metal floor tile to build a floor on top of the lattice.
\
+ Lattices can be made by applying metal rods to a space tile."
icon = 'icons/obj/smooth/lattice.dmi'
icon_state = "lattice"
density = FALSE
anchored = TRUE
- w_class = 3
- layer = 2.3 //under pipes
- // flags = CONDUCT
+ w_class = ITEMSIZE_NORMAL
+ layer = UNDER_PIPE_LAYER //under pipes
var/restrict_placement = TRUE
smooth = SMOOTH_MORE
canSmoothWith = list(
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index 72caea5c2e7..2ba4eb6823a 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -10,15 +10,18 @@
/obj/structure/bed
name = "bed"
desc = "This is used to lie in, sleep in or strap on."
+ desc_info = "Click and drag yourself (or anyone) to this to buckle in. Click on this with an empty hand to undo the buckles.
\
+ Anyone with restraints, such as handcuffs, will not be able to unbuckle themselves. They must use the Resist button, or verb, to break free of \
+ the buckles, instead."
icon = 'icons/obj/furniture.dmi'
icon_state = "bed"
- anchored = 1
- can_buckle = 1
+ anchored = TRUE
+ can_buckle = TRUE
buckle_dir = SOUTH
buckle_lying = 1
var/material/padding_material
var/base_icon = "bed"
- var/can_dismantle = 1
+ var/can_dismantle = TRUE
gfi_layer_rotation = GFI_ROTATION_DEFDIR
var/apply_material_color = TRUE
var/makes_rolling_sound = TRUE
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index c1e48c08ece..dc61ec3792b 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -1,11 +1,13 @@
/turf/simulated/wall
name = "wall"
desc = "A huge chunk of metal used to seperate rooms."
+ desc_info = "You can deconstruct this by welding it, and then wrenching the girder.
\
+ You can build a wall by using metal sheets and making a girder, then adding more material."
icon = 'icons/turf/wall_masks.dmi'
icon_state = "generic"
- opacity = 1
- density = 1
- blocks_air = 1
+ opacity = TRUE
+ density = TRUE
+ blocks_air = TRUE
thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT
heat_capacity = 312500 //a little over 5 cm thick , 312500 for 1 m by 2.5 m by 0.25 m plasteel wall
diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm
index 9d4326a2f5f..3bbb5fad14c 100644
--- a/code/modules/clothing/chameleon.dm
+++ b/code/modules/clothing/chameleon.dm
@@ -343,7 +343,11 @@
//*****************
/obj/item/gun/energy/chameleon
name = "desert eagle"
- desc = "A hologram projector in the shape of a gun. There is a dial on the side to change the gun's disguise."
+ desc = null
+ desc_info = null //The chameleon gun adopts the desc_info of the weapon it is impersonating as, to make meta-ing harder.
+ desc_antag = "This gun is actually a hologram projector that can alter its appearance to mimick other weapons. To change the appearance, use \
+ the appropriate verb in the chameleon items tab. Any beams or projectiles fired from this gun are actually holograms and useless for actual combat. \
+ Projecting these holograms over distance uses a little bit of charge."
icon = 'icons/obj/guns/deagle.dmi'
icon_state = "deagle"
w_class = 3
@@ -402,10 +406,10 @@
var/obj/item/gun/energy/E = copy
if(istype(E))
copy_projectile = E.projectile_type
- //charge_meter = E.charge_meter //does not work very well with icon_state changes, ATM
+ desc = E.desc
+ desc_info = E.desc_info
else
copy_projectile = null
- //charge_meter = 0
/obj/item/gun/energy/chameleon/verb/change(picked in gun_choices)
set name = "Change Gun Appearance"
diff --git a/code/modules/examine/descriptions/atmospherics.dm b/code/modules/examine/descriptions/atmospherics.dm
deleted file mode 100644
index b2ae7c4b0b1..00000000000
--- a/code/modules/examine/descriptions/atmospherics.dm
+++ /dev/null
@@ -1,166 +0,0 @@
-/obj/machinery/atmospherics/pipe
- desc_info = "This pipe, and all other pipes, can be connected or disconnected by a wrench. The internal pressure of the pipe must \
- be below 300 kPa to do this. More pipes can be obtained from the pipe dispenser."
-
-/obj/machinery/atmospherics/pipe/Initialize() //This is needed or else 20+ lines of copypasta to dance around inheritence.
- . = ..()
- desc_info += "
Most pipes and atmospheric devices can be connected or disconnected with a wrench. The pipe's pressure must not be too high, \
- or if it is a device, it must be turned off first."
-
-//HE pipes
-/obj/machinery/atmospherics/pipe/simple/heat_exchanging
- desc_info = "This radiates heat from the pipe's gas to space, cooling it down."
-
-//Supply/Scrubber pipes
-/obj/machinery/atmospherics/pipe/simple/visible/scrubbers
- desc_info = "This is a special 'scrubber' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
- a Universal Adapter pipe."
-
-/obj/machinery/atmospherics/pipe/simple/visible/supply
- desc_info = "This is a special 'supply' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
- a Universal Adapter pipe."
-
-/obj/machinery/atmospherics/pipe/simple/hidden/supply
- desc_info = "This is a special 'supply' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
- a Universal Adapter pipe."
-
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers
- desc_info = "This is a special 'scrubber' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
- a Universal Adapter pipe."
-
-//Universal adapters
-/obj/machinery/atmospherics/pipe/simple/visible/universal
- desc_info = "This allows you to connect 'normal' pipes, red 'scrubber' pipes, and blue 'supply' pipes."
-
-/obj/machinery/atmospherics/pipe/simple/hidden/universal
- desc_info = "This allows you to connect 'normal' pipes, red 'scrubber' pipes, and blue 'supply' pipes."
-
-//Three way manifolds
-/obj/machinery/atmospherics/pipe/manifold
- desc_info = "A normal pipe with three ends to connect to."
-
-/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers
- desc_info = "This is a special 'scrubber' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
- a Universal Adapter pipe."
-
-/obj/machinery/atmospherics/pipe/manifold/visible/supply
- desc_info = "This is a special 'supply' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
- a Universal Adapter pipe."
-
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers
- desc_info = "This is a special 'scrubber' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
- a Universal Adapter pipe."
-
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply
- desc_info = "This is a special 'supply' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
- a Universal Adapter pipe."
-
-//Insulated pipes
-/obj/machinery/atmospherics/pipe/simple/insulated
- desc_info = "This is completely useless, use a normal pipe." //Sorry, but it's true.
-
-//Four way manifolds
-/obj/machinery/atmospherics/pipe/manifold4w
- desc_info = "This is a four-way pipe."
-
-/obj/machinery/atmospherics/pipe/manifold4w/visible/scrubbers
- desc_info = "This is a special 'scrubber' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
- a Universal Adapter pipe."
-
-/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply
- desc_info = "This is a special 'supply' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
- a Universal Adapter pipe."
-
-/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers
- desc_info = "This is a special 'scrubber' pipe, which does not connect to 'normal' pipes. If you want to connect it, use \
- a Universal Adapter pipe."
-
-//Endcaps
-/obj/machinery/atmospherics/pipe/cap
- desc_info = "This is a cosmetic attachment, as pipes currently do not spill their contents into the air."
-
-//T-shaped valves
-/obj/machinery/atmospherics/tvalve
- desc_info = "Click this to toggle the mode. The direction with the green light is where the gas will flow."
-
-//Normal valves
-/obj/machinery/atmospherics/valve
- desc_info = "Click this to turn the valve. If red, the pipes on each end are seperated. Otherwise, they are connected."
-
-//TEG ports
-/obj/machinery/atmospherics/binary/circulator
- desc_info = "This generates electricity, depending on the difference in temperature between each side of the machine. The meter in \
- the center of the machine gives an indicator of how much elecrtricity is being generated."
-
-//Passive gates
-/obj/machinery/atmospherics/binary/passive_gate
- desc_info = "This is a one-way regulator, allowing gas to flow only at a specific pressure and flow rate. If the light is green, it is flowing."
-
-//Normal pumps (high power one inherits from this)
-/obj/machinery/atmospherics/binary/pump
- desc_info = "This moves gas from one pipe to another. A higher target pressure demands more energy. The side with the red end is the output."
-
-//Vents
-/obj/machinery/atmospherics/unary/vent_pump
- desc_info = "This pumps the contents of the attached pipe out into the atmosphere, if needed. It can be controlled from an Air Alarm."
-
-//Freezers
-/obj/machinery/atmospherics/unary/freezer
- desc_info = "Cools down the gas of the pipe it is connected to. It uses massive amounts of electricity while on. \
- It can be upgraded by replacing the capacitors, manipulators, and matter bins. It can be deconstructed by screwing the maintenance panel open with a \
- screwdriver, and then using a crowbar."
-
-//Heaters
-/obj/machinery/atmospherics/unary/heater
- desc_info = "Heats up the gas of the pipe it is connected to. It uses massive amounts of electricity while on. \
- It can be upgraded by replacing the capacitors, manipulators, and matter bins. It can be deconstructed by screwing the maintenance panel open with a \
- screwdriver, and then using a crowbar."
-
-//Gas injectors
-/obj/machinery/atmospherics/unary/outlet_injector
- desc_info = "Outputs the pipe's gas into the atmosphere, similar to an airvent. It can be controlled by a nearby atmospherics computer. \
- A green light on it means it is on."
-
-//Scrubbers
-/obj/machinery/atmospherics/unary/vent_scrubber
- desc_info = "This filters the atmosphere of harmful gas. Filtered gas goes to the pipes connected to it, typically a scrubber pipe. \
- It can be controlled from an Air Alarm. It can be configured to drain all air rapidly with a 'panic syphon' from an air alarm."
-
-//Omni filters
-/obj/machinery/atmospherics/omni/filter
- desc_info = "Filters gas from a custom input direction, with up to two filtered outputs and a 'everything else' \
- output. The filtered output's arrows glow orange."
-
-//Omni mixers
-/obj/machinery/atmospherics/omni/mixer
- desc_info = "Combines gas from custom input and output directions. The percentage of combined gas can be defined."
-
-//Canisters
-/obj/machinery/portable_atmospherics/canister
- desc_info = "The canister can be connected to a connector port with a wrench. Tanks of gas (the kind you can hold in your hand) \
- can be filled by the canister, by using the tank on the canister, increasing the release pressure, then opening the valve until it is full, and then close it. \
- *DO NOT* remove the tank until the valve is closed. A gas analyzer can be used to check the contents of the canister."
-
- desc_antag = "Canisters can be damaged, spilling their contents into the air, or you can just leave the release valve open."
-
-//Portable pumps
-/obj/machinery/portable_atmospherics/powered/pump
- desc_info = "Invaluable for filling air in a room rapidly after a breach repair. The internal gas container can be filled by \
- connecting it to a connector port. The pump can pump the air in (sucking) or out (blowing), at a specific target pressure. The powercell inside can be \
- replaced by using a screwdriver, and then adding a new cell. A tank of gas can also be attached to the air pump."
-
-//Portable scrubbers
-/obj/machinery/portable_atmospherics/powered/scrubber
- desc_info = "Filters the air, placing harmful gases into the internal gas container. The container can be emptied by \
- connecting it to a connector port. The pump can pump the air in (sucking) or out (blowing), at a specific target pressure. The powercell inside can be \
- replaced by using a screwdriver, and then adding a new cell. A tank of gas can also be attached to the scrubber. "
-
-//Meters
-/obj/machinery/meter
- desc_info = "Measures the volume and temperature of the pipe under the meter."
-
-//Pipe dispensers
-/obj/machinery/pipedispenser
- desc_info = "This can be moved by using a wrench. You will need to wrench it again when you want to use it. You can put \
- excess (atmospheric) pipes into the dispenser, as well. The dispenser requires electricity to function."
-
diff --git a/code/modules/examine/descriptions/engineering.dm b/code/modules/examine/descriptions/engineering.dm
deleted file mode 100644
index de2b4a7c1e0..00000000000
--- a/code/modules/examine/descriptions/engineering.dm
+++ /dev/null
@@ -1,35 +0,0 @@
-/obj/machinery/power/supermatter
- desc_info = "When energized by a laser (or something hitting it), it emits radiation and heat. If the heat reaches above 7000 kelvin, it will send an alert and start taking damage. \
- After integrity falls to zero percent, it will delaminate, causing a massive explosion, station-wide radiation spikes, and hallucinations. \
- Supermatter reacts badly to oxygen in the atmosphere. It'll also heat up really quick if it is in vacuum.
\
-
\
- Supermatter cores are extremely dangerous to be close to, and requires protection to handle properly. The protection you will need is:
\
- Optical meson scanners on your eyes, to prevent hallucinations when looking at the supermatter.
\
- Radiation helmet and suit, as the supermatter is radioactive.
\
-
\
- Touching the supermatter will result in *instant death*, with no corpse left behind! You can drag the supermatter, but anything else will kill you. \
- It is advised to obtain a genetic backup before trying to drag it."
-
- desc_antag = "Exposing the supermatter to oxygen or vaccum will cause it to start rapidly heating up. Sabotaging the supermatter and making it explode will \
- cause a period of lag as the explosion is processed by the server, as well as irradiating the entire station and causing hallucinations to happen. \
- Wearing radiation equipment will protect you from most of the delamination effects sans explosion."
-
-/obj/machinery/power/apc
- desc_info = "An APC (Area Power Controller) regulates and supplies backup power for the area they are in. Their power channels are divided \
- out into 'environmental' (Items that manipulate airflow and temperature), 'lighting' (the lights), and 'equipment' (Everything else that consumes power). \
- Power consumption and backup power cell charge can be seen from the interface, further controls (turning a specific channel on, off or automatic, \
- toggling the APC's ability to charge the backup cell, or toggling power for the entire area via master breaker) first requires the interface to be unlocked \
- with an ID with Engineering access or by one of the station's robots or the artificial intelligence."
-
- desc_antag = "This can be emagged to unlock it. It will cause the APC to have a blue error screen. \
- Wires can be pulsed remotely with a signaler attached to it. A powersink will also drain any APCs connected to the same wire the powersink is on."
-
-/obj/item/inflatable
- desc_info = "Inflate by using it in your hand. The inflatable barrier will inflate on your tile. To deflate it, use the 'deflate' verb."
-
-/obj/structure/inflatable
- desc_info = "To remove these safely, use the 'deflate' verb. Hitting these with any objects will probably puncture and break it forever."
-
-/obj/structure/inflatable/door
- desc_info = "Click the door to open or close it. It only stops air while closed.
\
- To remove these safely, use the 'deflate' verb. Hitting these with any objects will probably puncture and break it forever."
diff --git a/code/modules/examine/descriptions/medical.dm b/code/modules/examine/descriptions/medical.dm
deleted file mode 100644
index 3c86b607331..00000000000
--- a/code/modules/examine/descriptions/medical.dm
+++ /dev/null
@@ -1,42 +0,0 @@
-/obj/machinery/bodyscanner
- desc_info = "The advanced scanner detects and reports internal injuries such as bone fractures, internal bleeding, and organ damage. \
- This is useful if you are about to perform surgery.
\
-
\
- Click your target with Grab intent, then click on the scanner to place them in it. Click the red terminal to operate. \
- Right-click the scanner and click 'Eject Occupant' to remove them. You can enter the scanner yourself in a similar way, using the 'Enter Body Scanner' \
- verb."
-
-/obj/machinery/atmospherics/unary/cryo_cell
- desc_info = "The cryogenic chamber, or 'cryo', treats most damage types, most notably genetic damage. It also stabilizes patients \
- in critical condition by placing them in stasis, so they can be treated at a later time.
\
-
\
- In order for it to work, it must be loaded with chemicals, and the temperature of the solution must reach a certain point. Additionally, it \
- requires a supply of pure oxygen, provided by canisters that are attached. The most commonly used chemicals in the chambers are Cryoxadone and \
- Clonexadone. Clonexadone is more effective in treating all damage, including Genetic damage, but is otherwise functionally identical.
\
-
\
- Activating the freezer nearby, and setting it to a temperature setting below 150, is recommended before operation! Further, any clothing the patient \
- is wearing that act as an insulator will reduce its effectiveness, and should be removed.
\
-
\
- Clicking the tube with a beaker full of chemicals in hand will place it in its storage to distribute when it is activated.
\
-
\
- Click your target with Grab intent, then click on the tube, with an empty hand, to place them in it. Click the tube again to open the menu. \
- Press the button on the menu to activate it. Once they have reached 100 health, right-click the cell and click 'Eject Occupant' to remove them. \
- Remember to turn it off, once you've finished, to save power and chemicals!"
-
-/obj/machinery/optable
- desc_info = "Click your target with Grab intent, then click on the table with an empty hand, to place them on it."
-
-/obj/machinery/computer/operating
- desc_info = "This console gives information on the status of the patient on the adjacent operating table, notably their consciousness."
-
-/obj/machinery/sleeper
- desc_info = "The sleeper allows you to clean the blood by means of dialysis, and to administer medication in a controlled environment.
\
-
\
- Click your target with Grab intent, then click on the sleeper to place them in it. Click the green console, with an empty hand, to open the menu. \
- Click 'Start Dialysis' to begin filtering unwanted chemicals from the occupant's blood. The beaker contained will begin to fill with their \
- contaminated blood, and will need to be emptied when full.
\
-
\
- You can also inject common medicines directly into their bloodstream.\
-
\
- Right-click the cell and click 'Eject Occupant' to remove them. You can enter the cell yourself by right clicking and selecting 'Enter Sleeper'. \
- Note that you cannot control the sleeper while inside of it."
diff --git a/code/modules/examine/descriptions/mobs.dm b/code/modules/examine/descriptions/mobs.dm
deleted file mode 100644
index 0c6fa7de062..00000000000
--- a/code/modules/examine/descriptions/mobs.dm
+++ /dev/null
@@ -1,8 +0,0 @@
-/mob/living/silicon/robot/drone
- desc_info = "Drones are player-controlled synthetics which are lawed to maintain the station and not \
- interact with anyone else, except for other drones. They hold a wide array of tools to build, repair, maintain, and clean. \
- They fuction similarly to other synthetics, in that they require recharging regularly, have laws, and are resilient to many hazards, \
- such as fire, radiation, vacuum, and more. Ghosts can join the round as a maintenance drone by using the appropriate verb in the 'ghost' tab. \
- An inactive drone can be rebooted by swiping an ID card on it with engineering or robotics access, and an active drone can be shut down in the same manner."
-
- desc_antag = "An Electromagnetic Sequencer can be used to subvert the drone to your cause."
diff --git a/code/modules/examine/descriptions/paperwork.dm b/code/modules/examine/descriptions/paperwork.dm
deleted file mode 100644
index 8507fbc0ba8..00000000000
--- a/code/modules/examine/descriptions/paperwork.dm
+++ /dev/null
@@ -1,21 +0,0 @@
-/obj/item/pen
- desc_info = {"This is an item for writing down your thoughts, on paper or elsewhere. The following special commands are available:
-Pen and crayon commands
-\[br\] : Creates a linebreak.
-\[center\] - \[/center\] : Centers the text.
-\[h1\] - \[/h1\] : Makes the text a first level heading.
-\[h2\] - \[/h2\] : Makes the text a second level headin.
-\[h3\] - \[/h3\] : Makes the text a third level heading.
-\[b\] - \[/b\] : Makes the text bold.
-\[i\] - \[/i\] : Makes the text italic.
-\[u\] - \[/u\] : Makes the text underlined.
-\[large\] - \[/large\] : Increases the size of the text.
-\[sign\] : Inserts a signature of your name in a foolproof way.
-\[field\] : Inserts an invisible field which lets you start type from there. Useful for forms.
-\[date\] : Inserts today's station date.
-\[time\] : Inserts the current station time.
-Pen exclusive commands
-\[small\] - \[/small\] : Decreases the size of the text.
-\[list\] - \[/list\] : A list.
-\[*\] : A dot used for lists.
-\[hr\] : Adds a horizontal rule."}
diff --git a/code/modules/examine/descriptions/stacks.dm b/code/modules/examine/descriptions/stacks.dm
deleted file mode 100644
index a3f9eb55e47..00000000000
--- a/code/modules/examine/descriptions/stacks.dm
+++ /dev/null
@@ -1,24 +0,0 @@
-/obj/item/stack/rods
- desc_info = "Made from metal sheets. You can build a grille by using it in your hand. \
- Clicking on a floor without any tiles will reinforce the floor. You can make reinforced glass by combining rods and normal glass sheets."
-
-/obj/item/stack/material/glass
- desc_info = "Use in your hand to build a window. Can be upgraded to reinforced glass by adding metal rods, which are made from metal sheets."
-
-/obj/item/stack/material/cyborg/glass
- desc_info = "Use in your hand to build a window. Can be upgraded to reinforced glass by adding metal rods, which are made from metal sheets.
\
- As a synthetic, you can acquire more sheets of glass by recharging."
-
-/obj/item/stack/material/glass/reinforced
- desc_info = "Use in your hand to build a window. Reinforced glass is much stronger against damage."
-
-/obj/item/stack/material/cyborg/glass/reinforced
- desc_info = "Use in your hand to build a window. Reinforced glass is much stronger against damage.
\
- As a synthetic, you can gain more reinforced glass by recharging."
-
-/obj/item/stack/material/cyborg/steel
- desc_info = "Use in your hand to bring up the recipe menu. If you have enough sheets, click on something on the list to build it.
\
- You can replenish your supply of metal as a synthetic by recharging."
-
-/obj/item/stack/material
- desc_info = "Use in your hand to bring up the recipe menu. If you have enough sheets, click on something on the list to build it."
diff --git a/code/modules/examine/descriptions/structures.dm b/code/modules/examine/descriptions/structures.dm
deleted file mode 100644
index cf8421ea95f..00000000000
--- a/code/modules/examine/descriptions/structures.dm
+++ /dev/null
@@ -1,21 +0,0 @@
-/obj/structure/girder
- desc_info = "Use metal sheets on this to build a normal wall. Adding plasteel instead will make a reinforced wall.
\
- A false wall can be made by using a crowbar on this girder, and then adding metal or plasteel.
\
- You can dismantle the grider with a wrench."
-
-/obj/structure/girder/reinforced
- desc_info = "Add another sheet of plasteel to finish."
-
-/obj/structure/grille
- desc_info = "A powered and knotted wire underneath this will cause the grille to shock anyone not wearing insulated gloves.
\
- Wirecutters will turn the grille into metal rods instantly. Grilles are made with metal rods."
-
-/obj/structure/lattice
- desc_info = "Add a metal floor tile to build a floor on top of the lattice.
\
- Lattices can be made by applying metal rods to a space tile."
-
-/obj/structure/bed
- desc_info = "Click and drag yourself (or anyone) to this to buckle in. Click on this with an empty hand to undo the buckles.
\
-
\
- Anyone with restraints, such as handcuffs, will not be able to unbuckle themselves. They must use the Resist button, or verb, to break free of \
- the buckles, instead."
diff --git a/code/modules/examine/descriptions/turfs.dm b/code/modules/examine/descriptions/turfs.dm
deleted file mode 100644
index d20d987a4e7..00000000000
--- a/code/modules/examine/descriptions/turfs.dm
+++ /dev/null
@@ -1,3 +0,0 @@
-/turf/simulated/wall
- desc_info = "You can deconstruct this by welding it, and then wrenching the girder.
\
- You can build a wall by using metal sheets and making a girder, then adding more metal or plasteel."
diff --git a/code/modules/examine/descriptions/weapons.dm b/code/modules/examine/descriptions/weapons.dm
deleted file mode 100644
index 92d02bc10bf..00000000000
--- a/code/modules/examine/descriptions/weapons.dm
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- Note: This file is meant for actual weapons (guns, swords, etc), and not the stupid 'every obj is a weapon, except when it's not' thing.
-*/
-
-//******
-//*Guns*
-//******
-
-//This contains a lot of copypasta but I'm told it's better then a lot of New()s appending the var.
-/obj/item/gun
- desc_info = "This is a gun. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
- then click where you want to fire."
-
-/obj/item/gun/energy
- desc_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
- then click where you want to fire. Most energy weapons can fire through windows harmlessly. To recharge this weapon, use a weapon recharger."
-
-/obj/item/gun/energy/crossbow
- desc_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
- then click where you want to fire."
- desc_antag = "This is a stealthy weapon which fires poisoned bolts at your target. When it hits someone, they will suffer a stun effect, in \
- addition to toxins. The energy crossbow recharges itself slowly, and can be concealed in your pocket or bag."
-
-/obj/item/gun/energy/gun
- desc_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
- then click where you want to fire. Most energy weapons can fire through windows harmlessly. To switch between stun and lethal, click the weapon \
- in your hand. To recharge this weapon, use a weapon recharger."
-
-/obj/item/gun/energy/gun/nuclear
- desc_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
- then click where you want to fire. Most energy weapons can fire through windows harmlessly. To switch between stun and lethal, click the weapon \
- in your hand. Unlike most weapons, this weapon recharges itself."
-
-/obj/item/gun/energy/captain
- desc_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
- then click where you want to fire. Most energy weapons can fire through windows harmlessly. Unlike most weapons, this weapon recharges itself."
-
-/obj/item/gun/energy/sniperrifle
- desc_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
- then click where you want to fire. Most energy weapons can fire through windows harmlessly. To recharge this weapon, use a weapon recharger. \
- To use the scope, use the appropriate verb in the object tab."
-
-/obj/item/gun/projectile
- desc_info = "This is a ballistic weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
- then click where you want to fire. To reload, click the weapon in your hand to unload (if needed), then add the appropiate ammo. The description \
- will tell you what caliber you need."
-
-/obj/item/gun/energy/chameleon
- desc_info = null //The chameleon gun adopts the desc_info of the weapon it is impersonating as, to make meta-ing harder.
- desc_antag = "This gun is actually a hologram projector that can alter its appearance to mimick other weapons. To change the appearance, use \
- the appropriate verb in the chameleon items tab. Any beams or projectiles fired from this gun are actually holograms and useless for actual combat. \
- Projecting these holograms over distance uses a little bit of charge."
-
-/obj/item/gun/energy/chameleon/change(picked in gun_choices) //Making the gun change its help text to match the weapon's help text.
- ..(picked)
- var/obj/O = gun_choices[picked]
- desc_info = initial(O.desc_info)
-
-/obj/item/gun/projectile/shotgun/pump
- desc_info = "This is a ballistic weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
- then click where you want to fire. After firing, you will need to pump the gun, by clicking on the gun in your hand. To reload, load more shotgun \
- shells into the gun."
-
-/obj/item/gun/projectile/heavysniper
- desc_info = "This is a ballistic weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
- then click where you want to fire. The gun's chamber can be opened or closed by using it in your hand. To reload, open the chamber, add a new bullet \
- then close it. To use the scope, use the appropriate verb in the object tab."
-
-//*******
-//*Melee*
-//*******
-
-/obj/item/melee/baton
- desc_info = "The baton needs to be turned on to apply the stunning effect. Use it in your hand to toggle it on or off. If your intent is \
- set to 'harm', you will inflict damage when using it, regardless if it is on or not. Each stun reduces the baton's charge, which can be replenished by \
- putting it inside a weapon recharger."
-
-/obj/item/melee/energy/sword
- desc_antag = "The energy sword is a very strong melee weapon, capable of severing limbs easily, if they are targeted. It can also has a chance \
- to block projectiles and melee attacks while it is on and being held. The sword can be toggled on or off by using it in your hand. While it is off, \
- it can be concealed in your pocket or bag."
-
-/obj/item/melee/cultblade
- desc_antag = "This sword is a powerful weapon, capable of severing limbs easily, if they are targeted. Nonbelivers are unable to use this weapon."
diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm
index 8985780770e..a39b1f7b500 100644
--- a/code/modules/materials/material_sheets.dm
+++ b/code/modules/materials/material_sheets.dm
@@ -1,8 +1,9 @@
// Stacked resources. They use a material datum for a lot of inherited values.
/obj/item/stack/material
- force = 5.0
+ desc_info = "Use in your hand to bring up the recipe menu. If you have enough sheets, click on something on the list to build it."
+ force = 5
throwforce = 5
- w_class = 3.0
+ w_class = ITEMSIZE_NORMAL
throw_speed = 3
throw_range = 3
max_amount = 50
diff --git a/code/modules/materials/material_synth.dm b/code/modules/materials/material_synth.dm
index e1be0187977..cd78506e979 100644
--- a/code/modules/materials/material_synth.dm
+++ b/code/modules/materials/material_synth.dm
@@ -29,10 +29,14 @@
default_type = MATERIAL_WOOD
/obj/item/stack/material/cyborg/glass
+ desc_info = "Use in your hand to build a window. Can be upgraded to reinforced glass by adding metal rods, which are made from metal sheets.
\
+ As a synthetic, you can acquire more sheets of glass by recharging."
icon_state = "sheet-glass"
default_type = MATERIAL_GLASS
/obj/item/stack/material/cyborg/glass/reinforced
+ desc_info = "Use in your hand to build a window. Reinforced glass is much stronger against damage.
\
+ As a synthetic, you can gain more reinforced glass by recharging."
icon_state = "sheet-rglass"
default_type = MATERIAL_GLASS_REINFORCED
charge_costs = list(500, 1000)
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm
index 240c55019e5..189accdc940 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone.dm
@@ -22,6 +22,12 @@
// Look and feel
name = "drone"
real_name = "drone"
+ desc_info = "Drones are player-controlled synthetics which are lawed to maintain the station and not \
+ interact with anyone else, except for other drones. They hold a wide array of tools to build, repair, maintain, and clean. \
+ They fuction similarly to other synthetics, in that they require recharging regularly, have laws, and are resilient to many hazards, \
+ such as fire, radiation, vacuum, and more. Ghosts can join the round as a maintenance drone by using the appropriate verb in the 'ghost' tab. \
+ An inactive drone can be rebooted by swiping an ID card on it with engineering or robotics access, and an active drone can be shut down in the same manner."
+ desc_antag = "An Electromagnetic Sequencer can be used to subvert the drone to your cause."
icon = 'icons/mob/robots.dmi'
icon_state = "repairbot"
braintype = "Robot"
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index bc87177109a..a967ecbf6c6 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -14,13 +14,33 @@
*/
/obj/item/pen
desc = "An instrument for writing or drawing with ink. This one is in black, in a classic, grey casing. Stylish, classic and professional."
+ desc_info = {"This is an item for writing down your thoughts, on paper or elsewhere. The following special commands are available:
+Pen and crayon commands
+\[br\] : Creates a linebreak.
+\[center\] - \[/center\] : Centers the text.
+\[h1\] - \[/h1\] : Makes the text a first level heading.
+\[h2\] - \[/h2\] : Makes the text a second level headin.
+\[h3\] - \[/h3\] : Makes the text a third level heading.
+\[b\] - \[/b\] : Makes the text bold.
+\[i\] - \[/i\] : Makes the text italic.
+\[u\] - \[/u\] : Makes the text underlined.
+\[large\] - \[/large\] : Increases the size of the text.
+\[sign\] : Inserts a signature of your name in a foolproof way.
+\[field\] : Inserts an invisible field which lets you start type from there. Useful for forms.
+\[date\] : Inserts today's station date.
+\[time\] : Inserts the current station time.
+Pen exclusive commands
+\[small\] - \[/small\] : Decreases the size of the text.
+\[list\] - \[/list\] : A list.
+\[*\] : A dot used for lists.
+\[hr\] : Adds a horizontal rule."}
name = "pen"
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "pen"
item_state = "pen"
slot_flags = SLOT_BELT | SLOT_EARS
throwforce = 0
- w_class = 1.0
+ w_class = ITEMSIZE_TINY
throw_speed = 7
throw_range = 15
matter = list(DEFAULT_WALL_MATERIAL = 10)
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index f321d861146..a48914d6d9c 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -72,9 +72,16 @@
/obj/machinery/power/apc
name = "area power controller"
desc = "A control terminal for the area electrical systems."
+ desc_info = "An APC (Area Power Controller) regulates and supplies backup power for the area they are in. Their power channels are divided \
+ out into 'environmental' (Items that manipulate airflow and temperature), 'lighting' (the lights), and 'equipment' (Everything else that consumes power). \
+ Power consumption and backup power cell charge can be seen from the interface, further controls (turning a specific channel on, off or automatic, \
+ toggling the APC's ability to charge the backup cell, or toggling power for the entire area via master breaker) first requires the interface to be unlocked \
+ with an ID with Engineering access or by one of the station's robots or the artificial intelligence."
+ desc_antag = "This can be emagged to unlock it. It will cause the APC to have a blue error screen. \
+ Wires can be pulsed remotely with a signaler attached to it. A powersink will also drain any APCs connected to the same wire the powersink is on."
icon_state = "apc0"
- anchored = 1
+ anchored = TRUE
use_power = 0
req_access = list(access_engine_equip)
gfi_layer_rotation = GFI_ROTATION_DEFDIR
@@ -93,14 +100,14 @@
var/lighting = 3
var/equipment = 3
var/environ = 3
- var/infected = 0
- var/operating = 1
- var/charging = 0
+ var/infected = FALSE
+ var/operating = TRUE
+ var/charging = FALSE
var/chargemode = 1
var/chargecount = 0
- var/locked = 1
- var/coverlocked = 1
- var/aidisabled = 0
+ var/locked = TRUE
+ var/coverlocked = TRUE
+ var/aidisabled = FALSE
var/obj/machinery/power/terminal/terminal = null
var/lastused_light = 0
var/lastused_equip = 0
@@ -110,7 +117,7 @@
var/lastused_total = 0
var/main_status = 0
var/mob/living/silicon/ai/hacker = null // Malfunction var. If set AI hacked the APC and has full control.
- var/wiresexposed = 0
+ var/wiresexposed = FALSE
powernet = 0 // set so that APCs aren't found as powernet nodes //Hackish, Horrible, was like this before I changed it :c
var/debug = 0
var/autoflag= 0 // 0 = off, 1= eqp and lights off, 2 = eqp off, 3 = all on.
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 3e96bad41c4..c464d559359 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -31,6 +31,8 @@
/obj/item/gun
name = "gun"
desc = "It's a gun. It's pretty terrible, though."
+ desc_info = "This is a gun. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
+ then click where you want to fire."
icon = 'icons/obj/guns/pistol.dmi'
var/gun_gui_icons = 'icons/obj/guns/gun_gui.dmi'
icon_state = "pistol"
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index e96ac737a7a..221f53c4a0c 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -1,6 +1,8 @@
/obj/item/gun/energy
name = "energy gun"
desc = "A basic energy-based gun."
+ desc_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
+ then click where you want to fire. Most energy weapons can fire through windows harmlessly. To recharge this weapon, use a weapon recharger."
icon = 'icons/obj/guns/ecarbine.dmi'
icon_state = "energykill100"
item_state = "energykill100"
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index 7457fbb9557..38876469692 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -55,10 +55,12 @@ obj/item/gun/energy/retro
/obj/item/gun/energy/captain
name = "antique laser gun"
icon = 'icons/obj/guns/caplaser.dmi'
+ desc = "This is an antique laser gun. All craftsmanship is of the highest quality. The object menaces with spikes of energy."
+ desc_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
+ then click where you want to fire. Most energy weapons can fire through windows harmlessly. Unlike most weapons, this weapon recharges itself."
icon_state = "caplaser"
item_state = "caplaser"
has_item_ratio = FALSE
- desc = "This is an antique laser gun. All craftsmanship is of the highest quality. The object menaces with spikes of energy."
force = 5
fire_sound = 'sound/weapons/Laser.ogg'
slot_flags = SLOT_BELT
@@ -131,6 +133,9 @@ obj/item/gun/energy/retro
/obj/item/gun/energy/sniperrifle
name = "marksman energy rifle"
desc = "The HI L.W.A.P. is an older design of Hephaestus Industries. A designated marksman rifle capable of shooting powerful ionized beams, this is a weapon to kill from a distance."
+ desc_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
+ then click where you want to fire. Most energy weapons can fire through windows harmlessly. To recharge this weapon, use a weapon recharger. \
+ To use the scope, use the appropriate verb in the object tab."
icon = 'icons/obj/guns/sniper.dmi'
icon_state = "sniper"
item_state = "sniper"
diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm
index 40f80bb34c9..80d80edd16e 100644
--- a/code/modules/projectiles/guns/energy/nuclear.dm
+++ b/code/modules/projectiles/guns/energy/nuclear.dm
@@ -1,6 +1,9 @@
/obj/item/gun/energy/gun
name = "energy carbine"
desc = "A Nanotrasen designed energy-based carbine with two settings: Stun and kill."
+ desc_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
+ then click where you want to fire. Most energy weapons can fire through windows harmlessly. To switch between stun and lethal, click the weapon \
+ in your hand. To recharge this weapon, use a weapon recharger."
desc_fluff = "The NT EC-4 is an energy carbine developed and produced by Nanotrasen. Compact, light and durable, used by security forces and law enforcement for its ability to fire stun or lethal beams, depending on selection. It is widely sold and distributed across the galaxy."
icon = 'icons/obj/guns/ecarbine.dmi'
icon_state = "energystun100"
@@ -35,6 +38,9 @@
/obj/item/gun/energy/gun/nuclear
name = "advanced energy gun"
desc = "An energy gun with an experimental miniaturized reactor."
+ desc_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
+ then click where you want to fire. Most energy weapons can fire through windows harmlessly. To switch between stun and lethal, click the weapon \
+ in your hand. Unlike most weapons, this weapon recharges itself."
icon = 'icons/obj/guns/nucgun.dmi'
icon_state = "nucgun"
item_state = "nucgun"
diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm
index 2a6f4ee350a..bd213a1ee32 100644
--- a/code/modules/projectiles/guns/energy/stun.dm
+++ b/code/modules/projectiles/guns/energy/stun.dm
@@ -35,6 +35,10 @@
/obj/item/gun/energy/crossbow
name = "mini energy-crossbow"
desc = "A weapon favored by many mercenary stealth specialists."
+ desc_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
+ then click where you want to fire."
+ desc_antag = "This is a stealthy weapon which fires poisoned bolts at your target. When it hits someone, they will suffer a stun effect, in \
+ addition to toxins. The energy crossbow recharges itself slowly, and can be concealed in your pocket or bag."
icon = 'icons/obj/guns/crossbow.dmi'
icon_state = "crossbow"
item_state = "crossbow"
diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm
index 2210e507134..bf082585fd7 100644
--- a/code/modules/projectiles/guns/projectile.dm
+++ b/code/modules/projectiles/guns/projectile.dm
@@ -6,6 +6,9 @@
/obj/item/gun/projectile
name = "gun"
desc = "A gun that fires bullets."
+ desc_info = "This is a ballistic weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
+ then click where you want to fire. To reload, click the weapon in your hand to unload (if needed), then add the appropiate ammo. The description \
+ will tell you what caliber you need."
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
w_class = 3
matter = list(DEFAULT_WALL_MATERIAL = 1000)
diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm
index 61327604473..e039f96425d 100644
--- a/code/modules/projectiles/guns/projectile/shotgun.dm
+++ b/code/modules/projectiles/guns/projectile/shotgun.dm
@@ -38,6 +38,9 @@
/obj/item/gun/projectile/shotgun/pump
name = "pump shotgun"
desc = "An ubiquitous unbranded shotgun. Useful for sweeping alleys."
+ desc_info = "This is a ballistic weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
+ then click where you want to fire. After firing, you will need to pump the gun, by clicking on the gun in your hand. To reload, load more shotgun \
+ shells into the gun."
icon = 'icons/obj/guns/shotgun.dmi'
icon_state = "shotgun"
item_state = "shotgun"
diff --git a/code/modules/projectiles/guns/projectile/sniper.dm b/code/modules/projectiles/guns/projectile/sniper.dm
index 85270fe7509..79f5a96e7c4 100644
--- a/code/modules/projectiles/guns/projectile/sniper.dm
+++ b/code/modules/projectiles/guns/projectile/sniper.dm
@@ -1,6 +1,9 @@
/obj/item/gun/projectile/heavysniper
name = "anti-materiel rifle"
desc = "A portable anti-armour rifle fitted with a scope, the PTR-7 is capable of punching through windows and non-reinforced walls with ease. Fires armor piercing 14.5mm shells."
+ desc_info = "This is a ballistic weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \
+ then click where you want to fire. The gun's chamber can be opened or closed by using it in your hand. To reload, open the chamber, add a new bullet \
+ then close it. To use the scope, use the appropriate verb in the object tab."
icon = 'icons/obj/guns/heavysniper.dmi'
icon_state = "heavysniper"
item_state = "heavysniper"
diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm
index c96f2058f1d..36426e55767 100644
--- a/code/modules/supermatter/supermatter.dm
+++ b/code/modules/supermatter/supermatter.dm
@@ -35,10 +35,22 @@
/obj/machinery/power/supermatter
name = "Supermatter"
desc = "A strangely translucent and iridescent crystal. You get headaches just from looking at it."
+ desc_info = "When energized by a laser (or something hitting it), it emits radiation and heat. If the heat reaches above 7000 kelvin, it will send an alert and start taking damage. \
+ After integrity falls to zero percent, it will delaminate, causing a massive explosion, station-wide radiation spikes, and hallucinations. \
+ Supermatter reacts badly to oxygen in the atmosphere. It'll also heat up really quick if it is in vacuum.
\
+
\
+ Supermatter cores are extremely dangerous to be close to, and requires protection to handle properly. The protection you will need is:
\
+ Optical meson scanners on your eyes, to prevent hallucinations when looking at the supermatter.
\
+ Radiation helmet and suit, as the supermatter is radioactive.
\
+
\
+ Touching the supermatter will result in *instant death*, with no corpse left behind! You can drag the supermatter, but anything else will kill you."
+ desc_antag = "Always ahelp before sabotaging the supermatter, as it can potentially ruin the round. Exposing the supermatter to oxygen or vaccuum will cause it to start rapidly heating up. \
+ Sabotaging the supermatter and making it explode will cause a period of lag as the explosion is processed by the server, as well as irradiating the entire station and causing hallucinations to happen. \
+ Wearing radiation equipment will protect you from most of the delamination effects sans explosion."
icon = 'icons/obj/engine.dmi'
icon_state = "darkmatter"
- density = 1
- anchored = 0
+ density = TRUE
+ anchored = FALSE
light_range = 4
light_power = 1
diff --git a/html/changelogs/geeves-description_consolidation.yml b/html/changelogs/geeves-description_consolidation.yml
new file mode 100644
index 00000000000..2d015aa3d23
--- /dev/null
+++ b/html/changelogs/geeves-description_consolidation.yml
@@ -0,0 +1,6 @@
+author: Geeves
+
+delete-after: True
+
+changes:
+ - tweak: "Some objects across the board have had their informative descriptions tweaked a tad, as well as their names converted to full lowercase."
\ No newline at end of file