diff --git a/code/__DEFINES/carbon/languages.dm b/code/__DEFINES/carbon/languages.dm
index d6c334f1e89..7ef14e78d7f 100644
--- a/code/__DEFINES/carbon/languages.dm
+++ b/code/__DEFINES/carbon/languages.dm
@@ -1,62 +1,67 @@
// Languages.
-#define LANGUAGE_GALCOM "Galactic Common"
+#define LANGUAGE_ADHERENT "Vibrant"
+#define LANGUAGE_AKHANI "Akhani"
+#define LANGUAGE_AKULA "Olelo Mano"
+#define LANGUAGE_ALAI "Alai"
+#define LANGUAGE_BIRDSONG "Birdsong"
+#define LANGUAGE_BONES "Echorus"
+#define LANGUAGE_CANILUNZT "Canilunzt"
+#define LANGUAGE_CHANGELING "Changeling"
+#define LANGUAGE_CHIMPANZEE "Chimpanzee"
+#define LANGUAGE_CULT "Cult"
+#define LANGUAGE_DAEMON "Daemon"
#define LANGUAGE_EAL "Encoded Audio Language"
-#define LANGUAGE_SWARMBOT "Ancient Audio Encryption"
-#define LANGUAGE_SOL_COMMON "Sol Common"
-#define LANGUAGE_UNATHI "Sinta'unathi"
+#define LANGUAGE_ECUREUILIAN "Ecureuilian"
+#define LANGUAGE_ENOCHIAN "Enochian"
+#define LANGUAGE_EVENT1 "Occursus"
+#define LANGUAGE_FARWA "Farwanese"
+#define LANGUAGE_GALCOM "Galactic Common"
+#define LANGUAGE_GIBBERISH "Babel"
+#define LANGUAGE_GUTTER "Gutter"
+#define LANGUAGE_MINBUS "Minbus"
+#define LANGUAGE_NEAERA "Neaeranae"
+#define LANGUAGE_OCCULT "Occult"
+#define LANGUAGE_ROOTGLOBAL "Global Rootspeak"
+#define LANGUAGE_ROOTLOCAL "Local Rootspeak"
+#define LANGUAGE_SAGARU "Sagaru"
+#define LANGUAGE_SCHECHI "Schechi"
+#define LANGUAGE_SHADEKIN "Shadekin Empathy"
+#define LANGUAGE_SIGN "Sign Language"
#define LANGUAGE_SIIK "Siik"
#define LANGUAGE_SKRELLIAN "Common Skrellian"
-#define LANGUAGE_TRADEBAND "Tradeband"
-#define LANGUAGE_GUTTER "Gutter"
-#define LANGUAGE_SIGN "Sign Language"
-#define LANGUAGE_SCHECHI "Schechi"
-#define LANGUAGE_ROOTLOCAL "Local Rootspeak"
-#define LANGUAGE_ROOTGLOBAL "Global Rootspeak"
-#define LANGUAGE_CULT "Cult"
-#define LANGUAGE_OCCULT "Occult"
-#define LANGUAGE_CHANGELING "Changeling"
-#define LANGUAGE_VOX "Vox-Pidgin"
-#define LANGUAGE_TERMINUS "Terminus"
#define LANGUAGE_SKRELLIANFAR "High Skrellian"
-#define LANGUAGE_MINBUS "Minbus"
-#define LANGUAGE_EVENT1 "Occursus"
-#define LANGUAGE_AKHANI "Akhani"
-#define LANGUAGE_ALAI "Alai"
-#define LANGUAGE_ZADDAT "Vedahq"
-#define LANGUAGE_GIBBERISH "Babel"
-#define LANGUAGE_VERNAL "Vernal"
-#define LANGUAGE_ADHERENT "Vibrant"
-#define LANGUAGE_AKULA "Olelo Mano"
-
-//Languages from _vr file
#define LANGUAGE_SLAVIC "Pan-Slavic"
-#define LANGUAGE_BIRDSONG "Birdsong"
-#define LANGUAGE_SAGARU "Sagaru"
-#define LANGUAGE_CANILUNZT "Canilunzt"
-#define LANGUAGE_ECUREUILIAN "Ecureuilian"
-#define LANGUAGE_DAEMON "Daemon"
-#define LANGUAGE_ENOCHIAN "Enochian"
-#define LANGUAGE_BONES "Echorus"
-#define LANGUAGE_VESPINAE "Vespinae"
-
-#define LANGUAGE_CHIMPANZEE "Chimpanzee"
-#define LANGUAGE_NEAERA "Neaera"
-#define LANGUAGE_STOK "Stok"
-#define LANGUAGE_FARWA "Farwa"
-
+#define LANGUAGE_SOL_COMMON "Sol Common"
#define LANGUAGE_SQUEAKISH "Squeakish"
-
-#define LANGUAGE_SHADEKIN "Shadekin Empathy"
-
+#define LANGUAGE_STOK "Stokan"
+#define LANGUAGE_SWARMBOT "Ancient Audio Encryption"
+#define LANGUAGE_TERMINUS "Terminus"
+#define LANGUAGE_TRADEBAND "Tradeband"
+#define LANGUAGE_UNATHI "Sinta'unathi"
+#define LANGUAGE_VERNAL "Vernal"
+#define LANGUAGE_VESPINAE "Vespinae"
+#define LANGUAGE_VOX "Vox-Pidgin"
+#define LANGUAGE_XENO "Xenomorph"
+#define LANGUAGE_ZADDAT "Vedahq"
// Language flags.
-#define WHITELISTED (1 << 0) // Language is available if the speaker is whitelisted.
-#define RESTRICTED (1 << 1) // Language can only be acquired by spawning or an admin.
-#define NONVERBAL (1 << 2) // Language has a significant non-verbal component. Speech is garbled without line-of-sight.
-#define SIGNLANG (1 << 3) // Language is completely non-verbal. Speech is displayed through emotes for those who can understand.
-#define HIVEMIND (1 << 4) // Broadcast to all mobs with this language.
-#define NONGLOBAL (1 << 5) // Do not add to general languages list.
-#define INNATE (1 << 6) // All mobs can be assumed to speak and understand this language. (audible emotes)
-#define NO_TALK_MSG (1 << 7) // Do not show the "\The [speaker] talks into \the [radio]" message
-#define NO_STUTTER (1 << 8) // No stuttering, slurring, or other speech problems
-#define ALT_TRANSMIT (1 << 9) // Language is not based on vision or sound (Todo: add this into the say code and use it for the rootspeak languages)
+/// Language is available if the speaker is whitelisted.
+#define WHITELISTED (1 << 0)
+/// Language can only be acquired by spawning or an admin.
+#define RESTRICTED (1 << 1)
+/// Language has a significant non-verbal component. Speech is garbled without line-of-sight.
+#define NONVERBAL (1 << 2)
+/// Language is completely non-verbal. Speech is displayed through emotes for those who can understand.
+#define SIGNLANG (1 << 3)
+/// Broadcast to all mobs with this language.
+#define HIVEMIND (1 << 4)
+/// Do not add to general languages list.
+#define NONGLOBAL (1 << 5)
+/// All mobs can be assumed to speak and understand this language. (audible emotes)
+#define INNATE (1 << 6)
+/// Do not show the "\The [speaker] talks into \the [radio]" message
+#define NO_TALK_MSG (1 << 7)
+/// No stuttering, slurring, or other speech problems.
+#define NO_STUTTER (1 << 8)
+/// Language is not based on vision or sound. (Todo: add this into the say code and use it for the rootspeak languages)
+#define ALT_TRANSMIT (1 << 9)
diff --git a/code/__DEFINES/carbon/organs.dm b/code/__DEFINES/carbon/organs.dm
new file mode 100644
index 00000000000..1377a7897ff
--- /dev/null
+++ b/code/__DEFINES/carbon/organs.dm
@@ -0,0 +1,196 @@
+//! *ALL DEFINES RELATED TO ORGANS GO HERE* !//
+
+/// Global list of organs for future use.
+#define O_ALL list(O_ALL_STANDARD, O_ALL_NONSTANDARD)
+/// Global list of all standard body parts.
+#define BP_ALL list(BP_ALL_STANDARD) //TODO: Currently used for random limb dmg, needs a refactor to make it species-based instead.
+
+
+//* GENERIC INTERNAL ORGANS *//
+#define O_APPENDIX "appendix"
+#define O_BRAIN "brain"
+#define O_EYES "eyes"
+#define O_HEART "heart"
+#define O_INTESTINE "intestine"
+#define O_KIDNEYS "kidneys"
+#define O_LIVER "liver"
+#define O_LUNGS "lungs"
+#define O_SPLEEN "spleen"
+#define O_STOMACH "stomach"
+#define O_VOICE "voicebox"
+///List of all standard organs.
+#define O_ALL_STANDARD list( \
+ O_EYES, \
+ O_HEART, \
+ O_LUNGS, \
+ O_BRAIN, \
+ O_LIVER, \
+ O_KIDNEYS, \
+ O_SPLEEN, \
+ O_APPENDIX, \
+ O_VOICE, \
+ O_STOMACH, \
+ O_INTESTINE)
+
+
+//* AUGMENTS *//
+#define O_AUG_EYES "occular augment"
+#define O_AUG_L_FOREARM "left forearm augment"
+#define O_AUG_L_HAND "left hand augment"
+#define O_AUG_L_UPPERARM "left upperarm augment"
+#define O_AUG_PELVIC "pelvic augment"
+#define O_AUG_R_FOREARM "right forearm augment"
+#define O_AUG_R_HAND "right hand augment"
+#define O_AUG_R_UPPERARM "right upperarm augment"
+#define O_AUG_RIBS "rib augment"
+#define O_AUG_SPINE "spinal augment"
+/// List of all Augment organs.
+#define O_ALL_AUGMENTS list( \
+ O_AUG_EYES, \
+ O_AUG_L_FOREARM, \
+ O_AUG_L_HAND, \
+ O_AUG_L_UPPERARM, \
+ O_AUG_PELVIC, \
+ O_AUG_R_FOREARM, \
+ O_AUG_R_HAND, \
+ O_AUG_R_UPPERARM, \
+ O_AUG_RIBS, \
+ O_AUG_SPINE)
+
+
+//* NON-STANDARD ORGANS *//
+#define O_ACID "acid gland"
+#define O_ANCHOR "anchoring ligament"
+#define O_AREJECT "immune hub"
+#define O_CELL "cell"
+#define O_EGG "egg sac"
+#define O_GBLADDER "gas bladder"
+#define O_HIVE "hive node"
+#define O_MOUTH "mouth"
+#define O_NUTRIENT "nutrient vessel"
+#define O_PLASMA "plasma vessel"
+#define O_POLYP "polyp segment"
+#define O_REGBRUTE "pneumoregenitor"
+#define O_REGBURN "thermoregenitor"
+#define O_REGOXY "respiroregenitor"
+#define O_REGTOX "toxoregenitor"
+#define O_RESIN "resin spinner"
+#define O_RESPONSE "response node"
+#define O_STRATA "neural strata"
+#define O_VENTC "morphoplastic node"
+#define O_VRLINK "virtual node"
+#define O_ORCH "orchestrator"
+#define O_FACT "refactory"
+#define O_FRUIT "fruit gland"
+#define O_HONEYSTOMACH "honey stomach"
+/// List of all non-standard organs.
+#define O_ALL_NONSTANDARD list( \
+ O_ACID, \
+ O_ANCHOR, \
+ O_AREJECT, \
+ O_CELL, \
+ O_EGG, \
+ O_FACT, \
+ O_GBLADDER, \
+ O_HIVE, \
+ O_HONEYSTOMACH, \
+ O_MOUTH, \
+ O_NUTRIENT, \
+ O_ORCH, \
+ O_PLASMA, \
+ O_POLYP, \
+ O_REGBRUTE, \
+ O_REGBURN, \
+ O_REGOXY, \
+ O_REGTOX, \
+ O_RESIN, \
+ O_RESPONSE, \
+ O_STRATA, \
+ O_VENTC, \
+ O_VRLINK)
+
+
+//* FBP ORGANS *//
+#define O_CYCLER "reagent cycler"
+#define O_DIAGNOSTIC "diagnostic controller"
+#define O_HEATSINK "thermal regulator"
+#define O_PUMP "hydraulic hub"
+/// List of all FBP Organs.
+#define O_ALL_FBP list( \
+ O_CYCLER, \
+ O_DIAGNOSTIC, \
+ O_HEATSINK, \
+ O_PUMP)
+
+
+//* GENERIC EXTERAL ORGANS *//
+#define BP_GROIN "groin"
+#define BP_HEAD "head"
+#define BP_L_ARM "l_arm"
+#define BP_L_FOOT "l_foot"
+#define BP_L_HAND "l_hand"
+#define BP_L_LEG "l_leg"
+#define BP_R_ARM "r_arm"
+#define BP_R_FOOT "r_foot"
+#define BP_R_HAND "r_hand"
+#define BP_R_LEG "r_leg"
+#define BP_TORSO "torso"
+/// List of all standard body parts.
+#define BP_ALL_STANDARD list( \
+ BP_GROIN, \
+ BP_HEAD, \
+ BP_L_ARM, \
+ BP_L_FOOT, \
+ BP_L_HAND, \
+ BP_L_LEG, \
+ BP_R_ARM, \
+ BP_R_FOOT, \
+ BP_R_HAND, \
+ BP_R_LEG, \
+ BP_TORSO)
+
+
+//* ADHERENT EXTERNAL ORGANS *//
+#define BP_COOLING_FINS "cooling fins"
+#define BP_FLOAT "floatation disc"
+#define BP_JETS "maneuvering jets"
+/// List of all Adherent body parts.
+#define BP_ALL_ADHERENT list( \
+ BP_COOLING_FINS, \
+ BP_FLOAT, \
+ BP_JETS)
+
+
+//* SYNTH INTERNAL COLORS *//
+#define SYNTH_BLOOD_COLOUR "#030303"
+#define SYNTH_FLESH_COLOUR "#575757"
+
+
+//* FBP BRAIN TYPES *//
+#define FBP_NONE ""
+#define FBP_CYBORG "Cyborg"
+#define FBP_POSI "Positronic"
+#define FBP_DRONE "Drone"
+
+// Similar to above but for borgs.
+// Seperate defines are unfortunately required since borgs display the brain differently for some reason.
+//* BORG BRAIN TYPES *//
+#define BORG_BRAINTYPE_CYBORG "Cyborg"
+#define BORG_BRAINTYPE_POSI "Robot"
+#define BORG_BRAINTYPE_DRONE "Drone"
+#define BORG_BRAINTYPE_AI_SHELL "AI Shell"
+
+
+//* CARBON TASTE SENSITIVITY *// Used in mob/living/carbon/proc/ingest
+#define TASTE_HYPERSENSITIVE 3 //anything below 5%
+#define TASTE_SENSITIVE 2 //anything below 7%
+#define TASTE_NORMAL 1 //anything below 15%
+#define TASTE_DULL 0.5 //anything below 30%
+#define TASTE_NUMB 0.1 //anything below 150%
+
+
+//* ORGAN FLAGS *//
+#define BP_IS_ASSISTED(org) ((org) && ((org).robotic == ORGAN_ASSISTED))
+#define BP_IS_BRITTLE(org) ((org) && ((org).status == ORGAN_BRITTLE))
+#define BP_IS_CRYSTAL(org) ((org) && ((org).robotic == ORGAN_CRYSTAL))
+#define BP_IS_ROBOTIC(org) ((org) && ((org).robotic == ORGAN_ROBOT))
diff --git a/code/__DEFINES/carbon/species.dm b/code/__DEFINES/carbon/species.dm
index e08bf0589d9..2059665e96b 100644
--- a/code/__DEFINES/carbon/species.dm
+++ b/code/__DEFINES/carbon/species.dm
@@ -1,4 +1,82 @@
-// Species flags.
+//! *ALL DEFINES RELATED TO SPECIES GO HERE* !//
+
+//* ALL NAME DEFINES FOR SPECIES *//
+/**
+ * !It is important to note that these are not only used for the name of the species.
+ * !They are also used as ID Tags for various otther things, such as character saves!
+ * -Zandario
+ */
+//* ALL THE AFOREMENTIONED NAME DEFINES *//
+#define SPECIES_ADHERENT "Adherent"
+#define SPECIES_AKULA "Akula"
+#define SPECIES_ALRAUNE "Alraune"
+#define SPECIES_APIDAEN "Apidaen"
+#define SPECIES_AURIL "Auril"
+#define SPECIES_CUSTOM "Custom Species"
+#define SPECIES_DIONA "Diona"
+#define SPECIES_DREMACHIR "Dremachir"
+#define SPECIES_EVENT1 "X Occursus"
+#define SPECIES_EVENT2 "X Anomalous"
+#define SPECIES_EVENT3 "X Unowas"
+#define SPECIES_GOLEM "Golem"
+#define SPECIES_HUMAN "Human"
+#define SPECIES_HUMAN_GRAV "grav-adapted Human"
+#define SPECIES_HUMAN_SPACER "space-adapted Human"
+#define SPECIES_HUMAN_VATBORN "Vatborn"
+#define SPECIES_MONKEY "Monkey"
+#define SPECIES_MONKEY_AKULA "Sobaka"
+#define SPECIES_MONKEY_NEVREAN "Sparra"
+#define SPECIES_MONKEY_SERGAL "Saru"
+#define SPECIES_MONKEY_SKRELL "Neaera"
+#define SPECIES_MONKEY_TAJ "Farwa"
+#define SPECIES_MONKEY_UNATHI "Stok"
+#define SPECIES_MONKEY_VULPKANIN "Wolpin"
+#define SPECIES_NEVREAN "Nevrean"
+#define SPECIES_PLASMAMAN "Phoronoid"
+#define SPECIES_PROMETHEAN "Promethean"
+#define SPECIES_PROTEAN "Protean"
+#define SPECIES_RAPALA "Rapala"
+#define SPECIES_REPLICANT "Replicant"
+#define SPECIES_REPLICANT_ALPHA "Alpha Replicant"
+#define SPECIES_REPLICANT_BETA "Beta Replicant"
+#define SPECIES_SERGAL "Sergal"
+#define SPECIES_SHADEKIN "Shadekin"
+#define SPECIES_SHADEKIN_CREW "Black-Eyed Shadekin"
+#define SPECIES_SHADOW "Shadow"
+#define SPECIES_SKELETON "Skeleton"
+#define SPECIES_SKRELL "Skrell"
+#define SPECIES_TAJ "Tajara"
+#define SPECIES_TESHARI "Teshari"
+#define SPECIES_UNATHI "Unathi"
+#define SPECIES_VASILISSAN "Vasilissan"
+#define SPECIES_VETALA_PALE "Pale Vetalan"
+#define SPECIES_VETALA_RUDDY "Ruddy Vetalan"
+#define SPECIES_VOX "Vox"
+#define SPECIES_VR "Virtual Reality Avatar"
+#define SPECIES_VR_DIONA "Virtual Reality Diona"
+#define SPECIES_VR_HUMAN "Virtual Reality Human"
+#define SPECIES_VR_MONKEY "Virtual Reality Monkey"
+#define SPECIES_VR_SKELETON "Virtual Reality Skeleton"
+#define SPECIES_VR_SKRELL "Virtual Reality Skrell"
+#define SPECIES_VR_TAJ "Virtual Reality Tajara"
+#define SPECIES_VR_TESHARI "Virtual Reality Teshari"
+#define SPECIES_VR_UNATHI "Virtual Reality Unathi"
+#define SPECIES_VR_VOX "Virtual Reality Vox"
+#define SPECIES_VULPKANIN "Vulpkanin"
+#define SPECIES_WEREBEAST "Werebeast"
+#define SPECIES_XENO "Xenomorph"
+#define SPECIES_XENO_DRONE "Xenomorph Drone"
+#define SPECIES_XENO_HUNTER "Xenomorph Hunter"
+#define SPECIES_XENO_QUEEN "Xenomorph Queen"
+#define SPECIES_XENO_SENTINEL "Xenomorph Sentinel"
+#define SPECIES_XENOCHIMERA "Xenochimera"
+#define SPECIES_XENOHYBRID "Xenomorph Hybrid"
+#define SPECIES_ZADDAT "Zaddat"
+#define SPECIES_ZORREN_FLAT "Flatland Zorren"
+#define SPECIES_ZORREN_HIGH "Highlander Zorren"
+
+
+//* SPECIES-RELATED FLAGS *//
/// Can step on broken glass with no ill-effects. Either thick skin (diona), cut resistant (slimes) or incorporeal (shadows)
#define NO_MINOR_CUT (1 << 0)
/// Is a treeperson.
@@ -28,7 +106,7 @@
// unused: 0x8000 - higher than this will overflow
-// Species spawn flags
+//* SPECIES-RELATED SPAWN FLAGS *//
/// Must be whitelisted to play.
#define SPECIES_IS_WHITELISTED (1 << 0)
/// Is not a core/normally playable species. (castes, mutantraces)
@@ -45,7 +123,7 @@
#define SPECIES_WHITELIST_SELECTABLE (1 << 6)
-// Species appearance flags
+//* SPECIES-RELATED APPEARANCE FLAGS *//
/// Skin tone selectable in chargen. (0-255)
#define HAS_SKIN_TONE (1 << 0)
/// Skin colour selectable in chargen. (RGB)
@@ -64,7 +142,7 @@
#define BASE_SKIN_COLOR (1 << 7)
-// Species skin flags
+//* SPECIES-RELATED SKIN FLAGS *//
#define SKIN_NORMAL (1 << 0)
#define SKIN_THREAT (1 << 1)
#define SKIN_CLOAK (1 << 2)
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index 1101f0a44a7..80636a53d8b 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -35,24 +35,32 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define SEE_INVISIBLE_MINIMUM 5
#define INVISIBILITY_MAXIMUM 100
-// Pseudo-Invis, like Ninja, Ling, Etc.
-#define EFFECTIVE_INVIS 50 // Below this, can't be examined, may as well be invisible to the game
+/// Pseudo-Invis, like Ninja, Ling, Etc.
+/// Below this, can't be examined, may as well be invisible to the game
+#define EFFECTIVE_INVIS 50
-// For the client FPS pref and anywhere else
+/// For the client FPS pref and anywhere else
#define MAX_CLIENT_FPS 200
// Some arbitrary defines to be used by self-pruning global lists. (see master_controller)
-#define PROCESS_KILL 26 // Used to trigger removal from a processing list.
-#define MAX_GEAR_COST 20 // Used in chargen for accessory loadout limit.
+/// Used to trigger removal from a processing list.
+#define PROCESS_KILL 26
+/// Used in chargen for accessory loadout limit.
+#define MAX_GEAR_COST 20
+/// Used in chargen for accessory loadout limit on holidays.
#define MAX_GEAR_COST_HOLIDAY_SPAM 30
// Shuttles.
// These define the time taken for the shuttle to get to the space station, and the time before it leaves again.
-#define SHUTTLE_PREPTIME 300 // 5 minutes = 300 seconds - after this time, the shuttle departs centcom and cannot be recalled.
-#define SHUTTLE_LEAVETIME 180 // 3 minutes = 180 seconds - the duration for which the shuttle will wait at the station after arriving.
-#define SHUTTLE_TRANSIT_DURATION 300 // 5 minutes = 300 seconds - how long it takes for the shuttle to get to the station.
-#define SHUTTLE_TRANSIT_DURATION_RETURN 120 // 2 minutes = 120 seconds - for some reason it takes less time to come back, go figure.
+/// 5 minutes = 300 seconds - after this time, the shuttle departs centcom and cannot be recalled.
+#define SHUTTLE_PREPTIME 300
+/// 3 minutes = 180 seconds - the duration for which the shuttle will wait at the station after arriving.
+#define SHUTTLE_LEAVETIME 180
+/// 5 minutes = 300 seconds - how long it takes for the shuttle to get to the station.
+#define SHUTTLE_TRANSIT_DURATION 300
+/// 2 minutes = 120 seconds - for some reason it takes less time to come back, go figure.
+#define SHUTTLE_TRANSIT_DURATION_RETURN 120
// Shuttle moving status.
#define SHUTTLE_IDLE 0
@@ -75,7 +83,8 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
// Shuttle madness!
#define SHUTTLE_CRASHED 3 // Yup that can happen now
-#define BLUE_SHIELDED 2 // Shield from bluespace teleportation (telescience)
+/// Shield from bluespace teleportation (telescience)
+#define BLUE_SHIELDED 2
// Bluespace shelter deploy checks
@@ -99,7 +108,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define EVENT_LEVEL_MODERATE 2
#define EVENT_LEVEL_MAJOR 3
-// General-purpose life speed define for plants.
+/// General-purpose life speed define for plants.
#define HYDRO_SPEED_MULTIPLIER 1
#define ANNOUNCER_NAME "Facility PA"
@@ -112,7 +121,8 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define ECO_MODIFIER 10
// Area flags, possibly more to come
-#define RAD_SHIELDED 1 // Shielded from radiation, clearly
+/// This area is shielded from radiation, clearly.
+#define RAD_SHIELDED 1
// Convoluted setup so defines can be supplied by Bay12 main server compile script.
// Should still work fine for people jamming the icons into their repo.
@@ -129,46 +139,51 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define WALL_CAN_OPEN 1
#define WALL_OPENING 2
-#define DEFAULT_TABLE_MATERIAL "plastic"
-#define DEFAULT_WALL_MATERIAL "steel"
-// TODO - Standarize this, some mats don't have these. - Zandario
-#define MAT_IRON "iron"
-#define MAT_MARBLE "marble"
-#define MAT_STEEL "steel"
-#define MAT_PLASTIC "plastic"
-#define MAT_GLASS "glass"
+// Material Defines
+#define MAT_BANANIUM "bananium"
+#define MAT_CARBON "carbon"
+#define MAT_CHITIN "chitin"
#define MAT_COPPER "copper"
-#define MAT_SILVER "silver"
-#define MAT_GOLD "gold"
-#define MAT_URANIUM "uranium"
-#define MAT_TITANIUM "titanium"
-#define MAT_PHORON "phoron"
#define MAT_DIAMOND "diamond"
-#define MAT_SNOW "snow"
-#define MAT_WOOD "wood"
-#define MAT_LOG "log"
-#define MAT_SIFWOOD "alien wood"
-#define MAT_SIFLOG "alien log"
-#define MAT_HARDWOOD "hardwood"
-#define MAT_HARDLOG "hardwood log"
-#define MAT_STEELHULL "steel hull"
-#define MAT_PLASTEEL "plasteel"
-#define MAT_PLASTEELHULL "plasteel hull"
#define MAT_DURASTEEL "durasteel"
#define MAT_DURASTEELHULL "durasteel hull"
-#define MAT_TITANIUMHULL "titanium hull"
-#define MAT_VERDANTIUM "verdantium"
+#define MAT_GLASS "glass"
+#define MAT_GOLD "gold"
+#define MAT_GRAPHITE "graphite"
+#define MAT_HARDLOG "hardwood log"
+#define MAT_HARDWOOD "hardwood"
+#define MAT_HEMATITE "hematite"
+#define MAT_IRON "iron"
+#define MAT_LEAD "lead"
+#define MAT_LEATHER "leather"
+#define MAT_LOG "log"
+#define MAT_MARBLE "marble"
+#define MAT_METALHYDROGEN "mhydrogen"
#define MAT_MORPHIUM "morphium"
#define MAT_MORPHIUMHULL "morphium hull"
-#define MAT_VALHOLLIDE "valhollide"
-#define MAT_LEAD "lead"
-#define MAT_SUPERMATTER "supermatter"
-#define MAT_METALHYDROGEN "mhydrogen"
#define MAT_OSMIUM "osmium"
-#define MAT_VAUDIUM "vaudium"
-#define MAT_BANANIUM "bananium"
+#define MAT_PHORON "phoron"
+#define MAT_PLASTEEL "plasteel"
+#define MAT_PLASTEELHULL "plasteel hull"
+#define MAT_PLASTIC "plastic"
+#define MAT_PLATINUM "platinum"
+#define MAT_SIFLOG "alien log"
+#define MAT_SIFWOOD "alien wood"
#define MAT_SILENCIUM "silencium"
+#define MAT_SILVER "silver"
+#define MAT_SNOW "snow"
+#define MAT_STEEL "steel"
+#define MAT_STEELHULL "steel hull"
+#define MAT_SUPERMATTER "supermatter"
+#define MAT_TITANIUM "titanium"
+#define MAT_TITANIUMHULL "titanium hull"
+#define MAT_URANIUM "uranium"
+#define MAT_VALHOLLIDE "valhollide"
+#define MAT_VAUDIUM "vaudium"
+#define MAT_VERDANTIUM "verdantium"
+#define MAT_WOOD "wood"
+
#define SHARD_SHARD "shard"
#define SHARD_SHRAPNEL "shrapnel"
@@ -180,23 +195,33 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define MATERIAL_BRITTLE 0x2
#define MATERIAL_PADDING 0x4
-#define TABLE_BRITTLE_MATERIAL_MULTIPLIER 4 // Amount table damage is multiplied by if it is made of a brittle material (e.g. glass)
+/// Amount table damage is multiplied by if it is made of a brittle material (e.g. glass)
+#define TABLE_BRITTLE_MATERIAL_MULTIPLIER 4
#define BOMBCAP_DVSTN_RADIUS (max_explosion_range/4)
#define BOMBCAP_HEAVY_RADIUS (max_explosion_range/2)
#define BOMBCAP_LIGHT_RADIUS max_explosion_range
#define BOMBCAP_FLASH_RADIUS (max_explosion_range*1.5)
- // NTNet module-configuration values. Do not change these. If you need to add another use larger number (5..6..7 etc)
-#define NTNET_SOFTWAREDOWNLOAD 1 // Downloads of software from NTNet
-#define NTNET_PEERTOPEER 2 // P2P transfers of files between devices
-#define NTNET_COMMUNICATION 3 // Communication (messaging)
-#define NTNET_SYSTEMCONTROL 4 // Control of various systems, RCon, air alarm control, etc.
+
+// NTNet module-configuration values. Do not change these. If you need to add another use larger number (5..6..7 etc)
+/// Downloads of software from NTNet
+#define NTNET_SOFTWAREDOWNLOAD 1
+/// P2P transfers of files between devices
+#define NTNET_PEERTOPEER 2
+/// Communication (messaging)
+#define NTNET_COMMUNICATION 3
+/// Control of various systems, RCon, air alarm control, etc.
+#define NTNET_SYSTEMCONTROL 4
// NTNet transfer speeds, used when downloading/uploading a file/program.
-#define NTNETSPEED_LOWSIGNAL 0.25 // GQ/s transfer speed when the device is wirelessly connected and on Low signal
-#define NTNETSPEED_HIGHSIGNAL 0.5 // GQ/s transfer speed when the device is wirelessly connected and on High signal
-#define NTNETSPEED_ETHERNET 1.0 // GQ/s transfer speed when the device is using wired connection
-#define NTNETSPEED_DOS_AMPLIFICATION 5 // Multiplier for Denial of Service program. Resulting load on NTNet relay is this multiplied by NTNETSPEED of the device
+/// GQ/s transfer speed when the device is wirelessly connected and on Low signal
+#define NTNETSPEED_LOWSIGNAL 0.25
+/// GQ/s transfer speed when the device is wirelessly connected and on High signal
+#define NTNETSPEED_HIGHSIGNAL 0.5
+/// GQ/s transfer speed when the device is using wired connection
+#define NTNETSPEED_ETHERNET 1.0
+/// Multiplier for Denial of Service program. Resulting load on NTNet relay is this multiplied by NTNETSPEED of the device
+#define NTNETSPEED_DOS_AMPLIFICATION 5
// Program bitflags
#define PROGRAM_ALL 15
@@ -215,8 +240,10 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
// Special return values from bullet_act(). Positive return values are already used to indicate the blocked level of the projectile.
-#define PROJECTILE_CONTINUE -1 // If the projectile should continue flying after calling bullet_act()
-#define PROJECTILE_FORCE_MISS -2 // If the projectile should treat the attack as a miss (suppresses attack and admin logs) - only applies to mobs.
+/// If the projectile should continue flying after calling bullet_act()
+#define PROJECTILE_CONTINUE -1
+/// If the projectile should treat the attack as a miss (suppresses attack and admin logs) - only applies to mobs.
+#define PROJECTILE_FORCE_MISS -2
// Vending stuff
@@ -238,48 +265,50 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
// Job groups
-#define DEPARTMENT_COMMAND "command"
-#define DEPARTMENT_SECURITY "security"
-#define DEPARTMENT_ENGINEERING "engineering"
-#define DEPARTMENT_MEDICAL "medical"
-#define DEPARTMENT_RESEARCH "research"
-#define DEPARTMENT_CARGO "cargo"
+#define DEPARTMENT_CARGO "cargo"
#define DEPARTMENT_CIVILIAN "civilian"
-#define DEPARTMENT_SYNTHETIC "synthetic"
-#define DEPARTMENT_UNKNOWN "unknown"
+#define DEPARTMENT_COMMAND "command"
+#define DEPARTMENT_ENGINEERING "engineering"
#define DEPARTMENT_EVERYONE "everyone"
-#define DEPARTMENT_PLANET "exploration"
+#define DEPARTMENT_MEDICAL "medical"
#define DEPARTMENT_OFFDUTY "offduty"
-#define DEPARTMENT_TALON "talon" // Leaving this definition in place, can perhaps use it in the future but removing it will require digging into other stuff im not comfortable with -BLoop
+#define DEPARTMENT_PLANET "exploration"
+#define DEPARTMENT_RESEARCH "research"
+#define DEPARTMENT_SECURITY "security"
+#define DEPARTMENT_SYNTHETIC "synthetic"
+#define DEPARTMENT_TALON "talon" // Leaving this definition in place, can perhaps use it in the future but removing it will require digging into other stuff im not comfortable with -BLoop
#define DEPARTMENT_TRADE "trade"
+#define DEPARTMENT_UNKNOWN "unknown"
// vorstation off-duty time
-#define PTO_SECURITY "Security"
-#define PTO_MEDICAL "Medical"
-#define PTO_ENGINEERING "Engineering"
-#define PTO_SCIENCE "Science"
-#define PTO_EXPLORATION "Exploration"
#define PTO_CARGO "Cargo"
#define PTO_CIVILIAN "Civilian"
-#define PTO_CYBORG "Cyborg"
#define PTO_COMMAND "Command"
+#define PTO_CYBORG "Cyborg"
+#define PTO_ENGINEERING "Engineering"
+#define PTO_EXPLORATION "Exploration"
+#define PTO_MEDICAL "Medical"
+#define PTO_SCIENCE "Science"
+#define PTO_SECURITY "Security"
// Canonical spellings of TSCs, so typos never have to happen again due to human error.
-#define TSC_NT "NanoTrasen"
-#define TSC_HEPH "Hephaestus" // Because everyone misspells it
-#define TSC_VM "Vey Med"
-#define TSC_ZH "Zeng-Hu"
-#define TSC_WT "Ward-Takahashi"
#define TSC_BC "Bishop Cybernetics"
-#define TSC_MORPH "Morpheus"
-#define TSC_XION "Xion" // Not really needed but consistancy I guess.
#define TSC_GIL "Gilthari"
+#define TSC_HEPH "Hephaestus" // Because everyone misspells it
+#define TSC_MORPH "Morpheus"
+#define TSC_NT "NanoTrasen"
+#define TSC_VM "Vey Med"
+#define TSC_WT "Ward-Takahashi"
+#define TSC_XION "Xion" // Not really needed but consistancy I guess.
+#define TSC_ZH "Zeng-Hu"
-#define MIDNIGHT_ROLLOVER 864000 //number of deciseconds in a day
+///The number of deciseconds in a day
+#define MIDNIGHT_ROLLOVER 864000
#define WORLD_ICON_SIZE 32 // Needed for the R-UST port
#define PIXEL_MULTIPLIER WORLD_ICON_SIZE/32 //Needed for the R-UST port
-#define MAX_CLIENT_VIEW 34 // Maximum effective value of client.view (According to DM references)
+/// Maximum effective value of client.view (According to DM references)
+#define MAX_CLIENT_VIEW 34
// Maploader bounds indices
#define MAP_MINX 1
@@ -328,22 +357,22 @@ GLOBAL_LIST_EMPTY(##LIST_NAME);\
// 'Normal'ness v v v
// Various types of colorblindness R2R R2G R2B G2R G2G G2B B2R B2G B2B
-#define MATRIX_Monochromia list(0.33, 0.33, 0.33, 0.59, 0.59, 0.59, 0.11, 0.11, 0.11)
-#define MATRIX_Protanopia list(0.57, 0.43, 0, 0.56, 0.44, 0, 0, 0.24, 0.76)
-#define MATRIX_Protanomaly list(0.82, 0.18, 0, 0.33, 0.67, 0, 0, 0.13, 0.88)
-#define MATRIX_Deuteranopia list(0.63, 0.38, 0, 0.70, 0.30, 0, 0, 0.30, 0.70)
-#define MATRIX_Deuteranomaly list(0.80, 0.20, 0, 0.26, 0.74, 0, 0, 0.14, 0.86)
-#define MATRIX_Tritanopia list(0.95, 0.05, 0, 0, 0.43, 0.57, 0, 0.48, 0.53)
-#define MATRIX_Tritanomaly list(0.97, 0.03, 0, 0, 0.73, 0.27, 0, 0.18, 0.82)
-#define MATRIX_Achromatopsia list(0.30, 0.59, 0.11, 0.30, 0.59, 0.11, 0.30, 0.59, 0.11)
#define MATRIX_Achromatomaly list(0.62, 0.32, 0.06, 0.16, 0.78, 0.06, 0.16, 0.32, 0.52)
-#define MATRIX_Vulp_Colorblind list(0.50, 0.40, 0.10, 0.50, 0.40, 0.10, 0, 0.20, 0.80)
+#define MATRIX_Achromatopsia list(0.30, 0.59, 0.11, 0.30, 0.59, 0.11, 0.30, 0.59, 0.11)
+#define MATRIX_Deuteranomaly list(0.80, 0.20, 0, 0.26, 0.74, 0, 0, 0.14, 0.86)
+#define MATRIX_Deuteranopia list(0.63, 0.38, 0, 0.70, 0.30, 0, 0, 0.30, 0.70)
+#define MATRIX_Monochromia list(0.33, 0.33, 0.33, 0.59, 0.59, 0.59, 0.11, 0.11, 0.11)
+#define MATRIX_Protanomaly list(0.82, 0.18, 0, 0.33, 0.67, 0, 0, 0.13, 0.88)
+#define MATRIX_Protanopia list(0.57, 0.43, 0, 0.56, 0.44, 0, 0, 0.24, 0.76)
#define MATRIX_Taj_Colorblind list(0.40, 0.20, 0.40, 0.40, 0.60, 0, 0.20, 0.20, 0.60)
+#define MATRIX_Tritanomaly list(0.97, 0.03, 0, 0, 0.73, 0.27, 0, 0.18, 0.82)
+#define MATRIX_Tritanopia list(0.95, 0.05, 0, 0, 0.43, 0.57, 0, 0.48, 0.53)
+#define MATRIX_Vulp_Colorblind list(0.50, 0.40, 0.10, 0.50, 0.40, 0.10, 0, 0.20, 0.80)
// Tool substitution defines
-#define IS_SCREWDRIVER "screwdriver"
#define IS_CROWBAR "crowbar"
+#define IS_SCREWDRIVER "screwdriver"
#define IS_WIRECUTTER "wirecutter"
#define IS_WRENCH "wrench"
@@ -353,32 +382,40 @@ GLOBAL_LIST_EMPTY(##LIST_NAME);\
#define SECOND_DIAG_STEP 2
// RCD modes. Used on the RCD, and gets passed to an object's rcd_act() when an RCD is used on it, to determine what happens.
-#define RCD_FLOORWALL "Floor / Wall" // Builds plating on space/ground/open tiles. Builds a wall when on floors. Finishes walls when used on girders.
-#define RCD_AIRLOCK "Airlock" // Builds an airlock on the tile if one isn't already there.
-#define RCD_WINDOWGRILLE "Window / Grille" // Builds a full tile window and grille pair on floors.
-#define RCD_DECONSTRUCT "Deconstruction" // Removes various things. Still consumes compressed matter.
+/// Builds plating on space/ground/open tiles. Builds a wall when on floors. Finishes walls when used on girders.
+#define RCD_FLOORWALL "Floor / Wall"
+/// Builds an airlock on the tile if one isn't already there.
+#define RCD_AIRLOCK "Airlock"
+/// Builds a full tile window and grille pair on floors.
+#define RCD_WINDOWGRILLE "Window / Grille"
+/// Removes various things. Still consumes compressed matter.
+#define RCD_DECONSTRUCT "Deconstruction"
-#define RCD_VALUE_MODE "mode"
-#define RCD_VALUE_DELAY "delay"
#define RCD_VALUE_COST "cost"
+#define RCD_VALUE_DELAY "delay"
+#define RCD_VALUE_MODE "mode"
-#define RCD_SHEETS_PER_MATTER_UNIT 4 // Each physical material sheet is worth four matter units.
+/// Each physical material sheet is worth four matter units.
+#define RCD_SHEETS_PER_MATTER_UNIT 4
#define RCD_MAX_CAPACITY 30 * RCD_SHEETS_PER_MATTER_UNIT
// Preference save/load cooldown. This is in deciseconds.
-#define PREF_SAVELOAD_COOLDOWN 2 // Should be sufficiently hard to achieve without a broken mouse or autoclicker while still fulfilling its intended goal.
+/// Should be sufficiently hard to achieve without a broken mouse or autoclicker while still fulfilling its intended goal.
+#define PREF_SAVELOAD_COOLDOWN 2
// Radiation 'levels'. Used for the geiger counter, for visuals and sound. They are in different files so this goes here.
-#define RAD_LEVEL_LOW 0.5 // Around the level at which radiation starts to become harmful
+/// Around the level at which radiation starts to become harmful
+#define RAD_LEVEL_LOW 0.5
#define RAD_LEVEL_MODERATE 5
#define RAD_LEVEL_HIGH 25
#define RAD_LEVEL_VERY_HIGH 75
-#define CLIENT_FROM_VAR(I) (ismob(I) ? I:client : (istype(I, /client) ? I : (istype(I, /datum/mind) ? I:current?:client : null)))
-#define RADIATION_THRESHOLD_CUTOFF 0.1 // Radiation will not affect a tile when below this value.
+/// Radiation will not affect a tile when below this value.
+#define RADIATION_THRESHOLD_CUTOFF 0.1
+#define CLIENT_FROM_VAR(I) (ismob(I) ? I:client : (istype(I, /client) ? I : (istype(I, /datum/mind) ? I:current?:client : null)))
#define PR_ANNOUNCEMENTS_PER_ROUND 5
@@ -392,16 +429,16 @@ GLOBAL_LIST_EMPTY(##LIST_NAME);\
#define SHELLEO_STDOUT 2
#define SHELLEO_STDERR 3
-// Embed chance unset for embed_chance var on /obj/item.
+/// Embed chance unset for embed_chance var on /obj/item.
#define EMBED_CHANCE_UNSET -1337
-// No hitsound define
+/// No hitsound define
#define HITSOUND_UNSET "UNSET"
-// Herm Gender // Snowflake Global that throws a fit
-#define HERM "herm"
+/// Herm Gender
+#define HERM "herm" // Snowflake Global that throws a fit
// For custom species
#define STARTING_SPECIES_POINTS 1
@@ -513,4 +550,5 @@ GLOBAL_LIST_EMPTY(##LIST_NAME);\
"pink" = "lightgrey" \
)
-#define SYNTHETIC_NUTRITION_CHARGE_RATE 20 // amount of cell charge to use per 1 nutrition, given that synthetics are full at 450 nutrition
+/// The amount of cell charge to use per 1 nutrition, given that synthetics are full at 450 nutrition
+#define SYNTHETIC_NUTRITION_CHARGE_RATE 20
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index 22532244d6b..88fae36f96f 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -170,95 +170,15 @@
#define INCAPACITATION_DISABLED (INCAPACITATION_KNOCKDOWN|INCAPACITATION_STUNNED)
#define INCAPACITATION_ALL (~INCAPACITATION_NONE)
-#define MODIFIER_STACK_FORBID 1 // Disallows stacking entirely.
-#define MODIFIER_STACK_EXTEND 2 // Disallows a second instance, but will extend the first instance if possible.
-#define MODIFIER_STACK_ALLOWED 3 // Multiple instances are allowed.
+/// Disallows stacking entirely.
+#define MODIFIER_STACK_FORBID 1
+/// Disallows a second instance, but will extend the first instance if possible.
+#define MODIFIER_STACK_EXTEND 2
+/// Multiple instances are allowed.
+#define MODIFIER_STACK_ALLOWED 3
-#define MODIFIER_GENETIC 1 // Modifiers with this flag will be copied to mobs who get cloned.
-
-// Bodyparts and organs.
-#define O_EYES "eyes"
-#define O_HEART "heart"
-#define O_LUNGS "lungs"
-#define O_BRAIN "brain"
-#define O_LIVER "liver"
-#define O_KIDNEYS "kidneys"
-#define O_APPENDIX "appendix"
-#define O_VOICE "voicebox"
-#define O_SPLEEN "spleen"
-#define O_STOMACH "stomach"
-#define O_INTESTINE "intestine"
-#define O_STANDARD list(O_EYES, O_HEART, O_LUNGS, O_BRAIN, O_LIVER, O_KIDNEYS, O_SPLEEN, O_APPENDIX, O_VOICE, O_STOMACH, O_INTESTINE)
-
-// Augments
-#define O_AUG_EYES "occular augment"
-
-#define O_AUG_L_FOREARM "left forearm augment"
-#define O_AUG_R_FOREARM "right forearm augment"
-#define O_AUG_L_UPPERARM "left upperarm augment"
-#define O_AUG_R_UPPERARM "right upperarm augment"
-#define O_AUG_L_HAND "left hand augment"
-#define O_AUG_R_HAND "right hand augment"
-
-#define O_AUG_RIBS "rib augment"
-#define O_AUG_SPINE "spinal augment"
-#define O_AUG_PELVIC "pelvic augment"
-
-// Non-Standard organs
-#define O_MOUTH "mouth"
-#define O_CELL "cell"
-#define O_PLASMA "plasma vessel"
-#define O_HIVE "hive node"
-#define O_NUTRIENT "nutrient vessel"
-#define O_STRATA "neural strata"
-#define O_RESPONSE "response node"
-#define O_GBLADDER "gas bladder"
-#define O_POLYP "polyp segment"
-#define O_ANCHOR "anchoring ligament"
-#define O_REGBRUTE "pneumoregenitor"
-#define O_REGBURN "thermoregenitor"
-#define O_REGOXY "respiroregenitor"
-#define O_REGTOX "toxoregenitor"
-#define O_ACID "acid gland"
-#define O_EGG "egg sac"
-#define O_RESIN "resin spinner"
-#define O_AREJECT "immune hub"
-#define O_VENTC "morphoplastic node"
-#define O_VRLINK "virtual node"
-#define O_ALL list(O_STANDARD, O_MOUTH, O_CELL, O_PLASMA, O_HIVE, O_NUTRIENT, O_STRATA, O_RESPONSE, O_GBLADDER, O_POLYP, O_ANCHOR, O_REGBRUTE, O_REGBURN, O_REGOXY, O_REGTOX, O_ACID, O_EGG, O_RESIN, O_AREJECT, O_VENTC, O_VRLINK)
-
-// FBP components.
-#define O_PUMP "hydraulic hub"
-#define O_CYCLER "reagent cycler"
-#define O_HEATSINK "thermal regulator"
-#define O_DIAGNOSTIC "diagnostic controller"
-
-
-// External organs, aka limbs
-#define BP_L_FOOT "l_foot"
-#define BP_R_FOOT "r_foot"
-#define BP_L_LEG "l_leg"
-#define BP_R_LEG "r_leg"
-#define BP_L_HAND "l_hand"
-#define BP_R_HAND "r_hand"
-#define BP_L_ARM "l_arm"
-#define BP_R_ARM "r_arm"
-#define BP_HEAD "head"
-#define BP_TORSO "torso"
-#define BP_GROIN "groin"
-#define BP_ALL list(BP_GROIN, BP_TORSO, BP_HEAD, BP_L_ARM, BP_R_ARM, BP_L_HAND, BP_R_HAND, BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG)
-
-#define BP_FLOAT "floatation disc"
-#define BP_JETS "maneuvering jets"
-#define BP_COOLING_FINS "cooling fins"
-
-#define SYNTH_BLOOD_COLOUR "#030303"
-#define SYNTH_FLESH_COLOUR "#575757"
-
-#define BP_IS_BRITTLE(org) ((org) && ((org).status == ORGAN_BRITTLE))
-#define BP_IS_CRYSTAL(org) ((org) && ((org).robotic == ORGAN_CRYSTAL))
-#define BP_IS_ROBOTIC(org) ((org) && ((org).robotic == ORGAN_ROBOT))
-#define BP_IS_ASSISTED(org) ((org) && ((org).robotic == ORGAN_ASSISTED))
+/// Modifiers with this flag will be copied to mobs who get cloned.
+#define MODIFIER_GENETIC 1
#define MOB_PULL_NONE 0
#define MOB_PULL_SMALLER 1
@@ -270,79 +190,6 @@
#define COLORMUT 1
#define SPECIESMUT 2
-//carbon taste sensitivity defines, used in mob/living/carbon/proc/ingest
-#define TASTE_HYPERSENSITIVE 3 //anything below 5%
-#define TASTE_SENSITIVE 2 //anything below 7%
-#define TASTE_NORMAL 1 //anything below 15%
-#define TASTE_DULL 0.5 //anything below 30%
-#define TASTE_NUMB 0.1 //anything below 150%
-
-// If they're in an FBP, what braintype.
-#define FBP_NONE ""
-#define FBP_CYBORG "Cyborg"
-#define FBP_POSI "Positronic"
-#define FBP_DRONE "Drone"
-
-// Similar to above but for borgs.
-// Seperate defines are unfortunately required since borgs display the brain differently for some reason.
-#define BORG_BRAINTYPE_CYBORG "Cyborg"
-#define BORG_BRAINTYPE_POSI "Robot"
-#define BORG_BRAINTYPE_DRONE "Drone"
-#define BORG_BRAINTYPE_AI_SHELL "AI Shell"
-
-// 'Regular' species.
-#define SPECIES_HUMAN "Human"
-#define SPECIES_HUMAN_VATBORN "Vatborn"
-#define SPECIES_HUMAN_GRAV "grav-adapted Human"
-#define SPECIES_HUMAN_SPACER "space-adapted Human"
-#define SPECIES_UNATHI "Unathi"
-#define SPECIES_SKRELL "Skrell"
-#define SPECIES_TESHARI "Teshari"
-#define SPECIES_TAJ "Tajara"
-#define SPECIES_PROMETHEAN "Promethean"
-#define SPECIES_DIONA "Diona"
-#define SPECIES_VOX "Vox"
-#define SPECIES_ZADDAT "Zaddat"
-#define SPECIES_ADHERENT "Adherent"
-
-// Monkey and alien monkeys.
-#define SPECIES_MONKEY "Monkey"
-#define SPECIES_MONKEY_TAJ "Farwa"
-#define SPECIES_MONKEY_SKRELL "Neaera"
-#define SPECIES_MONKEY_UNATHI "Stok"
-
-// Virtual Reality IDs.
-#define SPECIES_VR "Virtual Reality Avatar"
-#define SPECIES_VR_HUMAN "Virtual Reality Human"
-#define SPECIES_VR_UNATHI "Virtual Reality Unathi"
-#define SPECIES_VR_TAJ "Virtual Reality Tajara"
-#define SPECIES_VR_SKRELL "Virtual Reality Skrell"
-#define SPECIES_VR_TESHARI "Virtual Reality Teshari"
-#define SPECIES_VR_DIONA "Virtual Reality Diona"
-#define SPECIES_VR_MONKEY "Virtual Reality Monkey"
-#define SPECIES_VR_SKELETON "Virtual Reality Skeleton"
-#define SPECIES_VR_VOX "Virtual Reality Vox"
-
-// Ayyy IDs.
-#define SPECIES_XENO "Xenomorph"
-#define SPECIES_XENO_DRONE "Xenomorph Drone"
-#define SPECIES_XENO_HUNTER "Xenomorph Hunter"
-#define SPECIES_XENO_SENTINEL "Xenomorph Sentinel"
-#define SPECIES_XENO_QUEEN "Xenomorph Queen"
-
-// Misc species. Mostly unused but might as well be complete.
-#define SPECIES_SHADOW "Shadow"
-#define SPECIES_SKELETON "Skeleton"
-#define SPECIES_GOLEM "Golem"
-#define SPECIES_EVENT1 "X Occursus"
-#define SPECIES_EVENT2 "X Anomalous"
-#define SPECIES_EVENT3 "X Unowas"
-
-// Replicant types. Currently only used for alien pods and events.
-#define SPECIES_REPLICANT "Replicant"
-#define SPECIES_REPLICANT_ALPHA "Alpha Replicant"
-#define SPECIES_REPLICANT_BETA "Beta Replicant"
-
// Used to seperate simple animals by ""intelligence"".
#define SA_PLANT 1
#define SA_ANIMAL 2
@@ -427,44 +274,3 @@
#define EXAMINE_SKIPHANDS 0x0040
#define EXAMINE_SKIPLEGS 0x0080
#define EXAMINE_SKIPFEET 0x0100
-
-//Protean organs
-#define O_ORCH "orchestrator"
-#define O_FACT "refactory"
-
-//Alraune organs
-#define A_FRUIT "fruit gland"
-
-//Apidean organs
-#define H_STOMACH "honey stomach"
-
-//species defines
-#define SPECIES_AKULA "Akula"
-#define SPECIES_ALRAUNE "Alraune"
-#define SPECIES_NEVREAN "Nevrean"
-#define SPECIES_PROTEAN "Protean"
-#define SPECIES_RAPALA "Rapala"
-#define SPECIES_SERGAL "Sergal"
-#define SPECIES_SHADEKIN_CREW "Black-Eyed Shadekin"
-#define SPECIES_VASILISSAN "Vasilissan"
-#define SPECIES_VULPKANIN "Vulpkanin"
-#define SPECIES_XENOCHIMERA "Xenochimera"
-#define SPECIES_XENOHYBRID "Xenomorph Hybrid"
-#define SPECIES_ZORREN_FLAT "Flatland Zorren"
-#define SPECIES_ZORREN_HIGH "Highlander Zorren"
-#define SPECIES_CUSTOM "Custom Species"
-#define SPECIES_PLASMAMAN "Phoronoid"
-#define SPECIES_APIDAEN "Apidaen"
-#define SPECIES_VETALA_RUDDY "Ruddy Vetalan"
-#define SPECIES_VETALA_PALE "Pale Vetalan"
-#define SPECIES_AURIL "Auril"
-#define SPECIES_DREMACHIR "Dremachir"
-//#define SPECIES_ADHERENT "Adherent" //leaving this in in case I need it, delete if not needed - Papalus
-//monkey species
-#define SPECIES_MONKEY_AKULA "Sobaka"
-#define SPECIES_MONKEY_NEVREAN "Sparra"
-#define SPECIES_MONKEY_SERGAL "Saru"
-#define SPECIES_MONKEY_VULPKANIN "Wolpin"
-//event species
-#define SPECIES_WEREBEAST "Werebeast"
-#define SPECIES_SHADEKIN "Shadekin"
diff --git a/code/__DEFINES/spans.dm b/code/__DEFINES/spans.dm
index ebf0634d0f8..639354064e4 100644
--- a/code/__DEFINES/spans.dm
+++ b/code/__DEFINES/spans.dm
@@ -31,6 +31,7 @@
#define SPAN_COLOSSUS(str) ("" + str + "")
#define SPAN_COMMAND_HEADSET(str) ("" + str + "")
#define SPAN_COMRADIO(str) ("" + str + "")
+#define SPAN_CRITICAL(str) ("" + str + "")
#define SPAN_CULT(str) ("" + str + "")
#define SPAN_CULTBOLD(str) ("" + str + "")
#define SPAN_CULTBOLDTALIC(str) ("" + str + "")
@@ -47,17 +48,17 @@
#define SPAN_DRONE(str) ("" + str + "")
#define SPAN_ENGRADIO(str) ("" + str + "")
#define SPAN_EXTREMELYBIG(str) ("" + str + "")
+#define SPAN_GANGRADIO(str) ("" + str + "")
#define SPAN_GHOSTALERT(str) ("" + str + "")
#define SPAN_GREEN(str) ("" + str + "")
#define SPAN_GREENANNOUNCE(str) ("" + str + "")
#define SPAN_GREENTEAMRADIO(str) ("" + str + "")
#define SPAN_GREENTEXT(str) ("" + str + "")
#define SPAN_GREY(str) ("" + str + "")
-#define SPAN_GANGRADIO(str) ("" + str + "")
#define SPAN_HEAR(str) ("" + str + "")
#define SPAN_HIDDEN(str) ("" + str + "")
-#define SPAN_HIEROPHANT(str) ("" + str + "")
#define SPAN_HIEROPHANT_WARNING(str) ("" + str + "")
+#define SPAN_HIEROPHANT(str) ("" + str + "")
#define SPAN_HIGHLIGHT(str) ("" + str + "")
#define SPAN_HIS_GRACE(str) ("" + str + "")
#define SPAN_HOLOPARASITE(str) ("" + str + "")
@@ -110,6 +111,7 @@
#define SPAN_SMALL(str) ("" + str + "")
#define SPAN_SMALLNOTICE(str) ("" + str + "")
#define SPAN_SMALLNOTICEITAL(str) ("" + str + "")
+#define SPAN_SOGHUN(str) ("" + str + "")
#define SPAN_SPIDER(str) ("" + str + "")
#define SPAN_SUICIDE(str) ("" + str + "")
#define SPAN_SUPPRADIO(str) ("" + str + "")
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index 5cb3611a88f..8cad6c2b310 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -1,69 +1,92 @@
-var/list/admins = list() //list of all clients whom are admins
+//? BEHOLD THE LIST OF GLOBAL LISTS ?//
+
+/// List of all clients whom are admins
+var/list/admins = list()
//Since it didn't really belong in any other category, I'm putting this here
//This is for procs to replace all the goddamn 'in world's that are chilling around the code
-var/global/list/player_list = list() //List of all mobs **with clients attached**. Excludes /mob/new_player
-var/global/list/human_mob_list = list() //List of all human mobs and sub-types, including clientless
-var/global/list/silicon_mob_list = list() //List of all silicon mobs, including clientless
-var/global/list/ai_list = list() //List of all AIs, including clientless
-var/global/list/living_mob_list = list() //List of all alive mobs, including clientless. Excludes /mob/new_player
-var/global/list/dead_mob_list = list() //List of all dead mobs, including clientless. Excludes /mob/new_player
-var/global/list/listening_objects = list() //List of all objects which care about receiving messages (communicators, radios, etc)
+/// List of all mobs **with clients attached**. Excludes /mob/new_player
+var/global/list/player_list = list()
+/// List of all human mobs and sub-types, including clientless.
+var/global/list/human_mob_list = list()
+/// List of all silicon mobs, including clientless.
+var/global/list/silicon_mob_list = list()
+/// List of all AIs, including clientless.
+var/global/list/ai_list = list()
+/// List of all alive mobs, including clientless. Excludes /mob/new_player
+var/global/list/living_mob_list = list()
+/// List of all dead mobs, including clientless. Excludes /mob/new_player
+var/global/list/dead_mob_list = list()
+/// List of all objects which care about receiving messages (communicators, radios, etc)
+var/global/list/listening_objects = list()
-var/global/list/cable_list = list() //Index for all cables, so that powernets don't have to look through the entire world all the time
-var/global/list/side_effects = list() //list of all medical sideeffects types by thier names |BS12
-var/global/list/mechas_list = list() //list of all mechs. Used by hostile mobs target tracking.
-var/global/list/joblist = list() //list of all jobstypes, minus borg and AI
+/// Index for all cables, so that powernets don't have to look through the entire world all the time.
+var/global/list/cable_list = list()
+/// List of all medical sideeffects types by thier names.
+var/global/list/side_effects = list()
+/// List of all mechs. Used by hostile mobs target tracking.
+var/global/list/mechas_list = list()
+/// List of all jobstypes, minus borg and AI
+var/global/list/joblist = list()
#define all_genders_define_list list(MALE,FEMALE,PLURAL,NEUTER,HERM)
#define all_genders_text_list list("Male","Female","Plural","Neuter","Herm")
-// Times that players are allowed to respawn ("ckey" = world.time)
+/// Times that players are allowed to respawn ("ckey" = world.time)
GLOBAL_LIST_EMPTY(respawn_timers)
-// Posters
+//* Posters
var/global/list/poster_designs = list()
var/global/list/NT_poster_designs = list()
-// Uplinks
+//* Uplinks
var/list/obj/item/uplink/world_uplinks = list()
-//Preferences stuff
- //Hairstyles
-var/global/list/hair_styles_list = list() //stores /datum/sprite_accessory/hair indexed by name
+//* Preferences stuff *//
+//!Hairstyles
+/// Stores /datum/sprite_accessory/hair indexed by name
+var/global/list/hair_styles_list = list()
var/global/list/hair_styles_male_list = list()
var/global/list/hair_styles_female_list = list()
-var/global/list/facial_hair_styles_list = list() //stores /datum/sprite_accessory/facial_hair indexed by name
+/// Stores /datum/sprite_accessory/facial_hair indexed by name
+var/global/list/facial_hair_styles_list = list()
var/global/list/facial_hair_styles_male_list = list()
var/global/list/facial_hair_styles_female_list = list()
-var/global/list/skin_styles_female_list = list() //unused
-var/global/list/body_marking_styles_list = list() //stores /datum/sprite_accessory/marking indexed by name
- //Underwear
+//!Misc styles
+var/global/list/skin_styles_female_list = list() //unused
+/// Stores /datum/sprite_accessory/marking indexed by name
+var/global/list/body_marking_styles_list = list()
+/// Stores /datum/sprite_accessory/ears indexed by type
+var/global/list/ear_styles_list = list()
+/// Stores /datum/sprite_accessory/tail indexed by type
+var/global/list/tail_styles_list = list()
+/// Stores /datum/sprite_accessory/wing indexed by type
+var/global/list/wing_styles_list = list()
+//!Underwear
var/datum/category_collection/underwear/global_underwear = new()
-
- //Backpacks
+//!Backpacks
var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt", "Messenger Bag", "RIG")
var/global/list/pdachoicelist = list("Default", "Slim", "Old", "Rugged","Minimalist", "Holographic", "Wrist-Bound")
var/global/list/exclude_jobs = list(/datum/job/ai,/datum/job/cyborg)
-// Visual nets
+//* Visual nets
var/list/datum/visualnet/visual_nets = list()
var/datum/visualnet/camera/cameranet = new()
var/datum/visualnet/cult/cultnet = new()
-// Runes
+//* Runes
var/global/list/rune_list = new()
var/global/list/escape_list = list()
var/global/list/endgame_exits = list()
var/global/list/endgame_safespawns = list()
-// Lavaland
+//* Lavaland
var/global/list/lavaland_entry = list()
var/global/list/lavaland_exit = list()
var/global/list/syndicate_access = list(access_maint_tunnels, access_syndicate, access_external_airlocks)
-// Strings which corraspond to bodypart covering flags, useful for outputting what something covers.
+/// Strings which corraspond to bodypart covering flags, useful for outputting what something covers.
var/global/list/string_part_flags = list(
"head" = HEAD,
"face" = FACE,
@@ -76,7 +99,7 @@ var/global/list/string_part_flags = list(
"hands" = HANDS
)
-// Strings which corraspond to slot flags, useful for outputting what slot something is.
+/// Strings which corraspond to slot flags, useful for outputting what slot something is.
var/global/list/string_slot_flags = list(
"back" = SLOT_BACK,
"face" = SLOT_MASK,
@@ -107,13 +130,13 @@ GLOBAL_LIST_EMPTY(mannequins)
//////////////////////////
/proc/make_datum_reference_lists()
- // Keybindings
+ //* Keybindings
init_keybindings()
- // Circuits
+ //* Circuits
initialize_integrated_circuits_list()
- //Recipes
+ //* Recipes
init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes)
var/list/paths
@@ -222,7 +245,56 @@ GLOBAL_LIST_EMPTY(mannequins)
var/datum/poster/P = new T
NT_poster_designs += P
- return 1
+ //Custom Ears
+ paths = typesof(/datum/sprite_accessory/ears) - /datum/sprite_accessory/ears
+ for(var/path in paths)
+ var/obj/item/clothing/head/instance = new path()
+ ear_styles_list[path] = instance
+
+ //Custom Tails
+ paths = typesof(/datum/sprite_accessory/tail) - /datum/sprite_accessory/tail - /datum/sprite_accessory/tail/taur
+ for(var/path in paths)
+ var/datum/sprite_accessory/tail/instance = new path()
+ tail_styles_list[path] = instance
+
+ //Custom Wings
+ paths = typesof(/datum/sprite_accessory/wing) - /datum/sprite_accessory/wing
+ for(var/path in paths)
+ var/datum/sprite_accessory/wing/instance = new path()
+ wing_styles_list[path] = instance
+
+ // Custom species traits
+ paths = typesof(/datum/trait) - /datum/trait
+ for(var/path in paths)
+ var/datum/trait/instance = new path()
+ if(!instance.name)
+ continue //A prototype or something
+ var/cost = instance.cost
+ traits_costs[path] = cost
+ all_traits[path] = instance
+ switch(cost)
+ if(-INFINITY to -0.1)
+ negative_traits[path] = instance
+ if(0)
+ neutral_traits[path] = instance
+ if(0.1 to INFINITY)
+ positive_traits[path] = instance
+
+
+ // Custom species icon bases
+ var/list/blacklisted_icons = list(SPECIES_CUSTOM, SPECIES_PROMETHEAN)
+ var/list/whitelisted_icons = list(SPECIES_VULPKANIN, SPECIES_XENOHYBRID)
+ for(var/species_name in GLOB.playable_species)
+ if(species_name in blacklisted_icons)
+ continue
+ var/datum/species/S = GLOB.all_species[species_name]
+ if(S.spawn_flags & SPECIES_IS_WHITELISTED)
+ continue
+ GLOB.custom_species_bases += species_name
+ for(var/species_name in whitelisted_icons)
+ GLOB.custom_species_bases += species_name
+
+ return 1 // Hooks must return 1
/* // Uncomment to debug chemical reaction list.
/client/verb/debug_chemical_list()
@@ -235,29 +307,30 @@ GLOBAL_LIST_EMPTY(mannequins)
. += " has: [t]\n"
world << .
*/
-//Hexidecimal numbers
+///Hexidecimal numbers
var/global/list/hexNums = list("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F")
+//* Custom Species Lists *//
+GLOBAL_LIST(custom_species_bases)
+/// Species that can be used for a Custom Species icon base
+var/global/list/custom_species_bases = list()
-//VR FILE MERGE
-/**
- * VOREStation global lists
-*/
+//Traits
+/// Negative custom species traits, indexed by path.
+var/global/list/negative_traits = list()
+/// Neutral custom species traits, indexed by path.
+var/global/list/neutral_traits = list()
+/// Positive custom species traits, indexed by path.
+var/global/list/positive_traits = list()
+/// Just path = cost list, saves time in char setup.
+var/global/list/traits_costs = list()
+/// All of 'em at once. (same instances)
+var/global/list/all_traits = list()
-var/global/list/ear_styles_list = list() // Stores /datum/sprite_accessory/ears indexed by type
-var/global/list/tail_styles_list = list() // Stores /datum/sprite_accessory/tail indexed by type
-var/global/list/wing_styles_list = list() // Stores /datum/sprite_accessory/wing indexed by type
-var/global/list/negative_traits = list() // Negative custom species traits, indexed by path
-var/global/list/neutral_traits = list() // Neutral custom species traits, indexed by path
-var/global/list/positive_traits = list() // Positive custom species traits, indexed by path
-var/global/list/traits_costs = list() // Just path = cost list, saves time in char setup
-var/global/list/all_traits = list() // All of 'em at once (same instances)
+/// Suit Sensors global list.
+var/global/list/sensorpreflist = list("Off", "Binary", "Vitals", "Tracking", "No Preference")
-var/global/list/sensorpreflist = list("Off", "Binary", "Vitals", "Tracking", "No Preference") //TFF 5/8/19 - Suit Sensors global list
-
-var/global/list/custom_species_bases = list() // Species that can be used for a Custom Species icon base
-
-//stores numeric player size options indexed by name
+/// Stores numeric player size options indexed by name.
var/global/list/player_sizes_list = list(
"Macro" = RESIZE_HUGE,
"Big" = RESIZE_BIG,
@@ -265,14 +338,14 @@ var/global/list/player_sizes_list = list(
"Small" = RESIZE_SMALL,
"Tiny" = RESIZE_TINY)
-//stores vantag settings indexed by name
+/// Stores vantag settings indexed by name.
var/global/list/vantag_choices_list = list(
VANTAG_NONE = "No Involvement",
VANTAG_VORE = "Be Prey",
VANTAG_KIDNAP = "Be Kidnapped",
VANTAG_KILL = "Be Killed")
-//Blacklist to exclude items from object ingestion. Digestion blacklist located in digest_act_vr.dm
+/// Blacklist to exclude items from object ingestion. Digestion blacklist located in digest_act_vr.dm
GLOBAL_LIST_INIT(item_vore_blacklist, list(
/obj/item/hand_tele,
/obj/item/card/id/gold/captain/spare,
@@ -285,7 +358,7 @@ GLOBAL_LIST_INIT(item_vore_blacklist, list(
/obj/item/disk/nuclear))
// /obj/item/clothing/suit/storage/hooded/wintercoat/roiz)
-//Classic Vore sounds
+///Classic Vore sounds
var/global/list/classic_vore_sounds = list(
"Gulp" = 'sound/vore/gulp.ogg',
"Insert" = 'sound/vore/insert.ogg',
@@ -314,7 +387,7 @@ var/global/list/classic_release_sounds = list(
"None" = null
)
-//Poojy's Fancy Sounds
+///Poojy's Fancy Sounds
var/global/list/fancy_vore_sounds = list(
"Gulp" = 'sound/vore/sunesound/pred/swallow_01.ogg',
"Swallow" = 'sound/vore/sunesound/pred/swallow_02.ogg',
@@ -348,34 +421,34 @@ var/global/list/fancy_release_sounds = list(
)
var/global/list/global_vore_egg_types = list(
- "Unathi" = UNATHI_EGG,
+ SPECIES_UNATHI = UNATHI_EGG,
"Tajaran" = TAJARAN_EGG,
- "Akula" = AKULA_EGG,
- "Skrell" = SKRELL_EGG,
- "Nevrean" = NEVREAN_EGG,
- "Sergal" = SERGAL_EGG,
- "Human" = HUMAN_EGG,
+ SPECIES_AKULA = AKULA_EGG,
+ SPECIES_SKRELL = SKRELL_EGG,
+ SPECIES_NEVREAN = NEVREAN_EGG,
+ SPECIES_SERGAL = SERGAL_EGG,
+ SPECIES_HUMAN = HUMAN_EGG,
"Slime" = SLIME_EGG,
"Egg" = EGG_EGG,
- "Xenochimera" = XENOCHIMERA_EGG,
- "Xenomorph" = XENOMORPH_EGG)
+ SPECIES_XENOCHIMERA = XENOCHIMERA_EGG,
+ SPECIES_XENO = XENOMORPH_EGG)
var/global/list/tf_vore_egg_types = list(
- "Unathi" = /obj/structure/closet/secure_closet/egg/unathi,
- "Tajara" = /obj/structure/closet/secure_closet/egg/tajaran,
- "Akula" = /obj/structure/closet/secure_closet/egg/shark,
- "Skrell" = /obj/structure/closet/secure_closet/egg/skrell,
- "Sergal" = /obj/structure/closet/secure_closet/egg/sergal,
- "Nevrean" = /obj/structure/closet/secure_closet/egg/nevrean,
- "Human" = /obj/structure/closet/secure_closet/egg/human,
+ SPECIES_UNATHI = /obj/structure/closet/secure_closet/egg/unathi,
+ SPECIES_TAJ = /obj/structure/closet/secure_closet/egg/tajaran,
+ SPECIES_AKULA = /obj/structure/closet/secure_closet/egg/shark,
+ SPECIES_SKRELL = /obj/structure/closet/secure_closet/egg/skrell,
+ SPECIES_SERGAL = /obj/structure/closet/secure_closet/egg/sergal,
+ SPECIES_NEVREAN = /obj/structure/closet/secure_closet/egg/nevrean,
+ SPECIES_HUMAN = /obj/structure/closet/secure_closet/egg/human,
"Slime" = /obj/structure/closet/secure_closet/egg/slime,
"Egg" = /obj/structure/closet/secure_closet/egg,
- "Xenochimera" = /obj/structure/closet/secure_closet/egg/scree,
- "Xenomorph" = /obj/structure/closet/secure_closet/egg/xenomorph)
+ SPECIES_XENOCHIMERA = /obj/structure/closet/secure_closet/egg/scree,
+ SPECIES_XENO = /obj/structure/closet/secure_closet/egg/xenomorph)
var/global/list/edible_trash = list(/obj/item/broken_device,
- /obj/item/clothing/accessory/collar, //TFF 10/7/19 - add option to nom collars,
- /obj/item/communicator, //TFF 19/9/19 - add option to nom communicators and commwatches,
+ /obj/item/clothing/accessory/collar,
+ /obj/item/communicator,
/obj/item/clothing/mask,
/obj/item/clothing/glasses,
/obj/item/clothing/gloves,
@@ -650,49 +723,31 @@ var/global/list/contamination_colors = list("green",
"beige",
"pink")
-//For the mechanic of leaving remains. Ones listed below are basically ones that got no bones or leave no trace after death.
+///For the mechanic of leaving remains. Ones listed below are basically ones that got no bones or leave no trace after death.
var/global/list/remainless_species = list(SPECIES_PROMETHEAN,
SPECIES_DIONA,
SPECIES_ALRAUNE,
SPECIES_PROTEAN,
- SPECIES_MONKEY, //Exclude all monkey subtypes, to prevent abuse of it. They aren't,
- SPECIES_MONKEY_TAJ, //set to have remains anyway, but making double sure,
+ SPECIES_MONKEY, //Exclude all monkey subtypes, to prevent abuse of it. They aren't,
+ SPECIES_MONKEY_TAJ, //set to have remains anyway, but making double sure,
SPECIES_MONKEY_SKRELL,
SPECIES_MONKEY_UNATHI,
SPECIES_MONKEY_AKULA,
SPECIES_MONKEY_NEVREAN,
SPECIES_MONKEY_SERGAL,
SPECIES_MONKEY_VULPKANIN,
- SPECIES_XENO, //Same for xenos,
+ SPECIES_XENO, //Same for xenos,
SPECIES_XENO_DRONE,
SPECIES_XENO_HUNTER,
SPECIES_XENO_SENTINEL,
SPECIES_XENO_QUEEN,
SPECIES_SHADOW,
- SPECIES_GOLEM, //Some special species that may or may not be ever used in event too,
- SPECIES_SHADEKIN) //Shadefluffers just poof away
+ SPECIES_GOLEM, //Some special species that may or may not be ever used in event too,
+ SPECIES_SHADEKIN) //Shadefluffers just poof away
/hook/startup/proc/init_vore_datum_ref_lists()
var/paths
- // Custom Ears
- paths = typesof(/datum/sprite_accessory/ears) - /datum/sprite_accessory/ears
- for(var/path in paths)
- var/obj/item/clothing/head/instance = new path()
- ear_styles_list[path] = instance
-
- // Custom Tails
- paths = typesof(/datum/sprite_accessory/tail) - /datum/sprite_accessory/tail - /datum/sprite_accessory/tail/taur
- for(var/path in paths)
- var/datum/sprite_accessory/tail/instance = new path()
- tail_styles_list[path] = instance
-
- // Custom Wings
- paths = typesof(/datum/sprite_accessory/wing) - /datum/sprite_accessory/wing
- for(var/path in paths)
- var/datum/sprite_accessory/wing/instance = new path()
- wing_styles_list[path] = instance
-
// Custom species traits
paths = typesof(/datum/trait) - /datum/trait
for(var/path in paths)
@@ -710,16 +765,6 @@ var/global/list/remainless_species = list(SPECIES_PROMETHEAN,
if(0.1 to INFINITY)
positive_traits[path] = instance
- // Custom species icon bases
- var/list/blacklisted_icons = list(SPECIES_CUSTOM,SPECIES_PROMETHEAN) //Just ones that won't work well.
- for(var/species_name in GLOB.playable_species)
- if(species_name in blacklisted_icons)
- continue
- var/datum/species/S = GLOB.all_species[species_name]
- if(S.spawn_flags & SPECIES_IS_WHITELISTED)
- continue
- custom_species_bases += species_name
-
// Weaver recipe stuff
paths = subtypesof(/datum/weaver_recipe/structure)
for(var/path in paths)
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index d1adde2fb8f..25a62faec3a 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -1506,32 +1506,32 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
if (NOT_FLAG(USE_ALLOW_NON_ADJACENT) && !Adjacent(user))
if (show_messages)
- to_chat(user, span("notice","You're too far away from [src] to do that."))
+ to_chat(user, SPAN_NOTICE("You're too far away from [src] to do that."))
return USE_FAIL_NON_ADJACENT
if (NOT_FLAG(USE_ALLOW_DEAD) && user.stat == DEAD)
if (show_messages)
- to_chat(user, span("notice","You can't do that when you're dead."))
+ to_chat(user, SPAN_NOTICE("You can't do that when you're dead."))
return USE_FAIL_DEAD
if (NOT_FLAG(USE_ALLOW_INCAPACITATED) && (user.incapacitated()))
if (show_messages)
- to_chat(user, span("notice","You cannot do that in your current state."))
+ to_chat(user, SPAN_NOTICE("You cannot do that in your current state."))
return USE_FAIL_INCAPACITATED
if (NOT_FLAG(USE_ALLOW_NON_ADV_TOOL_USR) && !user.IsAdvancedToolUser())
if (show_messages)
- to_chat(user, span("notice","You don't know how to operate [src]."))
+ to_chat(user, SPAN_NOTICE("You don't know how to operate [src]."))
return USE_FAIL_NON_ADV_TOOL_USR
if (HAS_FLAG(USE_DISALLOW_SILICONS) && issilicon(user))
if (show_messages)
- to_chat(user, span("notice","You need hands for that."))
+ to_chat(user, SPAN_NOTICE("You need hands for that."))
return USE_FAIL_IS_SILICON
if (HAS_FLAG(USE_FORCE_SRC_IN_USER) && !(src in user))
if (show_messages)
- to_chat(user, span("notice","You need to be holding [src] to do that."))
+ to_chat(user, SPAN_NOTICE("You need to be holding [src] to do that."))
return USE_FAIL_NOT_IN_USER
#undef NOT_FLAG
diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm
index 7297ee133b2..9718414262e 100644
--- a/code/_globalvars/lists/mapping.dm
+++ b/code/_globalvars/lists/mapping.dm
@@ -39,17 +39,17 @@ GLOBAL_LIST_EMPTY_TYPED(areas_by_type, /area)
GLOBAL_LIST_EMPTY(landmarks_list)
GLOBAL_LIST_INIT(ore_types, list(
- "hematite" = /obj/item/ore/iron,
- "uranium" = /obj/item/ore/uranium,
- "gold" = /obj/item/ore/gold,
- "silver" = /obj/item/ore/silver,
- "diamond" = /obj/item/ore/diamond,
- "phoron" = /obj/item/ore/phoron,
- "osmium" = /obj/item/ore/osmium,
+ MAT_HEMATITE = /obj/item/ore/iron,
+ MAT_URANIUM = /obj/item/ore/uranium,
+ MAT_GOLD = /obj/item/ore/gold,
+ MAT_SILVER = /obj/item/ore/silver,
+ MAT_DIAMOND = /obj/item/ore/diamond,
+ MAT_PHORON = /obj/item/ore/phoron,
+ MAT_OSMIUM = /obj/item/ore/osmium,
"hydrogen" = /obj/item/ore/hydrogen,
"silicates" = /obj/item/ore/glass,
- "carbon" = /obj/item/ore/coal,
- "verdantium" = /obj/item/ore/verdantium,
- "marble" = /obj/item/ore/marble,
- "lead" = /obj/item/ore/lead
+ MAT_CARBON = /obj/item/ore/coal,
+ MAT_VERDANTIUM = /obj/item/ore/verdantium,
+ MAT_MARBLE = /obj/item/ore/marble,
+ MAT_LEAD = /obj/item/ore/lead
))
diff --git a/code/_macros.dm b/code/_macros.dm
index 22f6a412ecb..fa458fc3e33 100644
--- a/code/_macros.dm
+++ b/code/_macros.dm
@@ -1,6 +1,3 @@
-
-#define span(class, text) ("[text]")
-
#define get_turf(A) get_step(A,0)
#define get_x(A) (get_step(A, 0)?.x || 0)
@@ -27,5 +24,3 @@
#define random_id(key,min_id,max_id) uniqueness_repository.Generate(/datum/uniqueness_generator/id_random, key, min_id, max_id)
#define ARGS_DEBUG log_debug("[__FILE__] - [__LINE__]") ; for(var/arg in args) { log_debug("\t[log_info_line(arg)]") }
-
-//thank you Kevin for not running checks again, now I have to update one file with a comment - Papalus
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 4fdcdda9f2a..a4f7d7a896f 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -408,7 +408,7 @@
//Used for new human mobs created by cloning/goleming/etc.
/mob/living/carbon/human/proc/set_cloned_appearance()
f_style = "Shaved"
- if(dna.species == "Human") //no more xenos losing ears/tentacles
+ if(dna.species == SPECIES_HUMAN) //no more xenos losing ears/tentacles
h_style = pick("Bedhead", "Bedhead 2", "Bedhead 3")
all_underwear.Cut()
regenerate_icons()
diff --git a/code/controllers/subsystem/job/jobs.dm b/code/controllers/subsystem/job/jobs.dm
index c7e75186766..c693da9310d 100644
--- a/code/controllers/subsystem/job/jobs.dm
+++ b/code/controllers/subsystem/job/jobs.dm
@@ -22,7 +22,7 @@ SUBSYSTEM_DEF(job)
occupations = list()
var/list/all_jobs = subtypesof(/datum/job)
if(!all_jobs.len)
- to_chat(world, span("warning", "Error setting up jobs, no job datums found"))
+ to_chat(world, SPAN_WARNING( "Error setting up jobs, no job datums found"))
return FALSE
for(var/J in all_jobs)
diff --git a/code/controllers/subsystem/supply.dm b/code/controllers/subsystem/supply.dm
index 6b47d06c71c..aa3c82a8bba 100644
--- a/code/controllers/subsystem/supply.dm
+++ b/code/controllers/subsystem/supply.dm
@@ -19,11 +19,11 @@ SUBSYSTEM_DEF(supply)
var/movetime = 1200
var/datum/shuttle/autodock/ferry/supply/shuttle
var/list/material_points_conversion = list( // Any materials not named in this list are worth 0 points
- "phoron" = 5,
- "platinum" = 5,
- "gold" = 2, // CIT CHANGE: Gold is now worth 2 cargo points per sheet
- "silver" = 2, // CIT CHANGE: Silver is now worth 2 cargo points per sheet
- "uranium" = 1 // CIT CHANGE: Uranium is now worth 1 cargo point per sheet
+ MAT_PHORON = 5,
+ MAT_PLATINUM = 5,
+ MAT_GOLD = 2, // CIT CHANGE: Gold is now worth 2 cargo points per sheet
+ MAT_SILVER = 2, // CIT CHANGE: Silver is now worth 2 cargo points per sheet
+ MAT_URANIUM = 1 // CIT CHANGE: Uranium is now worth 1 cargo point per sheet
)
// TODO - Refactor to use the Supply Subsystem (SSsupply)
diff --git a/code/datums/ghost_query.dm b/code/datums/ghost_query.dm
index d068e27de27..ec5326f5d08 100644
--- a/code/datums/ghost_query.dm
+++ b/code/datums/ghost_query.dm
@@ -64,7 +64,7 @@
// Normal things.
/datum/ghost_query/promethean
- role_name = "Promethean"
+ role_name = SPECIES_PROMETHEAN
question = "Someone is requesting a soul for a promethean. Would you like to play as one?"
query_sound = 'sound/effects/slime_squish.ogg'
be_special_flag = BE_ALIEN
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 755b433e478..806d424498e 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -116,7 +116,7 @@
force = 5.0
throwforce = 7.0
w_class = ITEMSIZE_NORMAL
- matter = list(DEFAULT_WALL_MATERIAL = 50)
+ matter = list(MAT_STEEL = 50)
attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed")
/obj/item/cane/concealed
@@ -330,7 +330,7 @@
w_class = ITEMSIZE_SMALL
throw_speed = 4
throw_range = 20
- matter = list(DEFAULT_WALL_MATERIAL = 100)
+ matter = list(MAT_STEEL = 100)
origin_tech = list(TECH_MAGNET = 1)
/obj/item/staff
@@ -391,7 +391,7 @@
icon_state = "power_mod"
item_state = "std_mod"
desc = "Heavy-duty switching circuits for power control."
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/module/power_control/attackby(var/obj/item/W as obj, var/mob/user as mob)
if (istype(W, /obj/item/multitool))
@@ -558,14 +558,14 @@
desc = "Used in the construction of computers and other devices with a interactive console."
icon_state = "screen"
origin_tech = list(TECH_MATERIAL = 1)
- matter = list("glass" = 200)
+ matter = list(MAT_GLASS = 200)
/obj/item/stock_parts/capacitor
name = "capacitor"
desc = "A basic capacitor used in the construction of a variety of devices."
icon_state = "capacitor"
origin_tech = list(TECH_POWER = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
var/charge = 0
var/max_charge = 1000
@@ -590,28 +590,28 @@
desc = "A compact, high resolution scanning module used in the construction of certain devices."
icon_state = "scan_module"
origin_tech = list(TECH_MAGNET = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 20)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 20)
/obj/item/stock_parts/manipulator
name = "micro-manipulator"
desc = "A tiny little manipulator used in the construction of certain devices."
icon_state = "micro_mani"
origin_tech = list(TECH_MATERIAL = 1, TECH_DATA = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 30)
+ matter = list(MAT_STEEL = 30)
/obj/item/stock_parts/micro_laser
name = "micro-laser"
desc = "A tiny laser used in certain devices."
icon_state = "micro_laser"
origin_tech = list(TECH_MAGNET = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 10,"glass" = 20)
+ matter = list(MAT_STEEL = 10, MAT_GLASS = 20)
/obj/item/stock_parts/matter_bin
name = "matter bin"
desc = "A container for hold compressed matter awaiting re-construction."
icon_state = "matter_bin"
origin_tech = list(TECH_MATERIAL = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 80)
+ matter = list(MAT_STEEL = 80)
//Rank 2
@@ -621,7 +621,7 @@
icon_state = "capacitor_adv"
origin_tech = list(TECH_POWER = 3)
rating = 2
- matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/stock_parts/scanning_module/adv
name = "advanced scanning module"
@@ -629,7 +629,7 @@
icon_state = "scan_module_adv"
origin_tech = list(TECH_MAGNET = 3)
rating = 2
- matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 20)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 20)
/obj/item/stock_parts/manipulator/nano
name = "nano-manipulator"
@@ -637,7 +637,7 @@
icon_state = "nano_mani"
origin_tech = list(TECH_MATERIAL = 3, TECH_DATA = 2)
rating = 2
- matter = list(DEFAULT_WALL_MATERIAL = 30)
+ matter = list(MAT_STEEL = 30)
/obj/item/stock_parts/micro_laser/high
name = "high-power micro-laser"
@@ -645,7 +645,7 @@
icon_state = "high_micro_laser"
origin_tech = list(TECH_MAGNET = 3)
rating = 2
- matter = list(DEFAULT_WALL_MATERIAL = 10,"glass" = 20)
+ matter = list(MAT_STEEL = 10, MAT_GLASS = 20)
/obj/item/stock_parts/matter_bin/adv
name = "advanced matter bin"
@@ -653,7 +653,7 @@
icon_state = "advanced_matter_bin"
origin_tech = list(TECH_MATERIAL = 3)
rating = 2
- matter = list(DEFAULT_WALL_MATERIAL = 80)
+ matter = list(MAT_STEEL = 80)
//Rating 3
@@ -663,7 +663,7 @@
icon_state = "capacitor_super"
origin_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4)
rating = 3
- matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/stock_parts/scanning_module/phasic
name = "phasic scanning module"
@@ -671,7 +671,7 @@
icon_state = "scan_module_phasic"
origin_tech = list(TECH_MAGNET = 5)
rating = 3
- matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 20)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 20)
/obj/item/stock_parts/manipulator/pico
name = "pico-manipulator"
@@ -679,7 +679,7 @@
icon_state = "pico_mani"
origin_tech = list(TECH_MATERIAL = 5, TECH_DATA = 2)
rating = 3
- matter = list(DEFAULT_WALL_MATERIAL = 30)
+ matter = list(MAT_STEEL = 30)
/obj/item/stock_parts/micro_laser/ultra
name = "ultra-high-power micro-laser"
@@ -687,7 +687,7 @@
desc = "A tiny laser used in certain devices."
origin_tech = list(TECH_MAGNET = 5)
rating = 3
- matter = list(DEFAULT_WALL_MATERIAL = 10,"glass" = 20)
+ matter = list(MAT_STEEL = 10, MAT_GLASS = 20)
/obj/item/stock_parts/matter_bin/super
name = "super matter bin"
@@ -695,7 +695,7 @@
icon_state = "super_matter_bin"
origin_tech = list(TECH_MATERIAL = 5)
rating = 3
- matter = list(DEFAULT_WALL_MATERIAL = 80)
+ matter = list(MAT_STEEL = 80)
// Rating 4 - Anomaly
@@ -705,7 +705,7 @@
icon_state = "capacitor_hyper"
origin_tech = list(TECH_POWER = 6, TECH_MATERIAL = 5, TECH_BLUESPACE = 1, TECH_ARCANE = 1)
rating = 4
- matter = list(DEFAULT_WALL_MATERIAL = 80, MAT_GLASS = 40)
+ matter = list(MAT_STEEL = 80, MAT_GLASS = 40)
/obj/item/stock_parts/scanning_module/hyper
name = "quantum scanning module"
@@ -713,7 +713,7 @@
icon_state = "scan_module_hyper"
origin_tech = list(TECH_MAGNET = 6, TECH_BLUESPACE = 1, TECH_ARCANE = 1)
rating = 4
- matter = list(DEFAULT_WALL_MATERIAL = 100,"glass" = 40)
+ matter = list(MAT_STEEL = 100, MAT_GLASS = 40)
/obj/item/stock_parts/manipulator/hyper
name = "planck-manipulator"
@@ -721,7 +721,7 @@
icon_state = "hyper_mani"
origin_tech = list(TECH_MATERIAL = 6, TECH_DATA = 3, TECH_ARCANE = 1)
rating = 4
- matter = list(DEFAULT_WALL_MATERIAL = 30)
+ matter = list(MAT_STEEL = 30)
/obj/item/stock_parts/micro_laser/hyper
name = "hyper-power micro-laser"
@@ -729,7 +729,7 @@
desc = "A tiny laser used in certain devices."
origin_tech = list(TECH_MAGNET = 6, TECH_ARCANE = 1)
rating = 4
- matter = list(DEFAULT_WALL_MATERIAL = 30, MAT_GLASS = 40)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 40)
/obj/item/stock_parts/matter_bin/hyper
name = "hyper matter bin"
@@ -737,7 +737,7 @@
icon_state = "hyper_matter_bin"
origin_tech = list(TECH_MATERIAL = 6, TECH_ARCANE = 1)
rating = 4
- matter = list(DEFAULT_WALL_MATERIAL = 100)
+ matter = list(MAT_STEEL = 100)
// Rating 5 - Precursor
@@ -747,7 +747,7 @@
icon_state = "capacitor_omni"
origin_tech = list(TECH_POWER = 7, TECH_MATERIAL = 6, TECH_BLUESPACE = 3, TECH_PRECURSOR = 1)
rating = 5
- matter = list(DEFAULT_WALL_MATERIAL = 80, MAT_GLASS = 40)
+ matter = list(MAT_STEEL = 80, MAT_GLASS = 40)
/obj/item/stock_parts/scanning_module/omni
name = "omni-scanning module"
@@ -755,7 +755,7 @@
icon_state = "scan_module_omni"
origin_tech = list(TECH_MAGNET = 7, TECH_BLUESPACE = 3, TECH_PRECURSOR = 1)
rating = 5
- matter = list(DEFAULT_WALL_MATERIAL = 100,"glass" = 40)
+ matter = list(MAT_STEEL = 100, MAT_GLASS = 40)
/obj/item/stock_parts/manipulator/omni
name = "omni-manipulator"
@@ -763,7 +763,7 @@
icon_state = "omni_mani"
origin_tech = list(TECH_MATERIAL = 7, TECH_DATA = 4, TECH_PRECURSOR = 1)
rating = 5
- matter = list(DEFAULT_WALL_MATERIAL = 30)
+ matter = list(MAT_STEEL = 30)
/obj/item/stock_parts/micro_laser/omni
name = "omni-power micro-laser"
@@ -771,7 +771,7 @@
desc = "A strange laser used in certain devices."
origin_tech = list(TECH_MAGNET = 7, TECH_PRECURSOR = 1)
rating = 5
- matter = list(DEFAULT_WALL_MATERIAL = 30, MAT_GLASS = 40)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 40)
/obj/item/stock_parts/matter_bin/omni
name = "omni-matter bin"
@@ -779,7 +779,7 @@
icon_state = "omni_matter_bin"
origin_tech = list(TECH_MATERIAL = 7, TECH_PRECURSOR = 1)
rating = 5
- matter = list(DEFAULT_WALL_MATERIAL = 100)
+ matter = list(MAT_STEEL = 100)
// Subspace stock parts
@@ -789,49 +789,49 @@
icon_state = "subspace_ansible"
desc = "A compact module capable of sensing extradimensional activity."
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 5 ,TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 10)
/obj/item/stock_parts/subspace/sub_filter
name = "hyperwave filter"
icon_state = "hyperwave_filter"
desc = "A tiny device capable of filtering and converting super-intense radiowaves."
origin_tech = list(TECH_DATA = 4, TECH_MAGNET = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 10)
/obj/item/stock_parts/subspace/amplifier
name = "subspace amplifier"
icon_state = "subspace_amplifier"
desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 10)
/obj/item/stock_parts/subspace/treatment
name = "subspace treatment disk"
icon_state = "treatment_disk"
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 2, TECH_MATERIAL = 5, TECH_BLUESPACE = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 10)
/obj/item/stock_parts/subspace/analyzer
name = "subspace wavelength analyzer"
icon_state = "wavelength_analyzer"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 10)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 10)
/obj/item/stock_parts/subspace/crystal
name = "ansible crystal"
icon_state = "ansible_crystal"
desc = "A crystal made from pure glass used to transmit laser databursts to subspace."
origin_tech = list(TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
- matter = list("glass" = 50)
+ matter = list(MAT_GLASS = 50)
/obj/item/stock_parts/subspace/transmitter
name = "subspace transmitter"
icon_state = "subspace_transmitter"
desc = "A large piece of equipment used to open a window into the subspace dimension."
origin_tech = list(TECH_MAGNET = 5, TECH_MATERIAL = 5, TECH_BLUESPACE = 3)
- matter = list(DEFAULT_WALL_MATERIAL = 50)
+ matter = list(MAT_STEEL = 50)
/obj/item/ectoplasm
name = "ectoplasm"
@@ -855,7 +855,7 @@
icon = 'icons/obj/stock_parts.dmi'
icon_state = "gear"
origin_tech = list(TECH_ENGINEERING = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 50)
+ matter = list(MAT_STEEL = 50)
/obj/item/stock_parts/motor
name = "motor"
@@ -863,7 +863,7 @@
icon = 'icons/obj/stock_parts.dmi'
icon_state = "motor"
origin_tech = list(TECH_ENGINEERING = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 60, "glass" = 10)
+ matter = list(MAT_STEEL = 60, MAT_GLASS = 10)
/obj/item/stock_parts/spring
name = "spring"
@@ -871,4 +871,4 @@
icon = 'icons/obj/stock_parts.dmi'
icon_state = "spring"
origin_tech = list(TECH_ENGINEERING = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 40)
+ matter = list(MAT_STEEL = 40)
diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm
index 868003195a8..0e66f1cda30 100644
--- a/code/game/dna/dna2.dm
+++ b/code/game/dna/dna2.dm
@@ -103,7 +103,7 @@ var/global/list/datum/gene/dna_genes[0]
// VOREStation
var/custom_species
- var/base_species = "Human"
+ var/base_species = SPECIES_HUMAN
var/list/species_traits = list()
var/blood_color = "#A10808"
var/custom_say
diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm
index 215538284c7..d6803eb82ba 100644
--- a/code/game/gamemodes/nuclear/pinpointer.dm
+++ b/code/game/gamemodes/nuclear/pinpointer.dm
@@ -7,7 +7,7 @@
item_state = "electronic"
throw_speed = 4
throw_range = 20
- matter = list(DEFAULT_WALL_MATERIAL = 500)
+ matter = list(MAT_STEEL = 500)
preserve_item = 1
var/obj/item/disk/nuclear/the_disk = null
var/active = 0
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index 50ec5fe67ce..218b24ae7f8 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -740,7 +740,7 @@ datum/objective/heist/salvage
choose_target()
switch(rand(1,8))
if(1)
- target = DEFAULT_WALL_MATERIAL
+ target = MAT_STEEL
target_amount = 300
if(2)
target = "glass"
@@ -909,4 +909,3 @@ datum/objective/heist/salvage
rval = 2
return 0
return rval
-
diff --git a/code/game/gamemodes/technomancer/core_obj.dm b/code/game/gamemodes/technomancer/core_obj.dm
index ff43b4d5afe..ac877d83db3 100644
--- a/code/game/gamemodes/technomancer/core_obj.dm
+++ b/code/game/gamemodes/technomancer/core_obj.dm
@@ -13,7 +13,7 @@
TECH_COMBAT = 7, TECH_MAGNET = 9, TECH_DATA = 5
)
sprite_sheets = list(
- "Teshari" = 'icons/mob/species/teshari/back.dmi'
+ SPECIES_TESHARI = 'icons/mob/species/teshari/back.dmi'
)
var/energy = 10000
var/max_energy = 10000
diff --git a/code/game/gamemodes/technomancer/spells/aura/fire_aura.dm b/code/game/gamemodes/technomancer/spells/aura/fire_aura.dm
index 9d0ea99b57a..108a41ed56f 100644
--- a/code/game/gamemodes/technomancer/spells/aura/fire_aura.dm
+++ b/code/game/gamemodes/technomancer/spells/aura/fire_aura.dm
@@ -23,7 +23,7 @@
var/list/nearby_things = range(round(calculate_spell_power(4)),owner)
var/temp_change = calculate_spell_power(25)
- var/datum/species/baseline = GLOB.all_species["Human"]
+ var/datum/species/baseline = GLOB.all_species[SPECIES_HUMAN]
var/temp_cap = baseline.heat_level_3 * 1.5
var/fire_power = calculate_spell_power(2)
diff --git a/code/game/gamemodes/technomancer/spells/aura/frost_aura.dm b/code/game/gamemodes/technomancer/spells/aura/frost_aura.dm
index 03bc013e6fc..1ce2b9d1d34 100644
--- a/code/game/gamemodes/technomancer/spells/aura/frost_aura.dm
+++ b/code/game/gamemodes/technomancer/spells/aura/frost_aura.dm
@@ -23,7 +23,7 @@
var/list/nearby_mobs = range(round(calculate_spell_power(4)),owner)
var/temp_change = calculate_spell_power(40)
- var/datum/species/baseline = GLOB.all_species["Human"]
+ var/datum/species/baseline = GLOB.all_species[SPECIES_HUMAN]
var/temp_cap = baseline.cold_level_2 - 5
if(check_for_scepter())
diff --git a/code/game/gamemodes/technomancer/spells/control.dm b/code/game/gamemodes/technomancer/spells/control.dm
index 243a560dd26..e5f5e1e72d8 100644
--- a/code/game/gamemodes/technomancer/spells/control.dm
+++ b/code/game/gamemodes/technomancer/spells/control.dm
@@ -110,7 +110,7 @@
to_chat(user, "\The [L] seems to resist you!")
return 0
if(!L.has_AI())
- to_chat(user, span("warning", "\The [L] seems too dim for this to work on them."))
+ to_chat(user, SPAN_WARNING( "\The [L] seems too dim for this to work on them."))
return FALSE
if(pay_energy(500))
select(L)
@@ -141,4 +141,3 @@
adjust_instability(controlled_mobs.len)
to_chat(user, "You command your [controlled_mobs.len > 1 ? "entities" : "[controlled_mobs[1]]"] to move \
towards \the [T].")
-
diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm
index 7454c44b391..837ce7ec8f1 100644
--- a/code/game/machinery/atmoalter/portable_atmospherics.dm
+++ b/code/game/machinery/atmoalter/portable_atmospherics.dm
@@ -150,7 +150,7 @@
return 0 //not a borg or human
if(O.has_buckled_mobs())
- to_chat(user, span("warning", "\The [O] has other entities attached to it. Remove them first."))
+ to_chat(user, SPAN_WARNING( "\The [O] has other entities attached to it. Remove them first."))
return
if(O == user)
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index fc08d0f382d..c4c1cfd561b 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -14,8 +14,8 @@
circuit = /obj/item/circuitboard/autolathe
var/static/datum/category_collection/autolathe/autolathe_recipes
- var/list/stored_material = list(DEFAULT_WALL_MATERIAL = 0, MAT_GLASS = 0)
- var/list/storage_capacity = list(DEFAULT_WALL_MATERIAL = 0, MAT_GLASS = 0)
+ var/list/stored_material = list(MAT_STEEL = 0, MAT_GLASS = 0)
+ var/list/storage_capacity = list(MAT_STEEL = 0, MAT_GLASS = 0)
var/hacked = FALSE
var/disabled = FALSE
@@ -308,7 +308,7 @@
for(var/obj/item/stock_parts/manipulator/M in component_parts)
man_rating += M.rating
- storage_capacity[DEFAULT_WALL_MATERIAL] = mb_rating * 25000
+ storage_capacity[MAT_STEEL] = mb_rating * 25000
storage_capacity[MAT_GLASS] = mb_rating * 12500
build_time = 50 / man_rating
mat_efficiency = 1.1 - man_rating * 0.1 //Normally, price is 1.25 the amount of material, so this shouldn't go higher than 0.6. Maximum rating of parts is 5
diff --git a/code/game/machinery/bioprinter.dm b/code/game/machinery/bioprinter.dm
index e48457a38db..a6c02028fb8 100644
--- a/code/game/machinery/bioprinter.dm
+++ b/code/game/machinery/bioprinter.dm
@@ -346,7 +346,7 @@
circuit = /obj/item/circuitboard/roboprinter
var/matter_amount_per_sheet = 10
- var/matter_type = DEFAULT_WALL_MATERIAL
+ var/matter_type = MAT_STEEL
/obj/machinery/organ_printer/robot/full/New()
. = ..()
diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm
index 341498c8407..1b368a33dba 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -6,7 +6,7 @@
w_class = ITEMSIZE_SMALL
anchored = 0
- matter = list(DEFAULT_WALL_MATERIAL = 700,"glass" = 300)
+ matter = list(MAT_STEEL = 700, MAT_GLASS = 300)
// Motion, EMP-Proof, X-Ray
var/list/obj/item/possible_upgrades = list(/obj/item/assembly/prox_sensor, /obj/item/stack/material/osmium, /obj/item/stock_parts/scanning_module)
diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm
index 3363ba2a4ca..d6701edff37 100644
--- a/code/game/machinery/cell_charger.dm
+++ b/code/game/machinery/cell_charger.dm
@@ -146,7 +146,7 @@
)
item_state = "syringe_kit"
w_class = ITEMSIZE_NORMAL
- matter = list(DEFAULT_WALL_MATERIAL = 4000,"glass" = 1000)
+ matter = list(MAT_STEEL = 4000, MAT_GLASS = 1000)
/obj/item/cell_charger_kit/attack_self(mob/user)
to_chat(user, "You assemble and deploy the cell charger in place.")
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index f5939a19664..f5a4fb5f714 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -271,7 +271,7 @@
/obj/machinery/computer/arcade/battle/emag_act(var/charges, var/mob/user)
if(!emagged)
- to_chat(user, span("notice","You override the cheat code menu and skip to Cheat #[rand(1, 50)]: Hyper-Lethal Mode."))
+ to_chat(user, SPAN_NOTICE("You override the cheat code menu and skip to Cheat #[rand(1, 50)]: Hyper-Lethal Mode."))
temp = "If you die in the game, you die for real!"
player_hp = 30
@@ -401,18 +401,18 @@
dat += "
You ran out of food and starved."
if(emagged)
user.nutrition = 0 //yeah you pretty hongry
- to_chat(user, span("danger", "Your body instantly contracts to that of one who has not eaten in months. Agonizing cramps seize you as you fall to the floor."))
+ to_chat(user, SPAN_DANGER("Your body instantly contracts to that of one who has not eaten in months. Agonizing cramps seize you as you fall to the floor."))
if(fuel <= 0)
dat += "
You ran out of fuel, and drift, slowly, into a star."
if(emagged)
var/mob/living/M = user
M.adjust_fire_stacks(5)
M.IgniteMob() //flew into a star, so you're on fire
- to_chat(user,span("danger", "You feel an immense wave of heat emanate from \the [src]. Your skin bursts into flames."))
+ to_chat(user,SPAN_DANGER("You feel an immense wave of heat emanate from \the [src]. Your skin bursts into flames."))
dat += "
OK...
"
if(emagged)
- to_chat(user, span("danger", "You're never going to make it to Orion..."))
+ to_chat(user, SPAN_DANGER("You're never going to make it to Orion..."))
user.death()
emagged = 0 //removes the emagged status after you lose
gameStatus = ORION_STATUS_START
@@ -477,20 +477,20 @@
switch(event)
if(ORION_TRAIL_RAIDERS)
if(prob(50))
- to_chat(usr, span("warning", "You hear battle shouts. The tramping of boots on cold metal. Screams of agony. The rush of venting air. Are you going insane?"))
+ to_chat(usr, SPAN_WARNING( "You hear battle shouts. The tramping of boots on cold metal. Screams of agony. The rush of venting air. Are you going insane?"))
M.hallucination += 30
else
- to_chat(usr, span("danger", "Something strikes you from behind! It hurts like hell and feel like a blunt weapon, but nothing is there..."))
+ to_chat(usr, SPAN_DANGER("Something strikes you from behind! It hurts like hell and feel like a blunt weapon, but nothing is there..."))
M.take_organ_damage(25)
if(ORION_TRAIL_ILLNESS)
var/severity = rand(1,3) //pray to RNGesus. PRAY, PIGS
if(severity == 1)
- to_chat(M, span("warning", "You suddenly feel slightly nauseous.")) //got off lucky
+ to_chat(M, SPAN_WARNING( "You suddenly feel slightly nauseous.")) //got off lucky
if(severity == 2)
- to_chat(usr, span("warning", "You suddenly feel extremely nauseous and hunch over until it passes."))
+ to_chat(usr, SPAN_WARNING( "You suddenly feel extremely nauseous and hunch over until it passes."))
M.Stun(3)
if(severity >= 3) //you didn't pray hard enough
- to_chat(M, span("warning", "An overpowering wave of nausea consumes over you. You hunch over, your stomach's contents preparing for a spectacular exit."))
+ to_chat(M, SPAN_WARNING( "An overpowering wave of nausea consumes over you. You hunch over, your stomach's contents preparing for a spectacular exit."))
spawn(30)
if(istype(M,/mob/living/carbon/human))
var/mob/living/carbon/human/H = M
@@ -501,12 +501,12 @@
src.visible_message("A sudden gust of powerful wind slams \the [M] into the floor!", "You hear a large fwooshing sound, followed by a bang.")
M.take_organ_damage(15)
else
- to_chat(M, span("warning", "A violent gale blows past you, and you barely manage to stay standing!"))
+ to_chat(M, SPAN_WARNING( "A violent gale blows past you, and you barely manage to stay standing!"))
if(ORION_TRAIL_COLLISION) //by far the most damaging event
if(prob(90) && !hull)
var/turf/simulated/floor/F = src.loc
F.ChangeTurf(/turf/space)
- src.visible_message(span("danger", "Something slams into the floor around \the [src], exposing it to space!"), "You hear something crack and break.")
+ src.visible_message(SPAN_DANGER("Something slams into the floor around \the [src], exposing it to space!"), "You hear something crack and break.")
else
src.visible_message("Something slams into the floor around \the [src] - luckily, it didn't get through!", "You hear something crack.")
if(ORION_TRAIL_MALFUNCTION)
@@ -575,9 +575,9 @@
event()
if(emagged) //has to be here because otherwise it doesn't work
src.show_message("\The [src] states, 'YOU ARE EXPERIENCING A BLACKHOLE. BE TERRIFIED.","You hear something say, 'YOU ARE EXPERIENCING A BLACKHOLE. BE TERRFIED'")
- to_chat(usr, span("warning", "Something draws you closer and closer to the machine."))
+ to_chat(usr, SPAN_WARNING( "Something draws you closer and closer to the machine."))
sleep(10)
- to_chat(usr, span("danger", "This is really starting to hurt!"))
+ to_chat(usr, SPAN_DANGER("This is really starting to hurt!"))
var i; //spawning a literal blackhole would be fun, but a bit disruptive.
for(i=0;i<4;i++)
var/mob/living/L = usr
@@ -1003,7 +1003,7 @@
/obj/machinery/computer/arcade/orion_trail/emag_act(mob/user)
if(!emagged)
- to_chat(user, span("notice", "You override the cheat code menu and skip to Cheat #[rand(1, 50)]: Realism Mode."))
+ to_chat(user, SPAN_NOTICE("You override the cheat code menu and skip to Cheat #[rand(1, 50)]: Realism Mode."))
name = "The Orion Trail: Realism Edition"
desc = "Learn how our ancestors got to Orion, and try not to die in the process!"
newgame()
@@ -1031,17 +1031,17 @@
message_admins("[key_name_admin(usr)] primed an explosive Orion ship for detonation.")
log_game("[key_name(usr)] primed an explosive Orion ship for detonation.")
- to_chat(user, span("warning", "You flip the switch on the underside of [src]."))
+ to_chat(user, SPAN_WARNING( "You flip the switch on the underside of [src]."))
active = 1
- src.visible_message(span("notice", "[src] softly beeps and whirs to life!"))
+ src.visible_message(SPAN_NOTICE("[src] softly beeps and whirs to life!"))
src.audible_message("\The [src] says, 'This is ship ID #[rand(1,1000)] to Orion Port Authority. We're coming in for landing, over.'")
sleep(20)
- src.visible_message(span("warning", "[src] begins to vibrate..."))
+ src.visible_message(SPAN_WARNING( "[src] begins to vibrate..."))
src.audible_message("\The [src] says, 'Uh, Port? Having some issues with our reactor, could you check it out? Over.'")
sleep(30)
src.audible_message("\The [src] says, 'Oh, God! Code Eight! CODE EIGHT! IT'S GONNA BL-'")
sleep(3.6)
- src.visible_message(span("danger", "[src] explodes!"))
+ src.visible_message(SPAN_DANGER("[src] explodes!"))
explosion(src.loc, 1,2,4)
qdel(src)
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index 0ca4a588ab8..6dbeb13686b 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -199,7 +199,7 @@
if(occupant)
to_chat(user,"\The [src] is already occupied by [occupant].")
if(grab.affecting.has_buckled_mobs())
- to_chat(user, span("warning", "\The [grab.affecting] has other entities attached to it. Remove them first."))
+ to_chat(user, SPAN_WARNING( "\The [grab.affecting] has other entities attached to it. Remove them first."))
return
var/mob/M = grab.affecting
qdel(grab)
@@ -352,7 +352,7 @@
if(isliving(usr))
var/mob/living/L = usr
if(L.has_buckled_mobs())
- to_chat(L, span("warning", "You have other entities attached to yourself. Remove them first."))
+ to_chat(L, SPAN_WARNING( "You have other entities attached to yourself. Remove them first."))
return
if(L.stat != CONSCIOUS)
return
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index 7a9ae972bc0..2e60d09038e 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -585,7 +585,7 @@
if(isliving(usr))
var/mob/living/L = usr
if(L.has_buckled_mobs())
- to_chat(L, span("warning", "You have other entities attached to yourself. Remove them first."))
+ to_chat(L, SPAN_WARNING( "You have other entities attached to yourself. Remove them first."))
return
visible_message("[usr] [on_enter_visible_message] [src].", 3)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 85cd25706bb..cf79d92507c 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -108,7 +108,7 @@
/obj/machinery/door/airlock/get_material()
if(mineral)
return get_material_by_name(mineral)
- return get_material_by_name(DEFAULT_WALL_MATERIAL)
+ return get_material_by_name(MAT_STEEL)
/obj/machinery/door/airlock/command
name = "Command Airlock"
@@ -938,7 +938,7 @@ About the new airlock wires panel:
if (istype(mover, /obj/item))
var/obj/item/i = mover
if(world.time > last_spark + 2 SECONDS)
- if (i.matter && (DEFAULT_WALL_MATERIAL in i.matter) && i.matter[DEFAULT_WALL_MATERIAL] > 0)
+ if (i.matter && (MAT_STEEL in i.matter) && i.matter[MAT_STEEL] > 0)
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread()
s.set_up(5, 1, src)
s.start()
@@ -1452,7 +1452,7 @@ About the new airlock wires panel:
/obj/machinery/door/airlock/rcd_act(mob/living/user, obj/item/rcd/the_rcd, passed_mode)
switch(passed_mode)
if(RCD_DECONSTRUCT)
- to_chat(user, span("notice", "You deconstruct \the [src]."))
+ to_chat(user, SPAN_NOTICE("You deconstruct \the [src]."))
qdel(src)
return TRUE
return FALSE
diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm
index 2be4e618c8a..64fe8b57a04 100644
--- a/code/game/machinery/doors/airlock_electronics.dm
+++ b/code/game/machinery/doors/airlock_electronics.dm
@@ -4,7 +4,7 @@
icon_state = "door_electronics"
w_class = ITEMSIZE_SMALL //It should be tiny! -Agouri
- matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
var/secure = 0 //if set, then wires will be randomized and bolts will drop if the door is broken
var/list/conf_access = null
@@ -49,7 +49,7 @@
..()
if (usr.stat || usr.restrained() || (!ishuman(usr) && !istype(usr,/mob/living/silicon)))
return
-
+
if (href_list["close"])
usr << browse(null, "window=airlock")
return
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index 62104460d1f..6a0de9d7d0b 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -73,7 +73,7 @@
return ..()
/obj/machinery/door/firedoor/get_material()
- return get_material_by_name(DEFAULT_WALL_MATERIAL)
+ return get_material_by_name(MAT_STEEL)
/obj/machinery/door/firedoor/examine(mob/user)
. = ..()
diff --git a/code/game/machinery/fire_alarm.dm b/code/game/machinery/fire_alarm.dm
index 6a31c2f49dd..4017abbfa1c 100644
--- a/code/game/machinery/fire_alarm.dm
+++ b/code/game/machinery/fire_alarm.dm
@@ -225,7 +225,7 @@ Just a object used in constructing fire alarms
icon_state = "door_electronics"
desc = "A circuit. It has a label on it, it says \"Can handle heat levels up to 40 degrees celsius!\""
w_class = ITEMSIZE_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
*/
/obj/machinery/partyalarm
name = "\improper PARTY BUTTON"
diff --git a/code/game/machinery/floor_light.dm b/code/game/machinery/floor_light.dm
index 130b5c50d0c..a4fac1cd4bc 100644
--- a/code/game/machinery/floor_light.dm
+++ b/code/game/machinery/floor_light.dm
@@ -11,7 +11,7 @@ var/list/floor_light_cache = list()
idle_power_usage = 2
active_power_usage = 20
power_channel = LIGHT
- matter = list(DEFAULT_WALL_MATERIAL = 2500, "glass" = 2750)
+ matter = list(MAT_STEEL = 2500, MAT_GLASS = 2750)
var/on
var/damaged
diff --git a/code/game/machinery/partslathe_vr.dm b/code/game/machinery/partslathe_vr.dm
index fd29b6abf1f..61c07ffe5a0 100644
--- a/code/game/machinery/partslathe_vr.dm
+++ b/code/game/machinery/partslathe_vr.dm
@@ -28,8 +28,8 @@
active_power_usage = 5000
///Amount of materials we can store total
- var/list/materials = list(DEFAULT_WALL_MATERIAL = 0, "glass" = 0)
- var/list/storage_capacity = list(DEFAULT_WALL_MATERIAL = 0, "glass" = 0)
+ var/list/materials = list(MAT_STEEL = 0, MAT_GLASS = 0)
+ var/list/storage_capacity = list(MAT_STEEL = 0, MAT_GLASS = 0)
///The inserted board
var/obj/item/circuitboard/copy_board
///The queue of things to build
@@ -65,7 +65,7 @@
var/mb_rating = 0
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
mb_rating += M.rating
- storage_capacity[DEFAULT_WALL_MATERIAL] = mb_rating * 16000
+ storage_capacity[MAT_STEEL] = mb_rating * 16000
storage_capacity["glass"] = mb_rating * 8000
var/T = 0
for(var/obj/item/stock_parts/manipulator/M in component_parts)
diff --git a/code/game/machinery/pipe/pipelayer.dm b/code/game/machinery/pipe/pipelayer.dm
index 97c66c6d01a..72639afbcf7 100644
--- a/code/game/machinery/pipe/pipelayer.dm
+++ b/code/game/machinery/pipe/pipelayer.dm
@@ -62,8 +62,8 @@
var/answer = alert(user, "Do you want to eject all the metal in \the [src]?", , "Yes","No")
if(answer == "Yes")
var/amount_ejected = eject_metal()
- user.visible_message("[user] removes [amount_ejected] sheet\s of [DEFAULT_WALL_MATERIAL] from the \the [src].",
- "You remove [amount_ejected] sheet\s of [DEFAULT_WALL_MATERIAL] from \the [src].")
+ user.visible_message("[user] removes [amount_ejected] sheet\s of [MAT_STEEL] from the \the [src].",
+ "You remove [amount_ejected] sheet\s of [MAT_STEEL] from \the [src].")
return
if(!metal && !on)
to_chat(user, "\The [src] doesn't work without metal.")
@@ -92,8 +92,8 @@
return
if(istype(W, /obj/item/pipe))
// NOTE - We must check for matter, otherwise the (free) pipe dispenser can be used to get infinite steel.
- if(!W.matter || W.matter[DEFAULT_WALL_MATERIAL] < pipe_cost * SHEET_MATERIAL_AMOUNT)
- to_chat(user, "\The [W] doesn't contain enough [DEFAULT_WALL_MATERIAL] to recycle.")
+ if(!W.matter || W.matter[MAT_STEEL] < pipe_cost * SHEET_MATERIAL_AMOUNT)
+ to_chat(user, "\The [W] doesn't contain enough [MAT_STEEL] to recycle.")
else if(metal + pipe_cost > max_metal)
to_chat(user, "\The [src] is full.")
else
@@ -102,7 +102,7 @@
to_chat(user, "You recycle \the [W].")
qdel(W)
return
- if(istype(W, /obj/item/stack/material) && W.get_material_name() == DEFAULT_WALL_MATERIAL)
+ if(istype(W, /obj/item/stack/material) && W.get_material_name() == MAT_STEEL)
var/result = load_metal(W)
if(isnull(result))
to_chat(user, "Unable to load [W] - no metal found.")
@@ -145,7 +145,7 @@
/obj/machinery/pipelayer/proc/eject_metal()
var/amount_ejected = 0
while (metal >= 1)
- var/datum/material/M = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ var/datum/material/M = get_material_by_name(MAT_STEEL)
var/obj/item/stack/material/S = new M.stack_type(get_turf(src))
S.amount = min(metal, S.max_amount)
metal -= S.amount
@@ -177,7 +177,7 @@
var/obj/item/pipe/P = new pi_type(w_turf, p_type, p_dir)
P.setPipingLayer(p_layer)
// We used metal to make these, so should be reclaimable!
- P.matter = list(DEFAULT_WALL_MATERIAL = pipe_cost * SHEET_MATERIAL_AMOUNT)
+ P.matter = list(MAT_STEEL = pipe_cost * SHEET_MATERIAL_AMOUNT)
P.attackby(W , src)
return 1
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index 067a61d8bc5..cddae8cd600 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -108,7 +108,7 @@
/obj/machinery/porta_turret/can_catalogue(mob/user) // Dead turrets can't be scanned.
if(stat & BROKEN)
- to_chat(user, span("warning", "\The [src] was destroyed, so it cannot be scanned."))
+ to_chat(user, SPAN_WARNING( "\The [src] was destroyed, so it cannot be scanned."))
return FALSE
return ..()
@@ -967,7 +967,7 @@
return
if(1)
- if(istype(I, /obj/item/stack/material) && I.get_material_name() == DEFAULT_WALL_MATERIAL)
+ if(istype(I, /obj/item/stack/material) && I.get_material_name() == MAT_STEEL)
var/obj/item/stack/M = I
if(M.use(2))
to_chat(user, "You add some metal armor to the interior frame.")
@@ -1053,7 +1053,7 @@
//attack_hand() removes the prox sensor
if(6)
- if(istype(I, /obj/item/stack/material) && I.get_material_name() == DEFAULT_WALL_MATERIAL)
+ if(istype(I, /obj/item/stack/material) && I.get_material_name() == MAT_STEEL)
var/obj/item/stack/M = I
if(M.use(2))
to_chat(user, "You add some metal armor to the exterior frame.")
diff --git a/code/game/machinery/robot_fabricator.dm b/code/game/machinery/robot_fabricator.dm
index 13d902cebcd..8c27fac406b 100644
--- a/code/game/machinery/robot_fabricator.dm
+++ b/code/game/machinery/robot_fabricator.dm
@@ -12,7 +12,7 @@
active_power_usage = 10000
/obj/machinery/robotic_fabricator/attackby(var/obj/item/O as obj, var/mob/user as mob)
- if(istype(O, /obj/item/stack/material) && O.get_material_name() == DEFAULT_WALL_MATERIAL)
+ if(istype(O, /obj/item/stack/material) && O.get_material_name() == MAT_STEEL)
var/obj/item/stack/M = O
if(metal_amount < 150000.0)
var/count = 0
@@ -22,7 +22,7 @@
if(!M.get_amount())
return
while(metal_amount < 150000 && M.amount)
- metal_amount += O.matter[DEFAULT_WALL_MATERIAL] /*O:height * O:width * O:length * 100000.0*/
+ metal_amount += O.matter[MAT_STEEL] /*O:height * O:width * O:length * 100000.0*/
M.use(1)
count++
diff --git a/code/game/machinery/virtual_reality/ar_console.dm b/code/game/machinery/virtual_reality/ar_console.dm
index 1ed09e03018..9003320c879 100644
--- a/code/game/machinery/virtual_reality/ar_console.dm
+++ b/code/game/machinery/virtual_reality/ar_console.dm
@@ -97,7 +97,7 @@
if(!avatar)
var/turf/T = get_turf(src)
avatar = new(src, produce_species)
- if(occupant.species.name != "Promethean" && occupant.species.name != "Human" && mirror_first_occupant)
+ if(occupant.species.name != SPECIES_PROMETHEAN && occupant.species.name != SPECIES_HUMAN && mirror_first_occupant)
avatar.shapeshifter_change_shape(occupant.species.name)
avatar.Sleeping(6)
diff --git a/code/game/machinery/virtual_reality/vr_console.dm b/code/game/machinery/virtual_reality/vr_console.dm
index 64343ee4956..6bb818701cc 100644
--- a/code/game/machinery/virtual_reality/vr_console.dm
+++ b/code/game/machinery/virtual_reality/vr_console.dm
@@ -243,9 +243,9 @@
S = i
break
- avatar = new(S, "Virtual Reality Avatar")
+ avatar = new(S, SPECIES_VR)
// If the user has a non-default (Human) bodyshape, make it match theirs.
- if(occupant.species.name != "Promethean" && occupant.species.name != "Human" && mirror_first_occupant)
+ if(occupant.species.name != SPECIES_PROMETHEAN && occupant.species.name != SPECIES_HUMAN && mirror_first_occupant)
avatar.shapeshifter_change_shape(occupant.species.name)
avatar.forceMove(get_turf(S)) // Put the mob on the landmark, instead of inside it
avatar.Sleeping(1)
@@ -259,4 +259,3 @@
else
occupant.enter_vr(avatar)
-
diff --git a/code/game/machinery/vr_console.dm b/code/game/machinery/vr_console.dm
index fbbf1a24b1b..ee76546f3eb 100644
--- a/code/game/machinery/vr_console.dm
+++ b/code/game/machinery/vr_console.dm
@@ -208,9 +208,9 @@
S = i
break
- avatar = new(S, "Virtual Reality Avatar")
+ avatar = new(S, SPECIES_VR)
// If the user has a non-default (Human) bodyshape, make it match theirs.
- if(occupant.species.name != "Promethean" && occupant.species.name != "Human")
+ if(occupant.species.name != SPECIES_PROMETHEAN && occupant.species.name != SPECIES_HUMAN)
avatar.shapeshifter_change_shape(occupant.species.name)
avatar.forceMove(get_turf(S)) // Put the mob on the landmark, instead of inside it
avatar.Sleeping(1)
@@ -224,4 +224,3 @@
else
occupant.enter_vr(avatar)
-
diff --git a/code/game/mecha/equipment/tools/passenger.dm b/code/game/mecha/equipment/tools/passenger.dm
index 2896cb8ecfa..0273b01b5f5 100644
--- a/code/game/mecha/equipment/tools/passenger.dm
+++ b/code/game/mecha/equipment/tools/passenger.dm
@@ -119,7 +119,7 @@
if(isliving(usr))
var/mob/living/L = usr
if(L.has_buckled_mobs())
- to_chat(L, span("warning", "You have other entities attached to yourself. Remove them first."))
+ to_chat(L, SPAN_WARNING( "You have other entities attached to yourself. Remove them first."))
return
//search for a valid passenger compartment
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index 8e021066d28..c89f715b317 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -36,7 +36,7 @@
var/component_coeff = 1
var/list/materials = list(
- DEFAULT_WALL_MATERIAL = 0,
+ MAT_STEEL = 0,
MAT_GLASS = 0,
MAT_PLASTIC = 0,
MAT_GRAPHITE = 0,
diff --git a/code/game/mecha/mech_prosthetics.dm b/code/game/mecha/mech_prosthetics.dm
index 5c8e7f81576..c1ecaef1835 100644
--- a/code/game/mecha/mech_prosthetics.dm
+++ b/code/game/mecha/mech_prosthetics.dm
@@ -13,11 +13,11 @@
//Prosfab specific stuff
var/manufacturer = null
- var/species_types = list("Human")
- var/species = "Human"
+ var/species_types = list(SPECIES_HUMAN)
+ var/species = SPECIES_HUMAN
materials = list(
- DEFAULT_WALL_MATERIAL = 0,
+ MAT_STEEL = 0,
MAT_GLASS = 0,
MAT_PLASTIC = 0,
MAT_GRAPHITE = 0,
@@ -109,7 +109,7 @@
switch(action)
if("species")
- var/new_species = input(usr, "Select a new species", "Prosfab Species Selection", "Human") as null|anything in species_types
+ var/new_species = input(usr, "Select a new species", "Prosfab Species Selection", SPECIES_HUMAN) as null|anything in species_types
if(new_species && ui_status(usr, state) == UI_INTERACTIVE)
species = new_species
return
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 936a09e424b..a848cc1e1c5 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -1813,7 +1813,7 @@
if(isliving(usr))
var/mob/living/L = usr
if(L.has_buckled_mobs())
- to_chat(L, span("warning", "You have other entities attached to yourself. Remove them first."))
+ to_chat(L, SPAN_WARNING( "You have other entities attached to yourself. Remove them first."))
return
// to_chat(usr, "You start climbing into [src.name]")
diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm
index d1b5261aa5a..efefd269dad 100644
--- a/code/game/mecha/mecha_parts.dm
+++ b/code/game/mecha/mecha_parts.dm
@@ -225,42 +225,42 @@
name="Phazon Torso"
icon_state = "phazon_harness"
//construction_time = 300
- //construction_cost = list(DEFAULT_WALL_MATERIAL=35000,"glass"=10000,"phoron"=20000)
+ //construction_cost = list(MAT_STEEL=35000,"glass"=10000,"phoron"=20000)
origin_tech = list(TECH_DATA = 5, TECH_MATERIAL = 7, TECH_BLUESPACE = 6, TECH_POWER = 6)
/obj/item/mecha_parts/part/phazon_head
name="Phazon Head"
icon_state = "phazon_head"
//construction_time = 200
- //construction_cost = list(DEFAULT_WALL_MATERIAL=15000,"glass"=5000,"phoron"=10000)
+ //construction_cost = list(MAT_STEEL=15000,"glass"=5000,"phoron"=10000)
origin_tech = list(TECH_DATA = 4, TECH_MATERIAL = 5, TECH_MAGNET = 6)
/obj/item/mecha_parts/part/phazon_left_arm
name="Phazon Left Arm"
icon_state = "phazon_l_arm"
//construction_time = 200
- //construction_cost = list(DEFAULT_WALL_MATERIAL=20000,"phoron"=10000)
+ //construction_cost = list(MAT_STEEL=20000,"phoron"=10000)
origin_tech = list(TECH_MATERIAL = 5, TECH_BLUESPACE = 2, TECH_MAGNET = 2)
/obj/item/mecha_parts/part/phazon_right_arm
name="Phazon Right Arm"
icon_state = "phazon_r_arm"
//construction_time = 200
- //construction_cost = list(DEFAULT_WALL_MATERIAL=20000,"phoron"=10000)
+ //construction_cost = list(MAT_STEEL=20000,"phoron"=10000)
origin_tech = list(TECH_MATERIAL = 5, TECH_BLUESPACE = 2, TECH_MAGNET = 2)
/obj/item/mecha_parts/part/phazon_left_leg
name="Phazon Left Leg"
icon_state = "phazon_l_leg"
//construction_time = 200
- //construction_cost = list(DEFAULT_WALL_MATERIAL=20000,"phoron"=10000)
+ //construction_cost = list(MAT_STEEL=20000,"phoron"=10000)
origin_tech = list(TECH_MATERIAL = 5, TECH_BLUESPACE = 3, TECH_MAGNET = 3)
/obj/item/mecha_parts/part/phazon_right_leg
name="Phazon Right Leg"
icon_state = "phazon_r_leg"
//construction_time = 200
- //construction_cost = list(DEFAULT_WALL_MATERIAL=20000,"phoron"=10000)
+ //construction_cost = list(MAT_STEEL=20000,"phoron"=10000)
origin_tech = list(TECH_MATERIAL = 5, TECH_BLUESPACE = 3, TECH_MAGNET = 3)
///////// Odysseus
@@ -313,7 +313,7 @@
icon_state = "odysseus_armour"
origin_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3)
construction_time = 200
- construction_cost = list(DEFAULT_WALL_MATERIAL=15000)*/
+ construction_cost = list(MAT_STEEL=15000)*/
////////// Janus
diff --git a/code/game/mecha/micro/mechfab_designs_vr.dm b/code/game/mecha/micro/mechfab_designs_vr.dm
index 5ffce2da7e2..ee252a76183 100644
--- a/code/game/mecha/micro/mechfab_designs_vr.dm
+++ b/code/game/mecha/micro/mechfab_designs_vr.dm
@@ -7,52 +7,52 @@
id = "gopher_chassis"
build_path = /obj/item/mecha_parts/micro/chassis/gopher
time = 3
- materials = list(DEFAULT_WALL_MATERIAL = 7000)
+ materials = list(MAT_STEEL = 7000)
/datum/design/item/mechfab/gopher/torso
name = "Gopher Torso"
id = "gopher_torso"
build_path = /obj/item/mecha_parts/micro/part/gopher_torso
- materials = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 5250)
+ materials = list(MAT_STEEL = 15000, MAT_GLASS = 5250)
/datum/design/item/mechfab/gopher/left_arm
name = "Gopher Left Arm"
id = "gopher_left_arm"
build_path = /obj/item/mecha_parts/micro/part/gopher_left_arm
- materials = list(DEFAULT_WALL_MATERIAL = 8750)
+ materials = list(MAT_STEEL = 8750)
/datum/design/item/mechfab/gopher/right_arm
name = "Gopher Right Arm"
id = "gopher_right_arm"
build_path = /obj/item/mecha_parts/micro/part/gopher_right_arm
- materials = list(DEFAULT_WALL_MATERIAL = 8750)
+ materials = list(MAT_STEEL = 8750)
/datum/design/item/mechfab/gopher/left_leg
name = "Gopher Left Leg"
id = "gopher_left_leg"
build_path = /obj/item/mecha_parts/micro/part/gopher_left_leg
- materials = list(DEFAULT_WALL_MATERIAL = 12500)
+ materials = list(MAT_STEEL = 12500)
/datum/design/item/mechfab/gopher/right_leg
name = "Gopher Right Leg"
id = "gopher_right_leg"
build_path = /obj/item/mecha_parts/micro/part/gopher_right_leg
- materials = list(DEFAULT_WALL_MATERIAL = 12500)
+ materials = list(MAT_STEEL = 12500)
/datum/design/item/mecha/drill/micro
name = "Miniature Drill"
id = "micro_drill"
build_path = /obj/item/mecha_parts/mecha_equipment/tool/drill/micro
time = 5
- materials = list(DEFAULT_WALL_MATERIAL = 2500)
+ materials = list(MAT_STEEL = 2500)
/datum/design/item/mecha/hydraulic_clamp/micro
name = "Mounted ore box"
id = "ore_scoop"
build_path = /obj/item/mecha_parts/mecha_equipment/tool/micro/orescoop
time = 5
- materials = list(DEFAULT_WALL_MATERIAL = 2500)
+ materials = list(MAT_STEEL = 2500)
/datum/design/item/mechfab/polecat
category = list("Polecat")
@@ -63,44 +63,44 @@
id = "polecat_chassis"
build_path = /obj/item/mecha_parts/micro/chassis/polecat
time = 3
- materials = list(DEFAULT_WALL_MATERIAL = 7000)
+ materials = list(MAT_STEEL = 7000)
/datum/design/item/mechfab/polecat/torso
name = "Polecat Torso"
id = "polecat_torso"
build_path = /obj/item/mecha_parts/micro/part/polecat_torso
- materials = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 5250)
+ materials = list(MAT_STEEL = 15000, MAT_GLASS = 5250)
/datum/design/item/mechfab/polecat/left_arm
name = "Polecat Left Arm"
id = "polecat_left_arm"
build_path = /obj/item/mecha_parts/micro/part/polecat_left_arm
- materials = list(DEFAULT_WALL_MATERIAL = 8750)
+ materials = list(MAT_STEEL = 8750)
/datum/design/item/mechfab/polecat/right_arm
name = "Polecat Right Arm"
id = "polecat_right_arm"
build_path = /obj/item/mecha_parts/micro/part/polecat_right_arm
- materials = list(DEFAULT_WALL_MATERIAL = 8750)
+ materials = list(MAT_STEEL = 8750)
/datum/design/item/mechfab/polecat/left_leg
name = "Polecat Left Leg"
id = "polecat_left_leg"
build_path = /obj/item/mecha_parts/micro/part/polecat_left_leg
- materials = list(DEFAULT_WALL_MATERIAL = 12500)
+ materials = list(MAT_STEEL = 12500)
/datum/design/item/mechfab/polecat/right_leg
name = "Polecat Right Leg"
id = "polecat_right_leg"
build_path = /obj/item/mecha_parts/micro/part/polecat_right_leg
- materials = list(DEFAULT_WALL_MATERIAL = 12500)
+ materials = list(MAT_STEEL = 12500)
/datum/design/item/mechfab/polecat/armour
name = "Polecat Armour Plates"
id = "polecat_armour"
build_path = /obj/item/mecha_parts/micro/part/polecat_armour
time = 25
- materials = list(DEFAULT_WALL_MATERIAL = 12500, "plastic" = 7500)
+ materials = list(MAT_STEEL = 12500, MAT_PLASTIC = 7500)
/datum/design/item/mecha/taser/micro
name = "\improper TS-12 \"Suppressor\" integrated taser"
@@ -117,7 +117,7 @@
name = "\improper PC-20 \"Lance\" light laser cannon"
id = "micro_laser_heavy"
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 2000, "diamond" = 1000)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 2000, MAT_DIAMOND = 1000)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/microheavy
/datum/design/item/mecha/weapon/grenade_launcher/micro
@@ -142,54 +142,54 @@
id = "weasel_chassis"
build_path = /obj/item/mecha_parts/micro/chassis/weasel
time = 3
- materials = list(DEFAULT_WALL_MATERIAL = 7000)
+ materials = list(MAT_STEEL = 7000)
/datum/design/item/mechfab/weasel/torso
name = "Weasel Torso"
id = "weasel_torso"
build_path = /obj/item/mecha_parts/micro/part/weasel_torso
- materials = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 5250)
+ materials = list(MAT_STEEL = 15000, MAT_GLASS = 5250)
/datum/design/item/mechfab/weasel/left_arm
name = "Weasel Left Arm"
id = "weasel_left_arm"
build_path = /obj/item/mecha_parts/micro/part/weasel_left_arm
- materials = list(DEFAULT_WALL_MATERIAL = 8750)
+ materials = list(MAT_STEEL = 8750)
/datum/design/item/mechfab/weasel/right_arm
name = "Weasel Right Arm"
id = "weasel_right_arm"
build_path = /obj/item/mecha_parts/micro/part/weasel_right_arm
- materials = list(DEFAULT_WALL_MATERIAL = 8750)
+ materials = list(MAT_STEEL = 8750)
/*/datum/design/item/mechfab/weasel/left_leg
name = "Weasel Left Leg"
id = "weasel_left_leg"
build_path = /obj/item/mecha_parts/micro/part/weasel_left_leg
- materials = list(DEFAULT_WALL_MATERIAL = 12500)
+ materials = list(MAT_STEEL = 12500)
/datum/design/item/mechfab/weasel/right_leg
name = "Weasel Right Leg"
id = "weasel_right_leg"
build_path = /obj/item/mecha_parts/micro/part/weasel_right_leg
- materials = list(DEFAULT_WALL_MATERIAL = 12500)*/
+ materials = list(MAT_STEEL = 12500)*/
/datum/design/item/mechfab/weasel/tri_leg
name = "Weasel Tri Leg"
id = "weasel_right_leg"
build_path = /obj/item/mecha_parts/micro/part/weasel_tri_leg
- materials = list(DEFAULT_WALL_MATERIAL = 27500)
+ materials = list(MAT_STEEL = 27500)
/datum/design/item/mechfab/weasel/head
name = "Weasel Head"
id = "weasel_head"
build_path = /obj/item/mecha_parts/micro/part/weasel_head
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 2500)
+ materials = list(MAT_STEEL = 7000, MAT_GLASS = 2500)
/datum/design/item/mecha/medigun
name = "BL-3/P directed restoration system"
desc = "A portable medical system used to treat external injuries from afar."
id = "mech_medigun"
req_tech = list(TECH_MATERIAL = 5, TECH_COMBAT = 5, TECH_BIO = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 9000, "gold" = 3000, "silver" = 2750, "diamond" = 1500)
+ materials = list(MAT_STEEL = 9000, MAT_GOLD = 3000, MAT_SILVER = 2750, MAT_DIAMOND = 1500)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/medigun
diff --git a/code/game/objects/effects/decals/posters/polarisposters.dm b/code/game/objects/effects/decals/posters/polarisposters.dm
index 794d362cc4c..5395bdf14a4 100644
--- a/code/game/objects/effects/decals/posters/polarisposters.dm
+++ b/code/game/objects/effects/decals/posters/polarisposters.dm
@@ -187,7 +187,7 @@
/datum/poster/nanotrasen/nt_5
icon_state = "ntposter05"
- name = "Promethean"
+ name = SPECIES_PROMETHEAN
desc = "This poster displays a friendly-looking green Promethean in a labcoat. The fine-print around the edges talks about the benefits Prometheans give in laboratories."
/datum/poster/nanotrasen/nt_6
diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index d1dd5c24a74..2f3ee468f34 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -68,7 +68,7 @@
return TRUE
else if(istype(mover, /mob/living))
if(prob(50))
- to_chat(mover, span("warning", "You get stuck in \the [src] for a moment."))
+ to_chat(mover, SPAN_WARNING( "You get stuck in \the [src] for a moment."))
return FALSE
else if(istype(mover, /obj/item/projectile))
return prob(30)
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 825d6fd54af..9f6533f97f0 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -3,7 +3,8 @@
icon = 'icons/obj/items.dmi'
w_class = ITEMSIZE_NORMAL
- var/image/blood_overlay = null //this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite
+ /// This saves our blood splatter overlay, which will be processed not to go over the edges of the sprite
+ var/image/blood_overlay = null
var/abstract = 0
var/r_speed = 1.0
var/health = null
@@ -11,112 +12,144 @@
var/burning = null
/// Sound to play on hit. Set to [HITSOUND_UNSET] to have it automatically set on init.
var/hitsound = HITSOUND_UNSET
-
- var/usesound = null // Like hitsound, but for when used properly and not to kill someone.
+ /// Like hitsound, but for when used properly and not to kill someone.
+ var/usesound = null
var/storage_cost = null
- var/slot_flags = 0 //This is used to determine on which slots an item can fit.
- var/no_attack_log = 0 //If it's an item we don't want to log attack_logs with, set this to 1
+ /// This is used to determine on which slots an item can fit.
+ var/slot_flags = 0
+ /// If it's an item we don't want to log attack_logs with, set this to TRUE
+ var/no_attack_log = FALSE
pass_flags = PASSTABLE
pressure_resistance = 5
-// causeerrorheresoifixthis
var/obj/item/master = null
- var/list/origin_tech = null //Used by R&D to determine what research bonuses it grants.
- var/list/attack_verb = list() //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
+ /// Used by R&D to determine what research bonuses it grants.
+ var/list/origin_tech = null
+ /// Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
+ var/list/attack_verb = list()
var/force = 0
- var/heat_protection = 0 //flags which determine which body parts are protected from heat. Use the HEAD, UPPER_TORSO, LOWER_TORSO, etc. flags. See setup.dm
- var/cold_protection = 0 //flags which determine which body parts are protected from cold. Use the HEAD, UPPER_TORSO, LOWER_TORSO, etc. flags. See setup.dm
- var/max_heat_protection_temperature //Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags
- var/min_cold_protection_temperature //Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags
+ /// Flags which determine which body parts are protected from heat. Use the HEAD, UPPER_TORSO, LOWER_TORSO, etc. flags. See setup.dm
+ var/heat_protection = 0
+ /// Flags which determine which body parts are protected from cold. Use the HEAD, UPPER_TORSO, LOWER_TORSO, etc. flags. See setup.dm
+ var/cold_protection = 0
+ /// Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags.
+ var/max_heat_protection_temperature
+ /// Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags.
+ var/min_cold_protection_temperature
- var/max_pressure_protection // Set this variable if the item protects its wearer against high pressures below an upper bound. Keep at null to disable protection.
- var/min_pressure_protection // Set this variable if the item protects its wearer against low pressures above a lower bound. Keep at null to disable protection. 0 represents protection against hard vacuum.
+ /// Set this variable if the item protects its wearer against high pressures below an upper bound. Keep at null to disable protection.
+ var/max_pressure_protection
+ /// Set this variable if the item protects its wearer against low pressures above a lower bound. Keep at null to disable protection. 0 represents protection against hard vacuum.
+ var/min_pressure_protection
var/datum/action/item_action/action = null
- var/action_button_name //It is also the text which gets displayed on the action button. If not set it defaults to 'Use [name]'. If it's not set, there'll be no button.
- var/action_button_is_hands_free = 0 //If 1, bypass the restrained, lying, and stunned checks action buttons normally test for
+ /// It is also the text which gets displayed on the action button. If not set it defaults to 'Use [name]'. If it's not set, there'll be no button.
+ var/action_button_name
+ /// If 1, bypass the restrained, lying, and stunned checks action buttons normally test for
+ var/action_button_is_hands_free = 0
//This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc.
//It should be used purely for appearance. For gameplay effects caused by items covering body parts, use body_parts_covered.
var/flags_inv = 0
- var/body_parts_covered = 0 //see setup.dm for appropriate bit flags
+ /// See setup.dm for appropriate bit flags
+ var/body_parts_covered = 0
var/tool_behaviour = NONE
- var/item_flags = 0 //Miscellaneous flags pertaining to equippable objects.
+ /// Miscellaneous flags pertaining to equippable objects.
+ var/item_flags = 0
- //var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible
- var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets)
- var/permeability_coefficient = 1 // for chemicals/diseases
- var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit)
- var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up
- var/canremove = 1 //Mostly for Ninja code at this point but basically will not allow the item to be removed if set to 0. /N
+ /// 0 prevents all transfers, 1 is invisible
+ //var/heat_transfer_coefficient = 1
+ /// For leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets)
+ var/gas_transfer_coefficient = 1
+ /// For chemicals/diseases
+ var/permeability_coefficient = 1
+ /// For electrical admittance/conductance (electrocution checks and shit)
+ var/siemens_coefficient = 1
+ /// How much clothing is slowing you down. Negative values speeds you up
+ var/slowdown = 0
+ ///Mostly for Ninja code at this point but basically will not allow the item to be removed if set to FALSE.
+ var/canremove = TRUE
var/list/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
var/list/armorsoak = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
- var/list/allowed = null //suit storage stuff.
- var/obj/item/uplink/hidden/hidden_uplink = null // All items can have an uplink hidden inside, just remember to add the triggers.
- var/zoomdevicename = null //name used for message when binoculars/scope is used
- var/zoom = 0 //1 if item is actively being used to zoom. For scoped guns and binoculars.
-
- var/embed_chance = EMBED_CHANCE_UNSET //0 won't embed, and 100 will always embed
-
- var/icon_override = null //Used to override hardcoded clothing dmis in human clothing proc.
+ /// Suit storage stuff.
+ var/list/allowed = null
+ /// All items can have an uplink hidden inside, just remember to add the triggers.
+ var/obj/item/uplink/hidden/hidden_uplink = null
+ /// Name used for message when binoculars/scope is used
+ var/zoomdevicename = null
+ /// TRUE if item is actively being used to zoom. For scoped guns and binoculars.
+ var/zoom = FALSE
+ /// 0 won't embed, and 100 will always embed
+ var/embed_chance = EMBED_CHANCE_UNSET
+ /// Used to override hardcoded clothing dmis in human clothing proc. //TODO: Get rid of this crap -Zandario
+ var/icon_override = null
//** These specify item/icon overrides for _slots_
- var/list/item_state_slots = list() //overrides the default item_state for particular slots.
+ /// Overrides the default item_state for particular slots.
+ var/list/item_state_slots = list()
- // Used to specify the icon file to be used when the item is worn. If not set the default icon for that slot will be used.
- // If icon_override or sprite_sheets are set they will take precendence over this, assuming they apply to the slot in question.
- // Only slot_l_hand/slot_r_hand are implemented at the moment. Others to be implemented as needed.
+ /// Used to specify the icon file to be used when the item is worn. If not set the default icon for that slot will be used.
+ /// If icon_override or sprite_sheets are set they will take precendence over this, assuming they apply to the slot in question.
+ /// Only slot_l_hand/slot_r_hand are implemented at the moment. Others to be implemented as needed.
var/list/item_icons = list()
- //Dimensions of the icon file used when this item is worn, eg: hats.dmi
- //eg: 32x32 sprite, 64x64 sprite, etc.
- //allows inhands/worn sprites to be of any size, but still centered on a mob properly
+ /// Dimensions of the icon file used when this item is worn, eg: hats.dmi
+ /// eg: 32x32 sprite, 64x64 sprite, etc.
+ /// allows inhands/worn sprites to be of any size, but still centered on a mob properly
var/worn_x_dimension = 32
var/worn_y_dimension = 32
- //Same as above but for inhands, uses the lefthand_ and righthand_ file vars
+ //Allows inhands/worn sprites for inhands, uses the lefthand_ and righthand_ file vars
var/inhand_x_dimension = 32
var/inhand_y_dimension = 32
//** These specify item/icon overrides for _species_
-
+ //TODO Refactor this from the ground up. Too many overrides. -Zandario
/* Species-specific sprites, concept stolen from Paradise//vg/.
- ex:
- sprite_sheets = list(
- SPECIES_TAJ = 'icons/cat/are/bad'
- )
- If index term exists and icon_override is not set, this sprite sheet will be used.
+ * ex:
+ * sprite_sheets = list(
+ * SPECIES_TAJ = 'icons/cat/are/bad'
+ * )
+ * If index term exists and icon_override is not set, this sprite sheet will be used.
*/
var/list/sprite_sheets = list()
- // Species-specific sprite sheets for inventory sprites
- // Works similarly to worn sprite_sheets, except the alternate sprites are used when the clothing/refit_for_species() proc is called.
+ /// Species-specific sprite sheets for inventory sprites
+ /// Works similarly to worn sprite_sheets, except the alternate sprites are used when the clothing/refit_for_species() proc is called.
var/list/sprite_sheets_obj = list()
- var/toolspeed = 1.0 // This is a multipler on how 'fast' a tool works. e.g. setting this to 0.5 will make the tool work twice as fast.
- var/attackspeed = DEFAULT_ATTACK_COOLDOWN // How long click delay will be when using this, in 1/10ths of a second. Checked in the user's get_attack_speed().
- var/reach = 1 // Length of tiles it can reach, 1 is adjacent.
- var/addblends // Icon overlay for ADD highlights when applicable.
+ /// This is a multipler on how 'fast' a tool works. e.g. setting this to 0.5 will make the tool work twice as fast.
+ var/toolspeed = 1.0
+ /// How long click delay will be when using this, in 1/10ths of a second. Checked in the user's get_attack_speed().
+ var/attackspeed = DEFAULT_ATTACK_COOLDOWN
+ /// Length of tiles it can reach, 1 is adjacent.
+ var/reach = 1
+ /// Icon overlay for ADD highlights when applicable.
+ var/addblends
- var/icon/default_worn_icon //Default on-mob icon
- var/worn_layer //Default on-mob layer
+ /// Default on-mob icon.
+ var/icon/default_worn_icon
+ /// Default on-mob layer.
+ var/worn_layer
- // Pickup/Drop/Equip/Throw Sounds
- ///Used when thrown into a mob
+ //* Pickup/Drop/Equip/Throw Sounds
+ /// Used when thrown into a mob.
var/mob_throw_hit_sound
- // Sound used when equipping the items into a valid slot.
+ /// Sound used when equipping the items into a valid slot.
var/equip_sound
- // pickup sound - this is the default
+ /// Pickup sound - this is the default.
var/pickup_sound = 'sound/items/pickup/device.ogg'
- // drop sound - this is the default
+ /// Drop sound - this is the default.
var/drop_sound = 'sound/items/drop/device.ogg'
- var/deploytype = null //Deploytype for switchtools. Only really used on switchtool subtype items, but this is on a general item level in case admins want to do some wierd fucky shit with custom switchtools.
-
- var/heavy = FALSE //Whether or not we are heavy. Used for some species to determine if they can two-hand it.
+ /// Deploytype for switchtools. Only really used on switchtool subtype items, but this is on a general item level
+ /// in case admins want to do some wierd fucky shit with custom switchtools.
+ var/deploytype = null
+ /// Whether or not we are heavy. Used for some species to determine if they can two-hand it.
+ var/heavy = FALSE
/obj/item/Initialize(mapload)
. = ..()
@@ -143,7 +176,7 @@
src.loc = null
return ..()
-// Check if target is reasonable for us to operate on.
+/// Check if target is reasonable for us to operate on.
/obj/item/proc/check_allowed_items(atom/target, not_inside, target_self)
if(((src in target) && !target_self) || ((!istype(target.loc, /turf)) && (!istype(target, /turf)) && (not_inside)))
return FALSE
@@ -172,7 +205,7 @@
return FALSE
-//Checks if the item is being held by a mob, and if so, updates the held icons
+///Checks if the item is being held by a mob, and if so, updates the held icons
/obj/item/proc/update_held_icon()
if(isliving(src.loc))
var/mob/living/M = src.loc
@@ -203,7 +236,7 @@
//FIRELOSS = 2
//TOXLOSS = 4
//OXYLOSS = 8
-//Output a creative message and then return the damagetype done
+///Output a creative message and then return the damagetype done
/obj/item/proc/suicide_act(mob/user)
return
@@ -221,7 +254,7 @@
src.loc = T
-// See inventory_sizes.dm for the defines.
+/// See inventory_sizes.dm for the defines.
/obj/item/examine(mob/user)
. = ..()
var/size
@@ -241,7 +274,7 @@
/obj/item/attack_hand(mob/living/user as mob)
if (!user) return
if(anchored)
- to_chat(user, span("notice", "\The [src] won't budge, you can't pick it up!"))
+ to_chat(user, SPAN_NOTICE("\The [src] won't budge, you can't pick it up!"))
return
if (hasorgans(user))
var/mob/living/carbon/human/H = user
@@ -713,8 +746,8 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
/obj/item/proc/pwr_drain()
return 0 // Process Kill
-// Used for non-adjacent melee attacks with specific weapons capable of reaching more than one tile.
-// This uses changeling range string A* but for this purpose its also applicable.
+/// Used for non-adjacent melee attacks with specific weapons capable of reaching more than one tile.
+/// This uses changeling range string A* but for this purpose its also applicable.
/obj/item/proc/attack_can_reach(var/atom/us, var/atom/them, var/range)
if(us.Adjacent(them))
return TRUE // Already adjacent.
@@ -722,15 +755,15 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
return TRUE
return FALSE
-// Check if an object should ignite others, like a lit lighter or candle.
+/// Check if an object should ignite others, like a lit lighter or candle.
/obj/item/proc/is_hot()
return FALSE
-// Called when you swap hands away from the item
+/// Called when you swap hands away from the item
/obj/item/proc/in_inactive_hand(mob/user)
return
-//Worn icon generation for on-mob sprites
+/// Worn icon generation for on-mob sprites
/obj/item/proc/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer,var/icon/clip_mask = null)
//Get the required information about the base icon
var/icon/icon2use = get_worn_icon_file(body_type = body_type, slot_name = slot_name, default_icon = default_icon, inhands = inhands)
@@ -762,6 +795,9 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
if(istype(clip_mask)) //For taur bodies/tails clipping off parts of uniforms and suits.
standing.filters += filter(type = "alpha", icon = clip_mask)
+ if(istype(clip_mask)) //For taur bodies/tails clipping off parts of uniforms and suits.
+ standing.filters += filter(type = "alpha", icon = clip_mask)
+
//Apply any special features
if(!inhands)
apply_blood(standing) //Some items show blood when bloodied
diff --git a/code/game/objects/items/devices/advnifrepair.dm b/code/game/objects/items/devices/advnifrepair.dm
index dcbb23719b1..2a718103754 100644
--- a/code/game/objects/items/devices/advnifrepair.dm
+++ b/code/game/objects/items/devices/advnifrepair.dm
@@ -10,7 +10,7 @@
w_class = ITEMSIZE_SMALL
throw_speed = 5
throw_range = 10
- matter = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 6000)
+ matter = list(MAT_STEEL = 4000, MAT_GLASS = 6000)
origin_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5)
var/datum/reagents/supply
var/efficiency = 15 //How many units reagent per 1 unit nanopaste
diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm
index 988e43471c4..9c668a9031a 100644
--- a/code/game/objects/items/devices/aicard.dm
+++ b/code/game/objects/items/devices/aicard.dm
@@ -112,7 +112,7 @@
return 0
user.visible_message("\The [user] starts transferring \the [ai] into \the [src]...", "You start transferring \the [ai] into \the [src]...")
- show_message(span("critical", "\The [user] is transferring you into \the [src]!"))
+ show_message(SPAN_CRITICAL("\The [user] is transferring you into \the [src]!"))
if(do_after(user, 100))
if(istype(ai.loc, /turf/))
diff --git a/code/game/objects/items/devices/binoculars.dm b/code/game/objects/items/devices/binoculars.dm
index e0bce3dc773..05cb59e21c7 100644
--- a/code/game/objects/items/devices/binoculars.dm
+++ b/code/game/objects/items/devices/binoculars.dm
@@ -9,7 +9,7 @@
throw_range = 15
throw_speed = 3
- //matter = list("metal" = 50,"glass" = 50)
+ //matter = list("metal" = 50, MAT_GLASS = 50)
/obj/item/binoculars/attack_self(mob/user)
diff --git a/code/game/objects/items/devices/body_snatcher_vr.dm b/code/game/objects/items/devices/body_snatcher_vr.dm
index ccbb8b34aff..3724e25e1d0 100644
--- a/code/game/objects/items/devices/body_snatcher_vr.dm
+++ b/code/game/objects/items/devices/body_snatcher_vr.dm
@@ -7,7 +7,7 @@
item_state = "healthanalyzer"
slot_flags = SLOT_BELT
w_class = ITEMSIZE_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 200)
+ matter = list(MAT_STEEL = 200)
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2, TECH_ILLEGAL = 1)
/obj/item/bodysnatcher/Initialize(mapload)
diff --git a/code/game/objects/items/devices/communicator/communicator.dm b/code/game/objects/items/devices/communicator/communicator.dm
index faca5cd73d9..6870b5e08e0 100644
--- a/code/game/objects/items/devices/communicator/communicator.dm
+++ b/code/game/objects/items/devices/communicator/communicator.dm
@@ -26,7 +26,7 @@ var/global/list/obj/item/communicator/all_communicators = list()
show_messages = 1
origin_tech = list(TECH_ENGINEERING = 2, TECH_MAGNET = 2, TECH_BLUESPACE = 2, TECH_DATA = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 20)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 20)
var/video_range = 3
var/obj/machinery/camera/communicator/video_source // Their camera
diff --git a/code/game/objects/items/devices/debugger.dm b/code/game/objects/items/devices/debugger.dm
index 7d12d910132..b7e90d8fc86 100644
--- a/code/game/objects/items/devices/debugger.dm
+++ b/code/game/objects/items/devices/debugger.dm
@@ -16,7 +16,7 @@
throw_speed = 3
desc = "You can use this on airlocks or APCs to try to hack them without cutting wires."
- matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 20)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 20)
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1)
var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 138c6ea92bf..7e79e28815e 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -5,7 +5,7 @@
icon_state = "flashlight"
w_class = ITEMSIZE_SMALL
slot_flags = SLOT_BELT
- matter = list(DEFAULT_WALL_MATERIAL = 50, MAT_GLASS = 20)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 20)
action_button_name = "Toggle Flashlight"
var/on = FALSE
///Luminosity when on
@@ -280,7 +280,7 @@
slot_flags = SLOT_BELT
w_class = ITEMSIZE_SMALL
attack_verb = list ("smacked", "thwacked", "thunked")
- matter = list(DEFAULT_WALL_MATERIAL = 200, MAT_GLASS = 50)
+ matter = list(MAT_STEEL = 200, MAT_GLASS = 50)
hitsound = "swing_hit"
/obj/item/flashlight/drone
diff --git a/code/game/objects/items/devices/geiger.dm b/code/game/objects/items/devices/geiger.dm
index 5c4a5a7dcdc..aafca7bcbc6 100644
--- a/code/game/objects/items/devices/geiger.dm
+++ b/code/game/objects/items/devices/geiger.dm
@@ -13,7 +13,7 @@
var/radiation_count = 0
var/datum/looping_sound/geiger/soundloop
- matter = list(DEFAULT_WALL_MATERIAL = 200,"glass" = 100)
+ matter = list(MAT_STEEL = 200, MAT_GLASS = 100)
/obj/item/geiger/Initialize(mapload)
soundloop = new(list(src), FALSE)
diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm
index 281ea44dd5d..0b8feecc076 100644
--- a/code/game/objects/items/devices/gps.dm
+++ b/code/game/objects/items/devices/gps.dm
@@ -8,7 +8,7 @@ GLOBAL_LIST_EMPTY(GPS_list)
w_class = ITEMSIZE_TINY
slot_flags = SLOT_BELT
origin_tech = list(TECH_MATERIAL = 2, TECH_BLUESPACE = 2, TECH_MAGNET = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 500)
+ matter = list(MAT_STEEL = 500)
var/gps_tag = "GEN0"
var/emped = FALSE
var/tracking = FALSE // Will not show other signals or emit its own signal if false.
diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm
index 6dd05e424cb..bb219e84e9d 100644
--- a/code/game/objects/items/devices/laserpointer.dm
+++ b/code/game/objects/items/devices/laserpointer.dm
@@ -6,7 +6,7 @@
item_state = "pen"
var/pointer_icon_state
slot_flags = SLOT_BELT
- matter = list("glass" = 500,"metal" = 500)
+ matter = list(MAT_GLASS = 500,"metal" = 500)
w_class = 2 //Increased to 2, because diodes are w_class 2. Conservation of matter.
origin_tech = list(TECH_MAGNET = 2, TECH_COMBAT = 1)
var/turf/pointer_loc
diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index 8d369646a5c..bfcf88e70fd 100755
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -18,7 +18,7 @@
drop_sound = 'sound/items/drop/multitool.ogg'
pickup_sound = 'sound/items/pickup/multitool.ogg'
- matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 20)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 20)
var/mode_index = 1
var/toolmode = MULTITOOL_MODE_STANDARD
diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm
index ff077ca9fa5..574d599ceab 100644
--- a/code/game/objects/items/devices/powersink.dm
+++ b/code/game/objects/items/devices/powersink.dm
@@ -10,7 +10,7 @@
throw_speed = 1
throw_range = 2
- matter = list(DEFAULT_WALL_MATERIAL = 750)
+ matter = list(MAT_STEEL = 750)
origin_tech = list(TECH_POWER = 3, TECH_ILLEGAL = 5)
var/drain_rate = 1500000 // amount of power to drain per tick
diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm
index 8120cdaad47..4c4a2ac3122 100644
--- a/code/game/objects/items/devices/radio/electropack.dm
+++ b/code/game/objects/items/devices/radio/electropack.dm
@@ -11,7 +11,7 @@
slot_flags = SLOT_BACK
w_class = ITEMSIZE_HUGE
- matter = list(DEFAULT_WALL_MATERIAL = 10000,"glass" = 2500)
+ matter = list(MAT_STEEL = 10000, MAT_GLASS = 2500)
var/code = 2
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 83533bbee1c..9e53a94f467 100755
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -4,7 +4,7 @@
var/radio_desc = ""
icon_state = "headset"
item_state = null // To remove the radio's state
- matter = list(DEFAULT_WALL_MATERIAL = 75)
+ matter = list(MAT_STEEL = 75)
subspace_transmission = 1
canhear_range = 0 // Can't hear headsets from very far away
slot_flags = SLOT_EARS
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 001deeb410d..ca315c1d5f4 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -66,7 +66,7 @@ GLOBAL_LIST_INIT(default_medbay_channels, list(
var/bs_tx_preload_id
var/bs_rx_preload_id
- matter = list("glass" = 25,DEFAULT_WALL_MATERIAL = 75)
+ matter = list(MAT_GLASS = 25,MAT_STEEL = 75)
var/const/FREQ_LISTENING = 1
var/list/internal_channels
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index ec5880c90c8..47cd6918b0e 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -21,7 +21,7 @@ HALOGEN COUNTER - Radcount on mobs
w_class = ITEMSIZE_SMALL
throw_speed = 5
throw_range = 10
- matter = list(DEFAULT_WALL_MATERIAL = 200)
+ matter = list(MAT_STEEL = 200)
origin_tech = list(TECH_MAGNET = 1, TECH_BIO = 1)
var/mode = 1;
var/advscan = 0
@@ -343,7 +343,7 @@ HALOGEN COUNTER - Radcount on mobs
throw_speed = 4
throw_range = 20
- matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 20)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 20)
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1)
@@ -363,7 +363,7 @@ HALOGEN COUNTER - Radcount on mobs
throwforce = 5
throw_speed = 4
throw_range = 20
- matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 20)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 20)
origin_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 3)
/obj/item/analyzer/atmosanalyze(var/mob/user)
@@ -408,7 +408,7 @@ HALOGEN COUNTER - Radcount on mobs
throw_speed = 4
throw_range = 20
- matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 20)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 20)
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
var/details = 0
@@ -469,7 +469,7 @@ HALOGEN COUNTER - Radcount on mobs
throwforce = 5
throw_speed = 4
throw_range = 20
- matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 20)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 20)
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
var/details = 0
@@ -483,20 +483,20 @@ HALOGEN COUNTER - Radcount on mobs
if(!isnull(O.reagents))
if(!(O.flags & OPENCONTAINER)) // The idea is that the scanner has to touch the reagents somehow. This is done to prevent cheesing unidentified autoinjectors.
- to_chat(user, span("warning", "\The [O] is sealed, and cannot be scanned by \the [src] until unsealed."))
+ to_chat(user, SPAN_WARNING( "\The [O] is sealed, and cannot be scanned by \the [src] until unsealed."))
return
var/dat = ""
if(O.reagents.reagent_list.len > 0)
var/one_percent = O.reagents.total_volume / 100
for (var/datum/reagent/R in O.reagents.reagent_list)
- dat += "\n \t " + span("notice", "[R][details ? ": [R.volume / one_percent]%" : ""]")
+ dat += "\n \t " + SPAN_NOTICE("[R][details ? ": [R.volume / one_percent]%" : ""]")
if(dat)
- to_chat(user, span("notice", "Chemicals found: [dat]"))
+ to_chat(user, SPAN_NOTICE("Chemicals found: [dat]"))
else
- to_chat(user, span("notice", "No active chemical agents found in [O]."))
+ to_chat(user, SPAN_NOTICE("No active chemical agents found in [O]."))
else
- to_chat(user, span("notice", "No significant chemical agents found in [O]."))
+ to_chat(user, SPAN_NOTICE("No significant chemical agents found in [O]."))
return
@@ -521,7 +521,7 @@ HALOGEN COUNTER - Radcount on mobs
throwforce = 0
throw_speed = 3
throw_range = 7
- matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 20)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 20)
/obj/item/slime_scanner/attack(mob/living/M as mob, mob/living/user as mob)
if(!istype(M, /mob/living/simple_mob/slime/xenobio))
diff --git a/code/game/objects/items/devices/scanners_vr.dm b/code/game/objects/items/devices/scanners_vr.dm
index f930b5dbf79..4009b16a8de 100644
--- a/code/game/objects/items/devices/scanners_vr.dm
+++ b/code/game/objects/items/devices/scanners_vr.dm
@@ -12,7 +12,7 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
w_class = ITEMSIZE_SMALL
throw_speed = 5
throw_range = 10
- matter = list(DEFAULT_WALL_MATERIAL = 200)
+ matter = list(MAT_STEEL = 200)
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
var/datum/mind/stored_mind
diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm
index 76be20b1995..78fadd22974 100644
--- a/code/game/objects/items/devices/suit_cooling.dm
+++ b/code/game/objects/items/devices/suit_cooling.dm
@@ -13,7 +13,7 @@
throw_range = 4
action_button_name = "Toggle Heatsink"
- matter = list("steel" = 15000, "glass" = 3500)
+ matter = list(MAT_STEEL = 15000, MAT_GLASS = 3500)
origin_tech = list(TECH_MAGNET = 2, TECH_MATERIAL = 2)
var/on = 0 //is it turned on?
diff --git a/code/game/objects/items/devices/t_scanner.dm b/code/game/objects/items/devices/t_scanner.dm
index 7f7250846c6..0d95d9227f4 100644
--- a/code/game/objects/items/devices/t_scanner.dm
+++ b/code/game/objects/items/devices/t_scanner.dm
@@ -8,7 +8,7 @@
item_state = "t-ray"
slot_flags = SLOT_BELT
w_class = ITEMSIZE_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 150)
+ matter = list(MAT_STEEL = 150)
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1)
var/scan_range = 1
@@ -140,14 +140,14 @@
/obj/item/t_scanner/upgraded
name = "Upgraded T-ray Scanner"
desc = "An upgraded version of the terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes."
- matter = list(DEFAULT_WALL_MATERIAL = 500, PHORON = 150)
+ matter = list(MAT_STEEL = 500, PHORON = 150)
origin_tech = list(TECH_MAGNET = 4, TECH_ENGINEERING = 5)
scan_range = 3
/obj/item/t_scanner/advanced
name = "Advanced T-ray Scanner"
desc = "An advanced version of the terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes."
- matter = list(DEFAULT_WALL_MATERIAL = 1500, PHORON = 200, SILVER = 250)
+ matter = list(MAT_STEEL = 1500, PHORON = 200, SILVER = 250)
origin_tech = list(TECH_MAGNET = 7, TECH_ENGINEERING = 7, TECH_MATERIAL = 6)
scan_range = 7
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index 3e0d8b835d2..b5af576d138 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -6,7 +6,7 @@
icon = 'icons/obj/device.dmi'
w_class = ITEMSIZE_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 60,"glass" = 30)
+ matter = list(MAT_STEEL = 60, MAT_GLASS = 30)
var/emagged = 0.0
var/recording = 0.0
@@ -368,7 +368,7 @@
icon_state = "tape_white"
item_state = "analyzer"
w_class = ITEMSIZE_TINY
- matter = list(DEFAULT_WALL_MATERIAL=20, "glass"=5)
+ matter = list(MAT_STEEL=20, "glass"=5)
force = 1
throwforce = 0
var/max_capacity = 1800
diff --git a/code/game/objects/items/glassjar.dm b/code/game/objects/items/glassjar.dm
index a43978b7b92..83afa907fbb 100644
--- a/code/game/objects/items/glassjar.dm
+++ b/code/game/objects/items/glassjar.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/items.dmi'
icon_state = "jar"
w_class = ITEMSIZE_SMALL
- matter = list("glass" = 200)
+ matter = list(MAT_GLASS = 200)
flags = NOBLUDGEON
var/list/accept_mobs = list(/mob/living/simple_mob/animal/passive/lizard, /mob/living/simple_mob/animal/passive/mouse, /mob/living/simple_mob/animal/sif/leech, /mob/living/simple_mob/animal/sif/frostfly, /mob/living/simple_mob/animal/sif/glitterfly)
var/contains = 0 // 0 = nothing, 1 = money, 2 = animal, 3 = spiderling
diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index ca77de1bc6d..44770074d3b 100644
--- a/code/game/objects/items/robot/robot_parts.dm
+++ b/code/game/objects/items/robot/robot_parts.dm
@@ -94,7 +94,7 @@
/obj/item/robot_parts/robot_suit/attackby(obj/item/W as obj, mob/user as mob)
..()
- if(istype(W, /obj/item/stack/material) && W.get_material_name() == DEFAULT_WALL_MATERIAL && !l_arm && !r_arm && !l_leg && !r_leg && !chest && !head)
+ if(istype(W, /obj/item/stack/material) && W.get_material_name() == MAT_STEEL && !l_arm && !r_arm && !l_leg && !r_leg && !chest && !head)
var/obj/item/stack/material/M = W
if (M.use(1))
var/obj/item/secbot_assembly/ed209_assembly/B = new /obj/item/secbot_assembly/ed209_assembly
diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm
index 7a0875ced87..2f8fefb8103 100644
--- a/code/game/objects/items/stacks/rods.dm
+++ b/code/game/objects/items/stacks/rods.dm
@@ -10,7 +10,7 @@
throw_range = 20
drop_sound = 'sound/items/drop/metalweapon.ogg'
pickup_sound = 'sound/items/pickup/metalweapon.ogg'
- matter = list(DEFAULT_WALL_MATERIAL = SHEET_MATERIAL_AMOUNT / 2)
+ matter = list(MAT_STEEL = SHEET_MATERIAL_AMOUNT / 2)
max_amount = 60
attack_verb = list("hit", "bludgeoned", "whacked")
diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm
index ca7611070bf..0aa3fbdd253 100644
--- a/code/game/objects/items/stacks/sheets/leather.dm
+++ b/code/game/objects/items/stacks/sheets/leather.dm
@@ -225,4 +225,3 @@
HS.amount = 1
wetness = initial(wetness)
src.use(1)
-
diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm
index f275ad9d025..83815c7e7ca 100644
--- a/code/game/objects/items/stacks/tiles/tile_types.dm
+++ b/code/game/objects/items/stacks/tiles/tile_types.dm
@@ -143,7 +143,7 @@ var/global/list/datum/stack_recipe/grass_recipes = list( \
desc = "A metal tile fit for covering a section of floor."
icon_state = "tile"
force = 6.0
- matter = list(DEFAULT_WALL_MATERIAL = SHEET_MATERIAL_AMOUNT / 4)
+ matter = list(MAT_STEEL = SHEET_MATERIAL_AMOUNT / 4)
throwforce = 15.0
throw_speed = 5
throw_range = 20
@@ -172,21 +172,21 @@ var/global/list/datum/stack_recipe/grass_recipes = list( \
name = "steel floor tile"
singular_name = "steel floor tile"
icon_state = "tile_steel"
- matter = list("plasteel" = SHEET_MATERIAL_AMOUNT / 4)
+ matter = list(MAT_PLASTEEL = SHEET_MATERIAL_AMOUNT / 4)
no_variants = FALSE
/obj/item/stack/tile/floor/steel
name = "steel floor tile"
singular_name = "steel floor tile"
icon_state = "tile_steel"
- matter = list("plasteel" = SHEET_MATERIAL_AMOUNT / 4)
+ matter = list(MAT_PLASTEEL = SHEET_MATERIAL_AMOUNT / 4)
no_variants = FALSE
/obj/item/stack/tile/floor/white
name = "white floor tile"
singular_name = "white floor tile"
icon_state = "tile_white"
- matter = list("plastic" = SHEET_MATERIAL_AMOUNT / 4)
+ matter = list(MAT_PLASTIC = SHEET_MATERIAL_AMOUNT / 4)
no_variants = FALSE
/obj/item/stack/tile/floor/yellow
@@ -200,14 +200,14 @@ var/global/list/datum/stack_recipe/grass_recipes = list( \
name = "dark floor tile"
singular_name = "dark floor tile"
icon_state = "tile_steel"
- matter = list("plasteel" = SHEET_MATERIAL_AMOUNT / 4)
+ matter = list(MAT_PLASTEEL = SHEET_MATERIAL_AMOUNT / 4)
no_variants = FALSE
/obj/item/stack/tile/floor/freezer
name = "freezer floor tile"
singular_name = "freezer floor tile"
icon_state = "tile_freezer"
- matter = list("plastic" = SHEET_MATERIAL_AMOUNT / 4)
+ matter = list(MAT_PLASTIC = SHEET_MATERIAL_AMOUNT / 4)
no_variants = FALSE
/obj/item/stack/tile/floor/cyborg
diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm
index 70b60d4edac..3536ce405f5 100644
--- a/code/game/objects/items/weapons/RCD.dm
+++ b/code/game/objects/items/weapons/RCD.dm
@@ -18,7 +18,7 @@
throw_range = 5
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 50000)
+ matter = list(MAT_STEEL = 50000)
preserve_item = TRUE // RCDs are pretty important.
var/datum/effect_system/spark_spread/spark_system
var/stored_matter = 0
@@ -31,7 +31,7 @@
var/can_remove_rwalls = FALSE
var/airlock_type = /obj/machinery/door/airlock
var/window_type = /obj/structure/window/reinforced/full
- var/material_to_use = DEFAULT_WALL_MATERIAL // So badmins can make RCDs that print diamond walls.
+ var/material_to_use = MAT_STEEL // So badmins can make RCDs that print diamond walls.
var/make_rwalls = FALSE // If true, when building walls, they will be reinforced.
var/ammostate
var/list/effects = list()
@@ -82,16 +82,16 @@
var/obj/item/rcd_ammo/cartridge = W
var/can_store = min(max_stored_matter - stored_matter, cartridge.remaining)
if(can_store <= 0)
- to_chat(user, span("warning", "There's either no space or \the [cartridge] is empty!"))
+ to_chat(user, SPAN_WARNING( "There's either no space or \the [cartridge] is empty!"))
return FALSE
stored_matter += can_store
cartridge.remaining -= can_store
if(!cartridge.remaining)
- to_chat(user, span("warning", "\The [cartridge] dissolves as it empties of compressed matter."))
+ to_chat(user, SPAN_WARNING( "\The [cartridge] dissolves as it empties of compressed matter."))
user.drop_from_inventory(W)
qdel(W)
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
- to_chat(user, span("notice", "The RCD now holds [stored_matter]/[max_stored_matter] matter-units."))
+ to_chat(user, SPAN_NOTICE("The RCD now holds [stored_matter]/[max_stored_matter] matter-units."))
update_icon()
return TRUE
return ..()
@@ -189,16 +189,16 @@
// Used to call rcd_act() on the atom hit.
/obj/item/rcd/proc/use_rcd(atom/A, mob/living/user)
if(busy && !allow_concurrent_building)
- to_chat(user, span("warning", "\The [src] is busy finishing its current operation, be patient."))
+ to_chat(user, SPAN_WARNING( "\The [src] is busy finishing its current operation, be patient."))
return FALSE
var/list/rcd_results = A.rcd_values(user, src, modes[mode_index])
if(!rcd_results)
- to_chat(user, span("warning", "\The [src] blinks a red light as you point it towards \the [A], indicating \
+ to_chat(user, SPAN_WARNING( "\The [src] blinks a red light as you point it towards \the [A], indicating \
that it won't work. Try changing the mode, or use it on something else."))
return FALSE
if(!can_afford(rcd_results[RCD_VALUE_COST]))
- to_chat(user, span("warning", "\The [src] lacks the required material to start."))
+ to_chat(user, SPAN_WARNING( "\The [src] lacks the required material to start."))
return FALSE
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
@@ -218,7 +218,7 @@
busy = FALSE
// Doing another check in case we lost matter during the delay for whatever reason.
if(!can_afford(rcd_results[RCD_VALUE_COST]))
- to_chat(user, span("warning", "\The [src] lacks the required material to finish the operation."))
+ to_chat(user, SPAN_WARNING( "\The [src] lacks the required material to finish the operation."))
return FALSE
if(A.rcd_act(user, src, rcd_results[RCD_VALUE_MODE]))
consume_resources(rcd_results[RCD_VALUE_COST])
@@ -367,7 +367,7 @@
else
mode_index++
- to_chat(user, span("notice", "Changed mode to '[modes[mode_index]]'."))
+ to_chat(user, SPAN_NOTICE("Changed mode to '[modes[mode_index]]'."))
playsound(src.loc, 'sound/effects/pop.ogg', 50, 0)
if(prob(20))
@@ -397,7 +397,7 @@
/obj/item/rcd/debug/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/rcd_ammo))
- to_chat(user, span("notice", "\The [src] makes its own material, no need to add more."))
+ to_chat(user, SPAN_NOTICE("\The [src] makes its own material, no need to add more."))
return FALSE
return ..()
@@ -418,13 +418,13 @@
w_class = ITEMSIZE_SMALL
origin_tech = list(TECH_MATERIAL = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 30000,"glass" = 15000)
+ matter = list(MAT_STEEL = 30000, MAT_GLASS = 15000)
var/remaining = RCD_MAX_CAPACITY / 3
/obj/item/rcd_ammo/large
name = "high-capacity matter cartridge"
desc = "Do not ingest."
- matter = list(DEFAULT_WALL_MATERIAL = 45000,"glass" = 22500)
+ matter = list(MAT_STEEL = 45000, MAT_GLASS = 22500)
origin_tech = list(TECH_MATERIAL = 4)
remaining = RCD_MAX_CAPACITY
diff --git a/code/game/objects/items/weapons/barrier_tape.dm b/code/game/objects/items/weapons/barrier_tape.dm
index 1bbc07f5d40..57453749476 100644
--- a/code/game/objects/items/weapons/barrier_tape.dm
+++ b/code/game/objects/items/weapons/barrier_tape.dm
@@ -323,7 +323,7 @@ var/list/tape_roll_applications = list()
var/mob/living/M = AM //so that ghosts don't get spammed
add_fingerprint(M)
if(!allowed(M)) //only select few learn art of not crumpling the tape
- to_chat(M, span("warning", "You are not supposed to go past \the [src]..."))
+ to_chat(M, SPAN_WARNING( "You are not supposed to go past \the [src]..."))
if(M.a_intent == INTENT_HELP && !(istype(M, /mob/living/simple_mob)))
return FALSE
crumple()
diff --git a/code/game/objects/items/weapons/circuitboards/circuitboards_vr.dm b/code/game/objects/items/weapons/circuitboards/circuitboards_vr.dm
index 521765bffbe..e2ef5d3a96e 100644
--- a/code/game/objects/items/weapons/circuitboards/circuitboards_vr.dm
+++ b/code/game/objects/items/weapons/circuitboards/circuitboards_vr.dm
@@ -52,11 +52,11 @@
name = T_BOARD("timeclock")
build_path = /obj/machinery/computer/timeclock
board_type = new /datum/frame/frame_types/timeclock_terminal
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
// Board for the ID restorer in id_restorer_vr.dm
/obj/item/circuitboard/id_restorer
name = T_BOARD("ID restoration console")
build_path = /obj/machinery/computer/id_restorer
board_type = new /datum/frame/frame_types/id_restorer
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
diff --git a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm
index 32041ae7c16..80313f6828c 100644
--- a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm
+++ b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm
@@ -37,7 +37,7 @@
name = T_BOARD("entertainment camera monitor")
build_path = /obj/machinery/computer/security/telescreen/entertainment
board_type = new /datum/frame/frame_types/display
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/circuitboard/security/telescreen/entertainment/Initialize(mapload)
. = ..()
diff --git a/code/game/objects/items/weapons/circuitboards/frame.dm b/code/game/objects/items/weapons/circuitboards/frame.dm
index 60b4f5ee5d4..066d5ad65b8 100644
--- a/code/game/objects/items/weapons/circuitboards/frame.dm
+++ b/code/game/objects/items/weapons/circuitboards/frame.dm
@@ -10,37 +10,37 @@
name = T_BOARD("guestpass console")
build_path = /obj/machinery/computer/guestpass
board_type = new /datum/frame/frame_types/guest_pass_console
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/circuitboard/status_display
name = T_BOARD("status display")
build_path = /obj/machinery/status_display
board_type = new /datum/frame/frame_types/display
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/circuitboard/ai_status_display
name = T_BOARD("ai status display")
build_path = /obj/machinery/ai_status_display
board_type = new /datum/frame/frame_types/display
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/circuitboard/newscaster
name = T_BOARD("newscaster")
build_path = /obj/machinery/newscaster
board_type = new /datum/frame/frame_types/newscaster
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/circuitboard/atm
name = T_BOARD("atm")
build_path = /obj/machinery/atm
board_type = new /datum/frame/frame_types/atm
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/circuitboard/request
name = T_BOARD("request console")
build_path = /obj/machinery/requests_console
board_type = new /datum/frame/frame_types/supply_request_console
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
//Alarm
@@ -48,25 +48,25 @@
name = T_BOARD("fire alarm")
build_path = /obj/machinery/firealarm
board_type = new /datum/frame/frame_types/fire_alarm
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/circuitboard/airalarm
name = T_BOARD("air alarm")
build_path = /obj/machinery/alarm
board_type = new /datum/frame/frame_types/air_alarm
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/circuitboard/intercom
name = T_BOARD("intercom")
build_path = /obj/item/radio/intercom
board_type = new /datum/frame/frame_types/intercom
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/circuitboard/keycard_auth
name = T_BOARD("keycard authenticator")
build_path = /obj/machinery/keycard_auth
board_type = new /datum/frame/frame_types/keycard_authenticator
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
//Computer
@@ -74,7 +74,7 @@
name = T_BOARD("holopad")
build_path = /obj/machinery/hologram/holopad
board_type = new /datum/frame/frame_types/holopad
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
/obj/item/circuitboard/scanner_console
name = T_BOARD("body scanner console")
@@ -94,7 +94,7 @@
name = T_BOARD("photocopier")
build_path = /obj/machinery/photocopier
board_type = new /datum/frame/frame_types/photocopier
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
req_components = list(
/obj/item/stock_parts/scanning_module = 1,
/obj/item/stock_parts/motor = 1,
@@ -105,7 +105,7 @@
name = T_BOARD("fax")
build_path = /obj/machinery/photocopier/faxmachine
board_type = new /datum/frame/frame_types/fax
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
req_components = list(
/obj/item/stock_parts/scanning_module = 1,
/obj/item/stock_parts/motor = 1,
@@ -125,7 +125,7 @@
name = T_BOARD("microwave")
build_path = /obj/machinery/microwave
board_type = new /datum/frame/frame_types/microwave
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
req_components = list(
/obj/item/stock_parts/console_screen = 1,
/obj/item/stock_parts/motor = 1,
@@ -156,7 +156,7 @@
name = T_BOARD("washing machine")
build_path = /obj/machinery/washing_machine
board_type = new /datum/frame/frame_types/washing_machine
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
req_components = list(
/obj/item/stock_parts/motor = 1,
/obj/item/stock_parts/gear = 2)
diff --git a/code/game/objects/items/weapons/circuitboards/machinery/engineering.dm b/code/game/objects/items/weapons/circuitboards/machinery/engineering.dm
index 14a94ab8118..c31faab2a39 100644
--- a/code/game/objects/items/weapons/circuitboards/machinery/engineering.dm
+++ b/code/game/objects/items/weapons/circuitboards/machinery/engineering.dm
@@ -6,7 +6,7 @@
name = T_BOARD("pipe layer")
build_path = /obj/machinery/pipelayer
board_type = new /datum/frame/frame_types/machine
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
req_components = list(
/obj/item/stock_parts/motor = 1,
/obj/item/stock_parts/gear = 1,
diff --git a/code/game/objects/items/weapons/circuitboards/machinery/papershredder.dm b/code/game/objects/items/weapons/circuitboards/machinery/papershredder.dm
index 1c7ea2420dc..ddb45b0247c 100644
--- a/code/game/objects/items/weapons/circuitboards/machinery/papershredder.dm
+++ b/code/game/objects/items/weapons/circuitboards/machinery/papershredder.dm
@@ -6,7 +6,7 @@
name = T_BOARD("papershredder")
build_path = /obj/machinery/papershredder
board_type = new /datum/frame/frame_types/machine
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
req_components = list(
/obj/item/stock_parts/motor = 1,
/obj/item/stock_parts/gear = 2,
diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm
index 748da1636b1..ed485f2de69 100644
--- a/code/game/objects/items/weapons/extinguisher.dm
+++ b/code/game/objects/items/weapons/extinguisher.dm
@@ -10,7 +10,7 @@
throw_speed = 2
throw_range = 10
force = 10
- matter = list(DEFAULT_WALL_MATERIAL = 90)
+ matter = list(MAT_STEEL = 90)
attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed")
drop_sound = 'sound/items/drop/gascan.ogg'
pickup_sound = 'sound/items/pickup/gascan.ogg'
diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm
index 4351171fb11..e6256b66505 100644
--- a/code/game/objects/items/weapons/flamethrower.dm
+++ b/code/game/objects/items/weapons/flamethrower.dm
@@ -14,7 +14,7 @@
throw_range = 5
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_COMBAT = 1, TECH_PHORON = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 500)
+ matter = list(MAT_STEEL = 500)
var/status = 0
var/throw_amount = 100
var/lit = 0 //on or off
diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm
index 78e7c0719be..464b655f474 100644
--- a/code/game/objects/items/weapons/handcuffs.dm
+++ b/code/game/objects/items/weapons/handcuffs.dm
@@ -10,7 +10,7 @@
throw_speed = 2
throw_range = 5
origin_tech = list(TECH_MATERIAL = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 500)
+ matter = list(MAT_STEEL = 500)
drop_sound = 'sound/items/drop/accessory.ogg'
pickup_sound = 'sound/items/pickup/accessory.ogg'
var/elastic
@@ -240,7 +240,7 @@ var/last_chew = 0
origin_tech = list(TECH_MATERIAL = 1)
breakouttime = 300 //Deciseconds = 30s = 0.5 minute
cuff_type = "legcuffs"
- sprite_sheets = list("Teshari" = 'icons/mob/species/teshari/handcuffs.dmi')
+ sprite_sheets = list(SPECIES_TESHARI = 'icons/mob/species/teshari/handcuffs.dmi')
elastic = 0
cuff_sound = 'sound/weapons/handcuffs.ogg' //This shold work for now.
diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm
index c1aac7791b7..2f556a2ffed 100644
--- a/code/game/objects/items/weapons/implants/implantchair.dm
+++ b/code/game/objects/items/weapons/implants/implantchair.dm
@@ -80,7 +80,7 @@
if(!ismob(grab.affecting))
return
if(grab.affecting.has_buckled_mobs())
- to_chat(user, span("warning", "\The [grab.affecting] has other entities attached to them. Remove them first."))
+ to_chat(user, SPAN_WARNING( "\The [grab.affecting] has other entities attached to them. Remove them first."))
return
var/mob/M = grab.affecting
if(put_mob(M))
diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm
index b15b7be27a0..b5dee7039ce 100644
--- a/code/game/objects/items/weapons/implants/implanter.dm
+++ b/code/game/objects/items/weapons/implants/implanter.dm
@@ -6,7 +6,7 @@
throw_speed = 1
throw_range = 5
w_class = ITEMSIZE_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 1000)
+ matter = list(MAT_STEEL = 1000, MAT_GLASS = 1000)
var/obj/item/implant/imp = null
var/active = 1
diff --git a/code/game/objects/items/weapons/improvised_components.dm b/code/game/objects/items/weapons/improvised_components.dm
index 20d0775cbd7..2df852f0f2f 100644
--- a/code/game/objects/items/weapons/improvised_components.dm
+++ b/code/game/objects/items/weapons/improvised_components.dm
@@ -143,7 +143,7 @@
if(istype(thing, /obj/item/stack/material) && construction_stage == 5)
var/obj/item/stack/material/reinforcing = thing
var/datum/material/reinforcing_with = reinforcing.get_material()
- if(reinforcing_with.name == DEFAULT_WALL_MATERIAL) // Steel
+ if(reinforcing_with.name == MAT_STEEL) // Steel
if(reinforcing.get_amount() < 3)
to_chat(user, "You need at least 3 [reinforcing.singular_name]\s for this task.")
return
diff --git a/code/game/objects/items/weapons/material/knives.dm b/code/game/objects/items/weapons/material/knives.dm
index ca570655079..27d2baefb10 100644
--- a/code/game/objects/items/weapons/material/knives.dm
+++ b/code/game/objects/items/weapons/material/knives.dm
@@ -76,7 +76,7 @@
sharp = 1
edge = 1
force_divisor = 0.15 // 9 when wielded with hardness 60 (steel)
- matter = list(DEFAULT_WALL_MATERIAL = 12000)
+ matter = list(MAT_STEEL = 12000)
origin_tech = list(TECH_MATERIAL = 1)
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
@@ -182,7 +182,7 @@
return FALSE
/obj/item/material/knife/machete/armblade/rig
- default_material = DEFAULT_WALL_MATERIAL
+ default_material = MAT_STEEL
canremove = FALSE
var/obj/item/rig_module/armblade/storing_module
diff --git a/code/game/objects/items/weapons/material/material_armor.dm b/code/game/objects/items/weapons/material/material_armor.dm
index 9a130fa78cf..10e29428bf2 100644
--- a/code/game/objects/items/weapons/material/material_armor.dm
+++ b/code/game/objects/items/weapons/material/material_armor.dm
@@ -196,7 +196,7 @@ Protectiveness | Armor %
/obj/item/clothing/suit/armor/material
name = "armor"
- default_material = DEFAULT_WALL_MATERIAL
+ default_material = MAT_STEEL
/obj/item/clothing/suit/armor/material/makeshift
name = "sheet armor"
@@ -282,7 +282,7 @@ Protectiveness | Armor %
/obj/item/clothing/head/helmet/material
name = "helmet"
flags_inv = HIDEEARS|HIDEEYES|BLOCKHAIR
- default_material = DEFAULT_WALL_MATERIAL
+ default_material = MAT_STEEL
/obj/item/clothing/head/helmet/material/makeshift
name = "bucket"
diff --git a/code/game/objects/items/weapons/material/material_weapons.dm b/code/game/objects/items/weapons/material/material_weapons.dm
index 1f10b562ec3..5d5386cb757 100644
--- a/code/game/objects/items/weapons/material/material_weapons.dm
+++ b/code/game/objects/items/weapons/material/material_weapons.dm
@@ -24,7 +24,7 @@
var/force_divisor = 0.3
var/thrown_force_divisor = 0.3
var/dulled_divisor = 0.1 //Just drops the damage to a tenth
- var/default_material = DEFAULT_WALL_MATERIAL
+ var/default_material = MAT_STEEL
var/datum/material/material
var/drops_debris = 1
diff --git a/code/game/objects/items/weapons/material/swords.dm b/code/game/objects/items/weapons/material/swords.dm
index 1b4e22cd539..c886e8e12bd 100644
--- a/code/game/objects/items/weapons/material/swords.dm
+++ b/code/game/objects/items/weapons/material/swords.dm
@@ -38,7 +38,7 @@
/obj/item/material/sword/katana/suicide_act(mob/user)
var/datum/gender/TU = gender_datums[user.get_visible_gender()]
- visible_message(span("danger", "[user] is slitting [TU.his] stomach open with \the [src.name]! It looks like [TU.hes] trying to commit seppuku."), span("danger", "You slit your stomach open with \the [src.name]!"), span("danger", "You hear the sound of flesh tearing open.")) // gory, but it gets the point across
+ visible_message(SPAN_DANGER("[user] is slitting [TU.his] stomach open with \the [src.name]! It looks like [TU.hes] trying to commit seppuku."), SPAN_DANGER("You slit your stomach open with \the [src.name]!"), SPAN_DANGER("You hear the sound of flesh tearing open.")) // gory, but it gets the point across
return(BRUTELOSS)
/obj/item/material/sword/katana/plasteel
diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm
index 99fb6342860..6544abb000d 100644
--- a/code/game/objects/items/weapons/melee/misc.dm
+++ b/code/game/objects/items/weapons/melee/misc.dm
@@ -12,7 +12,7 @@
/obj/item/melee/chainofcommand/suicide_act(mob/user)
var/datum/gender/T = gender_datums[user.get_visible_gender()]
- user.visible_message(span("danger", "\The [user] [T.is] strangling [T.himself] with \the [src]! It looks like [T.he] [T.is] trying to commit suicide."), span("danger", "You start to strangle yourself with \the [src]!"), span("danger", "You hear the sound of someone choking!"))
+ user.visible_message(SPAN_DANGER("\The [user] [T.is] strangling [T.himself] with \the [src]! It looks like [T.he] [T.is] trying to commit suicide."), SPAN_DANGER("You start to strangle yourself with \the [src]!"), SPAN_DANGER("You hear the sound of someone choking!"))
return (OXYLOSS)
/obj/item/melee/sabre
@@ -29,7 +29,7 @@
/obj/item/melee/sabre/suicide_act(mob/user)
var/datum/gender/TU = gender_datums[user.get_visible_gender()]
- visible_message(span("danger", "[user] is slitting [TU.his] stomach open with \the [src.name]! It looks like [TU.hes] trying to commit seppuku."), span("danger", "You slit your stomach open with \the [src.name]!"), span("danger", "You hear the sound of flesh tearing open.")) // gory, but it gets the point across
+ visible_message(SPAN_DANGER("[user] is slitting [TU.his] stomach open with \the [src.name]! It looks like [TU.hes] trying to commit seppuku."), SPAN_DANGER("You slit your stomach open with \the [src.name]!"), SPAN_DANGER("You hear the sound of flesh tearing open.")) // gory, but it gets the point across
return(BRUTELOSS)
/obj/item/melee/umbrella
diff --git a/code/game/objects/items/weapons/paint.dm b/code/game/objects/items/weapons/paint.dm
index 4dad09b19eb..b7e833056d0 100644
--- a/code/game/objects/items/weapons/paint.dm
+++ b/code/game/objects/items/weapons/paint.dm
@@ -9,7 +9,7 @@ var/global/list/cached_icons = list()
icon = 'icons/obj/items.dmi'
icon_state = "paint_neutral"
item_state = "paintcan"
- matter = list(DEFAULT_WALL_MATERIAL = 200)
+ matter = list(MAT_STEEL = 200)
w_class = ITEMSIZE_NORMAL
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(10,20,30,60)
@@ -67,4 +67,3 @@ var/global/list/cached_icons = list()
white
icon_state = "paint_white"
paint_type = "white"
-
diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm
index 016d458c738..788a98e2493 100644
--- a/code/game/objects/items/weapons/shields.dm
+++ b/code/game/objects/items/weapons/shields.dm
@@ -68,7 +68,7 @@
throw_range = 4
w_class = ITEMSIZE_LARGE
origin_tech = list(TECH_MATERIAL = 2)
- matter = list("glass" = 7500, DEFAULT_WALL_MATERIAL = 1000)
+ matter = list(MAT_GLASS = 7500, MAT_STEEL = 1000)
attack_verb = list("shoved", "bashed")
var/cooldown = 0 //shield bash cooldown. based on world.time
@@ -260,7 +260,7 @@
icon = 'icons/obj/weapons.dmi'
icon_state = "roman_shield"
slot_flags = SLOT_BACK
- matter = list("wood" = 7500, DEFAULT_WALL_MATERIAL = 1000)
+ matter = list(MAT_WOOD = 7500, MAT_STEEL = 1000)
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_melee.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_melee.dmi',
@@ -272,7 +272,7 @@
icon = 'icons/obj/weapons.dmi'
icon_state = "buckler"
slot_flags = SLOT_BACK | SLOT_BELT
- matter = list("wood" = 7500, DEFAULT_WALL_MATERIAL = 1000)
+ matter = list(MAT_WOOD = 7500, MAT_STEEL = 1000)
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_melee.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_melee.dmi',
@@ -478,7 +478,7 @@
throwforce = 0
throw_speed = 2
throw_range = 6
- matter = list("plastic" = 7500, "foam" = 1000)
+ matter = list(MAT_PLASTIC = 7500, "foam" = 1000)
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_melee.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_melee.dmi',
diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm
index 9961ad40fc6..3ed00eb5a90 100644
--- a/code/game/objects/items/weapons/surgery_tools.dm
+++ b/code/game/objects/items/weapons/surgery_tools.dm
@@ -30,7 +30,7 @@
name = "retractor"
desc = "Retracts stuff."
icon_state = "retractor"
- matter = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 5000)
+ matter = list(MAT_STEEL = 10000, MAT_GLASS = 5000)
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
/*
@@ -40,7 +40,7 @@
name = "hemostat"
desc = "You think you have seen this before."
icon_state = "hemostat"
- matter = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 2500)
+ matter = list(MAT_STEEL = 5000, MAT_GLASS = 2500)
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
attack_verb = list("attacked", "pinched")
@@ -51,7 +51,7 @@
name = "cautery"
desc = "This stops bleeding."
icon_state = "cautery"
- matter = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 2500)
+ matter = list(MAT_STEEL = 5000, MAT_GLASS = 2500)
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
attack_verb = list("burnt")
@@ -63,7 +63,7 @@
desc = "You can drill using this item. You dig?"
icon_state = "drill"
hitsound = 'sound/weapons/circsawhit.ogg'
- matter = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 10000)
+ matter = list(MAT_STEEL = 15000, MAT_GLASS = 10000)
force = 15.0
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
@@ -91,7 +91,7 @@
throw_speed = 3
throw_range = 5
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 5000)
+ matter = list(MAT_STEEL = 10000, MAT_GLASS = 5000)
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
/obj/item/surgical/scalpel/suicide_act(mob/user)
@@ -153,7 +153,7 @@
throw_speed = 3
throw_range = 5
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 20000,"glass" = 10000)
+ matter = list(MAT_STEEL = 20000, MAT_GLASS = 10000)
attack_verb = list("attacked", "slashed", "sawed", "cut")
sharp = 1
edge = 1
@@ -167,7 +167,7 @@
damtype = SEARING
w_class = ITEMSIZE_LARGE
origin_tech = list(TECH_BIO = 4, TECH_MATERIAL = 6, TECH_MAGNET = 6)
- matter = list(DEFAULT_WALL_MATERIAL = 12500)
+ matter = list(MAT_STEEL = 12500)
attack_verb = list("attacked", "slashed", "seared", "cut")
toolspeed = 0.75
@@ -319,7 +319,7 @@
throw_speed = 3
throw_range = 5
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
- matter = list("bone" = 5000, "glass" = 2500)
+ matter = list("bone" = 5000, MAT_GLASS = 2500)
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
/obj/item/surgical/scalpel_primitive/suicide_act(mob/user)
@@ -339,7 +339,7 @@
throw_speed = 3
throw_range = 5
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
- matter = list("bone" = 6000, "glass" = 4000)
+ matter = list("bone" = 6000, MAT_GLASS = 4000)
attack_verb = list("attacked", "slashed", "sawed", "cut")
sharp = 1
edge = 1
diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm
index 842156c73f2..29e7f2ba3e8 100644
--- a/code/game/objects/items/weapons/swords_axes_etc.dm
+++ b/code/game/objects/items/weapons/swords_axes_etc.dm
@@ -161,7 +161,7 @@
embed_chance = 100 // these should probably come in a bandolier or have some sort of fabricator, tbf
force = 5 // HAVING A STICK JAMMED INTO YOU IS LIKELY BAD FOR YOUR HEALTH // well to be fair most of the damage comes from the embed not the stab
w_class = WEIGHT_CLASS_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 2500)
+ matter = list(MAT_STEEL = 2500)
sharp = TRUE
edge = TRUE
icon_state = "embed_spike"
diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm
index ef3ae5766fd..450e27efea2 100644
--- a/code/game/objects/items/weapons/teleportation.dm
+++ b/code/game/objects/items/weapons/teleportation.dm
@@ -21,7 +21,7 @@
throw_speed = 4
throw_range = 20
origin_tech = list(TECH_MAGNET = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 400)
+ matter = list(MAT_STEEL = 400)
/obj/item/locator/attack_self(mob/user as mob)
user.set_machine(src)
@@ -127,7 +127,7 @@ Frequency:
throw_speed = 3
throw_range = 5
origin_tech = list(TECH_MAGNET = 1, TECH_BLUESPACE = 3)
- matter = list(DEFAULT_WALL_MATERIAL = 10000)
+ matter = list(MAT_STEEL = 10000)
preserve_item = 1
/obj/item/hand_tele/attack_self(mob/user as mob)
diff --git a/code/game/objects/items/weapons/tools/crowbar.dm b/code/game/objects/items/weapons/tools/crowbar.dm
index 0d33e5e5804..1c6760f04a1 100644
--- a/code/game/objects/items/weapons/tools/crowbar.dm
+++ b/code/game/objects/items/weapons/tools/crowbar.dm
@@ -15,7 +15,7 @@
item_state = "crowbar"
w_class = ITEMSIZE_SMALL
origin_tech = list(TECH_ENGINEERING = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 50)
+ matter = list(MAT_STEEL = 50)
attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked")
usesound = 'sound/items/crowbar.ogg'
drop_sound = 'sound/items/drop/crowbar.ogg'
@@ -133,7 +133,7 @@
item_state = "crowbar"
w_class = ITEMSIZE_SMALL
origin_tech = list(TECH_ENGINEERING = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 30)
+ matter = list(MAT_STEEL = 30)
attack_verb = list("whapped", "smacked", "swatted", "thwacked", "hit")
usesound = 'sound/items/crowbar.ogg'
toolspeed = 1
diff --git a/code/game/objects/items/weapons/tools/screwdriver.dm b/code/game/objects/items/weapons/tools/screwdriver.dm
index 7e21a3a3293..ed913e62c1f 100644
--- a/code/game/objects/items/weapons/tools/screwdriver.dm
+++ b/code/game/objects/items/weapons/tools/screwdriver.dm
@@ -17,7 +17,7 @@
usesound = 'sound/items/screwdriver.ogg'
drop_sound = 'sound/items/drop/screwdriver.ogg'
pickup_sound = 'sound/items/pickup/screwdriver.ogg'
- matter = list(DEFAULT_WALL_MATERIAL = 75)
+ matter = list(MAT_STEEL = 75)
attack_verb = list("stabbed")
sharp = 1
toolspeed = 1
@@ -136,7 +136,7 @@
desc = "A simple powered hand drill. It's fitted with a screw bit."
icon_state = "drill_screw"
item_state = "drill"
- matter = list(DEFAULT_WALL_MATERIAL = 150, MAT_SILVER = 50)
+ matter = list(MAT_STEEL = 150, MAT_SILVER = 50)
origin_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
slot_flags = SLOT_BELT
force = 8
diff --git a/code/game/objects/items/weapons/tools/weldingtool.dm b/code/game/objects/items/weapons/tools/weldingtool.dm
index b57b6f78260..3dd86c5e153 100644
--- a/code/game/objects/items/weapons/tools/weldingtool.dm
+++ b/code/game/objects/items/weapons/tools/weldingtool.dm
@@ -18,7 +18,7 @@
w_class = ITEMSIZE_SMALL
//Cost to make in the autolathe
- matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 30)
+ matter = list(MAT_STEEL = 70, MAT_GLASS = 30)
//R&D tech level
origin_tech = list(TECH_ENGINEERING = 1)
@@ -351,7 +351,7 @@
icon_state = "indwelder"
max_fuel = 40
origin_tech = list(TECH_ENGINEERING = 2, TECH_PHORON = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 60)
+ matter = list(MAT_STEEL = 70, MAT_GLASS = 60)
/obj/item/weldingtool/largetank/cyborg
name = "integrated welding tool"
@@ -365,7 +365,7 @@
max_fuel = 80
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_ENGINEERING = 3)
- matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120)
+ matter = list(MAT_STEEL = 70, MAT_GLASS = 120)
/obj/item/weldingtool/mini
name = "emergency welding tool"
@@ -392,7 +392,7 @@
desc = "A brass plated welder utilizing an antiquated, yet incredibly efficient, fuel system."
icon_state = "brasswelder"
max_fuel = 40
- matter = list(DEFAULT_WALL_MATERIAL = 70, "brass" = 60)
+ matter = list(MAT_STEEL = 70, "brass" = 60)
toolspeed = 0.75
/datum/category_item/catalogue/anomalous/precursor_a/alien_welder
@@ -444,7 +444,7 @@
max_fuel = 40
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_ENGINEERING = 4, TECH_PHORON = 3)
- matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120)
+ matter = list(MAT_STEEL = 70, MAT_GLASS = 120)
toolspeed = 0.5
change_icons = 0
flame_intensity = 3
diff --git a/code/game/objects/items/weapons/tools/wirecutters.dm b/code/game/objects/items/weapons/tools/wirecutters.dm
index c2c3087c714..2e332b2c3e0 100644
--- a/code/game/objects/items/weapons/tools/wirecutters.dm
+++ b/code/game/objects/items/weapons/tools/wirecutters.dm
@@ -13,7 +13,7 @@
throw_range = 9
w_class = ITEMSIZE_SMALL
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 80)
+ matter = list(MAT_STEEL = 80)
attack_verb = list("pinched", "nipped")
hitsound = 'sound/items/wirecutter.ogg'
usesound = 'sound/items/wirecutter.ogg'
diff --git a/code/game/objects/items/weapons/tools/wrench.dm b/code/game/objects/items/weapons/tools/wrench.dm
index 1c22985d271..4dc4fa8dc3a 100644
--- a/code/game/objects/items/weapons/tools/wrench.dm
+++ b/code/game/objects/items/weapons/tools/wrench.dm
@@ -12,7 +12,7 @@
throwforce = 7
w_class = ITEMSIZE_SMALL
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 150)
+ matter = list(MAT_STEEL = 150)
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
usesound = 'sound/items/ratchet.ogg'
toolspeed = 1
@@ -117,7 +117,7 @@
icon_state = "drill_bolt"
item_state = "drill"
usesound = 'sound/items/drill_use.ogg'
- matter = list(DEFAULT_WALL_MATERIAL = 150, MAT_SILVER = 50)
+ matter = list(MAT_STEEL = 150, MAT_SILVER = 50)
origin_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
force = 8
w_class = ITEMSIZE_SMALL
diff --git a/code/game/objects/items/weapons/traps.dm b/code/game/objects/items/weapons/traps.dm
index 47087acbb4e..812623393b5 100644
--- a/code/game/objects/items/weapons/traps.dm
+++ b/code/game/objects/items/weapons/traps.dm
@@ -9,7 +9,7 @@
throwforce = 0
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_MATERIAL = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 18750)
+ matter = list(MAT_STEEL = 18750)
var/deployed = 0
var/camo_net = FALSE
var/stun_length = 0.25 SECONDS
diff --git a/code/game/objects/items/weapons/trays.dm b/code/game/objects/items/weapons/trays.dm
index 212a90e70f7..353e1614c5f 100644
--- a/code/game/objects/items/weapons/trays.dm
+++ b/code/game/objects/items/weapons/trays.dm
@@ -11,7 +11,7 @@
throw_speed = 1
throw_range = 5
w_class = ITEMSIZE_NORMAL
- matter = list(DEFAULT_WALL_MATERIAL = 3000)
+ matter = list(MAT_STEEL = 3000)
var/list/carrying = list() // List of things on the tray. - Doohl
var/max_carry = 10
diff --git a/code/game/objects/structures/cliff.dm b/code/game/objects/structures/cliff.dm
index fd4f979e180..c12cbef0c3d 100644
--- a/code/game/objects/structures/cliff.dm
+++ b/code/game/objects/structures/cliff.dm
@@ -179,7 +179,7 @@ two tiles on initialization, and which way a cliff is facing may change during m
displaced = TRUE
if(istype(T))
- visible_message(span("danger", "\The [L] falls off \the [src]!"))
+ visible_message(SPAN_DANGER("\The [L] falls off \the [src]!"))
L.forceMove(T)
// Do the actual hurting. Double cliffs do halved damage due to them most likely hitting twice.
@@ -187,7 +187,7 @@ two tiles on initialization, and which way a cliff is facing may change during m
if(istype(L.buckled, /obj/vehicle)) // People falling off in vehicles will take less damage, but will damage the vehicle severely.
var/obj/vehicle/vehicle = L.buckled
vehicle.adjust_health(40 * harm)
- to_chat(L, span("warning", "\The [vehicle] absorbs some of the impact, damaging it."))
+ to_chat(L, SPAN_WARNING( "\The [vehicle] absorbs some of the impact, damaging it."))
harm /= 2
playsound(L, 'sound/effects/break_stone.ogg', 70, 1)
@@ -199,7 +199,7 @@ two tiles on initialization, and which way a cliff is facing may change during m
sleep(fall_time) // A brief delay inbetween the two sounds helps sell the 'ouch' effect.
playsound(L, "punch", 70, 1)
shake_camera(L, 1, 1)
- visible_message(span("danger", "\The [L] hits the ground!"))
+ visible_message(SPAN_DANGER("\The [L] hits the ground!"))
// The bigger they are, the harder they fall.
// They will take at least 20 damage at the minimum, and tries to scale up to 40% of their max health.
@@ -214,7 +214,7 @@ two tiles on initialization, and which way a cliff is facing may change during m
// Now fall off more cliffs below this one if they exist.
var/obj/structure/cliff/bottom_cliff = locate() in T
if(bottom_cliff)
- visible_message(span("danger", "\The [L] rolls down towards \the [bottom_cliff]!"))
+ visible_message(SPAN_DANGER("\The [L] rolls down towards \the [bottom_cliff]!"))
sleep(5)
bottom_cliff.fall_off_cliff(L)
@@ -229,7 +229,7 @@ two tiles on initialization, and which way a cliff is facing may change during m
if(held && istype(held, /obj/item/pickaxe/icepick))
return ..() //climb rock wall with ice pick. Makes sense.
- to_chat(user, span("warning", "\The [src] is too steep to climb unassisted."))
+ to_chat(user, SPAN_WARNING( "\The [src] is too steep to climb unassisted."))
return FALSE
// This tells AI mobs to not be dumb and step off cliffs willingly.
diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm
index 05a5b9577a2..6908ffe16dd 100644
--- a/code/game/objects/structures/fence.dm
+++ b/code/game/objects/structures/fence.dm
@@ -71,30 +71,30 @@
/obj/structure/fence/attackby(obj/item/W, mob/user)
if(W.is_wirecutter())
if(!cuttable)
- to_chat(user, span("warning", "This section of the fence can't be cut."))
+ to_chat(user, SPAN_WARNING( "This section of the fence can't be cut."))
return
if(invulnerable)
- to_chat(user, span("warning", "This fence is too strong to cut through."))
+ to_chat(user, SPAN_WARNING( "This fence is too strong to cut through."))
return
var/current_stage = hole_size
if(current_stage >= MAX_HOLE_SIZE)
- to_chat(user, span("notice", "This fence has too much cut out of it already."))
+ to_chat(user, SPAN_NOTICE("This fence has too much cut out of it already."))
return
- user.visible_message(span("danger", "\The [user] starts cutting through \the [src] with \the [W]."),\
- span("danger", "You start cutting through \the [src] with \the [W]."))
+ user.visible_message(SPAN_DANGER("\The [user] starts cutting through \the [src] with \the [W]."),\
+ SPAN_DANGER("You start cutting through \the [src] with \the [W]."))
playsound(src, W.usesound, 50, 1)
if(do_after(user, CUT_TIME * W.toolspeed, target = src))
if(current_stage == hole_size)
switch(++hole_size)
if(MEDIUM_HOLE)
- visible_message(span("notice", "\The [user] cuts into \the [src] some more."))
- to_chat(user, span("notice", "You could probably fit yourself through that hole now. Although climbing through would be much faster if you made it even bigger."))
+ visible_message(SPAN_NOTICE("\The [user] cuts into \the [src] some more."))
+ to_chat(user, SPAN_NOTICE("You could probably fit yourself through that hole now. Although climbing through would be much faster if you made it even bigger."))
climbable = TRUE
if(LARGE_HOLE)
- visible_message(span("notice", "\The [user] completely cuts through \the [src]."))
- to_chat(user, span("notice", "The hole in \the [src] is now big enough to walk through."))
+ visible_message(SPAN_NOTICE("\The [user] completely cuts through \the [src]."))
+ to_chat(user, SPAN_NOTICE("The hole in \the [src] is now big enough to walk through."))
climbable = FALSE
update_cut_status()
return TRUE
@@ -140,17 +140,17 @@
if(can_open(user))
toggle(user)
else
- to_chat(user, span("warning", "\The [src] is [!open ? "locked" : "stuck open"]."))
+ to_chat(user, SPAN_WARNING( "\The [src] is [!open ? "locked" : "stuck open"]."))
return TRUE
/obj/structure/fence/door/proc/toggle(mob/user)
switch(open)
if(FALSE)
- visible_message(span("notice", "\The [user] opens \the [src]."))
+ visible_message(SPAN_NOTICE("\The [user] opens \the [src]."))
open = TRUE
if(TRUE)
- visible_message(span("notice", "\The [user] closes \the [src]."))
+ visible_message(SPAN_NOTICE("\The [user] closes \the [src]."))
open = FALSE
update_door_status()
diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm
index bd6b451a6c1..5e79cbee132 100644
--- a/code/game/objects/structures/flora.dm
+++ b/code/game/objects/structures/flora.dm
@@ -523,9 +523,9 @@
return
if(ckeys_that_took[user.ckey])
- to_chat(user, span("warning", "There are no pumpkins that look familiar to you."))
+ to_chat(user, SPAN_WARNING( "There are no pumpkins that look familiar to you."))
return
- to_chat(user, span("notice", "After a bit of searching, you locate a pumpkin with your face carved into it!"))
+ to_chat(user, SPAN_NOTICE("After a bit of searching, you locate a pumpkin with your face carved into it!"))
ckeys_that_took[user.ckey] = TRUE
var/obj/item/G = new gift_type(src)
user.put_in_hands(G)
diff --git a/code/game/objects/structures/flora/trees.dm b/code/game/objects/structures/flora/trees.dm
index 22b4d25365a..734d45ed4e0 100644
--- a/code/game/objects/structures/flora/trees.dm
+++ b/code/game/objects/structures/flora/trees.dm
@@ -178,9 +178,9 @@
return
if(ckeys_that_took[user.ckey])
- to_chat(user, span("warning", "There are no presents with your name on."))
+ to_chat(user, SPAN_WARNING( "There are no presents with your name on."))
return
- to_chat(user, span("notice", "After a bit of rummaging, you locate a gift with your name on it!"))
+ to_chat(user, SPAN_NOTICE("After a bit of rummaging, you locate a gift with your name on it!"))
ckeys_that_took[user.ckey] = TRUE
var/obj/item/G = new gift_type(src)
user.put_in_hands(G)
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index 7af3b670bff..b382093a0cf 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -10,7 +10,7 @@
var/displaced_health = 50
var/current_damage = 0
var/cover = 50 //how much cover the girder provides against projectiles.
- var/default_material = DEFAULT_WALL_MATERIAL
+ var/default_material = MAT_STEEL
var/datum/material/girder_material
var/datum/material/reinf_material
var/reinforcing = 0
@@ -395,7 +395,7 @@
switch(passed_mode)
if(RCD_FLOORWALL)
- to_chat(user, span("notice", "You finish a wall."))
+ to_chat(user, SPAN_NOTICE("You finish a wall."))
// This is mostly the same as using on a floor. The girder's material is preserved, however.
T.ChangeTurf(/turf/simulated/wall)
var/turf/simulated/wall/new_T = get_turf(src) // Ref to the wall we just built.
@@ -408,7 +408,6 @@
return TRUE
if(RCD_DECONSTRUCT)
- to_chat(user, span("notice", "You deconstruct \the [src]."))
+ to_chat(user, SPAN_NOTICE("You deconstruct \the [src]."))
qdel(src)
return TRUE
-
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index c7367dbdf64..861eb1f81fe 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -256,13 +256,13 @@
/obj/structure/grille/rcd_act(mob/living/user, obj/item/rcd/the_rcd, passed_mode)
switch(passed_mode)
if(RCD_DECONSTRUCT)
- to_chat(user, span("notice", "You deconstruct \the [src]."))
+ to_chat(user, SPAN_NOTICE("You deconstruct \the [src]."))
qdel(src)
return TRUE
if(RCD_WINDOWGRILLE)
if(locate(/obj/structure/window) in loc)
return FALSE
- to_chat(user, span("notice", "You construct a window."))
+ to_chat(user, SPAN_NOTICE("You construct a window."))
var/obj/structure/window/WD = new the_rcd.window_type(loc)
WD.anchored = TRUE
return TRUE
@@ -272,4 +272,3 @@
health -= damage
spawn(1) healthcheck()
return 1
-
diff --git a/code/game/objects/structures/props/fake_ai.dm b/code/game/objects/structures/props/fake_ai.dm
index 1aef83acfa3..67d6c22a511 100644
--- a/code/game/objects/structures/props/fake_ai.dm
+++ b/code/game/objects/structures/props/fake_ai.dm
@@ -8,7 +8,7 @@
/obj/structure/prop/fake_ai/attackby(obj/O, mob/user)
if(istype(O, /obj/item/aicard)) // People trying to card the fake AI will get told its impossible.
- to_chat(user, span("warning", "This core does not appear to have a suitable port to use \the [O] on..."))
+ to_chat(user, SPAN_WARNING( "This core does not appear to have a suitable port to use \the [O] on..."))
return TRUE
return ..()
diff --git a/code/game/objects/structures/simple_doors.dm b/code/game/objects/structures/simple_doors.dm
index 715d0da762c..183557fa777 100644
--- a/code/game/objects/structures/simple_doors.dm
+++ b/code/game/objects/structures/simple_doors.dm
@@ -23,7 +23,7 @@
/obj/structure/simple_door/Initialize(mapload, material_name)
. = ..(mapload)
if(!material_name)
- material_name = DEFAULT_WALL_MATERIAL
+ material_name = MAT_STEEL
material = get_material_by_name(material_name)
if(!material)
qdel(src)
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 5e9b8e28f56..829b1b76ce5 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -26,7 +26,7 @@
. = ..(mapload)
remove_atom_colour(FIXED_COLOUR_PRIORITY)
if(!new_material)
- new_material = DEFAULT_WALL_MATERIAL
+ new_material = MAT_STEEL
material = get_material_by_name(new_material)
if(!istype(material))
qdel(src)
diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs_vr.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs_vr.dm
index 500a4d22b0e..ce8de706980 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/chairs_vr.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/chairs_vr.dm
@@ -202,7 +202,7 @@
add_overlay(I)
/obj/structure/bed/chair/bay/comfy/captain/Initialize(mapload, new_material, new_padding_material)
- return ..(mapload, DEFAULT_WALL_MATERIAL, "blue")
+ return ..(mapload, MAT_STEEL, "blue")
/obj/structure/bed/chair/bay/shuttle
name = "shuttle seat"
@@ -214,7 +214,7 @@
var/padding = "blue"
/obj/structure/bed/chair/bay/shuttle/Initialize(mapload, new_material, new_padding_material)
- return ..(mapload, DEFAULT_WALL_MATERIAL, padding)
+ return ..(mapload, MAT_STEEL, padding)
/obj/structure/bed/chair/bay/shuttle/post_buckle_mob()
playsound(src,buckling_sound,75,1)
diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
index 0012efeca5b..0e903e4d040 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
@@ -19,7 +19,7 @@ var/global/list/stool_cache = list() //haha stool
/obj/item/stool/Initialize(mapload, new_material, new_padding_material)
. = ..(mapload)
if(!new_material)
- new_material = DEFAULT_WALL_MATERIAL
+ new_material = MAT_STEEL
material = get_material_by_name(new_material)
if(new_padding_material)
padding_material = get_material_by_name(new_padding_material)
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 6fecdce1bb1..5f4766c6d32 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -718,8 +718,7 @@
/obj/structure/window/rcd_act(mob/living/user, obj/item/rcd/the_rcd, passed_mode)
switch(passed_mode)
if(RCD_DECONSTRUCT)
- to_chat(user, span("notice", "You deconstruct \the [src]."))
+ to_chat(user, SPAN_NOTICE("You deconstruct \the [src]."))
qdel(src)
return TRUE
return FALSE
-
diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index e477aaa7a10..670d4eb32fa 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -26,7 +26,7 @@
var/flooring_override
var/initial_flooring
var/decl/flooring/flooring
- var/mineral = DEFAULT_WALL_MATERIAL
+ var/mineral = MAT_STEEL
thermal_conductivity = 0.040
heat_capacity = 10000
@@ -140,7 +140,7 @@
/turf/simulated/floor/rcd_act(mob/living/user, obj/item/rcd/the_rcd, passed_mode)
switch(passed_mode)
if(RCD_FLOORWALL)
- to_chat(user, span("notice", "You build a wall."))
+ to_chat(user, SPAN_NOTICE("You build a wall."))
ChangeTurf(/turf/simulated/wall)
var/turf/simulated/wall/T = get_turf(src) // Ref to the wall we just built.
// Apparently set_material(...) for walls requires refs to the material singletons and not strings.
@@ -152,17 +152,17 @@
if(RCD_AIRLOCK)
if(locate(/obj/machinery/door/airlock) in src)
return FALSE // No more airlock stacking.
- to_chat(user, span("notice", "You build an airlock."))
+ to_chat(user, SPAN_NOTICE("You build an airlock."))
new the_rcd.airlock_type(src)
return TRUE
if(RCD_WINDOWGRILLE)
if(locate(/obj/structure/grille) in src)
return FALSE
- to_chat(user, span("notice", "You construct the grille."))
+ to_chat(user, SPAN_NOTICE("You construct the grille."))
var/obj/structure/grille/G = new(src)
G.anchored = TRUE
return TRUE
if(RCD_DECONSTRUCT)
- to_chat(user, span("notice", "You deconstruct \the [src]."))
+ to_chat(user, SPAN_NOTICE("You deconstruct \the [src]."))
ChangeTurf(get_base_turf_by_area(src), preserve_outdoors = TRUE)
return TRUE
diff --git a/code/game/turfs/simulated/wall_icon.dm b/code/game/turfs/simulated/wall_icon.dm
index 022ea4ac8cb..832f466c5a0 100644
--- a/code/game/turfs/simulated/wall_icon.dm
+++ b/code/game/turfs/simulated/wall_icon.dm
@@ -8,7 +8,7 @@
else
construction_stage = null
if(!material)
- material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ material = get_material_by_name(MAT_STEEL)
if(material)
explosion_resistance = material.explosion_resistance
if(reinf_material && reinf_material.explosion_resistance > explosion_resistance)
@@ -30,7 +30,7 @@
material = newmaterial
reinf_material = newrmaterial
if(!newgmaterial)
- girder_material = DEFAULT_WALL_MATERIAL
+ girder_material = MAT_STEEL
else
girder_material = newgmaterial
update_material()
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index d448b98ff45..8ca4048d437 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -33,10 +33,10 @@
. = ..()
icon_state = "blank"
if(!materialtype)
- materialtype = DEFAULT_WALL_MATERIAL
+ materialtype = MAT_STEEL
material = get_material_by_name(materialtype)
if(!girdertype)
- girdertype = DEFAULT_WALL_MATERIAL
+ girdertype = MAT_STEEL
girder_material = get_material_by_name(girdertype)
if(!isnull(rmaterialtype))
reinf_material = get_material_by_name(rmaterialtype)
@@ -313,7 +313,7 @@
/turf/simulated/wall/rcd_act(mob/living/user, obj/item/rcd/the_rcd, passed_mode)
if(passed_mode == RCD_DECONSTRUCT)
- to_chat(user, span("notice", "You deconstruct \the [src]."))
+ to_chat(user, SPAN_NOTICE("You deconstruct \the [src]."))
ChangeTurf(/turf/simulated/floor/airless, preserve_outdoors = TRUE)
return TRUE
return FALSE
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index 84ea00e4c2c..db07cc71793 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -334,7 +334,7 @@
/turf/rcd_act(mob/living/user, obj/item/rcd/the_rcd, passed_mode)
if(passed_mode == RCD_FLOORWALL)
- to_chat(user, span("notice", "You build a floor."))
+ to_chat(user, SPAN_NOTICE("You build a floor."))
ChangeTurf(/turf/simulated/floor/airless, preserve_outdoors = TRUE)
return TRUE
return FALSE
diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm
index 7cafc8ab76e..60eacb6a16a 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -232,7 +232,7 @@
else if(isslime(M))
M_job = "slime"
else if(issmall(M))
- M_job = "Monkey"
+ M_job = "Monkey" //???
else if(isalien(M))
M_job = "Alien"
else
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 08a3601cd6c..9fa2d315ab8 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -823,7 +823,7 @@
if(!reason)
return
- to_chat(M, span("critical", "You have been kicked from the server: [reason]"))
+ to_chat(M, SPAN_CRITICAL("You have been kicked from the server: [reason]"))
log_admin("[key_name(usr)] booted [key_name(M)] for reason: '[reason]'.")
message_admins("[key_name_admin(usr)] booted [key_name_admin(M)] for reason '[reason]'.", 1)
//M.client = null
diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm
index 51149112e6a..6a87204e12f 100644
--- a/code/modules/admin/verbs/buildmode.dm
+++ b/code/modules/admin/verbs/buildmode.dm
@@ -453,9 +453,9 @@
if(!isnull(L.get_AI_stance())) // Null means there's no AI datum or it has one but is player controlled w/o autopilot on.
var/datum/ai_holder/AI = L.ai_holder
AI.forget_everything()
- to_chat(user, span("notice", "\The [L]'s AI has forgotten its target/movement destination/leader."))
+ to_chat(user, SPAN_NOTICE("\The [L]'s AI has forgotten its target/movement destination/leader."))
else
- to_chat(user, span("warning", "\The [L] is not AI controlled."))
+ to_chat(user, SPAN_WARNING( "\The [L] is not AI controlled."))
return
// Toggle hostility
@@ -463,21 +463,21 @@
if(!isnull(L.get_AI_stance()))
var/datum/ai_holder/AI = L.ai_holder
AI.hostile = !AI.hostile
- to_chat(user, span("notice", "\The [L] is now [AI.hostile ? "hostile" : "passive"]."))
+ to_chat(user, SPAN_NOTICE("\The [L] is now [AI.hostile ? "hostile" : "passive"]."))
else
- to_chat(user, span("warning", "\The [L] is not AI controlled."))
+ to_chat(user, SPAN_WARNING( "\The [L] is not AI controlled."))
return
// Select/Deselect
if(!isnull(L.get_AI_stance()))
if(L in holder.selected_mobs)
holder.deselect_AI_mob(user.client, L)
- to_chat(user, span("notice", "Deselected \the [L]."))
+ to_chat(user, SPAN_NOTICE("Deselected \the [L]."))
else
holder.select_AI_mob(user.client, L)
- to_chat(user, span("notice", "Selected \the [L]."))
+ to_chat(user, SPAN_NOTICE("Selected \the [L]."))
else
- to_chat(user, span("warning", "\The [L] is not AI controlled."))
+ to_chat(user, SPAN_WARNING( "\The [L] is not AI controlled."))
if(pa.Find("right"))
if(istype(object, /atom)) // Force attack.
@@ -489,7 +489,7 @@
var/datum/ai_holder/AI = unit.ai_holder
AI.give_target(A)
i++
- to_chat(user, span("notice", "Commanded [i] mob\s to attack \the [A]."))
+ to_chat(user, SPAN_NOTICE("Commanded [i] mob\s to attack \the [A]."))
return
if(isliving(object)) // Follow or attack.
@@ -513,7 +513,7 @@
message += "."
if(j)
message += "[j] mob\s to follow \the [L]."
- to_chat(user, span("notice", message))
+ to_chat(user, SPAN_NOTICE(message))
if(isturf(object)) // Move or reposition.
var/turf/T = object
@@ -522,7 +522,7 @@
var/datum/ai_holder/AI = unit.ai_holder
AI.give_destination(T, 1, pa.Find("shift")) // If shift is held, the mobs will not stop moving to attack a visible enemy.
i++
- to_chat(user, span("notice", "Commanded [i] mob\s to move to \the [T]."))
+ to_chat(user, SPAN_NOTICE("Commanded [i] mob\s to move to \the [T]."))
/obj/effect/bmode/buildmode/proc/get_path_from_partial_text(default_path)
diff --git a/code/modules/admin/verbs/lightning_strike.dm b/code/modules/admin/verbs/lightning_strike.dm
index 6f2c0e0b573..1b92ac760fc 100644
--- a/code/modules/admin/verbs/lightning_strike.dm
+++ b/code/modules/admin/verbs/lightning_strike.dm
@@ -93,7 +93,7 @@
if(iscarbon(L))
var/mob/living/carbon/C = L
C.ear_deaf += 10
- to_chat(L, span("danger", "Lightning struck nearby, and the thunderclap is deafening!"))
+ to_chat(L, SPAN_DANGER("Lightning struck nearby, and the thunderclap is deafening!"))
#undef LIGHTNING_REDIRECT_RANGE
#undef LIGHTNING_ZAP_RANGE
diff --git a/code/modules/ai/aI_holder_subtypes/slime_xenobio_ai.dm b/code/modules/ai/aI_holder_subtypes/slime_xenobio_ai.dm
index 694072b51d5..ee695e624de 100644
--- a/code/modules/ai/aI_holder_subtypes/slime_xenobio_ai.dm
+++ b/code/modules/ai/aI_holder_subtypes/slime_xenobio_ai.dm
@@ -133,7 +133,7 @@
return
rabid = TRUE
my_slime.update_mood()
- my_slime.visible_message(span("danger", "\The [src] enrages!"))
+ my_slime.visible_message(SPAN_DANGER("\The [src] enrages!"))
// Called when using a pacification agent (or it's Kendrick being initalized).
/datum/ai_holder/simple_mob/xenobio_slime/proc/pacify()
diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm
index 92e923dfdb7..10fa29ead02 100644
--- a/code/modules/assembly/assembly.dm
+++ b/code/modules/assembly/assembly.dm
@@ -11,7 +11,7 @@
icon = 'icons/obj/assemblies/new_assemblies.dmi'
icon_state = ""
w_class = ITEMSIZE_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 100)
+ matter = list(MAT_STEEL = 100)
throwforce = 2
throw_speed = 3
throw_range = 10
diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm
index 846b9467dad..eefd324da15 100644
--- a/code/modules/assembly/igniter.dm
+++ b/code/modules/assembly/igniter.dm
@@ -3,7 +3,7 @@
desc = "A small electronic device able to ignite combustable substances."
icon_state = "igniter"
origin_tech = list(TECH_MAGNET = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 50)
+ matter = list(MAT_STEEL = 500, MAT_GLASS = 50)
secured = TRUE
wires = WIRE_RECEIVE
diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm
index f498b81459f..5c4f20b7148 100644
--- a/code/modules/assembly/infrared.dm
+++ b/code/modules/assembly/infrared.dm
@@ -3,7 +3,7 @@
desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted."
icon_state = "infrared"
origin_tech = list(TECH_MAGNET = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500)
+ matter = list(MAT_STEEL = 1000, MAT_GLASS = 500)
wires = WIRE_PULSE
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index 9022a8dd1f7..bd8382c4847 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -3,7 +3,7 @@
desc = "A handy little spring-loaded trap for catching pesty rodents."
icon_state = "mousetrap"
origin_tech = list(TECH_COMBAT = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 100)
+ matter = list(MAT_STEEL = 100)
var/armed = 0
diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm
index 462f75245d8..981be136fb6 100644
--- a/code/modules/assembly/proximity.dm
+++ b/code/modules/assembly/proximity.dm
@@ -3,7 +3,7 @@
desc = "Used for scanning and alerting when someone enters a certain proximity."
icon_state = "prox"
origin_tech = list(TECH_MAGNET = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 800, "glass" = 200)
+ matter = list(MAT_STEEL = 800, MAT_GLASS = 200)
flags = PROXMOVE
wires = WIRE_PULSE
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index 3d15932445b..61b3c4729da 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -4,7 +4,7 @@
icon_state = "signaller"
item_state = "signaler"
origin_tech = list(TECH_MAGNET = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 200)
+ matter = list(MAT_STEEL = 1000, MAT_GLASS = 200)
wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE
secured = TRUE
diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm
index 97b402decc1..bc32917b9a8 100644
--- a/code/modules/assembly/timer.dm
+++ b/code/modules/assembly/timer.dm
@@ -3,7 +3,7 @@
desc = "Used to time things. Works well with contraptions which has to count down. Tick tock."
icon_state = "timer"
origin_tech = list(TECH_MAGNET = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 50)
+ matter = list(MAT_STEEL = 500, MAT_GLASS = 50)
wires = WIRE_PULSE
diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm
index 13c85b23e18..2810193b42b 100644
--- a/code/modules/assembly/voice.dm
+++ b/code/modules/assembly/voice.dm
@@ -3,7 +3,7 @@
desc = "A small electronic device able to record a voice sample, and send a signal when that sample is repeated."
icon_state = "voice"
origin_tech = list(TECH_MAGNET = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 50)
+ matter = list(MAT_STEEL = 500, MAT_GLASS = 50)
var/listening = 0
var/recorded //the activation message
diff --git a/code/modules/blob2/overmind/types.dm b/code/modules/blob2/overmind/types.dm
index eb9ea76beff..230c24c5546 100644
--- a/code/modules/blob2/overmind/types.dm
+++ b/code/modules/blob2/overmind/types.dm
@@ -423,7 +423,7 @@
var/protection = H.get_cold_protection(50)
if(protection < 1)
var/temp_change = 80 // Each hit can reduce temperature by up to 80 kelvin.
- var/datum/species/baseline = GLOB.all_species["Human"]
+ var/datum/species/baseline = GLOB.all_species[SPECIES_HUMAN]
var/temp_cap = baseline.cold_level_3 - 5 // Can't go lower than this.
var/cold_factor = abs(protection - 1)
diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm
index f114ad1ada6..ffefee84b20 100644
--- a/code/modules/busy_space/organizations.dm
+++ b/code/modules/busy_space/organizations.dm
@@ -194,7 +194,7 @@
/// New org_type flag replaces lawful/hostile/sysdef, valid standard options are neutral (default), corporate, government, system defense, smuggler, pirate, military, retired
var/org_type = "neutral"
-
+
/// Is this part of the fleet/station makeup? fleet system currently disabled
var/fleet = FALSE
@@ -285,7 +285,7 @@
work = "research giant"
headquarters = "Creon, Thebes"
fleet = TRUE
-
+
org_type = "corporate"
ship_prefixes = list("NTV" = "a general operations", "NEV" = "an exploration", "NSV" = "a research", "NGV" = "a hauling", "NDV" = "a patrol", "NRV" = "an emergency response", "NDV" = "an asset protection")
@@ -328,7 +328,7 @@
non-corporate bulk contractors."
work = "arms manufacturer"
headquarters = "Orlov IV, Vitalya"
-
+
org_type = "corporate"
ship_prefixes = list("HIV" = "a general operations", "HTV" = "a freight", "HLV" = "a munitions resupply", "HDV" = "an asset protection", "HDV" = "a preemptive deployment")
@@ -368,7 +368,7 @@
resulting in what is functionally considered an alliance."
work = "medical equipment supplier"
headquarters = "Toledo, New Ohio"
-
+
org_type = "corporate"
ship_prefixes = list("VMV" = "a general operations", "VTV" = "a transportation", "VHV" = "a medical resupply", "VSV" = "a research", "VRV" = "an emergency medical support")
@@ -402,7 +402,7 @@
constant economic speculation."
work = "pharmaceuticals company"
headquarters = "Bashe, Shang-Yang"
-
+
org_type = "corporate"
ship_prefixes = list("ZHV" = "a general operations", "ZTV" = "a transportation", "ZMV" = "a medical resupply", "ZRV" = "a medical research")
@@ -430,7 +430,7 @@
consumer electronics market."
work = "electronics manufacturer"
headquarters = "KT-985, Ridley Minor"
-
+
org_type = "corporate"
ship_prefixes = list("WTV" = "a general operations", "WTFV" = "a freight", "WTGV" = "a transport", "WTDV" = "an asset protection")
@@ -455,7 +455,7 @@
Positronic Rights Group. Following a series of disastrous investments in advanced sleeving tech, Bishop was acquired by \
their long time competitor Vey-Medical."
work = "cybernetics and augmentation manufacturer"
-
+
org_type = "corporate"
ship_prefixes = list("BCV" = "a general operations", "BCTV" = "a transportation", "BCSV" = "a research exchange")
@@ -485,7 +485,7 @@
work = "cybernetics manufacturer"
headquarters = "Shelf"
motto = ""
-
+
org_type = "corporate"
ship_prefixes = list("MCV" = "a general operations", "MTV" = "a freight", "MDV" = "a market protection", "MSV" = "an outreach")
@@ -523,7 +523,7 @@
work = "industrial equipment manufacturer"
headquarters = ""
motto = ""
-
+
org_type = "corporate"
ship_prefixes = list("XMV" = "a general operations", "XTV" = "a hauling", "XFV" = "a bulk transport", "XIV" = "a resupply")
@@ -554,7 +554,7 @@
work = "cybernetics manufacturer"
headquarters = ""
motto = ""
-
+
org_type = "corporate"
ship_prefixes = list("AGV" = "a general operations", "ATV" = "a transport", "ARV" = "a research", "ADV" = "a routine patrol", "AEV" = "a raw materials acquisition")
@@ -594,7 +594,7 @@
in the FTU. At the same time, the Free Trade Union started to popularize tradeband in the galaxy as the language of business. Around 2500, \
the majority of independent merchants were part of the FTU with significant influence on the galactic scale. They have started to invest in \
colonization efforts in order to take early claim of the frontier systems as the best choice for frontier traders."
-
+
org_type = "corporate"
ship_prefixes = list("FTV" = "a general operations", "FTRP" = "a trade protection", "FTRR" = "a piracy suppression", "FTLV" = "a logistical support", "FTTV" = "a mercantile", "FTDV" = "a market establishment")
@@ -623,7 +623,7 @@
work = "courier and passenger transit"
headquarters = "Defunct"
motto = "With Major Bill's, you won't pay major bills!"
-
+
org_type = "retired"
// Retained for lore purposes.
@@ -655,7 +655,7 @@
Grayson may maintain a neutral stance towards their fellow TSCs, but can be quite aggressive in the markets that it already holds. A steady stream \
of rumors suggests they're not shy about engaging in industrial sabotage or calling in strikebreakers, either."
headquarters = "Mars, Sol"
-
+
org_type = "corporate"
ship_prefixes = list("GMV" = "a general operations", "GMT" = "a transport", "GMR" = "a resourcing", "GMS" = "a surveying", "GMH" = "a bulk transit")
@@ -719,7 +719,7 @@
work = ""
headquarters = ""
motto = "Dum spiro spero"
-
+
org_type = "corporate"
ship_prefixes = list("AARV" = "a general operations", "AARE" = "a resource extraction", "AARG" = "a gas transport", "AART" = "a transport")
@@ -771,7 +771,7 @@
work = ""
headquarters = ""
motto = ""
-
+
org_type = "corporate"
ship_prefixes = list("FPV" = "a general operations", "FPH" = "a transport", "FPC" = "an energy relay", "FPT" = "a fuel transport")
@@ -833,7 +833,7 @@
work = "luxury, business, and economy passenger flights"
headquarters = "Spin Aerostat, Jupiter"
motto = "Sic itur ad astra"
-
+
org_type = "corporate"
ship_prefixes = list("SFI-X" = "a VIP liner", "SFI-L" = "a luxury liner", "SFI-B" = "a business liner", "SFI-E" = "an economy liner", "SFI-M" = "a mixed class liner", "SFI-S" = "a sightseeing", "SFI-M" = "a wedding", "SFI-O" = "a marketing", "SFI-S" = "a safari", "SFI-A" = "an aquatic adventure")
@@ -896,7 +896,7 @@
work = "news media"
headquarters = ""
motto = "News from all across the spectrum"
-
+
org_type = "corporate"
ship_prefixes = list("OBV" = "an investigation", "OBV" = "a distribution", "OBV" = "a journalism", "OBV" = "a general operations")
destination_names = list(
@@ -915,7 +915,7 @@
work = "catering, food, drinks"
headquarters = "Alpha Centauri"
motto = "The largest brands of food and drink - most of them are Centauri."
-
+
org_type = "corporate"
ship_prefixes = list("CPTV" = "a transport", "CPCV" = "a catering", "CPRV" = "a resupply", "CPV" = "a general operations")
destination_names = list(
@@ -934,7 +934,7 @@
work = "catering, food, drinks"
headquarters = ""
motto = "Engine designs, emergency generators, and old memories"
-
+
org_type = "corporate"
ship_prefixes = list("EETV" = "a transport", "EERV" = "a research", "EEV" = "a general operations")
destination_names = list(
@@ -952,7 +952,7 @@
work = "starship construction"
headquarters = ""
motto = "We build it - you fly it"
-
+
org_type = "corporate"
ship_prefixes = list("WATV" = "a transport", "WARV" = "a repair", "WAV" = "a general operations")
destination_names = list(
@@ -975,7 +975,7 @@
work = "luxury goods"
headquarters = ""
motto = ""
-
+
org_type = "corporate"
ship_prefixes = list("GETV" = "a transport", "GECV" = "a luxury catering", "GEV" = "a general operations")
//precious stones
@@ -1056,7 +1056,7 @@
work = "salvage and shipbreaking"
headquarters = "N/A"
motto = "one man's trash is another man's treasure"
-
+
org_type = "corporate"
ship_prefixes = list("CSV" = "a salvage", "CRV" = "a recovery", "CTV" = "a transport", "CSV" = "a shipbreaking", "CHV" = "a towing")
//mostly-original, maybe some references, and more than a few puns
@@ -1128,7 +1128,7 @@
work = "designer bodies and bioforms"
headquarters = "Moreau III, Jiang Shie"
motto = "the whole is greater than the sum of its parts"
-
+
org_type = "corporate"
ship_prefixes = list("CGV" = "a general operations", "CGT" = "a transport", "CGT" = "a delivery", "CGH" = "a medical")
//edgy mythological critters!
@@ -1152,7 +1152,7 @@
"Daemon",
"Echidna",
"Goblin",
- "Golem",
+ SPECIES_GOLEM,
"Griffin",
"Hobgoblin",
"Hydra",
@@ -1218,7 +1218,7 @@
headquarters = ""
motto = "Serve, Protect, Survive"
autogenerate_destination_names = FALSE
-
+
org_type = "system defense"
ship_prefixes = list ("SDB" = "a patrol", "SDF" = "a patrol", "SDV" = "a patrol", "SDB" = "an escort", "SDF" = "an escort", "SDV" = "an escort", "SAR" = "a search and rescue", "SDT" = "a logistics", "SDT" = "a resupply", "SDJ" = "a prisoner transport") //b = boat, f = fleet, v = vessel, t = tender
@@ -1313,7 +1313,7 @@
headquarters = ""
motto = ""
autogenerate_destination_names = TRUE //the events we get called for don't fire a destination, but we need entries to avoid runtimes.
-
+
org_type = "smugglers"
ship_prefixes = list ("suspected smuggler" = "an illegal smuggling", "possible smuggler" = "an illegal smuggling", "suspected bootlegger" = "a contraband smuggling") //as assigned by control, second part shouldn't even come up
@@ -1492,7 +1492,7 @@
headquarters = ""
motto = "What\'s yours is mine."
autogenerate_destination_names = TRUE //the events we get called for don't fire a destination, but we need entries to avoid runtimes.
-
+
org_type = "pirate"
ship_prefixes = list ("known pirate" = "a piracy", "suspected pirate" = "a piracy", "rogue privateer" = "a piracy", "Cartel enforcer" = "a piracy", "known outlaw" = "a piracy", "bandit" = "a piracy", "roving corsair" = "a piracy", "illegal salvager" = "an illegal salvage", "rogue mercenary" = "a mercenary") //as assigned by control, second part shouldn't even come up, but it exists to avoid hiccups/weirdness just in case
@@ -1671,7 +1671,7 @@
work = ""
motto = ""
autogenerate_destination_names = TRUE
-
+
org_type = "pirate"
ship_prefixes = list("Ue-Katish pirate" = "a raiding", "Ue-Katish bandit" = "a raiding", "Ue-Katish raider" = "a raiding", "Ue-Katish enforcer" = "an enforcement", "Ue-Katish corsair" = "a raiding")
@@ -1709,7 +1709,7 @@
headquarters = "Nowhere"
motto = "(unintelligible screeching)"
autogenerate_destination_names = TRUE //the events we get called for don't fire a destination, but we need *some* entries to avoid runtimes.
-
+
org_type = "pirate"
ship_prefixes = list("vox marauder" = "a marauding", "vox raider" = "a raiding", "vox ravager" = "a raiding", "vox corsair" = "a raiding") //as assigned by control, second part shouldn't even come up
@@ -1783,7 +1783,7 @@
headquarters = "Luna, Sol"
motto = "Nil Mortalibus Ardui Est" // Latin, because latin. Says 'Nothing is too steep for mortals'
autogenerate_destination_names = TRUE
-
+
org_type = "government"
ship_prefixes = list("TOC-A" = "an administrative", "TOC-T" = "a transportation", "TOC-D" = "a diplomatic", "TOC-F" = "a freight", "TOC-J" = "a prisoner transfer")
@@ -1883,7 +1883,7 @@
headquarters = "Qerr'balak, Qerr'valis"
motto = ""
autogenerate_destination_names = TRUE //big list of own holdings to come
-
+
org_type = "government"
//the tesh expeditionary fleet's closest analogue in modern terms would be the US Army Corps of Engineers, just with added combat personnel as well
@@ -1934,7 +1934,7 @@
headquarters = "Paris, Earth"
motto = "Si Vis Pacem Para Bellum"
autogenerate_destination_names = TRUE
-
+
org_type = "military"
ship_prefixes = list ("JSDF" = "a logistical", "JSDF" = "a training", "JSDF" = "a patrol", "JSDF" = "a piracy suppression", "JSDF" = "a peacekeeping", "JSDF" = "a relief", "JSDF" = "an escort", "JSDF" = "a search and rescue", "JSDF" = "a classified")
@@ -2025,7 +2025,7 @@
headquarters = "Proxima Centauri"
motto = ""
autogenerate_destination_names = TRUE
-
+
org_type = "military"
ship_prefixes = list("PCRC" = "a risk control", "PCRC" = "a private security")
@@ -2087,7 +2087,7 @@
headquarters = ""
motto = "Strength in Numbers"
autogenerate_destination_names = TRUE
-
+
org_type = "military"
ship_prefixes = list("HPF" = "a secure freight", "HPT" = "a training", "HPS" = "a logistics", "HPV" = "a patrol", "HPH" = "a bounty hunting", "HPX" = "an experimental", "HPC" = "a command", "HPI" = "a mercy")
@@ -2174,7 +2174,7 @@
headquarters = ""
motto = "Neca Ne Necaris"
autogenerate_destination_names = TRUE
-
+
org_type = "military"
ship_prefixes = list("BSF" = "a secure freight", "BST" = "a training", "BSS" = "a logistics", "BSV" = "a patrol", "BSH" = "a security", "BSX" = "an experimental", "BSC" = "a command", "BSK" = "a classified")
@@ -2207,7 +2207,7 @@
"Daemon",
"Echidna",
"Goblin",
- "Golem",
+ SPECIES_GOLEM,
"Griffin",
"Hobgoblin",
"Hydra",
@@ -2305,7 +2305,7 @@
// Space Alien Rats.
/datum/lore/organization/gov/altevian_hegemony
- name = "The Altevian Hegemony"
+ name = "The Altevian Hegemony"
short_name = "Altevian Hegemony"
acronym = "AH"
desc = "The Altevians are a space-faring race of rodents that resemble Earth-like rats. They do not have a place they call home in terms of a planet, and instead have massive multiple-kilometer-long colony-ships that are constantly on the move and typically keep operations outside of known populated systems to not eat the resources from others. Their primary focus is trade and slavage operations and can be expected to be seen around both densely populated and empty systems for their work."
@@ -2355,4 +2355,4 @@
"the AH-CV Diamondback",
"one of our colony-ships",
"one of our production fleets"
- )
+ )
diff --git a/code/modules/catalogue/atoms.dm b/code/modules/catalogue/atoms.dm
index a6682ff7805..21a2957cf3e 100644
--- a/code/modules/catalogue/atoms.dm
+++ b/code/modules/catalogue/atoms.dm
@@ -14,7 +14,7 @@
// First check if anything is even on here.
var/list/data = get_catalogue_data()
if(!LAZYLEN(data))
- to_chat(user, span("warning", "\The [src] is not interesting enough to catalogue."))
+ to_chat(user, SPAN_WARNING( "\The [src] is not interesting enough to catalogue."))
return FALSE
else
// Check if this has nothing new on it.
@@ -26,20 +26,20 @@
break
if(!has_new_data)
- to_chat(user, span("warning", "Scanning \the [src] would provide no new information."))
+ to_chat(user, SPAN_WARNING( "Scanning \the [src] would provide no new information."))
return FALSE
return TRUE
/mob/living/can_catalogue(mob/user) // Dead mobs can't be scanned.
if(stat >= DEAD)
- to_chat(user, span("warning", "Entities must be alive for a comprehensive scan."))
+ to_chat(user, SPAN_WARNING( "Entities must be alive for a comprehensive scan."))
return FALSE
return ..()
/obj/item/can_catalogue(mob/user) // Items must be identified to be scanned.
if(!is_identified())
- to_chat(user, span("warning", "The properties of this object has not been determined. Identify it first."))
+ to_chat(user, SPAN_WARNING( "The properties of this object has not been determined. Identify it first."))
return FALSE
return ..()
diff --git a/code/modules/catalogue/catalogue_data.dm b/code/modules/catalogue/catalogue_data.dm
index de1007f9d83..b984a80fd51 100644
--- a/code/modules/catalogue/catalogue_data.dm
+++ b/code/modules/catalogue/catalogue_data.dm
@@ -104,7 +104,7 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new)
/datum/category_item/catalogue/proc/display_in_chatlog(mob/user)
to_chat(user, "
")
- to_chat(user, span("notice", "[uppertext(name)]"))
+ to_chat(user, SPAN_NOTICE("[uppertext(name)]"))
// Some entries get very long so lets not totally flood the chatlog.
var/desc_length_limit = 750
@@ -113,9 +113,9 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new)
displayed_desc = copytext(displayed_desc, 1, desc_length_limit + 1)
displayed_desc += "... (View databanks for full data)"
- to_chat(user, span("notice", "[displayed_desc]"))
- to_chat(user, span("notice", "Cataloguers : [english_list(cataloguers)]."))
- to_chat(user, span("notice", "Contributes [value] points to personal exploration fund."))
+ to_chat(user, SPAN_NOTICE("[displayed_desc]"))
+ to_chat(user, SPAN_NOTICE("Cataloguers : [english_list(cataloguers)]."))
+ to_chat(user, SPAN_NOTICE("Contributes [value] points to personal exploration fund."))
/*
// Truncates text to limit if necessary.
diff --git a/code/modules/catalogue/cataloguer.dm b/code/modules/catalogue/cataloguer.dm
index 3ed05381b42..5442e333a40 100644
--- a/code/modules/catalogue/cataloguer.dm
+++ b/code/modules/catalogue/cataloguer.dm
@@ -72,7 +72,7 @@ GLOBAL_LIST_EMPTY(all_cataloguers)
/obj/item/cataloguer/afterattack(atom/target, mob/user, proximity_flag)
// Things that invalidate the scan immediately.
if(busy)
- to_chat(user, span("warning", "\The [src] is already scanning something."))
+ to_chat(user, SPAN_WARNING( "\The [src] is already scanning something."))
return
if(isturf(target) && (!target.can_catalogue()))
@@ -87,7 +87,7 @@ GLOBAL_LIST_EMPTY(all_cataloguers)
return
if(get_dist(target, user) > scan_range)
- to_chat(user, span("warning", "You are too far away from \the [target] to catalogue it. Get closer."))
+ to_chat(user, SPAN_WARNING( "You are too far away from \the [target] to catalogue it. Get closer."))
return
// Get how long the delay will be.
@@ -95,9 +95,9 @@ GLOBAL_LIST_EMPTY(all_cataloguers)
if(partial_scanned)
if(partial_scanned.resolve() == target)
scan_delay -= partial_scan_time
- to_chat(user, span("notice", "Resuming previous scan."))
+ to_chat(user, SPAN_NOTICE("Resuming previous scan."))
else
- to_chat(user, span("warning", "Scanning new target. Previous scan buffer cleared."))
+ to_chat(user, SPAN_WARNING( "Scanning new target. Previous scan buffer cleared."))
// Start the special effects.
busy = TRUE
@@ -116,18 +116,18 @@ GLOBAL_LIST_EMPTY(all_cataloguers)
var/scan_start_time = world.time
if(do_after(user, scan_delay, target, ignore_movement = TRUE, max_distance = scan_range))
if(target.can_catalogue(user))
- to_chat(user, span("notice", "You successfully scan \the [target] with \the [src]."))
+ to_chat(user, SPAN_NOTICE("You successfully scan \the [target] with \the [src]."))
playsound(src.loc, 'sound/machines/ping.ogg', 50)
catalogue_object(target, user)
else
// In case someone else scans it first, or it died, etc.
- to_chat(user, span("warning", "\The [target] is no longer valid to scan with \the [src]."))
+ to_chat(user, SPAN_WARNING( "\The [target] is no longer valid to scan with \the [src]."))
playsound(src.loc, 'sound/machines/buzz-two.ogg', 50)
partial_scanned = null
partial_scan_time = 0
else
- to_chat(user, span("warning", "You failed to finish scanning \the [target] with \the [src]."))
+ to_chat(user, SPAN_WARNING( "You failed to finish scanning \the [target] with \the [src]."))
playsound(src.loc, 'sound/machines/buzz-two.ogg', 50)
color_box(box_segments, "#FF0000", 3)
partial_scanned = WEAKREF(target)
@@ -180,7 +180,7 @@ GLOBAL_LIST_EMPTY(all_cataloguers)
// Give out points.
if(points_gained)
// First, to us.
- to_chat(user, span("notice", "Gained [points_gained] points from this scan."))
+ to_chat(user, SPAN_NOTICE("Gained [points_gained] points from this scan."))
adjust_points(points_gained)
// Now to our friends, if any.
@@ -189,9 +189,9 @@ GLOBAL_LIST_EMPTY(all_cataloguers)
var/list/things = M.GetAllContents() // Depth of two should reach into bags but just in case lets make it three.
var/obj/item/cataloguer/other_cataloguer = locate() in things // If someone has two or more scanners this only adds points to one.
if(other_cataloguer)
- to_chat(M, span("notice", "Gained [points_gained] points from \the [user]'s scan of \the [target]."))
+ to_chat(M, SPAN_NOTICE("Gained [points_gained] points from \the [user]'s scan of \the [target]."))
other_cataloguer.adjust_points(points_gained)
- to_chat(user, span("notice", "Shared discovery with [contributers.len] other contributer\s."))
+ to_chat(user, SPAN_NOTICE("Shared discovery with [contributers.len] other contributer\s."))
@@ -203,7 +203,7 @@ GLOBAL_LIST_EMPTY(all_cataloguers)
// Helps to avoid having to click a hundred things in a room for things that have an entry.
/obj/item/cataloguer/proc/pulse_scan(mob/user)
if(busy)
- to_chat(user, span("warning", "\The [src] is busy doing something else."))
+ to_chat(user, SPAN_WARNING( "\The [src] is busy doing something else."))
return
busy = TRUE
@@ -222,7 +222,7 @@ GLOBAL_LIST_EMPTY(all_cataloguers)
for(var/a in scannable_atoms)
var/atom/A = a
A.filters += filter
- to_chat(user, span("notice", "\The [src] is highlighting scannable objects in green, if any exist."))
+ to_chat(user, SPAN_NOTICE("\The [src] is highlighting scannable objects in green, if any exist."))
sleep(2 SECONDS)
@@ -239,7 +239,7 @@ GLOBAL_LIST_EMPTY(all_cataloguers)
playsound(src.loc, 'sound/machines/ping.ogg', 50)
else
playsound(src.loc, 'sound/machines/buzz-two.ogg', 50)
- to_chat(user, span("notice", "\The [src] found [scannable_atoms.len] object\s that can be scanned."))
+ to_chat(user, SPAN_NOTICE("\The [src] found [scannable_atoms.len] object\s that can be scanned."))
// Negative points are bad.
diff --git a/code/modules/catalogue/cataloguer_vr.dm b/code/modules/catalogue/cataloguer_vr.dm
index 6a8dd52fa12..a9976c08534 100644
--- a/code/modules/catalogue/cataloguer_vr.dm
+++ b/code/modules/catalogue/cataloguer_vr.dm
@@ -21,17 +21,17 @@
set category = "Object"
if(busy)
- to_chat(usr, span("warning", "\The [src] is currently scanning something."))
+ to_chat(usr, SPAN_WARNING( "\The [src] is currently scanning something."))
return
deployed = !(deployed)
if(deployed)
w_class = ITEMSIZE_NORMAL
icon_state = "[initial(icon_state)]"
- to_chat(usr, span("notice", "You flip open \the [src]."))
+ to_chat(usr, SPAN_NOTICE("You flip open \the [src]."))
else
w_class = ITEMSIZE_SMALL
icon_state = "[initial(icon_state)]_closed"
- to_chat(usr, span("notice", "You close \the [src]."))
+ to_chat(usr, SPAN_NOTICE("You close \the [src]."))
if (ismob(usr))
var/mob/M = usr
@@ -39,13 +39,13 @@
/obj/item/cataloguer/compact/afterattack(atom/target, mob/user, proximity_flag)
if(!deployed)
- to_chat(user, span("warning", "\The [src] is closed."))
+ to_chat(user, SPAN_WARNING( "\The [src] is closed."))
return
return ..()
/obj/item/cataloguer/compact/pulse_scan(mob/user)
if(!deployed)
- to_chat(user, span("warning", "\The [src] is closed."))
+ to_chat(user, SPAN_WARNING( "\The [src] is closed."))
return
return ..()
diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm
index 1d3c48be1a0..69205d57dcc 100644
--- a/code/modules/client/preference_setup/general/03_body.dm
+++ b/code/modules/client/preference_setup/general/03_body.dm
@@ -752,7 +752,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
for(var/other_limb in BP_ALL - BP_TORSO)
pref.organ_data[other_limb] = null
pref.rlimb_data[other_limb] = null
- for(var/internal in O_STANDARD)
+ for(var/internal in O_ALL_STANDARD)
pref.organ_data[internal] = null
pref.rlimb_data[internal] = null
if(third_limb)
diff --git a/code/modules/client/preference_setup/preference_setup.dm b/code/modules/client/preference_setup/preference_setup.dm
index 244932774e5..a855e248654 100644
--- a/code/modules/client/preference_setup/preference_setup.dm
+++ b/code/modules/client/preference_setup/preference_setup.dm
@@ -266,7 +266,7 @@ category_item_type = /datum/category_item/player_setup_item/skills
return 0 //Something went wrong!
/datum/category_item/player_setup_item/proc/get_min_age() //Minimum limit is 18
- var/datum/species/S = GLOB.all_species[pref.species ? pref.species : "Human"]
+ var/datum/species/S = GLOB.all_species[pref.species ? pref.species : SPECIES_HUMAN]
if(S.min_age > 18)
return S.min_age
else if(!is_FBP())
@@ -274,7 +274,7 @@ category_item_type = /datum/category_item/player_setup_item/skills
return S.min_age
/datum/category_item/player_setup_item/proc/get_max_age()
- var/datum/species/S = GLOB.all_species[pref.species ? pref.species : "Human"]
+ var/datum/species/S = GLOB.all_species[pref.species ? pref.species : SPECIES_HUMAN]
if(!is_FBP())
return S.max_age // If they're not a robot, we can just use the species var.
var/FBP_type = get_FBP_type()
diff --git a/code/modules/client/preference_setup/vore/03_egg.dm b/code/modules/client/preference_setup/vore/03_egg.dm
index 648b31b3995..127f6ebd683 100644
--- a/code/modules/client/preference_setup/vore/03_egg.dm
+++ b/code/modules/client/preference_setup/vore/03_egg.dm
@@ -1,14 +1,14 @@
-var/UNATHI_EGG = "Unathi"
+var/UNATHI_EGG = SPECIES_UNATHI
var/TAJARAN_EGG = "Tajaran"
-var/AKULA_EGG = "Akula"
-var/SKRELL_EGG = "Skrell"
-var/SERGAL_EGG = "Sergal"
-var/HUMAN_EGG = "Human"
+var/AKULA_EGG = SPECIES_AKULA
+var/SKRELL_EGG = SPECIES_SKRELL
+var/SERGAL_EGG = SPECIES_SERGAL
+var/HUMAN_EGG = SPECIES_HUMAN
var/NEVREAN_EGG = "nevrean"
var/SLIME_EGG = "Slime"
var/EGG_EGG = "Egg"
-var/XENOCHIMERA_EGG = "Xenochimera"
-var/XENOMORPH_EGG = "Xenomorph"
+var/XENOCHIMERA_EGG = SPECIES_XENOCHIMERA
+var/XENOMORPH_EGG = SPECIES_XENO
// Define a place to save appearance in character setup
/datum/preferences
diff --git a/code/modules/client/preference_setup/vore/08_traits.dm b/code/modules/client/preference_setup/vore/08_traits.dm
index 335a48c1bc8..f8e77c452ea 100644
--- a/code/modules/client/preference_setup/vore/08_traits.dm
+++ b/code/modules/client/preference_setup/vore/08_traits.dm
@@ -108,7 +108,7 @@
var/datum/species/selected_species = GLOB.all_species[pref.species]
if(selected_species.selects_bodytype)
var/datum/species/custom/CS = character.species
- var/S = pref.custom_base ? pref.custom_base : "Human"
+ var/S = pref.custom_base ? pref.custom_base : SPECIES_HUMAN
var/datum/species/custom/new_CS = CS.produceCopy(S, pref.pos_traits + pref.neu_traits + pref.neg_traits, character)
//Any additional non-trait settings can be applied here
@@ -126,7 +126,7 @@
var/datum/species/selected_species = GLOB.all_species[pref.species]
if(selected_species.selects_bodytype)
. += "Icon Base: "
- . += "[pref.custom_base ? pref.custom_base : "Human"]
"
+ . += "[pref.custom_base ? pref.custom_base : SPECIES_HUMAN]
"
if(pref.species == SPECIES_CUSTOM)
var/points_left = pref.starting_trait_points
@@ -179,7 +179,7 @@
return TOPIC_NOACTION
else if(href_list["custom_species"])
- /*if(pref.species != "Custom Species")
+ /*if(pref.species != SPECIES_CUSTOM)
alert("You cannot set a custom species name unless you set your character to use the 'Custom Species' \
species on the 'General' tab. If you have this set to something, it's because you had it set before the \
Trait system was implemented. If you wish to change it, set your species to 'Custom Species' and configure \
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index 661ed17178e..9c303925fc7 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -31,8 +31,8 @@ BLIND // can't see anything
pickup_sound = 'sound/items/pickup/accessory.ogg'
sprite_sheets = list(
- "Teshari" = 'icons/mob/species/teshari/eyes.dmi',
- "Vox" = 'icons/mob/species/vox/eyes.dmi'
+ SPECIES_TESHARI = 'icons/mob/species/teshari/eyes.dmi',
+ SPECIES_VOX = 'icons/mob/species/vox/eyes.dmi'
)
/obj/item/clothing/glasses/update_clothing_icon()
@@ -245,7 +245,7 @@ BLIND // can't see anything
/obj/item/clothing/glasses/night/vox
name = "Alien Optics"
- species_restricted = list("Vox")
+ species_restricted = list(SPECIES_VOX)
flags = PHORONGUARD
/obj/item/clothing/glasses/night/Initialize(mapload)
@@ -457,7 +457,7 @@ BLIND // can't see anything
icon_state = "welding-g"
item_state_slots = list(slot_r_hand_str = "welding-g", slot_l_hand_str = "welding-g")
action_button_name = "Flip Welding Goggles"
- matter = list(DEFAULT_WALL_MATERIAL = 1500, "glass" = 1000)
+ matter = list(MAT_STEEL = 1500, MAT_GLASS = 1000)
item_flags = ALLOWINTERNALS
var/up = 0
flash_protection = FLASH_PROTECTION_MAJOR
@@ -870,4 +870,4 @@ BLIND // can't see anything
icon_state = "laconic-g"
item_state_slots = list(slot_r_hand_str = "welding-g", slot_l_hand_str = "welding-g")
action_button_name = "Adjust Goggles"
- matter = list("brass" = 1500, "glass" = 1000)
+ matter = list("brass" = 1500, MAT_GLASS = 1000)
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index 24c9a80c703..5ee9071d6d3 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -119,7 +119,7 @@
flags = PHORONGUARD
siemens_coefficient = 0
permeability_coefficient = 0.05
- species_restricted = list("Vox")
+ species_restricted = list(SPECIES_VOX)
drop_sound = 'sound/items/drop/metalboots.ogg'
pickup_sound = 'sound/items/pickup/toolbox.ogg'
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index 0387f714999..583a466a9e1 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -42,7 +42,7 @@
name = "magnetic 'pin'"
addblends = null
desc = "Finally, a hair pin even a Morpheus chassis can use."
- matter = list(DEFAULT_WALL_MATERIAL = 10)
+ matter = list(MAT_STEEL = 10)
/obj/item/clothing/head/pin/flower
name = "red flower pin"
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index 283a8713547..7b0561bbbc2 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -17,7 +17,7 @@
desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye."
icon_state = "welding"
item_state_slots = list(slot_r_hand_str = "welding", slot_l_hand_str = "welding")
- matter = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 1000)
+ matter = list(MAT_STEEL = 3000, MAT_GLASS = 1000)
var/up = 0
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
flags_inv = (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
diff --git a/code/modules/clothing/rings/material.dm b/code/modules/clothing/rings/material.dm
index bf30ece4bdf..141e5bf903f 100644
--- a/code/modules/clothing/rings/material.dm
+++ b/code/modules/clothing/rings/material.dm
@@ -7,7 +7,7 @@
/obj/item/clothing/gloves/ring/material/Initialize(mapload, new_material)
. = ..()
if(!new_material)
- new_material = DEFAULT_WALL_MATERIAL
+ new_material = MAT_STEEL
material = get_material_by_name(new_material)
if(!istype(material))
qdel(src)
diff --git a/code/modules/clothing/spacesuits/breaches.dm b/code/modules/clothing/spacesuits/breaches.dm
index 2440b589258..507fe6f532c 100644
--- a/code/modules/clothing/spacesuits/breaches.dm
+++ b/code/modules/clothing/spacesuits/breaches.dm
@@ -181,7 +181,7 @@ var/global/list/breach_burn_descriptors = list(
if(istype(W,/obj/item/stack/material))
var/repair_power = 0
switch(W.get_material_name())
- if(DEFAULT_WALL_MATERIAL)
+ if(MAT_STEEL)
repair_power = 2
if("plastic")
repair_power = 1
diff --git a/code/modules/clothing/spacesuits/rig/modules/modules.dm b/code/modules/clothing/spacesuits/rig/modules/modules.dm
index 3889aa4fdfd..e4b17456cc5 100644
--- a/code/modules/clothing/spacesuits/rig/modules/modules.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/modules.dm
@@ -13,7 +13,7 @@
desc = "It looks pretty sciency."
icon = 'icons/obj/rig_modules.dmi'
icon_state = "module"
- matter = list(DEFAULT_WALL_MATERIAL = 20000, "plastic" = 30000, "glass" = 5000)
+ matter = list(MAT_STEEL = 20000, MAT_PLASTIC = 30000, MAT_GLASS = 5000)
var/damage = 0
var/obj/item/rig/holder
diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm
index fbf0ad415da..8a8fa295015 100644
--- a/code/modules/clothing/spacesuits/void/void.dm
+++ b/code/modules/clothing/spacesuits/void/void.dm
@@ -13,7 +13,7 @@
// flags_inv = HIDEEARS|BLOCKHAIR
//Species-specific stuff.
- species_restricted = list("Human", "Promethean", "Alraune")
+ species_restricted = list(SPECIES_HUMAN, SPECIES_PROMETHEAN, SPECIES_ALRAUNE)
sprite_sheets_refit = list(
SPECIES_UNATHI = 'icons/mob/species/unathi/helmet.dmi',
SPECIES_TAJ = 'icons/mob/species/tajaran/helmet.dmi',
@@ -43,7 +43,7 @@
min_pressure_protection = 0 * ONE_ATMOSPHERE
max_pressure_protection = 10 * ONE_ATMOSPHERE
- species_restricted = list("Human", SPECIES_SKRELL, "Promethean")
+ species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_PROMETHEAN)
sprite_sheets_refit = list(
SPECIES_UNATHI = 'icons/mob/species/unathi/suit.dmi',
SPECIES_TAJ = 'icons/mob/species/tajaran/suit.dmi',
diff --git a/code/modules/clothing/spacesuits/void/void_vr.dm b/code/modules/clothing/spacesuits/void/void_vr.dm
index 164df0179e4..ccb39e3450a 100644
--- a/code/modules/clothing/spacesuits/void/void_vr.dm
+++ b/code/modules/clothing/spacesuits/void/void_vr.dm
@@ -7,69 +7,69 @@
/obj/item/clothing/head/helmet/space/void
sprite_sheets = list(
- "Tajara" = 'icons/mob/species/tajaran/helmet.dmi',
- "Skrell" = 'icons/mob/species/skrell/helmet.dmi',
- "Unathi" = 'icons/mob/species/unathi/helmet.dmi',
- "Teshari" = 'icons/mob/species/teshari/head.dmi',
- "Nevrean" = 'icons/mob/species/nevrean/helmet_vr.dmi',
- "Akula" = 'icons/mob/species/akula/helmet_vr.dmi',
- "Sergal" = 'icons/mob/species/sergal/helmet_vr.dmi',
- "Flatland Zorren" = 'icons/mob/species/fennec/helmet_vr.dmi',
- "Highlander Zorren" = 'icons/mob/species/fox/helmet_vr.dmi',
- "Vulpkanin" = 'icons/mob/species/vulpkanin/helmet.dmi',
- "Promethean" = 'icons/mob/species/skrell/helmet.dmi',
- "Xenomorph Hybrid" = 'icons/mob/species/unathi/helmet.dmi',
- "Vox" = 'icons/mob/species/vox/helmet.dmi'
+ SPECIES_TAJ = 'icons/mob/species/tajaran/helmet.dmi',
+ SPECIES_SKRELL = 'icons/mob/species/skrell/helmet.dmi',
+ SPECIES_UNATHI = 'icons/mob/species/unathi/helmet.dmi',
+ SPECIES_TESHARI = 'icons/mob/species/teshari/head.dmi',
+ SPECIES_NEVREAN = 'icons/mob/species/nevrean/helmet_vr.dmi',
+ SPECIES_AKULA = 'icons/mob/species/akula/helmet_vr.dmi',
+ SPECIES_SERGAL = 'icons/mob/species/sergal/helmet_vr.dmi',
+ SPECIES_ZORREN_FLAT = 'icons/mob/species/fennec/helmet_vr.dmi',
+ SPECIES_ZORREN_HIGH = 'icons/mob/species/fox/helmet_vr.dmi',
+ SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/helmet.dmi',
+ SPECIES_PROMETHEAN = 'icons/mob/species/skrell/helmet.dmi',
+ SPECIES_XENOHYBRID = 'icons/mob/species/unathi/helmet.dmi',
+ SPECIES_VOX = 'icons/mob/species/vox/helmet.dmi'
)
sprite_sheets_obj = list(
- "Tajara" = 'icons/obj/clothing/species/tajaran/hats.dmi', // Copied from void.dm
- "Skrell" = 'icons/obj/clothing/species/skrell/hats.dmi', // Copied from void.dm
- "Unathi" = 'icons/obj/clothing/species/unathi/hats.dmi', // Copied from void.dm
- "Teshari" = 'icons/obj/clothing/species/teshari/hats.dmi', // Copied from void.dm
- "Nevrean" = 'icons/obj/clothing/species/nevrean/hats.dmi',
- "Akula" = 'icons/obj/clothing/species/akula/hats.dmi',
- "Sergal" = 'icons/obj/clothing/species/sergal/hats.dmi',
- "Flatland Zorren" = 'icons/obj/clothing/species/fennec/hats.dmi',
- "Highlander Zorren" = 'icons/obj/clothing/species/fox/hats.dmi',
- "Vulpkanin" = 'icons/obj/clothing/species/vulpkanin/hats.dmi',
- "Promethean" = 'icons/obj/clothing/species/skrell/hats.dmi',
- "Xenomorph Hybrid" = 'icons/obj/clothing/species/unathi/hats.dmi',
- "Vox" = 'icons/obj/clothing/species/vox/hats.dmi'
+ SPECIES_TAJ = 'icons/obj/clothing/species/tajaran/hats.dmi', // Copied from void.dm
+ SPECIES_SKRELL = 'icons/obj/clothing/species/skrell/hats.dmi', // Copied from void.dm
+ SPECIES_UNATHI = 'icons/obj/clothing/species/unathi/hats.dmi', // Copied from void.dm
+ SPECIES_TESHARI = 'icons/obj/clothing/species/teshari/hats.dmi', // Copied from void.dm
+ SPECIES_NEVREAN = 'icons/obj/clothing/species/nevrean/hats.dmi',
+ SPECIES_AKULA = 'icons/obj/clothing/species/akula/hats.dmi',
+ SPECIES_SERGAL = 'icons/obj/clothing/species/sergal/hats.dmi',
+ SPECIES_ZORREN_FLAT = 'icons/obj/clothing/species/fennec/hats.dmi',
+ SPECIES_ZORREN_HIGH = 'icons/obj/clothing/species/fox/hats.dmi',
+ SPECIES_VULPKANIN = 'icons/obj/clothing/species/vulpkanin/hats.dmi',
+ SPECIES_PROMETHEAN = 'icons/obj/clothing/species/skrell/hats.dmi',
+ SPECIES_XENOHYBRID = 'icons/obj/clothing/species/unathi/hats.dmi',
+ SPECIES_VOX = 'icons/obj/clothing/species/vox/hats.dmi'
)
/obj/item/clothing/suit/space/void
sprite_sheets = list(
- "Tajara" = 'icons/mob/species/tajaran/suit.dmi',
- "Skrell" = 'icons/mob/species/skrell/suit.dmi',
- "Unathi" = 'icons/mob/species/unathi/suit.dmi',
- "Teshari" = 'icons/mob/species/teshari/suit.dmi',
- "Nevrean" = 'icons/mob/species/nevrean/suit_vr.dmi',
- "Akula" = 'icons/mob/species/akula/suit_vr.dmi',
- "Sergal" = 'icons/mob/species/sergal/suit_vr.dmi',
- "Flatland Zorren" = 'icons/mob/species/fennec/suit_vr.dmi',
- "Highlander Zorren" = 'icons/mob/species/fox/suit_vr.dmi',
- "Vulpkanin" = 'icons/mob/species/vulpkanin/suit.dmi',
- "Promethean" = 'icons/mob/species/skrell/suit.dmi',
- "Xenomorph Hybrid" = 'icons/mob/species/unathi/suit.dmi',
- "Vox" = 'icons/mob/species/vox/suit.dmi'
+ SPECIES_TAJ = 'icons/mob/species/tajaran/suit.dmi',
+ SPECIES_SKRELL = 'icons/mob/species/skrell/suit.dmi',
+ SPECIES_UNATHI = 'icons/mob/species/unathi/suit.dmi',
+ SPECIES_TESHARI = 'icons/mob/species/teshari/suit.dmi',
+ SPECIES_NEVREAN = 'icons/mob/species/nevrean/suit_vr.dmi',
+ SPECIES_AKULA = 'icons/mob/species/akula/suit_vr.dmi',
+ SPECIES_SERGAL = 'icons/mob/species/sergal/suit_vr.dmi',
+ SPECIES_ZORREN_FLAT = 'icons/mob/species/fennec/suit_vr.dmi',
+ SPECIES_ZORREN_HIGH = 'icons/mob/species/fox/suit_vr.dmi',
+ SPECIES_VULPKANIN = 'icons/mob/species/vulpkanin/suit.dmi',
+ SPECIES_PROMETHEAN = 'icons/mob/species/skrell/suit.dmi',
+ SPECIES_XENOHYBRID = 'icons/mob/species/unathi/suit.dmi',
+ SPECIES_VOX = 'icons/mob/species/vox/suit.dmi'
)
sprite_sheets_obj = list(
- "Tajara" = 'icons/obj/clothing/species/tajaran/suits.dmi', // Copied from void.dm
- "Skrell" = 'icons/obj/clothing/species/skrell/suits.dmi', // Copied from void.dm
- "Unathi" = 'icons/obj/clothing/species/unathi/suits.dmi', // Copied from void.dm
- "Teshari" = 'icons/obj/clothing/species/teshari/suits.dmi', // Copied from void.dm
- "Nevrean" = 'icons/obj/clothing/species/nevrean/suits.dmi',
- "Akula" = 'icons/obj/clothing/species/akula/suits.dmi',
- "Sergal" = 'icons/obj/clothing/species/sergal/suits.dmi',
- "Flatland Zorren" = 'icons/obj/clothing/species/fennec/suits.dmi',
- "Highlander Zorren" = 'icons/obj/clothing/species/fox/suits.dmi',
- "Vulpkanin" = 'icons/obj/clothing/species/vulpkanin/suits.dmi',
- "Promethean" = 'icons/obj/clothing/species/skrell/suits.dmi',
- "Vox" = 'icons/obj/clothing/species/vox/suits.dmi'
+ SPECIES_TAJ = 'icons/obj/clothing/species/tajaran/suits.dmi', // Copied from void.dm
+ SPECIES_SKRELL = 'icons/obj/clothing/species/skrell/suits.dmi', // Copied from void.dm
+ SPECIES_UNATHI = 'icons/obj/clothing/species/unathi/suits.dmi', // Copied from void.dm
+ SPECIES_TESHARI = 'icons/obj/clothing/species/teshari/suits.dmi', // Copied from void.dm
+ SPECIES_NEVREAN = 'icons/obj/clothing/species/nevrean/suits.dmi',
+ SPECIES_AKULA = 'icons/obj/clothing/species/akula/suits.dmi',
+ SPECIES_SERGAL = 'icons/obj/clothing/species/sergal/suits.dmi',
+ SPECIES_ZORREN_FLAT = 'icons/obj/clothing/species/fennec/suits.dmi',
+ SPECIES_ZORREN_HIGH = 'icons/obj/clothing/species/fox/suits.dmi',
+ SPECIES_VULPKANIN = 'icons/obj/clothing/species/vulpkanin/suits.dmi',
+ SPECIES_PROMETHEAN = 'icons/obj/clothing/species/skrell/suits.dmi',
+ SPECIES_VOX = 'icons/obj/clothing/species/vox/suits.dmi'
)
// This is a hack to prevent the item_state variable on the suits from taking effect
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index 856753f001e..e3a50f705d7 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -267,8 +267,8 @@
item_state_slots = list(slot_r_hand_str = "brown_jacket", slot_l_hand_str = "brown_jacket")
icon = 'icons/map_assets/southern_cross/obj/sc_suit.dmi'
sprite_sheets = list(
- "Teshari" = 'icons/map_assets/southern_cross/mob/species/teshari/sc_suit.dmi',
- "Vox" = 'icons/map_assets/southern_cross/mob/species/vox/sc_suit.dmi'
+ SPECIES_TESHARI = 'icons/map_assets/southern_cross/mob/species/teshari/sc_suit.dmi',
+ SPECIES_VOX = 'icons/map_assets/southern_cross/mob/species/vox/sc_suit.dmi'
)
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm
index 627622fba0a..f087f499361 100644
--- a/code/modules/clothing/under/accessories/accessory.dm
+++ b/code/modules/clothing/under/accessories/accessory.dm
@@ -421,7 +421,7 @@
/obj/item/clothing/accessory/bracelet/material/Initialize(mapload, new_material)
. = ..(mapload)
if(!new_material)
- new_material = DEFAULT_WALL_MATERIAL
+ new_material = MAT_STEEL
material = get_material_by_name(new_material)
if(!istype(material))
return INITIALIZE_HINT_QDEL
@@ -750,7 +750,7 @@
icon_state = "collar_holo"
item_state = "collar_holo_overlay"
overlay_state = "collar_holo_overlay"
- matter = list(DEFAULT_WALL_MATERIAL = 50)
+ matter = list(MAT_STEEL = 50)
/obj/item/clothing/accessory/collar/silvercolor
name = "Dyeable Silver tag collar"
diff --git a/code/modules/clothing/under/accessories/clothing.dm b/code/modules/clothing/under/accessories/clothing.dm
index 2adb32afff1..3caf31c28fe 100644
--- a/code/modules/clothing/under/accessories/clothing.dm
+++ b/code/modules/clothing/under/accessories/clothing.dm
@@ -59,16 +59,16 @@
slot = ACCESSORY_SLOT_OVER
sprite_sheets = list(
- "Teshari" = 'icons/mob/species/teshari/suit.dmi'
+ SPECIES_TESHARI = 'icons/mob/species/teshari/suit.dmi'
)
/obj/item/clothing/accessory/poncho/equipped() //Solution for race-specific sprites for an accessory which is also a suit. Suit icons break if you don't use icon override which then also overrides race-specific sprites.
..()
var/mob/living/carbon/human/H = loc
if(istype(H) && H.wear_suit == src)
- if(H.species.name == "Teshari")
+ if(H.species.name == SPECIES_TESHARI)
icon_override = 'icons/mob/species/teshari/suit.dmi'
- else if(H.species.name == "Vox")
+ else if(H.species.name == SPECIES_VOX)
icon_override = 'icons/mob/species/vox/ties.dmi'
else
icon_override = 'icons/mob/ties.dmi'
@@ -384,16 +384,16 @@
slot = ACCESSORY_SLOT_OVER
sprite_sheets = list(
- "Teshari" = 'icons/mob/species/teshari/ties.dmi'
+ SPECIES_TESHARI = 'icons/mob/species/teshari/ties.dmi'
)
/obj/item/clothing/accessory/sweater/equipped() // Solution for race-specific sprites for an accessory which is also a suit. Suit icons break if you don't use icon override which then also overrides race-specific sprites.
..()
var/mob/living/carbon/human/H = loc
if(istype(H) && H.wear_suit == src)
- if(H.species.name == "Teshari")
+ if(H.species.name == SPECIES_TESHARI)
icon_override = 'icons/mob/species/teshari/ties.dmi'
- else if(H.species.name == "Vox")
+ else if(H.species.name == SPECIES_VOX)
icon_override = 'icons/mob/species/vox/ties.dmi'
else
icon_override = 'icons/mob/ties.dmi'
diff --git a/code/modules/clothing/under/accessories/storage.dm b/code/modules/clothing/under/accessories/storage.dm
index 5a3420e9d7c..2e3a1cba6fd 100644
--- a/code/modules/clothing/under/accessories/storage.dm
+++ b/code/modules/clothing/under/accessories/storage.dm
@@ -110,7 +110,7 @@
desc = "Sturdy mess of black synthcotton belts and buckles."
icon_state = "pilot_webbing2"
sprite_sheets = list(
- "Teshari" = 'icons/mob/species/teshari/ties.dmi'
+ SPECIES_TESHARI = 'icons/mob/species/teshari/ties.dmi'
)
/obj/item/clothing/accessory/storage/knifeharness/Initialize(mapload)
diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm
index 0d3376cc2fc..ddf419c7c13 100644
--- a/code/modules/clothing/under/jobs/civilian.dm
+++ b/code/modules/clothing/under/jobs/civilian.dm
@@ -269,7 +269,7 @@
item_icons = list(slot_w_uniform_str = 'icons/map_assets/southern_cross/mob/sc_under.dmi')
icon = 'icons/map_assets/southern_cross/obj/sc_uniforms.dmi'
sprite_sheets = list(
- "Teshari" = 'icons/map_assets/southern_cross/mob/species/teshari/sc_uniform.dmi'
+ SPECIES_TESHARI = 'icons/map_assets/southern_cross/mob/species/teshari/sc_uniform.dmi'
)
starting_accessories = list(/obj/item/clothing/accessory/storage/webbing/pilot1)
@@ -283,7 +283,7 @@
item_icons = list(slot_w_uniform_str = 'icons/map_assets/southern_cross/mob/sc_under.dmi')
icon = 'icons/map_assets/southern_cross/obj/sc_uniforms.dmi'
sprite_sheets = list(
- "Teshari" = 'icons/map_assets/southern_cross/mob/species/teshari/sc_uniform.dmi'
+ SPECIES_TESHARI = 'icons/map_assets/southern_cross/mob/species/teshari/sc_uniform.dmi'
)
starting_accessories = list(/obj/item/clothing/accessory/storage/webbing/pilot2)
diff --git a/code/modules/detectivework/tools/uvlight.dm b/code/modules/detectivework/tools/uvlight.dm
index 2153ba1307f..bab21aa5e36 100644
--- a/code/modules/detectivework/tools/uvlight.dm
+++ b/code/modules/detectivework/tools/uvlight.dm
@@ -7,7 +7,7 @@
w_class = ITEMSIZE_SMALL
item_state = "electronic"
action_button_name = "Toggle UV light"
- matter = list(DEFAULT_WALL_MATERIAL = 150)
+ matter = list(MAT_STEEL = 150)
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1)
var/list/scanned = list()
diff --git a/code/modules/economy/Events_Mundane.dm b/code/modules/economy/Events_Mundane.dm
index 3f08c826b2e..6bb7aa09a14 100644
--- a/code/modules/economy/Events_Mundane.dm
+++ b/code/modules/economy/Events_Mundane.dm
@@ -82,7 +82,7 @@
if(MOVIE_RELEASE)
body += "From the [pick("desk","home town","homeworld","mind")] of [pick("acclaimed","award-winning","popular","stellar")] \
[pick("playwright","author","director","actor","TV star")] [random_name(pick(MALE,FEMALE))] comes the latest sensation: '\
- [pick("Deadly","The last","Lost","Dead")] [pick("Starships","Warriors","outcasts","Tajarans","Unathi","Skrell")] \
+ [pick("Deadly","The last","Lost","Dead")] [pick("Starships","Warriors","outcasts","Tajarans",SPECIES_UNATHI,"Skrell")] \
[pick("of","from","raid","go hunting on","visit","ravage","pillage","destroy")] \
[pick("Moghes","Earth","Biesel","Meralar","Rarkajar","the Void","the Edge of Space")]'.\
. Own it on webcast today, or visit the galactic premier on [affected_dest.name]!"
@@ -152,7 +152,7 @@
"'Here kitty kitty' no longer preferred tajaran retrieval technique.",\
"Man travels 7000 light years to retrieve lost hankie, 'It was my favourite'.",\
"New bowling lane that shoots mini-meteors at bowlers very popular.",\
- "[pick("Unathi","Spacer")] gets tattoo of "+GLOB.using_map.starsys_name+" on chest '[pick("[GLOB.using_map.boss_short]","star","starship","asteroid")] tickles most'.",\
+ "[pick(SPECIES_UNATHI,"Spacer")] gets tattoo of "+GLOB.using_map.starsys_name+" on chest '[pick("[GLOB.using_map.boss_short]","star","starship","asteroid")] tickles most'.",\
"Skrell marries computer; wedding attended by 100 modems.",\
"Chef reports successfully using harmonica as cheese grater.",\
"[GLOB.using_map.company_name] invents handkerchief that says 'Bless you' after sneeze.",\
diff --git a/code/modules/flufftext/look_up.dm b/code/modules/flufftext/look_up.dm
index 0188ff88dd3..9818fb9178f 100644
--- a/code/modules/flufftext/look_up.dm
+++ b/code/modules/flufftext/look_up.dm
@@ -9,7 +9,7 @@
var/turf/T = get_turf(usr)
if(!T) // In null space.
- to_chat(usr, span("warning", "You appear to be in a place without any sort of concept of direction. You have bigger problems to worry about."))
+ to_chat(usr, SPAN_WARNING( "You appear to be in a place without any sort of concept of direction. You have bigger problems to worry about."))
return
if(!T.outdoors) // They're inside.
@@ -19,7 +19,7 @@
else // They're outside and hopefully on a planet.
var/datum/planet/P = SSplanets.z_to_planet[T.z]
if(!P)
- to_chat(usr, span("warning", "You appear to be outside, but not on a planet... Something is wrong."))
+ to_chat(usr, SPAN_WARNING( "You appear to be outside, but not on a planet... Something is wrong."))
return
var/datum/weather_holder/WH = P.weather_holder
@@ -57,4 +57,3 @@
to_chat(usr, "[P.moon_name] is not visible. It must be a new moon.")
else
to_chat(usr, "[P.moon_name] appears to currently be a [P.moon_phase].")
-
diff --git a/code/modules/food/drinkingglass/drinkingglass.dm b/code/modules/food/drinkingglass/drinkingglass.dm
index 803768c8d25..4b38f7dde7b 100644
--- a/code/modules/food/drinkingglass/drinkingglass.dm
+++ b/code/modules/food/drinkingglass/drinkingglass.dm
@@ -25,7 +25,7 @@
possible_transfer_amounts = list(5,10,15,30)
flags = OPENCONTAINER
- matter = list("glass" = 60)
+ matter = list(MAT_GLASS = 60)
/obj/item/reagent_containers/food/drinks/glass2/examine(mob/user)
. = ..()
diff --git a/code/modules/food/drinkingglass/glass_types.dm b/code/modules/food/drinkingglass/glass_types.dm
index 867730d42b1..f37f4b9a95c 100644
--- a/code/modules/food/drinkingglass/glass_types.dm
+++ b/code/modules/food/drinkingglass/glass_types.dm
@@ -7,7 +7,7 @@
volume = 30
possible_transfer_amounts = list(5,10,15,30)
rim_pos = list(23,13,20) // y, x0, x1
- matter = list("glass" = 60)
+ matter = list(MAT_GLASS = 60)
/obj/item/reagent_containers/food/drinks/glass2/rocks
name = "rocks glass"
@@ -18,7 +18,7 @@
volume = 20
possible_transfer_amounts = list(5,10,20)
rim_pos = list(21, 10, 23)
- matter = list("glass" = 40)
+ matter = list(MAT_GLASS = 40)
/obj/item/reagent_containers/food/drinks/glass2/shake
name = "milkshake glass"
@@ -29,7 +29,7 @@
volume = 30
possible_transfer_amounts = list(5,10,15,30)
rim_pos = list(25, 13, 21)
- matter = list("glass" = 30)
+ matter = list(MAT_GLASS = 30)
/obj/item/reagent_containers/food/drinks/glass2/cocktail
name = "cocktail glass"
@@ -40,7 +40,7 @@
volume = 15
possible_transfer_amounts = list(5,10,15)
rim_pos = list(22, 13, 21)
- matter = list("glass" = 30)
+ matter = list(MAT_GLASS = 30)
/obj/item/reagent_containers/food/drinks/glass2/shot
name = "shot glass"
@@ -51,7 +51,7 @@
volume = 5
possible_transfer_amounts = list(1,2,5)
rim_pos = list(17, 13, 21)
- matter = list("glass" = 10)
+ matter = list(MAT_GLASS = 10)
/obj/item/reagent_containers/food/drinks/glass2/pint
name = "pint glass"
@@ -62,7 +62,7 @@
volume = 60
possible_transfer_amounts = list(5,10,15,30,60)
rim_pos = list(25, 12, 21)
- matter = list("glass" = 120)
+ matter = list(MAT_GLASS = 120)
/obj/item/reagent_containers/food/drinks/glass2/mug
name = "glass mug"
@@ -73,7 +73,7 @@
volume = 40
possible_transfer_amounts = list(5,10,20,40)
rim_pos = list(22, 12, 20)
- matter = list("glass" = 80)
+ matter = list(MAT_GLASS = 80)
/obj/item/reagent_containers/food/drinks/glass2/wine
name = "wine glass"
@@ -84,7 +84,7 @@
volume = 25
possible_transfer_amounts = list(5, 10, 15, 25)
rim_pos = list(25, 12, 21)
- matter = list("glass" = 50)
+ matter = list(MAT_GLASS = 50)
/obj/item/reagent_containers/food/drinks/glass2/pitcher
name = "pitcher"
@@ -96,4 +96,4 @@
amount_per_transfer_from_this = 30
possible_transfer_amounts = list(5,10,15,30,60)
rim_pos = list(25, 12, 21)
- matter = list("glass" = 600)
+ matter = list(MAT_GLASS = 600)
diff --git a/code/modules/food/drinkingglass/metaglass.dm b/code/modules/food/drinkingglass/metaglass.dm
index d57c0cc474d..519b50e017a 100644
--- a/code/modules/food/drinkingglass/metaglass.dm
+++ b/code/modules/food/drinkingglass/metaglass.dm
@@ -6,7 +6,7 @@
volume = 30
unacidable = 1 //glass
center_of_mass = list("x"=16, "y"=10)
- matter = list("glass" = 500)
+ matter = list(MAT_GLASS = 500)
icon = 'icons/obj/drinks.dmi'
/obj/item/reagent_containers/food/drinks/metaglass/on_reagent_change()
diff --git a/code/modules/food/drinkingglass/shaker.dm b/code/modules/food/drinkingglass/shaker.dm
index 8d1a02c6f2e..63d05615dde 100644
--- a/code/modules/food/drinkingglass/shaker.dm
+++ b/code/modules/food/drinkingglass/shaker.dm
@@ -5,7 +5,7 @@
icon_state = "fitness-cup_black"
base_icon = "fitness-cup"
volume = 50
- matter = list("plastic" = 2000)
+ matter = list(MAT_PLASTIC = 2000)
filling_states = list(5,10,15,20,25,30,35,40,45,50)
possible_transfer_amounts = list(5, 10, 15, 25)
rim_pos = null // no fruit slices
diff --git a/code/modules/food/food/drinks/drinkingglass.dm b/code/modules/food/food/drinks/drinkingglass.dm
index 693bff8bb87..9d1b56eac31 100644
--- a/code/modules/food/food/drinks/drinkingglass.dm
+++ b/code/modules/food/food/drinks/drinkingglass.dm
@@ -10,7 +10,7 @@
center_of_mass = list("x"=16, "y"=10)
drop_sound = 'sound/items/drop/drinkglass.ogg'
pickup_sound = 'sound/items/pickup/drinkglass.ogg'
- matter = list("glass" = 500)
+ matter = list(MAT_GLASS = 500)
on_reagent_change()
/*if(reagents.reagent_list.len > 1 )
@@ -115,7 +115,7 @@
icon_state = "shotglass"
amount_per_transfer_from_this = 10
volume = 10
- matter = list("glass" = 175)
+ matter = list(MAT_GLASS = 175)
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/on_reagent_change()
overlays.Cut()
@@ -139,7 +139,7 @@
desc = "Big enough to contain enough protein to get perfectly swole. Don't mind the bits."
icon_state = "fitness-cup_black"
volume = 100
- matter = list("plastic" = 2000)
+ matter = list(MAT_PLASTIC = 2000)
/obj/item/reagent_containers/food/drinks/drinkingglass/fitnessflask/Initialize(mapload)
. = ..()
diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm
index 174f98b7ab1..08e4d4c5e2e 100644
--- a/code/modules/food/food/snacks.dm
+++ b/code/modules/food/food/snacks.dm
@@ -1789,7 +1789,7 @@
filling_color = "#ADAC7F"
var/wrapped = 0
- var/monkey_type = "Monkey"
+ var/monkey_type = SPECIES_MONKEY
/obj/item/reagent_containers/food/snacks/monkeycube/Initialize(mapload)
. = ..()
@@ -1839,27 +1839,27 @@
/obj/item/reagent_containers/food/snacks/monkeycube/farwacube
name = "farwa cube"
- monkey_type = "Farwa"
+ monkey_type = SPECIES_MONKEY_TAJ
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/farwacube
name = "farwa cube"
- monkey_type = "Farwa"
+ monkey_type = SPECIES_MONKEY_TAJ
/obj/item/reagent_containers/food/snacks/monkeycube/stokcube
name = "stok cube"
- monkey_type = "Stok"
+ monkey_type = SPECIES_MONKEY_UNATHI
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/stokcube
name = "stok cube"
- monkey_type = "Stok"
+ monkey_type = SPECIES_MONKEY_UNATHI
/obj/item/reagent_containers/food/snacks/monkeycube/neaeracube
name = "neaera cube"
- monkey_type = "Neaera"
+ monkey_type = SPECIES_MONKEY_SKRELL
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube
name = "neaera cube"
- monkey_type = "Neaera"
+ monkey_type = SPECIES_MONKEY_SKRELL
/obj/item/reagent_containers/food/snacks/spellburger
name = "Spell Burger"
@@ -3960,7 +3960,7 @@ END CITADEL CHANGE */
return 0
if (C.volume < req)
- to_chat(user, span("warning", "There's not enough [C.name] to coat the [src]!"))
+ to_chat(user, SPAN_WARNING( "There's not enough [C.name] to coat the [src]!"))
return 0
var/id = C.id
@@ -3995,7 +3995,7 @@ END CITADEL CHANGE */
overlays += J
if (user)
- user.visible_message(span("notice", "[user] dips \the [src] into \the [coating.name]"), span("notice", "You dip \the [src] into \the [coating.name]"))
+ user.visible_message(SPAN_NOTICE("[user] dips \the [src] into \the [coating.name]"), SPAN_NOTICE("You dip \the [src] into \the [coating.name]"))
return 1
@@ -6118,35 +6118,35 @@ END CITADEL CHANGE */
/obj/item/reagent_containers/food/snacks/monkeycube/sobakacube
name = "sobaka cube"
- monkey_type = "Sobaka"
+ monkey_type = SPECIES_MONKEY_AKULA
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/sobakacube
name = "sobaka cube"
- monkey_type = "Sobaka"
+ monkey_type = SPECIES_MONKEY_AKULA
/obj/item/reagent_containers/food/snacks/monkeycube/sarucube
name = "saru cube"
- monkey_type = "Saru"
+ monkey_type = SPECIES_MONKEY_SERGAL
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/sarucube
name = "saru cube"
- monkey_type = "Saru"
+ monkey_type = SPECIES_MONKEY_SERGAL
/obj/item/reagent_containers/food/snacks/monkeycube/sparracube
name = "sparra cube"
- monkey_type = "Sparra"
+ monkey_type = SPECIES_MONKEY_NEVREAN
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/sparracube
name = "sparra cube"
- monkey_type = "Sparra"
+ monkey_type = SPECIES_MONKEY_NEVREAN
/obj/item/reagent_containers/food/snacks/monkeycube/wolpincube
name = "wolpin cube"
- monkey_type = "Wolpin"
+ monkey_type = SPECIES_MONKEY_VULPKANIN
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/wolpincube
name = "wolpin cube"
- monkey_type = "Wolpin"
+ monkey_type = SPECIES_MONKEY_VULPKANIN
//Goblin food, yes?
/obj/item/reagent_containers/food/snacks/cavenuggets
@@ -6548,7 +6548,7 @@ END CITADEL CHANGE */
trash = /obj/item/trash/rust_can
filling_color = "#7a3f07"
nutriment_amt = 5
- nutriment_desc = list("iron" = 3, "water" = 2)
+ nutriment_desc = list(MAT_IRON = 3, "water" = 2)
/obj/item/reagent_containers/food/snacks/rust_can/Initialize(mapload)
. = ..()
diff --git a/code/modules/food/kitchen/cooking_machines/_appliance.dm b/code/modules/food/kitchen/cooking_machines/_appliance.dm
index bfc9cb4488b..fbc70d46123 100644
--- a/code/modules/food/kitchen/cooking_machines/_appliance.dm
+++ b/code/modules/food/kitchen/cooking_machines/_appliance.dm
@@ -99,22 +99,21 @@
if (progress < 0.25)
return "It's barely started cooking."
if (progress < 0.75)
- return span("notice","It's cooking away nicely.")
+ return SPAN_NOTICE("It's cooking away nicely.")
if (progress < 1)
- return span("notice", "It's almost ready!")
+ return SPAN_NOTICE("It's almost ready!")
var/half_overcook = (CI.overcook_mult - 1)*0.5
if (progress < 1+half_overcook)
- return span("soghun","It is done !")
+ return SPAN_SOGHUN("It is done !")
if (progress < CI.overcook_mult)
- return span("warning","It looks overcooked, get it out!")
+ return SPAN_WARNING("It looks overcooked, get it out!")
else
- return span("danger","It is burning!!")
+ return SPAN_DANGER("It is burning!!")
/obj/machinery/appliance/update_icon()
if (!stat && cooking_objs.len)
icon_state = on_icon
-
else
icon_state = off_icon
diff --git a/code/modules/food/kitchen/cooking_machines/_cooker.dm b/code/modules/food/kitchen/cooking_machines/_cooker.dm
index a2b9c0e0eeb..5bac0c12165 100644
--- a/code/modules/food/kitchen/cooking_machines/_cooker.dm
+++ b/code/modules/food/kitchen/cooking_machines/_cooker.dm
@@ -16,13 +16,13 @@
if(.) //no need to duplicate adjacency check
if(!stat)
if(temperature < min_temp)
- . += span("warning", "\The [src] is still heating up and is too cold to cook anything yet.")
+ . += SPAN_WARNING( "\The [src] is still heating up and is too cold to cook anything yet.")
else
- . += span("notice", "It is running at [round(get_efficiency(), 0.1)]% efficiency!")
+ . += SPAN_NOTICE("It is running at [round(get_efficiency(), 0.1)]% efficiency!")
. += "Temperature: [round(temperature - T0C, 0.1)]C / [round(optimal_temp - T0C, 0.1)]C"
else
if(stat)
- . += span("warning", "It is switched off.")
+ . += SPAN_WARNING( "It is switched off.")
/obj/machinery/appliance/cooker/list_contents(var/mob/user)
if (cooking_objs.len)
@@ -35,7 +35,7 @@
string += "- [CI.container.label(num)], [report_progress(CI)]"
to_chat(user, string)
else
- to_chat(user, span("notice","It is empty."))
+ to_chat(user, SPAN_NOTICE("It is empty."))
/obj/machinery/appliance/cooker/proc/get_efficiency()
//RefreshParts()
diff --git a/code/modules/food/kitchen/cooking_machines/_mixer.dm b/code/modules/food/kitchen/cooking_machines/_mixer.dm
index ace25bc4905..7a53b472dd1 100644
--- a/code/modules/food/kitchen/cooking_machines/_mixer.dm
+++ b/code/modules/food/kitchen/cooking_machines/_mixer.dm
@@ -73,7 +73,7 @@ fundamental differences
if (stat)
return 1
else
- to_chat(user, span("warning", "You can't remove ingredients while it's turned on! Turn it off first or wait for it to finish."))
+ to_chat(user, SPAN_WARNING( "You can't remove ingredients while it's turned on! Turn it off first or wait for it to finish."))
//Container is not removable
/obj/machinery/appliance/mixer/removal_menu(var/mob/user)
@@ -125,7 +125,7 @@ fundamental differences
/obj/machinery/appliance/mixer/can_insert(var/obj/item/I, var/mob/user)
if (!stat)
- user << span("warning","You can't add items while \the [src] is running. Wait for it to finish or turn the power off to abort.")
+ user << SPAN_WARNING("You can't add items while \the [src] is running. Wait for it to finish or turn the power off to abort.")
return 0
else
return ..()
diff --git a/code/modules/food/kitchen/cooking_machines/container.dm b/code/modules/food/kitchen/cooking_machines/container.dm
index 9d682049c9e..2c03fec082c 100644
--- a/code/modules/food/kitchen/cooking_machines/container.dm
+++ b/code/modules/food/kitchen/cooking_machines/container.dm
@@ -36,13 +36,13 @@
for (var/possible_type in insertable)
if (istype(I, possible_type))
if (!can_fit(I))
- to_chat(user, span("warning","There's no more space in the [src] for that!"))
+ to_chat(user, SPAN_WARNING("There's no more space in the [src] for that!"))
return 0
if(!user.unEquip(I))
return
I.forceMove(src)
- to_chat(user, span("notice", "You put the [I] into the [src]"))
+ to_chat(user, SPAN_NOTICE("You put the [I] into the [src]"))
return
/obj/item/reagent_containers/cooking_container/verb/empty()
@@ -67,13 +67,13 @@
return
if (!contents.len)
- user << span("warning", "There's nothing in the [src] you can remove!")
+ user << SPAN_WARNING( "There's nothing in the [src] you can remove!")
return
for (var/atom/movable/A in contents)
A.forceMove(get_turf(src))
- user << span("notice", "You remove all the solid items from the [src].")
+ user << SPAN_NOTICE("You remove all the solid items from the [src].")
/obj/item/reagent_containers/cooking_container/proc/check_contents()
if (contents.len == 0)
diff --git a/code/modules/food/kitchen/cooking_machines/fryer.dm b/code/modules/food/kitchen/cooking_machines/fryer.dm
index a9d9097fefd..8245b9c9a2f 100644
--- a/code/modules/food/kitchen/cooking_machines/fryer.dm
+++ b/code/modules/food/kitchen/cooking_machines/fryer.dm
@@ -209,7 +209,7 @@
if (I.reagents.total_volume <= 0 && oil)
//Its empty, handle scooping some hot oil out of the fryer
oil.trans_to(I, I.reagents.maximum_volume)
- user.visible_message("[user] scoops some oil out of \the [src].", span("notice","You scoop some oil out of \the [src]."))
+ user.visible_message("[user] scoops some oil out of \the [src].", SPAN_NOTICE("You scoop some oil out of \the [src]."))
return 1
else
//It contains stuff, handle pouring any oil into the fryer
@@ -225,7 +225,7 @@
I.reagents.remove_reagent(R.id, delta)
amount += delta
if (amount > 0)
- user.visible_message("[user] pours some oil into \the [src].", span("notice","You pour [amount]u of oil into \the [src]."), "You hear something viscous being poured into a metal container.")
+ user.visible_message("[user] pours some oil into \the [src].", SPAN_NOTICE("You pour [amount]u of oil into \the [src]."), "You hear something viscous being poured into a metal container.")
return 1
//If neither of the above returned, then call parent as normal
..()
diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm
index 740f5600c96..6deb6751c87 100644
--- a/code/modules/food/recipes_microwave.dm
+++ b/code/modules/food/recipes_microwave.dm
@@ -1288,7 +1288,7 @@ I said no!
result = /obj/item/reagent_containers/food/snacks/kitsuneudon
/datum/recipe/pillbugball
- reagents = list("carbon" = 5)
+ reagents = list(MAT_CARBON = 5)
items = list(
/obj/item/reagent_containers/food/snacks/meat/grubmeat
)
diff --git a/code/modules/gamemaster/actions/shipping_error.dm b/code/modules/gamemaster/actions/shipping_error.dm
index 90e4dfd8b12..4d3c5bb5fc7 100644
--- a/code/modules/gamemaster/actions/shipping_error.dm
+++ b/code/modules/gamemaster/actions/shipping_error.dm
@@ -13,5 +13,5 @@
var/datum/supply_order/O = new /datum/supply_order()
O.ordernum = SSsupply.ordernum
O.object = SSsupply.supply_pack[pick(SSsupply.supply_pack)]
- O.ordered_by = random_name(pick(MALE,FEMALE), species = "Human")
+ O.ordered_by = random_name(pick(MALE,FEMALE), species = SPECIES_HUMAN)
SSsupply.shoppinglist += O
diff --git a/code/modules/holodeck/HolodeckObjects.dm b/code/modules/holodeck/HolodeckObjects.dm
index 79dc23395a8..8fb195df9e1 100644
--- a/code/modules/holodeck/HolodeckObjects.dm
+++ b/code/modules/holodeck/HolodeckObjects.dm
@@ -379,9 +379,9 @@ datum/unarmed_attack/holopugilism/unarmed_override(var/mob/living/carbon/human/u
return TRUE
if(prob(50))
I.forceMove(loc)
- visible_message(span("notice", "Swish! \the [I] lands in \the [src]."), 3)
+ visible_message(SPAN_NOTICE("Swish! \the [I] lands in \the [src]."), 3)
else
- visible_message(span("warning", "\The [I] bounces off of \the [src]'s rim!"), 3)
+ visible_message(SPAN_WARNING( "\The [I] bounces off of \the [src]'s rim!"), 3)
return FALSE
return ..()
diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm
index eb7d236180b..447c7a66adf 100644
--- a/code/modules/hydroponics/seed_datums.dm
+++ b/code/modules/hydroponics/seed_datums.dm
@@ -62,7 +62,7 @@
seed_name = "glowberry"
display_name = "glowberry bush"
mutants = null
- chems = list("nutriment" = list(1,10), "uranium" = list(3,5))
+ chems = list("nutriment" = list(1,10), MAT_URANIUM = list(3,5))
/datum/seed/berry/glow/New()
..()
@@ -281,7 +281,7 @@
display_name = "gold apple tree"
kitchen_tag = "goldapple"
mutants = null
- chems = list("nutriment" = list(1,10), "gold" = list(1,5))
+ chems = list("nutriment" = list(1,10), MAT_GOLD = list(1,5))
/datum/seed/apple/gold/New()
..()
@@ -1450,7 +1450,7 @@
seed_name = "alien weed"
display_name = "alien weeds"
force_layer = 3
- chems = list("phoron" = list(1,3))
+ chems = list(MAT_PHORON = list(1,3))
/datum/seed/xenomorph/New()
..()
diff --git a/code/modules/identification/identification.dm b/code/modules/identification/identification.dm
index 152ab46c379..19a57062b29 100644
--- a/code/modules/identification/identification.dm
+++ b/code/modules/identification/identification.dm
@@ -66,11 +66,11 @@
if(user)
switch(identified) // Give a message based on what's left.
if(IDENTITY_QUALITY)
- to_chat(user, span("warning", "You forgot what \the [holder] actually did..."))
+ to_chat(user, SPAN_WARNING( "You forgot what \the [holder] actually did..."))
if(IDENTITY_PROPERTIES)
- to_chat(user, span("warning", "You forgot \the [holder]'s quality..."))
+ to_chat(user, SPAN_WARNING( "You forgot \the [holder]'s quality..."))
if(IDENTITY_UNKNOWN)
- to_chat(user, span("warning", "You forgot everything about \the [holder]."))
+ to_chat(user, SPAN_WARNING( "You forgot everything about \the [holder]."))
// Sets the holder's name to the real name if its properties are identified, or obscures it otherwise.
/datum/identification/proc/update_name()
diff --git a/code/modules/integrated_electronics/core/detailer.dm b/code/modules/integrated_electronics/core/detailer.dm
index ec2fb37a02e..bfc977fbe0d 100644
--- a/code/modules/integrated_electronics/core/detailer.dm
+++ b/code/modules/integrated_electronics/core/detailer.dm
@@ -14,7 +14,7 @@
"orange" = COLOR_ASSEMBLY_ORANGE,
"beige" = COLOR_ASSEMBLY_BEIGE,
"brown" = COLOR_ASSEMBLY_BROWN,
- "gold" = COLOR_ASSEMBLY_GOLD,
+ MAT_GOLD = COLOR_ASSEMBLY_GOLD,
"yellow" = COLOR_ASSEMBLY_YELLOW,
"gurkha" = COLOR_ASSEMBLY_GURKHA,
"light green" = COLOR_ASSEMBLY_LGREEN,
diff --git a/code/modules/integrated_electronics/core/printer.dm b/code/modules/integrated_electronics/core/printer.dm
index 4599d8d39f4..699c9946bb8 100644
--- a/code/modules/integrated_electronics/core/printer.dm
+++ b/code/modules/integrated_electronics/core/printer.dm
@@ -40,7 +40,7 @@
/obj/item/integrated_circuit_printer/attackby(var/obj/item/O, var/mob/user)
if(istype(O,/obj/item/stack/material))
var/obj/item/stack/material/stack = O
- if(stack.material.name == DEFAULT_WALL_MATERIAL)
+ if(stack.material.name == MAT_STEEL)
if(debug)
to_chat(user, SPAN_WARNING("\The [src] does not need any material."))
return
diff --git a/code/modules/integrated_electronics/passive/power.dm b/code/modules/integrated_electronics/passive/power.dm
index 81d71b3c911..be3328c32b9 100644
--- a/code/modules/integrated_electronics/passive/power.dm
+++ b/code/modules/integrated_electronics/passive/power.dm
@@ -118,7 +118,7 @@
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 2)
var/volume = 60
- var/list/fuel = list("phoron" = 50000, "slimejelly" = 25000, "fuel" = 15000, "carbon" = 10000, "ethanol"= 10000, "nutriment" =8000, "blood" = 5000)
+ var/list/fuel = list(MAT_PHORON = 50000, "slimejelly" = 25000, "fuel" = 15000, MAT_CARBON = 10000, "ethanol"= 10000, "nutriment" =8000, "blood" = 5000)
/obj/item/integrated_circuit/passive/power/chemical_cell/Initialize(mapload)
. = ..()
diff --git a/code/modules/lore_codex/lore_data/species.dm b/code/modules/lore_codex/lore_data/species.dm
index 0ce44f016bd..e495ff23a39 100644
--- a/code/modules/lore_codex/lore_data/species.dm
+++ b/code/modules/lore_codex/lore_data/species.dm
@@ -15,7 +15,7 @@
)
/datum/lore/codex/page/human/add_content()
- name = "Human"
+ name = SPECIES_HUMAN
keywords += list("Humanity")
data = "Humans are a race of 'ape'-like creatures from the continental planet Earth in the Sol system. They are the primary driving \
force for rapid space expansion, owing to their strong, expansionist central government and opportunistic [quick_link("TSC","Trans-Stellar Corporations")]. \
@@ -27,7 +27,7 @@
of other species."
/datum/lore/codex/page/skrell
- name = "Skrell"
+ name = SPECIES_SKRELL
keywords = list("Skrellian")
data = "The Skrell are a species of amphibious humanoids, distinguished by their gelatinous appearance and head tentacles. \
Skrell come from the world of Sirisai (called Qerr'balak by Skrell), a humid planet with plenty of swamps and jungles. Currently more technologically advanced \
@@ -39,7 +39,7 @@
outpaced by the humans. For humans, they were their first contact sentient species, and are their longest, and closest, ally in space."
/datum/lore/codex/page/unathi
- name = "Unathi"
+ name = SPECIES_UNATHI
data = "The Unathi are a race of tall, reptilian humanoids that possess a blend of serpentine features reminiscent of crocodiles. \
They are a proud, religious species that favors honor and strength, and originate from the desert planet of Moghes. \
The Unathi follow a religious code known as the Unity, and they carry this with them on their travels. \
@@ -57,11 +57,11 @@
Among these bonds, Humans stand out as valued trade partners and maybe even a friend."
/datum/lore/codex/page/diona/add_content()
- name = "Diona"
+ name = SPECIES_DIONA
keywords += list("Dionaea")
data = "The Dionaea are a group of omnivorous, slow-metabolism plantlike organisms that are in fact clusters of individual, smaller organisms. \
They exhibit a high degree of structural flexibility, and come in a wide variety of shapes and colors to reflect the intelligence of each individual \
- creature. They were discovered by the [quick_link("Skrell")] in 2294CE, not on a planet, but in open space between three stars, a figurative hell that made it \
+ creature. They were discovered by the [quick_link(SPECIES_SKRELL)] in 2294CE, not on a planet, but in open space between three stars, a figurative hell that made it \
difficult to discover, much less contact them.\
\
Dionaea spread by seeds and are asexual, no gender. When grown into their small 'nymph' state, they are known to eat large amounts of dead plant \
@@ -73,8 +73,8 @@
// Bird lore
/datum/lore/codex/category/teshari/add_content()
- name = "Teshari"
- data = "The Teshari are reptilian pack predators from the [quick_link("Skrell")] homeworld, Sirisai (Qerr'balak). While they evolved alongside the Skrell, their interactions with them \
+ name = SPECIES_TESHARI
+ data = "The Teshari are reptilian pack predators from the [quick_link(SPECIES_SKRELL)] homeworld, Sirisai (Qerr'balak). While they evolved alongside the Skrell, their interactions with them \
tended to be confused and violent, and until peaceful contact was made they largely stayed in their territories on and around the poles, in tundral \
terrain far too desolate and cold to be of interest to the Skrell. In more enlightened times, the Teshari are a minority culture on many Skrell worlds, \
maintaining their own settlements and cultures, but often finding themselves standing on the shoulders of their more technologically advanced neighbors \
@@ -93,7 +93,7 @@
\
Eshi
\
A large, old, politically neutral pack heavily involved in efforts to get Teshari into space. Probably the most \
- common pack to see outside of a [quick_link("Skrell")] colony, and probably the most numerous Teshari pack outside of Sirisai and associated colonies.\
+ common pack to see outside of a [quick_link(SPECIES_SKRELL)] colony, and probably the most numerous Teshari pack outside of Sirisai and associated colonies.\
\
Nasemari
\
A very small pack. Generally focused around supporting and providing for packs on the homeworlds, they have devoted \
@@ -118,7 +118,7 @@
name = "Physiology of Teshari"
data = "The Teshari are, relative to other species, smaller than average, rarely reaching more than 2-3'/1m in height, and weigh less than \
90lbs/40kg. They have rapid metabolisms and very efficient digestive systems, and thanks to sharing in \
- the medical technology of the [quick_link("Skrell")], they tend to have robust and effective immune systems. They evolved \
+ the medical technology of the [quick_link(SPECIES_SKRELL)], they tend to have robust and effective immune systems. They evolved \
for very cold and very barren areas, generally the polar regions. Because of this, their skin is a fine \
insulator and many of their internal processes are not particularly energy-efficient; they cannot cope \
well at all with high temperatures.\
@@ -129,20 +129,20 @@
// Promethean Lore
/datum/lore/codex/page/promethean/add_content()
- name = "Promethean"
+ name = SPECIES_PROMETHEAN
keywords += list("slime", "promethean")
data = "Prometheans are an artificial species created by the Humans sometime in the 2540s, aboard the NRS Prometheus, while experimenting with \
- the Aetolian giant slime, or ‘Macrolimus vulgaris’. They themselves are considered sapient beings and given protection under prior Human legislation, \
- though often only appear to serve as aides or inferior positions when kept as staff. Aetolus, the official ‘Home world’ of the Prometheans and giant slime, \
- is an obnoxiously warm, humid planet requiring structures to be built within large, atmospherically-filtered ‘tent-like’ domes. \
- Prometheans take on vague visual and vocal features of the species they cohabitate with, sharing their predecessors’ tendency to mimic nearby entities, \
+ the Aetolian giant slime, or �Macrolimus vulgaris�. They themselves are considered sapient beings and given protection under prior Human legislation, \
+ though often only appear to serve as aides or inferior positions when kept as staff. Aetolus, the official �Home world� of the Prometheans and giant slime, \
+ is an obnoxiously warm, humid planet requiring structures to be built within large, atmospherically-filtered �tent-like� domes. \
+ Prometheans take on vague visual and vocal features of the species they cohabitate with, sharing their predecessors� tendency to mimic nearby entities, \
though in physical form additionally; this is seemingly more important in their own development, as well. Despite their taken appearances, \
- there is no known existence of a divergence between a biologically ‘male’ or ‘female’ form of the species, leading most to believe they are in fact asexual, \
+ there is no known existence of a divergence between a biologically �male� or �female� form of the species, leading most to believe they are in fact asexual, \
as their predecessors are."
// Vatborn Lore
/datum/lore/codex/page/vatborn/add_content()
- name = "Vatborn"
+ name = SPECIES_HUMAN_VATBORN
keywords += list("vatborn")
data = "A genetically modified type of human, Vatborn humans are cloned from a template and grown in special tubes. They look like pale \
but otherwise normal humans, but their bodies have a few internal changes. For one, they lack an appendix. On top of that, they are frequently \
@@ -155,7 +155,7 @@
data = "A Positronic being, is an individual with a positronic brain, manufactured \
and fostered amongst organic life. Positronic brains enjoy the same legal status as a human in [quick_link("SolGov")] space, although discrimination is \
still prevalent, and are considered sapient on all accounts. They can be considered the \"synthetic species\". Half-developed and \
- half-discovered in the 2280’s by a human black lab studying alien artifacts, the first positronic brain was an inch-wide cube \
+ half-discovered in the 2280�s by a human black lab studying alien artifacts, the first positronic brain was an inch-wide cube \
of an palladium-iridium alloy, nano-etched with billions upon billions of conduits and connections. Upon activation, \
hard-booted with an emitter laser, the brain issued a single sentence before the neural pathways collapsed and \
it became an inert lump of platinum: \"What is my purpose?\"."
@@ -218,7 +218,7 @@
keywords = list("fork")
data = "A \"codeline\" is a single type of drone. A codeline represents a significant degree of effort from sapient programmers to realize, as well as \
a substantial amount of regulatory fees levied by the government. Each copy of a codeline is called a \"fork\", whether the fork is created from the \
- codeline’s initial state or from a fully realized individual of that codeline. The degree of similarity between forks of the same codeline varies \
+ codeline�s initial state or from a fully realized individual of that codeline. The degree of similarity between forks of the same codeline varies \
on the intelligence of the codeline, with low-level forks being virtually identical to high-level forks being no more similar than family members."
/datum/lore/codex/page/emergence
@@ -234,8 +234,8 @@
keywords = list("SG-EIO", "SG EIO", "EIO", "Intelligence Oversight")
data = "SG-EIO, usually just called EIO, is the organization charged with monitoring existing AI for any threat of dangerous emergence. Their perception in the \
public eye is generally positive, with all but the hardest-line Mercurial humans in favor of protection from the dangers of Seed AI. Some positronic rights \
- groups bristle at the EIO’s human-centric viewpoint, but most are glad to have a different boogeyman in the form of drone intelligences. The tiny population \
- of A-class drones are generally frightened of the EIO’s total power over them."
+ groups bristle at the EIO�s human-centric viewpoint, but most are glad to have a different boogeyman in the form of drone intelligences. The tiny population \
+ of A-class drones are generally frightened of the EIO�s total power over them."
/datum/lore/codex/category/drone_classes
name = "Drone Classifications"
@@ -293,7 +293,7 @@
name = "A Class"
keywords += list("AGI")
data = "A-class drones are also referred to as AGI. A-class drones are capable of performing in many contexts and can learn to solve problems from \
- first principles, with an incredible potential for growth and emergent behavior. However, some abilities fall short of humans’, usually those relating \
+ first principles, with an incredible potential for growth and emergent behavior. However, some abilities fall short of humans�, usually those relating \
to socialization, and they often act in ways that are strange or distressing. There is a small but growing lobby of support for the personhood of A-class \
drones. The cost of initializing an A-class drone is absolutely massive, as they will be monitored by [quick_link("EIO")] forever. The auditing cost of an A-class drone \
codeline is even more staggering, making development and deployment of AGI limited to research, highly difficult and high-throughput operations like habitat \
@@ -305,7 +305,7 @@
data = "AA-class drones do not yet exist. Hypothetically, they are equal to living in every respect, with psychology that would not be abnormal in a baseline \
human. The type of AA-class drone most frequently discussed is a hypothetical digitized consciousness of a human, a human brain that is somehow translated into \
software. Some argue that a small fraction of the A-class drones would more properly be considered AA, but as of yet no action has been taken. Some Mercurials \
- will jokingly refer to themselves or other organics and positronics as AA’s. Research into brain uploading is heavily regulated and generally illegal."
+ will jokingly refer to themselves or other organics and positronics as AA�s. Research into brain uploading is heavily regulated and generally illegal."
/datum/lore/codex/page/class_aaa
name = "AAA Class"
diff --git a/code/modules/lore_codex/lore_data_vr/species.dm b/code/modules/lore_codex/lore_data_vr/species.dm
index 7572538ecf0..6a8d92c2e01 100644
--- a/code/modules/lore_codex/lore_data_vr/species.dm
+++ b/code/modules/lore_codex/lore_data_vr/species.dm
@@ -17,7 +17,7 @@
)
/datum/lore/codex/page/human/add_content()
- name = "Human"
+ name = SPECIES_HUMAN
keywords += list("Humanity")
data = "Humans are a race of 'ape'-like creatures from the continental planet Earth in the Sol system. They are the primary driving \
force for rapid space expansion, owing to their strong, expansionist central government and opportunistic [quick_link("TSC","Trans-Stellar Corporations")]. \
@@ -29,7 +29,7 @@
of other species."
/datum/lore/codex/page/skrell
- name = "Skrell"
+ name = SPECIES_SKRELL
keywords = list("Skrellian")
data = "The Skrell are a species of amphibious humanoids, distinguished by their gelatinous appearance and head tentacles. \
Skrell come from the world of Sirisai (called Qerr'balak by Skrell), a humid planet with plenty of swamps and jungles. Currently more technologically advanced \
@@ -41,7 +41,7 @@
outpaced by the humans. For humans, they were their first contact sentient species, and are their longest, and closest, ally in space."
/datum/lore/codex/page/unathi
- name = "Unathi"
+ name = SPECIES_UNATHI
data = "The Unathi are a race of tall, reptilian humanoids that possess both crocodile-like and serpent-like features. Their scales are hard and \
plate-like, save for the softer ones that line the inside of their legs, armpits, and groin. Originating from the planet of Moghes, the Unathi \
live in an extremely religious society. The Unathi believe in and closely follow a set of Decrees laid out in their belief system, The Unity. \
@@ -55,7 +55,7 @@
/datum/lore/codex/page/tajaran
name = "Tajaran"
- keywords = list("Tajara")
+ keywords = list(SPECIES_TAJ)
data = "The Tajara are a race of humanoid mammalian aliens from Meralar, the fourth planet of the Rarkajar star system. Thickly furred and protected \
from cold, they thrive on their subarctic planet, where the only terran temperate areas spread across the equator and tropical belt. \
With their own share of bloody wars and great technological advances, the Tajaran are a proud kind. They fiercely believe they belong \
@@ -64,11 +64,11 @@
Among these bonds, Humans stand out as valued trade partners and maybe even a friend."
/datum/lore/codex/page/diona/add_content()
- name = "Diona"
+ name = SPECIES_DIONA
keywords += list("Dionaea")
data = "The Dionaea are a group of omnivorous, slow-metabolism plantlike organisms that are in fact clusters of individual, smaller organisms. \
They exhibit a high degree of structural flexibility, and come in a wide variety of shapes and colors to reflect the intelligence of each individual \
- creature. They were discovered by the [quick_link("Skrell")] in 2294CE, not on a planet, but in open space between three stars, a figurative hell that made it \
+ creature. They were discovered by the [quick_link(SPECIES_SKRELL)] in 2294CE, not on a planet, but in open space between three stars, a figurative hell that made it \
difficult to discover, much less contact them.\
\
Dionaea spread by seeds and are asexual, no gender. When grown into their small 'nymph' state, they are known to eat large amounts of dead plant \
@@ -79,9 +79,9 @@
Introduced by the Skrell, and quite slow and peaceful, the Diona share good relations with the other species."
/datum/lore/codex/page/akula/add_content()
- name = "Akula"
- keywords += list("Akula")
- data = "The Akula are a species of amphibious humanoids like the [quick_link("Skrell")], but have an appearance very similar to that of a shark. \
+ name = SPECIES_AKULA
+ keywords += list(SPECIES_AKULA)
+ data = "The Akula are a species of amphibious humanoids like the [quick_link(SPECIES_SKRELL)], but have an appearance very similar to that of a shark. \
They were first discovered as a primitive race of underwater dwelling tribal creatures by the Skrell. At first they were not believed to \
be noteworthy, but the Akula proved to be such swift and clever learners that the Skrell reclassified them as sentients. Allegedly, \
the Akula were also the first sentient life that the Skrell had ever encountered beside themselves, and thus the two species became swift allies \
@@ -92,8 +92,8 @@
[quick_link("Virgo-Prime")] nearly impossible if it were not for Skrellean technology to aid them."
/datum/lore/codex/page/nevrean/add_content()
- name = "Nevrean"
- keywords += list("Nevrean")
+ name = SPECIES_NEVREAN
+ keywords += list(SPECIES_NEVREAN)
data = "An avian species hailing from the planet Eltus in the Vilous system, characterised by their long whiplike \
tail-feathers. The species is generally matriarchal, with females tending towards duller, brown coloration and \
bulkier bodies, while males are slight and brightly coloured. In both typical mannerisms, culture and physical \
@@ -104,8 +104,8 @@
and folded under their jumpsuit sleeves. "
/datum/lore/codex/page/sergal/add_content()
- name = "Sergal"
- keywords += list("Sergal")
+ name = SPECIES_SERGAL
+ keywords += list(SPECIES_SERGAL)
data = "There are two subspecies of Sergal, Southern and Northern. Northern sergals are a highly aggressive race that \
lives in the plains and tundra of their homeworld. They are characterized by long, fluffy fur bodies with cold colors; usually with \
white abdomens, somewhat short ears, and thick faces. Southern sergals are much more docile and live in the Gold Ring City and are scattered around \
@@ -118,8 +118,8 @@
lived to 5000. Although General Rain's historical existence is disputed, she is nonetheless a symbol of the Sergal's warrior culture."
/datum/lore/codex/page/vulpkanin/add_content()
- name = "Vulpkanin"
- keywords += list("Vulpkanin")
+ name = SPECIES_VULPKANIN
+ keywords += list(SPECIES_VULPKANIN)
data = "Vulpkanin or \"Vulpa\" are a species of sharp-witted canid bipeds residing on the planet Altam just barely \
within the binary Vazzend system. Their politically de-centralized society and independent natures have led them \
to become a species and culture both feared and respected for their scientific breakthroughs. Discovery, loyalty, \
@@ -143,9 +143,9 @@
// Bird lore
/datum/lore/codex/category/teshari/add_content()
- name = "Teshari"
- keywords += list("Teshari")
- data = "The Teshari are reptilian pack predators from the [quick_link("Skrell")] homeworld, Sirisai (Qerr'balak). While they evolved alongside the Skrell, their interactions with them \
+ name = SPECIES_TESHARI
+ keywords += list(SPECIES_TESHARI)
+ data = "The Teshari are reptilian pack predators from the [quick_link(SPECIES_SKRELL)] homeworld, Sirisai (Qerr'balak). While they evolved alongside the Skrell, their interactions with them \
tended to be confused and violent, and until peaceful contact was made they largely stayed in their territories on and around the poles, in tundral \
terrain far too desolate and cold to be of interest to the Skrell. In more enlightened times, the Teshari are a minority culture on many Skrell worlds, \
maintaining their own settlements and cultures, but often finding themselves standing on the shoulders of their more technologically advanced neighbors \
@@ -164,7 +164,7 @@
\
Eshi
\
A large, old, politically neutral pack heavily involved in efforts to get Teshari into space. Probably the most \
- common pack to see outside of a [quick_link("Skrell")] colony, and probably the most numerous Teshari pack outside of Sirisai and associated colonies.\
+ common pack to see outside of a [quick_link(SPECIES_SKRELL)] colony, and probably the most numerous Teshari pack outside of Sirisai and associated colonies.\
\
Nasemari
\
A very small pack. Generally focused around supporting and providing for packs on the homeworlds, they have devoted \
@@ -189,7 +189,7 @@
name = "Physiology of Teshari"
data = "The Teshari are, relative to other species, smaller than average, rarely reaching more than 2-3'/1m in height, and weigh less than \
90lbs/40kg. They have rapid metabolisms and very efficient digestive systems, and thanks to sharing in \
- the medical technology of the [quick_link("Skrell")], they tend to have robust and effective immune systems. They evolved \
+ the medical technology of the [quick_link(SPECIES_SKRELL)], they tend to have robust and effective immune systems. They evolved \
for very cold and very barren areas, generally the polar regions. Because of this, their skin is a fine \
insulator and many of their internal processes are not particularly energy-efficient; they cannot cope \
well at all with high temperatures.\
@@ -205,7 +205,7 @@
data = "A Positronic being, is an individual with a positronic brain, manufactured \
and fostered amongst organic life. Positronic brains enjoy the same legal status as a human in [quick_link("SolGov")] space, although discrimination is \
still prevalent, and are considered sapient on all accounts. They can be considered a \"synthetic species\". Half-developed and \
- half-discovered in the 2280’s by a human black lab studying alien artifacts, the first positronic brain was an inch-wide cube \
+ half-discovered in the 2280�s by a human black lab studying alien artifacts, the first positronic brain was an inch-wide cube \
of an palladium-iridium alloy, nano-etched with billions upon billions of conduits and connections. Upon activation, \
hard-booted with an emitter laser, the brain issued a single sentence before the neural pathways collapsed and \
it became an inert lump of platinum: \"What is my purpose?\"."
@@ -269,7 +269,7 @@
keywords = list("fork")
data = "A \"codeline\" is a single type of drone. A codeline represents a significant degree of effort from sapient programmers to realize, as well as \
a substantial amount of regulatory fees levied by the government. Each copy of a codeline is called a \"fork\", whether the fork is created from the \
- codeline’s initial state or from a fully realized individual of that codeline. The degree of similarity between forks of the same codeline varies \
+ codeline�s initial state or from a fully realized individual of that codeline. The degree of similarity between forks of the same codeline varies \
on the intelligence of the codeline, with low-level forks being virtually identical to high-level forks being no more similar than family members."
/*
@@ -287,8 +287,8 @@
keywords = list("SG-EIO", "SG EIO", "EIO", "Intelligence Oversight")
data = "SG-EIO, usually just called EIO, is the organization charged with monitoring existing AI for any threat of dangerous emergence. Their perception in the \
public eye is generally positive, with all but the hardest-line Mercurial humans in favor of protection from the dangers of Seed AI. Some positronic rights \
- groups bristle at the EIO’s human-centric viewpoint, but most are glad to have a different boogeyman in the form of drone intelligences. The tiny population \
- of A-class drones are generally frightened of the EIO’s total power over them."
+ groups bristle at the EIO�s human-centric viewpoint, but most are glad to have a different boogeyman in the form of drone intelligences. The tiny population \
+ of A-class drones are generally frightened of the EIO�s total power over them."
/*/datum/lore/codex/category/drone_classes
name = "Drone Classifications"
@@ -346,7 +346,7 @@
name = "A Class"
keywords += list("AGI")
data = "A-class drones are also referred to as AGI. A-class drones are capable of performing in many contexts and can learn to solve problems from \
- first principles, with an incredible potential for growth and emergent behavior. However, some abilities fall short of humans’, usually those relating \
+ first principles, with an incredible potential for growth and emergent behavior. However, some abilities fall short of humans�, usually those relating \
to socialization, and they often act in ways that are strange or distressing. There is a small but growing lobby of support for the personhood of A-class \
drones. The cost of initializing an A-class drone is absolutely massive, as they will be monitored by [quick_link("EIO")] forever. The auditing cost of an A-class drone \
codeline is even more staggering, making development and deployment of AGI limited to research, highly difficult and high-throughput operations like habitat \
@@ -358,7 +358,7 @@
data = "AA-class drones do not yet exist. Hypothetically, they are equal to living in every respect, with psychology that would not be abnormal in a baseline \
human. The type of AA-class drone most frequently discussed is a hypothetical digitized consciousness of a human, a human brain that is somehow translated into \
software. Some argue that a small fraction of the A-class drones would more properly be considered AA, but as of yet no action has been taken. Some Mercurials \
- will jokingly refer to themselves or other organics and positronics as AA’s. Research into brain uploading is heavily regulated and generally illegal."
+ will jokingly refer to themselves or other organics and positronics as AA�s. Research into brain uploading is heavily regulated and generally illegal."
/datum/lore/codex/page/class_aaa
name = "AAA Class"
diff --git a/code/modules/maps/tether/levels/tether_turfs.dm b/code/modules/maps/tether/levels/tether_turfs.dm
index f381b4d5485..b5a908e553e 100644
--- a/code/modules/maps/tether/levels/tether_turfs.dm
+++ b/code/modules/maps/tether/levels/tether_turfs.dm
@@ -77,28 +77,28 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
outdoors = TRUE
if(rare_ore)
mineral_name = pickweight(list(
- "marble" = 3,
- "uranium" = 10,
- "platinum" = 10,
- "hematite" = 20,
- "carbon" = 20,
- "diamond" = 1,
- "gold" = 8,
- "silver" = 8,
- "phoron" = 18,
- "lead" = 2,
- "verdantium" = 1))
+ MAT_MARBLE = 3,
+ MAT_URANIUM = 10,
+ MAT_PLATINUM = 10,
+ MAT_HEMATITE = 20,
+ MAT_CARBON = 20,
+ MAT_DIAMOND = 1,
+ MAT_GOLD = 8,
+ MAT_SILVER = 8,
+ MAT_PHORON = 18,
+ MAT_LEAD = 2,
+ MAT_VERDANTIUM = 1))
else
mineral_name = pickweight(list(
- "marble" = 2,
- "uranium" = 5,
- "platinum" = 5,
- "hematite" = 35,
- "carbon" = 35,
- "gold" = 3,
- "silver" = 3,
- "phoron" = 25,
- "lead" = 1))
+ MAT_MARBLE = 2,
+ MAT_URANIUM = 5,
+ MAT_PLATINUM = 5,
+ MAT_HEMATITE = 35,
+ MAT_CARBON = 35,
+ MAT_GOLD = 3,
+ MAT_SILVER = 3,
+ MAT_PHORON = 25,
+ MAT_LEAD = 1))
if(mineral_name && (mineral_name in GLOB.ore_data))
mineral = GLOB.ore_data[mineral_name]
if(flags & INITIALIZED)
@@ -110,28 +110,28 @@ turf/simulated/mineral/rich/make_ore(var/rare_ore)
var/mineral_name
if(rare_ore)
mineral_name = pickweight(list(
- "marble" = 7,
- "uranium" = 10,
- "platinum" = 10,
- "hematite" = 10,
- "carbon" = 10,
- "diamond" = 4,
- "gold" = 15,
- "silver" = 15,
- "lead" = 5,
- "verdantium" = 2))
+ MAT_MARBLE = 7,
+ MAT_URANIUM = 10,
+ MAT_PLATINUM = 10,
+ MAT_HEMATITE = 10,
+ MAT_CARBON = 10,
+ MAT_DIAMOND = 4,
+ MAT_GOLD = 15,
+ MAT_SILVER = 15,
+ MAT_LEAD = 5,
+ MAT_VERDANTIUM = 2))
else
mineral_name = pickweight(list(
- "marble" = 5,
- "uranium" = 7,
- "platinum" = 7,
- "hematite" = 28,
- "carbon" = 28,
- "diamond" = 2,
- "gold" = 7,
- "silver" = 7,
- "lead" = 4,
- "verdantium" = 1))
+ MAT_MARBLE = 5,
+ MAT_URANIUM = 7,
+ MAT_PLATINUM = 7,
+ MAT_HEMATITE = 28,
+ MAT_CARBON = 28,
+ MAT_DIAMOND = 2,
+ MAT_GOLD = 7,
+ MAT_SILVER = 7,
+ MAT_LEAD = 4,
+ MAT_VERDANTIUM = 1))
if(mineral_name && (mineral_name in GLOB.ore_data))
mineral = GLOB.ore_data[mineral_name]
if(flags & INITIALIZED)
@@ -151,28 +151,28 @@ turf/simulated/mineral/rich/make_ore(var/rare_ore)
var/mineral_name
if(rare_ore)
mineral_name = pickweight(list(
- "marble" = 7,
- "uranium" = 10,
- "platinum" = 10,
- "hematite" = 10,
- "carbon" = 10,
- "diamond" = 4,
- "gold" = 15,
- "silver" = 15,
- "lead" = 5,
- "verdantium" = 2))
+ MAT_MARBLE = 7,
+ MAT_URANIUM = 10,
+ MAT_PLATINUM = 10,
+ MAT_HEMATITE = 10,
+ MAT_CARBON = 10,
+ MAT_DIAMOND = 4,
+ MAT_GOLD = 15,
+ MAT_SILVER = 15,
+ MAT_LEAD = 5,
+ MAT_VERDANTIUM = 2))
else
mineral_name = pickweight(list(
- "marble" = 5,
- "uranium" = 7,
- "platinum" = 7,
- "hematite" = 28,
- "carbon" = 28,
- "diamond" = 2,
- "gold" = 7,
- "silver" = 7,
- "lead" = 4,
- "verdantium" = 1))
+ MAT_MARBLE = 5,
+ MAT_URANIUM = 7,
+ MAT_PLATINUM = 7,
+ MAT_HEMATITE = 28,
+ MAT_CARBON = 28,
+ MAT_DIAMOND = 2,
+ MAT_GOLD = 7,
+ MAT_SILVER = 7,
+ MAT_LEAD = 4,
+ MAT_VERDANTIUM = 1))
if(mineral_name && (mineral_name in GLOB.ore_data))
mineral = GLOB.ore_data[mineral_name]
if(flags & INITIALIZED)
diff --git a/code/modules/maps/tether/levels/virgo2.dm b/code/modules/maps/tether/levels/virgo2.dm
index 9abc756e0ad..ee9f88d6136 100644
--- a/code/modules/maps/tether/levels/virgo2.dm
+++ b/code/modules/maps/tether/levels/virgo2.dm
@@ -136,7 +136,7 @@ VIRGO2_TURF_CREATE(/turf/simulated/mineral)
if(mineral)
return
- var/mineral_name = pickweight(list("marble" = 5, "uranium" = 5, "platinum" = 5, "hematite" = 5, "carbon" = 5, "diamond" = 5, "gold" = 5, "silver" = 5, "lead" = 5, "verdantium" = 5))
+ var/mineral_name = pickweight(list(MAT_MARBLE = 5, MAT_URANIUM = 5, MAT_PLATINUM = 5, MAT_HEMATITE = 5, MAT_CARBON = 5, MAT_DIAMOND = 5, MAT_GOLD = 5, MAT_SILVER = 5, MAT_LEAD = 5, MAT_VERDANTIUM = 5))
if(mineral_name && (mineral_name in GLOB.ore_data))
mineral = GLOB.ore_data[mineral_name]
diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm
index 5baa848f94f..d6c32a60c85 100644
--- a/code/modules/materials/material_sheets.dm
+++ b/code/modules/materials/material_sheets.dm
@@ -12,7 +12,7 @@
slot_r_hand_str = 'icons/mob/items/righthand_material.dmi',
)
- var/default_type = DEFAULT_WALL_MATERIAL
+ var/default_type = MAT_STEEL
var/datum/material/material
var/perunit = SHEET_MATERIAL_AMOUNT
var/apply_colour //temp pending icon rewrite
@@ -22,7 +22,7 @@
/obj/item/stack/material/Initialize(mapload, new_amount, merge = TRUE)
if(!default_type)
- default_type = DEFAULT_WALL_MATERIAL
+ default_type = MAT_STEEL
material = get_material_by_name("[default_type]")
if(!material)
return INITIALIZE_HINT_QDEL
@@ -196,9 +196,9 @@
no_variants = FALSE
/obj/item/stack/material/steel
- name = DEFAULT_WALL_MATERIAL
+ name = MAT_STEEL
icon_state = "sheet-metal"
- default_type = DEFAULT_WALL_MATERIAL
+ default_type = MAT_STEEL
no_variants = FALSE
/obj/item/stack/material/steel/hull
@@ -434,7 +434,18 @@
name = "leather"
desc = "The by-product of mob grinding."
icon_state = "sheet-leather"
- default_type = "leather"
+ default_type = MAT_LEATHER
+ no_variants = FALSE
+ pass_color = TRUE
+ strict_color_stacking = TRUE
+ drop_sound = 'sound/items/drop/leather.ogg'
+ pickup_sound = 'sound/items/pickup/leather.ogg'
+
+/obj/item/stack/material/chitin
+ name = "chitin"
+ desc = "The by-product of mob grinding."
+ icon_state = "chitin"
+ default_type = MAT_CHITIN
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm
index d5b8e55f0d9..8cc68328f7f 100644
--- a/code/modules/materials/materials.dm
+++ b/code/modules/materials/materials.dm
@@ -371,7 +371,7 @@ var/list/name_to_material
/datum/material/steel
- name = DEFAULT_WALL_MATERIAL
+ name = MAT_STEEL
stack_type = /obj/item/stack/material/steel
integrity = 150
conductivity = 11 // Assuming this is carbon steel, it would actually be slightly less conductive than iron, but lets ignore that.
@@ -407,8 +407,8 @@ var/list/name_to_material
spawn_diona_nymph(target)
/datum/material/steel/holographic
- name = "holo" + DEFAULT_WALL_MATERIAL
- display_name = DEFAULT_WALL_MATERIAL
+ name = "holo" + MAT_STEEL
+ display_name = MAT_STEEL
stack_type = null
shard_type = SHARD_NONE
@@ -426,7 +426,7 @@ var/list/name_to_material
protectiveness = 20 // 50%
conductivity = 13 // For the purposes of balance.
stack_origin_tech = list(TECH_MATERIAL = 2)
- composite_material = list(DEFAULT_WALL_MATERIAL = SHEET_MATERIAL_AMOUNT, "platinum" = SHEET_MATERIAL_AMOUNT) //todo
+ composite_material = list(MAT_STEEL = SHEET_MATERIAL_AMOUNT, MAT_PLATINUM = SHEET_MATERIAL_AMOUNT) //todo
radiation_resistance = 14
/datum/material/plasteel/hull
@@ -456,7 +456,7 @@ var/list/name_to_material
protectiveness = 60 // 75%
reflectivity = 0.7 // Not a perfect mirror, but close.
stack_origin_tech = list(TECH_MATERIAL = 8)
- composite_material = list("plasteel" = SHEET_MATERIAL_AMOUNT, "diamond" = SHEET_MATERIAL_AMOUNT) //shrug
+ composite_material = list(MAT_PLASTEEL = SHEET_MATERIAL_AMOUNT, MAT_DIAMOND = SHEET_MATERIAL_AMOUNT) //shrug
/datum/material/durasteel/hull //The 'Hardball' of starship hulls.
name = MAT_DURASTEELHULL
@@ -592,7 +592,7 @@ var/list/name_to_material
hardness = 40
weight = 30
stack_origin_tech = list(TECH_MATERIAL = 2)
- composite_material = list(DEFAULT_WALL_MATERIAL = SHEET_MATERIAL_AMOUNT / 2, "glass" = SHEET_MATERIAL_AMOUNT)
+ composite_material = list(MAT_STEEL = SHEET_MATERIAL_AMOUNT / 2, MAT_GLASS = SHEET_MATERIAL_AMOUNT)
window_options = list("One Direction" = 1, "Full Window" = 2, "Windoor" = 2)
created_window = /obj/structure/window/reinforced
created_fulltile_window = /obj/structure/window/reinforced/full
diff --git a/code/modules/mining/alloys.dm b/code/modules/mining/alloys.dm
index 9bdd9d6b425..1758b2dcec7 100644
--- a/code/modules/mining/alloys.dm
+++ b/code/modules/mining/alloys.dm
@@ -11,10 +11,10 @@
/datum/alloy/durasteel
metaltag = "durasteel"
requires = list(
- "diamond" = 1,
- "platinum" = 1,
- "carbon" = 2,
- "hematite" = 2
+ MAT_DIAMOND = 1,
+ MAT_PLATINUM = 1,
+ MAT_CARBON = 2,
+ MAT_HEMATITE = 2
)
product_mod = 0.3
product = /obj/item/stack/material/durasteel
@@ -22,25 +22,25 @@
/datum/alloy/plasteel
metaltag = "plasteel"
requires = list(
- "platinum" = 1,
- "carbon" = 2,
- "hematite" = 2
+ MAT_PLATINUM = 1,
+ MAT_CARBON = 2,
+ MAT_HEMATITE = 2
)
product_mod = 0.3
product = /obj/item/stack/material/plasteel
/datum/alloy/steel
- metaltag = DEFAULT_WALL_MATERIAL
+ metaltag = MAT_STEEL
requires = list(
- "carbon" = 1,
- "hematite" = 1
+ MAT_CARBON = 1,
+ MAT_HEMATITE = 1
)
product = /obj/item/stack/material/steel
/datum/alloy/borosilicate
metaltag = "borosilicate glass"
requires = list(
- "platinum" = 1,
+ MAT_PLATINUM = 1,
"sand" = 2
)
product = /obj/item/stack/material/glass/phoronglass
@@ -48,7 +48,7 @@
/datum/alloy/brass
metaltag = "brass"
requires = list(
- "copper" = 1,
+ MAT_COPPER = 1,
"sand" = 1
)
product = /obj/item/stack/material/brass
diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm
index 9944f15b070..9312ae59c0c 100644
--- a/code/modules/mining/drilling/drill.dm
+++ b/code/modules/mining/drilling/drill.dm
@@ -18,17 +18,17 @@
var/obj/item/radio/intercom/faultreporter = new /obj/item/radio/intercom{channels=list("Supply")}(null)
var/list/ore_types = list(
- "hematite" = /obj/item/ore/iron,
- "uranium" = /obj/item/ore/uranium,
- "gold" = /obj/item/ore/gold,
- "silver" = /obj/item/ore/silver,
- "copper" = /obj/item/ore/copper,
- "diamond" = /obj/item/ore/diamond,
- "phoron" = /obj/item/ore/phoron,
- "osmium" = /obj/item/ore/osmium,
+ MAT_HEMATITE = /obj/item/ore/iron,
+ MAT_URANIUM = /obj/item/ore/uranium,
+ MAT_GOLD = /obj/item/ore/gold,
+ MAT_SILVER = /obj/item/ore/silver,
+ MAT_COPPER = /obj/item/ore/copper,
+ MAT_DIAMOND = /obj/item/ore/diamond,
+ MAT_PHORON = /obj/item/ore/phoron,
+ MAT_OSMIUM = /obj/item/ore/osmium,
"hydrogen" = /obj/item/ore/hydrogen,
"silicates" = /obj/item/ore/glass,
- "carbon" = /obj/item/ore/coal
+ MAT_CARBON = /obj/item/ore/coal
)
//Upgrades
diff --git a/code/modules/mining/drilling/scanner.dm b/code/modules/mining/drilling/scanner.dm
index 8aea24546b5..622ee735fa5 100644
--- a/code/modules/mining/drilling/scanner.dm
+++ b/code/modules/mining/drilling/scanner.dm
@@ -5,7 +5,7 @@
icon_state = "forensic0-old" //GET A BETTER SPRITE.
item_state = "electronic"
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 150)
+ matter = list(MAT_STEEL = 150)
var/scanrange = 2
var/maxscanrange = 2
var/scan_time = 3 SECONDS
@@ -91,7 +91,7 @@
icon_state = "mining-scanner" //thank you eris spriters
w_class = ITEMSIZE_SMALL
origin_tech = list(TECH_MAGNET = 4, TECH_ENGINEERING = 4)
- matter = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000)
+ matter = list(MAT_STEEL = 2000, MAT_GLASS = 1000)
scanrange = 5
maxscanrange = 5
scan_time = 1 SECONDS
diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm
index a5370c9d6b4..ee6d704ec51 100644
--- a/code/modules/mining/machine_processing.dm
+++ b/code/modules/mining/machine_processing.dm
@@ -171,20 +171,20 @@
var/points = 0
var/static/list/ore_values = list(
"sand" = 1,
- "hematite" = 1,
- "carbon" = 1,
- "phoron" = 15,
- "copper" = 15,
- "silver" = 16,
- "gold" = 18,
- "marble" = 20,
- "uranium" = 30,
- "diamond" = 50,
- "platinum" = 40,
- "lead" = 40,
- "mhydrogen" = 40,
- "vaudium" = 50,
- "verdantium" = 60)
+ MAT_HEMATITE = 1,
+ MAT_CARBON = 1,
+ MAT_PHORON = 15,
+ MAT_COPPER = 15,
+ MAT_SILVER = 16,
+ MAT_GOLD = 18,
+ MAT_MARBLE = 20,
+ MAT_URANIUM = 30,
+ MAT_DIAMOND = 50,
+ MAT_PLATINUM = 40,
+ MAT_LEAD = 40,
+ MAT_METALHYDROGEN = 40,
+ MAT_VAUDIUM = 50,
+ MAT_VERDANTIUM = 60)
/obj/machinery/mineral/processing_unit/Initialize(mapload)
. = ..()
diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm
index 1d373746b13..955ae86a726 100644
--- a/code/modules/mining/machine_stacking.dm
+++ b/code/modules/mining/machine_stacking.dm
@@ -96,8 +96,8 @@
stack_storage["glass"] = 0
stack_paths["glass"] = /obj/item/stack/material/glass
- stack_storage[DEFAULT_WALL_MATERIAL] = 0
- stack_paths[DEFAULT_WALL_MATERIAL] = /obj/item/stack/material/steel
+ stack_storage[MAT_STEEL] = 0
+ stack_paths[MAT_STEEL] = /obj/item/stack/material/steel
stack_storage["plasteel"] = 0
stack_paths["plasteel"] = /obj/item/stack/material/plasteel
return INITIALIZE_HINT_LATELOAD
diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm
index 3268ab5c9a3..d3c40e5bbdf 100644
--- a/code/modules/mining/mine_items.dm
+++ b/code/modules/mining/mine_items.dm
@@ -19,7 +19,7 @@
icon_state = "pickaxe"
item_state = "jackhammer"
w_class = ITEMSIZE_LARGE
- matter = list(DEFAULT_WALL_MATERIAL = 3750)
+ matter = list(MAT_STEEL = 3750)
var/digspeed = 40 //moving the delay to an item var so R&D can make improved picks. --NEO
var/sand_dig = FALSE
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
@@ -119,7 +119,7 @@
icon_state = "icepick"
item_state = "spickaxe" //im lazy fuck u
w_class = ITEMSIZE_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 2750, "titanium" = 2000)
+ matter = list(MAT_STEEL = 2750, MAT_TITANIUM = 2000)
digspeed = 25 //More expensive than a diamond pick, a lot smaller but decently slower.
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
attack_verb = list("mined", "pierced", "stabbed", "attacked")
@@ -261,7 +261,7 @@ obj/item/pickaxe/tyrmalin/proc/turnOn(mob/user as mob)
item_state = "shovel"
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 50)
+ matter = list(MAT_STEEL = 50)
attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked")
sharp = 0
edge = 1
diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm
index d53dc81ba2f..f2fffbd330a 100644
--- a/code/modules/mining/mine_turfs.dm
+++ b/code/modules/mining/mine_turfs.dm
@@ -707,10 +707,10 @@ turf/simulated/mineral/floor/light_corner
var/mineral_name
if(rare_ore)
- mineral_name = pickweight(list("marble" = 5, "uranium" = 10, "platinum" = 10, "hematite" = 20, "carbon" = 20, "diamond" = 2, "gold" = 10, "silver" = 10, "copper" = 15, "phoron" = 20, "lead" = 5, "verdantium" = 1))
+ mineral_name = pickweight(list(MAT_MARBLE = 5, MAT_URANIUM = 10, MAT_PLATINUM = 10, MAT_HEMATITE = 20, MAT_CARBON = 20, MAT_DIAMOND = 2, MAT_GOLD = 10, MAT_SILVER = 10, MAT_COPPER = 15, MAT_PHORON = 20, MAT_LEAD = 5, MAT_VERDANTIUM = 1))
else
- mineral_name = pickweight(list("marble" = 3, "uranium" = 10, "platinum" = 10, "hematite" = 70, "carbon" = 70, "diamond" = 2, "gold" = 10, "silver" = 10, "copper" = 15, "phoron" = 20, "lead" = 2, "verdantium" = 1))
+ mineral_name = pickweight(list(MAT_MARBLE = 3, MAT_URANIUM = 10, MAT_PLATINUM = 10, MAT_HEMATITE = 70, MAT_CARBON = 70, MAT_DIAMOND = 2, MAT_GOLD = 10, MAT_SILVER = 10, MAT_COPPER = 15, MAT_PHORON = 20, MAT_LEAD = 2, MAT_VERDANTIUM = 1))
if(mineral_name && (mineral_name in GLOB.ore_data))
mineral = GLOB.ore_data[mineral_name]
diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm
index 91072e1b0a0..9ee16265f49 100644
--- a/code/modules/mining/mint.dm
+++ b/code/modules/mining/mint.dm
@@ -23,7 +23,7 @@
var/amt_iron = 0
var/newCoins = 0 //how many coins the machine made in it's last load
var/processing = 0
- var/chosen = DEFAULT_WALL_MATERIAL //which material will be used to make coins
+ var/chosen = MAT_STEEL //which material will be used to make coins
var/coinsToProduce = 10
/obj/machinery/mineral/mint/Initialize(mapload)
diff --git a/code/modules/mining/shelter_atoms.dm b/code/modules/mining/shelter_atoms.dm
index 6937e5c220d..f54db317a4f 100644
--- a/code/modules/mining/shelter_atoms.dm
+++ b/code/modules/mining/shelter_atoms.dm
@@ -166,7 +166,7 @@
icon_state = "table"
/obj/structure/table/survival_pod/Initialize(mapload)
- material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ material = get_material_by_name(MAT_STEEL)
verbs -= /obj/structure/table/verb/do_flip
verbs -= /obj/structure/table/proc/do_put
return ..()
@@ -219,7 +219,7 @@
icon_state = "bed"
/obj/structure/bed/pod/Initialize(mapload)
- return ..(mapload, DEFAULT_WALL_MATERIAL, "cotton")
+ return ..(mapload, MAT_STEEL, "cotton")
//Survival Storage Unit
/obj/machinery/smartfridge/survival_pod
diff --git a/code/modules/mob/_modifiers/modifiers_misc.dm b/code/modules/mob/_modifiers/modifiers_misc.dm
index 4b9fc3e1132..03d7c8de860 100644
--- a/code/modules/mob/_modifiers/modifiers_misc.dm
+++ b/code/modules/mob/_modifiers/modifiers_misc.dm
@@ -130,7 +130,7 @@ the artifact triggers the rage.
if(ishuman(L))
var/mob/living/carbon/human/H = L
- if(H.species.name == "Diona")
+ if(H.species.name == SPECIES_DIONA)
to_chat(L, "You feel strange for a moment, but it passes.")
return FALSE // Happy trees aren't affected by blood rages.
diff --git a/code/modules/mob/_modifiers/unholy.dm b/code/modules/mob/_modifiers/unholy.dm
index f550ada9d53..f051ba5efc7 100644
--- a/code/modules/mob/_modifiers/unholy.dm
+++ b/code/modules/mob/_modifiers/unholy.dm
@@ -173,7 +173,7 @@
else
var/mob/living/carbon/human/H = L
- if(H.species.name == "Diona")
+ if(H.species.name == SPECIES_DIONA)
to_chat(L, "You feel strange for a moment, but it passes.")
return FALSE // Happy trees aren't affected by incredible hunger.
diff --git a/code/modules/mob/language/monkey.dm b/code/modules/mob/language/monkey.dm
index 49dc430072f..cbd2e861a39 100644
--- a/code/modules/mob/language/monkey.dm
+++ b/code/modules/mob/language/monkey.dm
@@ -10,7 +10,7 @@
machine_understands = 0
/datum/language/skrell/monkey
- name = "Neaera"
+ name = SPECIES_MONKEY_SKRELL
desc = "Squik squik squik."
key = "8"
syllables = list("hiss","gronk")
@@ -18,7 +18,7 @@
machine_understands = 0
/datum/language/unathi/monkey
- name = "Stok"
+ name = SPECIES_MONKEY_UNATHI
desc = "Hiss hiss hiss."
key = "7"
syllables = list("squick","croak")
@@ -26,7 +26,7 @@
machine_understands = 0
/datum/language/tajaran/monkey
- name = "Farwa"
+ name = SPECIES_MONKEY_TAJ
desc = "Meow meow meow."
key = "9"
syllables = list("meow","mew")
diff --git a/code/modules/mob/language/outsider.dm b/code/modules/mob/language/outsider.dm
index 8eb5a4af7d3..3e0a2959459 100644
--- a/code/modules/mob/language/outsider.dm
+++ b/code/modules/mob/language/outsider.dm
@@ -98,7 +98,7 @@
flags = RESTRICTED | HIVEMIND
/datum/language/xenocommon
- name = "Xenomorph"
+ name = SPECIES_XENO
colour = "alien"
desc = "The common tongue of the xenomorphs."
speech_verb = "hisses"
diff --git a/code/modules/mob/living/autohiss.dm b/code/modules/mob/living/autohiss.dm
index f981fcefd49..921bc53c8e5 100644
--- a/code/modules/mob/living/autohiss.dm
+++ b/code/modules/mob/living/autohiss.dm
@@ -6,7 +6,7 @@
return message
var/datum/autohiss_maps/maps = autohiss_type_to_datum(autohiss_type)
-
+
if(!maps.basic)
return message
if(L.flags & NO_STUTTER) // Currently prevents EAL, Sign language, and emotes from autohissing
@@ -80,7 +80,7 @@
return new /datum/autohiss_maps/unathi()
if(AUTOHISS_TYPE_TAJARAN)
return new /datum/autohiss_maps/tajaran()
- else
+ else
CRASH("Autohiss could not convert '[type]' to maps!")
/mob/living/carbon/human/verb/toggle_autohiss()
@@ -105,13 +105,13 @@
set category = "OOC"
set desc = "Set the type of autohissing you will do."
- var/new_autohiss_type = input(usr, "Select your new autohiss type.", "Autohiss Type") in list("None", "Unathi", "Tajaran")
+ var/new_autohiss_type = input(usr, "Select your new autohiss type.", "Autohiss Type") in list("None", SPECIES_UNATHI, "Tajaran")
switch(new_autohiss_type)
if("None")
autohiss_type = AUTOHISS_TYPE_NONE
to_chat(src, SPAN_NOTICE("Autohiss disabled."))
- if("Unathi")
+ if(SPECIES_UNATHI)
autohiss_type = AUTOHISS_TYPE_UNATHI
to_chat(src, SPAN_NOTICE("Autohiss type changed to unathi."))
if("Tajaran")
diff --git a/code/modules/mob/living/bot/floorbot.dm b/code/modules/mob/living/bot/floorbot.dm
index a2c02fc2e9a..5ae05ebc060 100644
--- a/code/modules/mob/living/bot/floorbot.dm
+++ b/code/modules/mob/living/bot/floorbot.dm
@@ -307,7 +307,7 @@
update_icons()
else if(istype(A, /obj/item/stack/material) && amount + 4 <= maxAmount)
var/obj/item/stack/material/M = A
- if(M.get_material_name() == DEFAULT_WALL_MATERIAL)
+ if(M.get_material_name() == MAT_STEEL)
visible_message("\The [src] begins to make tiles.")
busy = 1
update_icons()
diff --git a/code/modules/mob/living/butchering.dm b/code/modules/mob/living/butchering.dm
new file mode 100644
index 00000000000..bed81bd6a72
--- /dev/null
+++ b/code/modules/mob/living/butchering.dm
@@ -0,0 +1,112 @@
+/mob/living
+ /// These will be yielded from butchering with a probability chance equal to the butcher item's effectiveness
+ var/list/butcher_results = null
+ /// These will always be yielded from butchering
+ var/list/guaranteed_butcher_results = null
+ /// Effectiveness prob. is modified negatively by this amount; positive numbers make it more difficult, negative ones make it easier
+ var/butcher_difficulty = 0
+
+ /// How much meat to drop from this mob when butchered
+ var/meat_amount = 0
+ /// The meat object to drop
+ var/obj/meat_type
+ /// How many bones to drop from this mob when butchered
+ var/bone_amount = 0
+ /// The bone object to drop
+ var/obj/bone_type
+ /// How much hide to drop from this mob when butchered
+ var/hide_amount = 0
+ /// The hide object to drop
+ var/obj/hide_type
+ /// How many exotics to drop from this mob when butchered
+ var/exotic_amount = 0
+ /// The exotic object to drop
+ var/obj/exotic_type
+ /// List containing what type of things can be harvested. I think. -Zan
+ var/list/harvest_type = list()
+
+ /// Does it gib when butchered?
+ var/gib_on_butchery = FALSE
+ /// Associated list, path = number.
+ var/list/butchery_loot
+
+/// Harvest an animal's delicious byproducts
+/mob/living/proc/harvest(var/mob/user, var/obj/item/I)
+ if(meat_type && meat_amount>0 && (stat == DEAD))
+ while(meat_amount > 0 && do_after(user, 0.5 SECONDS * (mob_size / 10), src))
+ var/obj/item/meat = new meat_type(get_turf(src))
+ meat.name = "[src.name] [meat.name]"
+ new /obj/effect/decal/cleanable/blood/splatter(get_turf(src))
+ meat_amount--
+
+ if(!meat_amount)
+ handle_butcher(user, I)
+
+/// Override for special butchering checks.
+/mob/living/proc/can_butcher(var/mob/user, var/obj/item/I)
+ if(((meat_type && meat_amount) || LAZYLEN(butchery_loot)) && stat == DEAD)
+ return TRUE
+
+ return FALSE
+
+/mob/living/proc/handle_butcher(var/mob/user, var/obj/item/I)
+ if(!user || do_after(user, 2 SECONDS * mob_size / 10, src))
+ if(LAZYLEN(butchery_loot))
+ if(LAZYLEN(butchery_loot))
+ for(var/path in butchery_loot)
+ while(butchery_loot[path])
+ butchery_loot[path] -= 1
+ var/obj/item/loot = new path(get_turf(src))
+ loot.pixel_x = rand(-12, 12)
+ loot.pixel_y = rand(-12, 12)
+
+ butchery_loot.Cut()
+ butchery_loot = null
+
+ if(LAZYLEN(organs))
+ organs_by_name.Cut()
+
+ for(var/path in organs)
+ if(ispath(path))
+ var/obj/item/organ/external/neworg = new path(src)
+ neworg.name = "[name] [neworg.name]"
+ neworg.meat_type = meat_type
+
+ if(istype(src, /mob/living/simple_mob))
+ var/mob/living/simple_mob/SM = src
+ if(SM.limb_icon)
+ neworg.force_icon = SM.limb_icon
+ neworg.force_icon_key = SM.limb_icon_key
+
+ organs |= neworg
+ organs -= path
+
+ for(var/obj/item/organ/OR in organs)
+ OR.removed()
+ organs -= OR
+
+ if(LAZYLEN(internal_organs))
+ internal_organs_by_name.Cut()
+
+ for(var/path in internal_organs)
+ if(ispath(path))
+ var/obj/item/organ/neworg = new path(src, TRUE)
+ neworg.name = "[name] [neworg.name]"
+ neworg.meat_type = meat_type
+ internal_organs |= neworg
+ internal_organs -= path
+
+ for(var/obj/item/organ/OR in internal_organs)
+ OR.removed()
+ internal_organs -= OR
+
+ if(!ckey)
+ if(issmall(src))
+ user?.visible_message(SPAN_DANGER("[user] chops up \the [src]!"))
+ new /obj/effect/decal/cleanable/blood/splatter(get_turf(src))
+ if(gib_on_butchery)
+ qdel(src)
+ else
+ user?.visible_message(SPAN_DANGER("[user] butchers \the [src] messily!"))
+ if(gib_on_butchery)
+ gib()
diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm
index 9524bdd9917..1bf3bdcae98 100644
--- a/code/modules/mob/living/carbon/alien/alien.dm
+++ b/code/modules/mob/living/carbon/alien/alien.dm
@@ -1,5 +1,5 @@
/datum/category_item/catalogue/fauna/alien
- name = "Xenomorph"
+ name = SPECIES_XENO
desc = "Xenomorphs are a widely recognized and rightfully feared scourge \
across the Frontier. Although the origin of these creatures remains unknown, \
their violence and their teriffying method of procreation makes them a universally \
diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm
index d7d16d413ec..b542ea2d1d4 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva.dm
@@ -21,5 +21,5 @@
/mob/living/carbon/alien/larva/Initialize(mapload)
. = ..()
- add_language("Xenomorph") //Bonus language.
+ add_language(LANGUAGE_XENO) //Bonus language.
internal_organs |= new /obj/item/organ/internal/xenos/hivenode(src)
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index aa23673a322..1724f66667b 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -112,7 +112,7 @@
whoismsg += ", [use_gender]!"
- else if(species.name != "Human")
+ else if(species.name != SPECIES_HUMAN)
whoismsg += ", \a [species.get_examine_name()]!"
var/extra_species_text = species.get_additional_examine_text(src)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 5e6631104c8..81f88c80d49 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1141,7 +1141,7 @@
if(species)
- if(species.name && species.name == new_species && species.name != "Custom Species")
+ if(species.name && species.name == new_species && species.name != SPECIES_CUSTOM)
return
if(species.language)
remove_language(species.language)
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index 6186a43e558..c21cdcbce40 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -415,12 +415,15 @@ This function restores all organs.
for(var/obj/item/organ/external/current_organ in organs)
current_organ.rejuvenate(ignore_prosthetic_prefs)
-/mob/living/carbon/human/proc/get_organ(var/zone)
- if(!zone)
- zone = BP_TORSO
- else if (zone in list( O_EYES, O_MOUTH ))
- zone = BP_HEAD
- return organs_by_name[zone]
+/mob/living/carbon/human/proc/HealDamage(zone, brute, burn)
+ var/obj/item/organ/external/E = get_organ(zone)
+ if(istype(E, /obj/item/organ/external))
+ if (E.heal_damage(brute, burn))
+ UpdateDamageIcon()
+ update_hud_med_health()
+ else
+ return 0
+ return
/mob/living/carbon/human/apply_damage(var/damage = 0, var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/soaked = 0, var/sharp = 0, var/edge = 0, var/obj/used_weapon = null)
if(GLOB.Debug2)
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index 3f0a6cc2e31..c5f2ad75902 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -32,14 +32,14 @@
var/r_eyes = 0
var/g_eyes = 0
var/b_eyes = 0
-
- var/s_tone = 0 //Skin tone
+ /// Skin tone
+ var/s_tone = 0
//Skin colour
var/r_skin = 238 // TO DO: Set defaults for other races.
var/g_skin = 206
var/b_skin = 179
-
+ /// Skin flag
var/skin_state = SKIN_NORMAL
//ears, tails, wings and custom species.
@@ -74,37 +74,53 @@
var/wagging = 0 //UGH.
var/flapping = 0
- var/vantag_pref = VANTAG_NONE //What's my status?
- var/impersonate_bodytype //For impersonating a bodytype
- var/ability_flags = 0 //Shadekin abilities/potentially other species-based?
- var/sensorpref = 5 //Suit sensor loadout pref
+ ///What's my status?
+ var/vantag_pref = VANTAG_NONE
+ ///For impersonating a bodytype
+ var/impersonate_bodytype
+ ///Shadekin abilities/potentially other species-based?
+ var/ability_flags = 0
+ ///Suit sensor loadout pref
+ var/sensorpref = 5
var/custom_species
//Synth colors
- var/synth_color = 0 //Lets normally uncolorable synth parts be colorable.
- var/r_synth //Used with synth_color to color synth parts that normaly can't be colored.
- var/g_synth //Same as above
- var/b_synth //Same as above
- var/synth_markings = 0 //Enables/disables markings on synth parts.
- var/s_base //For adherent coloring....
+ ///Lets normally uncolorable synth parts be colorable.
+ var/synth_color = 0
+ //Used with synth_color to color synth parts that normaly can't be colored.
+ var/r_synth
+ var/g_synth
+ var/b_synth
+ ///Enables/disables markings on synth parts.
+ var/synth_markings = 0
+ ///For adherent coloring....
+ var/s_base
+ ///multiplier for the mob's icon size //VOREStation Edit (Moved to /mob/living)
+ //var/size_multiplier = 1
+ ///multiplies melee combat damage
+ var/damage_multiplier = 1
+ ///whether icon updating shall take place
+ var/icon_update = 1
- //var/size_multiplier = 1 //multiplier for the mob's icon size //VOREStation Edit (Moved to /mob/living)
- var/damage_multiplier = 1 //multiplies melee combat damage
- var/icon_update = 1 //whether icon updating shall take place
+ ///no lipstick by default- arguably misleading, as it could be used for general makeup
+ var/lip_style = null
- var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup
-
- var/age = 30 //Player's age (pure fluff)
- var/b_type = "A+" //Player's bloodtype
- var/datum/robolimb/synthetic //If they are a synthetic (aka synthetic torso)
+ ///Player's age (pure fluff)
+ var/age = 30
+ ///Player's bloodtype
+ var/b_type = "A+"
+ ///If they are a synthetic (aka synthetic torso). Also holds the datum for the type of robolimb.
+ var/datum/robolimb/synthetic
var/list/all_underwear = list()
var/list/all_underwear_metadata = list()
var/list/hide_underwear = list()
- var/backbag = 2 //Which backpack type the player has chosen.
- var/pdachoice = 1 //Which PDA type the player has chosen.
+ ///Which backpack type the player has chosen.
+ var/backbag = 2
+ ///Which PDA type the player has chosen.
+ var/pdachoice = 1
// General information
var/home_system = ""
@@ -133,43 +149,54 @@
var/skill_specialization = null
var/list/skills = list()
- var/voice = "" //Instead of new say code calling GetVoice() over and over and over, we're just going to ask this variable, which gets updated in Life()
+ ///Instead of new say code calling GetVoice() over and over and over, we're just going to ask this variable, which gets updated in Life()
+ var/voice = ""
- //var/miming = null //Toggle for the mime's abilities.
- var/special_voice = "" // For changing our voice. Used by a symptom.
+ ///Toggle for the mime's abilities. //TODO Readd mime stuff :(
+ //var/miming = null
+ /// For changing our voice. Used by a symptom.
+ var/special_voice = ""
- var/last_dam = -1 //Used for determining if we need to process all organs or just some or even none.
- var/list/bad_external_organs = list()// organs we check until they are good.
+ ///Used for determining if we need to process all organs or just some or even none.
+ var/last_dam = -1
- var/xylophone = 0 //For the spoooooooky xylophone cooldown
+ ///For the spoooooooky xylophone cooldown
+ var/xylophone = 0
var/mob/remoteview_target = null
var/hand_blood_color
var/list/flavor_texts = list()
var/gunshot_residue
- var/pulling_punches // Are you trying not to hurt your opponent?
- var/robolimb_count = 0 // Total number of external robot parts.
- var/robobody_count = 0 // Counts torso, groin, and head, if they're robotic
+ /// Are you trying not to hurt your opponent?
+ var/pulling_punches
+ /// Total number of external robot parts.
+ var/robolimb_count = 0
+ /// Counts torso, groin, and head, if they're robotic
+ var/robobody_count = 0
mob_bump_flag = HUMAN
mob_push_flags = ~HEAVY
mob_swap_flags = ~HEAVY
- var/identifying_gender // In case the human identifies as another gender than it's biological
+ /// In case someone identifies as another gender than it's biological one
+ var/identifying_gender
- var/list/descriptors // For comparative examine code
+ /// For comparative examine code
+ var/list/descriptors
- var/step_count = 0 // Track how many footsteps have been taken to know when to play footstep sounds
+ /// Track how many footsteps have been taken to know when to play footstep sounds
+ var/step_count = 0
can_be_antagged = TRUE
-// Used by mobs in virtual reality to point back to the "real" mob the client belongs to.
+ /// Used by mobs in virtual reality to point back to the "real" mob the client belongs to.
var/mob/living/carbon/human/vr_holder = null
- // Used by "real" mobs after they leave a VR session
+ /// Used by "real" mobs after they leave a VR session
var/mob/living/carbon/human/vr_link = null
- var/obj/machinery/machine_visual //machine that is currently applying visual effects to this mob. Only used for camera monitors currently.
+ ///machine that is currently applying visual effects to this mob. Only used for camera monitors currently.
+ var/obj/machinery/machine_visual
/mob/living/carbon/human/proc/shadekin_get_energy()
var/datum/species/shadekin/SK = species
diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm
index a9474a9228f..c12bf7d6c93 100644
--- a/code/modules/mob/living/carbon/human/human_organs.dm
+++ b/code/modules/mob/living/carbon/human/human_organs.dm
@@ -5,15 +5,6 @@
update_icons_body() //Body handles eyes
update_eyes() //For floating eyes only
-/mob/living/carbon/var/list/internal_organs = list()
-/mob/living/carbon/human/var/list/organs = list()
-/mob/living/carbon/human/var/list/organs_by_name = list() // map organ names to organs
-/mob/living/carbon/human/var/list/internal_organs_by_name = list() // so internal organs have less ickiness too
-
-/mob/living/carbon/human/proc/get_bodypart_name(var/zone)
- var/obj/item/organ/external/E = get_organ(zone)
- if(E) . = E.name
-
/mob/living/carbon/human/proc/recheck_bad_external_organs()
var/damage_this_tick = getToxLoss()
for(var/obj/item/organ/external/O in organs)
diff --git a/code/modules/mob/living/carbon/human/human_species.dm b/code/modules/mob/living/carbon/human/human_species.dm
index b359fc8c3b6..b1cf7442c73 100644
--- a/code/modules/mob/living/carbon/human/human_species.dm
+++ b/code/modules/mob/living/carbon/human/human_species.dm
@@ -47,34 +47,34 @@
/mob/living/carbon/human/sergal/Initialize(mapload, new_species)
h_style = "Sergal Plain"
- return ..(mapload, "Sergal")
+ return ..(mapload, SPECIES_SERGAL)
/mob/living/carbon/human/akula/Initialize(mapload)
- return ..(mapload, "Akula")
+ return ..(mapload, SPECIES_AKULA)
/mob/living/carbon/human/nevrean/Initialize(mapload)
- return ..(mapload, "Nevrean")
+ return ..(mapload, SPECIES_NEVREAN)
/mob/living/carbon/human/xenochimera/Initialize(mapload)
- return ..(mapload, "Xenochimera")
+ return ..(mapload, SPECIES_XENOCHIMERA)
/mob/living/carbon/human/xenohybrid/Initialize(mapload, new_species)
- return ..(mapload, "Xenomorph Hybrid")
+ return ..(mapload, SPECIES_XENOHYBRID)
/mob/living/carbon/human/spider/Initialize(mapload)
- return ..(mapload, "Vasilissan")
+ return ..(mapload, SPECIES_VASILISSAN)
/mob/living/carbon/human/vulpkanin/Initialize(mapload)
- return ..(mapload, "Vulpkanin")
+ return ..(mapload, SPECIES_VULPKANIN)
/mob/living/carbon/human/protean/Initialize(mapload)
- return ..(mapload, "Protean")
+ return ..(mapload, SPECIES_PROTEAN)
/mob/living/carbon/human/alraune/Initialize(mapload)
- return ..(mapload, "Alraune")
+ return ..(mapload, SPECIES_ALRAUNE)
/mob/living/carbon/human/apidaen/Initialize(mapload)
- return ..(mapload, "Apidaen")
+ return ..(mapload, SPECIES_APIDAEN)
/mob/living/carbon/human/vetala_ruddy/Initialize(mapload)
return ..(mapload, "Vetala (Ruddy)")
@@ -83,10 +83,10 @@
return ..(mapload, "Vetala (Pale)")
/mob/living/carbon/human/auril/Initialize(mapload)
- return ..(mapload, "Auril")
+ return ..(mapload, SPECIES_AURIL)
/mob/living/carbon/human/dremachir/Initialize(mapload)
- return ..(mapload, "Dremachir")
+ return ..(mapload, SPECIES_DREMACHIR)
/mob/living/carbon/human/shadekin/Initialize(mapload)
return ..(mapload, SPECIES_SHADEKIN)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 446c369c771..ff94de91618 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -630,7 +630,7 @@
if(isSynthetic()) // synth specific temperature values in the absence of a synthetic species
var/mob/living/carbon/human/H = src
- if(H.species.name == "Protean")
+ if(H.species.name == SPECIES_PROTEAN)
return // dont modify protean heat levels
else
diff --git a/code/modules/mob/living/carbon/human/npcs.dm b/code/modules/mob/living/carbon/human/npcs.dm
index e41ec559b81..bf266855a10 100644
--- a/code/modules/mob/living/carbon/human/npcs.dm
+++ b/code/modules/mob/living/carbon/human/npcs.dm
@@ -3,7 +3,7 @@
desc = "It looks like it was tailored for a monkey."
icon_state = "punpun"
worn_state = "punpun"
- species_restricted = list("Monkey")
+ species_restricted = list(SPECIES_MONKEY)
/mob/living/carbon/human/monkey/punpun/Initialize(mapload)
. = ..()
diff --git a/code/modules/mob/living/carbon/human/species/outsider/celestials.dm b/code/modules/mob/living/carbon/human/species/outsider/celestials.dm
index c8e731cbce9..6eba86453df 100644
--- a/code/modules/mob/living/carbon/human/species/outsider/celestials.dm
+++ b/code/modules/mob/living/carbon/human/species/outsider/celestials.dm
@@ -1,6 +1,6 @@
/datum/species/auril
name = SPECIES_AURIL
- name_plural = "Auril"
+ name_plural = SPECIES_AURIL
default_language = LANGUAGE_GALCOM
language = LANGUAGE_ENOCHIAN
num_alternate_languages = 3
@@ -46,7 +46,7 @@
/datum/species/dremachir
name = SPECIES_DREMACHIR
- name_plural = "Dremachir"
+ name_plural = SPECIES_DREMACHIR
default_language = LANGUAGE_GALCOM
language = LANGUAGE_DAEMON
num_alternate_languages = 3
diff --git a/code/modules/mob/living/carbon/human/species/outsider/skeleton.dm b/code/modules/mob/living/carbon/human/species/outsider/skeleton.dm
index 5239a55a062..12723a2c989 100644
--- a/code/modules/mob/living/carbon/human/species/outsider/skeleton.dm
+++ b/code/modules/mob/living/carbon/human/species/outsider/skeleton.dm
@@ -2,7 +2,7 @@
name = SPECIES_SKELETON
name_plural = "Skeletons"
icobase = 'icons/mob/human_races/r_skeleton.dmi'
- primitive_form = "Monkey"
+ primitive_form = SPECIES_MONKEY
language = "Sol Common"
unarmed_types = list(/datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/sharp) //Bones are pointy, fight me.
blurb = "Spooky Scary Skeletons!"
diff --git a/code/modules/mob/living/carbon/human/species/outsider/vox.dm b/code/modules/mob/living/carbon/human/species/outsider/vox.dm
index 881af72beb4..928fdbf6eb4 100644
--- a/code/modules/mob/living/carbon/human/species/outsider/vox.dm
+++ b/code/modules/mob/living/carbon/human/species/outsider/vox.dm
@@ -1,6 +1,6 @@
/datum/species/vox
name = SPECIES_VOX
- name_plural = "Vox"
+ name_plural = SPECIES_VOX
icobase = 'icons/mob/human_races/r_vox_old.dmi'
deform = 'icons/mob/human_races/r_def_vox_old.dmi'
default_language = LANGUAGE_VOX
diff --git a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm
index e862536412b..3afe169bbd3 100644
--- a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm
+++ b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm
@@ -1,6 +1,6 @@
/datum/species/shadekin
name = SPECIES_SHADEKIN
- name_plural = "Shadekin"
+ name_plural = SPECIES_SHADEKIN
icobase = 'icons/mob/human_races/r_shadekin_vr.dmi'
deform = 'icons/mob/human_races/r_shadekin_vr.dmi'
tail = "tail"
diff --git a/code/modules/mob/living/carbon/human/species/station/alraune.dm b/code/modules/mob/living/carbon/human/species/station/alraune.dm
index 1b68525a0c9..093a380e43c 100644
--- a/code/modules/mob/living/carbon/human/species/station/alraune.dm
+++ b/code/modules/mob/living/carbon/human/species/station/alraune.dm
@@ -93,7 +93,7 @@
O_KIDNEYS = /obj/item/organ/internal/kidneys/alraune,
O_BRAIN = /obj/item/organ/internal/brain/alraune,
O_EYES = /obj/item/organ/internal/eyes/alraune,
- A_FRUIT = /obj/item/organ/internal/fruitgland,
+ O_FRUIT = /obj/item/organ/internal/fruitgland,
)
/datum/species/alraune/can_breathe_water()
@@ -348,7 +348,7 @@
icon_state = "phytoextractor"
name = "fruit gland"
desc = "A bulbous gourd-like structure."
- organ_tag = A_FRUIT
+ organ_tag = O_FRUIT
var/generated_reagents = list("sugar" = 2) //This actually allows them. This could be anything, but sugar seems most fitting.
var/usable_volume = 250 //Five fruit.
var/transfer_amount = 50
diff --git a/code/modules/mob/living/carbon/human/species/station/golem.dm b/code/modules/mob/living/carbon/human/species/station/golem.dm
index 699b16599c1..65d061fa773 100644
--- a/code/modules/mob/living/carbon/human/species/station/golem.dm
+++ b/code/modules/mob/living/carbon/human/species/station/golem.dm
@@ -31,8 +31,8 @@
/datum/species/golem/handle_post_spawn(var/mob/living/carbon/human/H)
if(H.mind)
- H.mind.assigned_role = "Golem"
- H.mind.special_role = "Golem"
+ H.mind.assigned_role = SPECIES_GOLEM
+ H.mind.special_role = SPECIES_GOLEM
H.real_name = "adamantine golem ([rand(1, 1000)])"
H.name = H.real_name
..()
diff --git a/code/modules/mob/living/carbon/human/species/station/human_subspecies.dm b/code/modules/mob/living/carbon/human/species/station/human_subspecies.dm
index 92a470bf5e8..2537dfa2dea 100644
--- a/code/modules/mob/living/carbon/human/species/station/human_subspecies.dm
+++ b/code/modules/mob/living/carbon/human/species/station/human_subspecies.dm
@@ -90,7 +90,7 @@
/datum/species/human/vatgrown
name = SPECIES_HUMAN_VATBORN
- name_plural = "Vatborn"
+ name_plural = SPECIES_HUMAN_VATBORN
blurb = "With cloning on the forefront of human scientific advancement, cheap mass production \
of bodies is a very real and rather ethically grey industry. Vat-grown or Vatborn humans tend to be \
paler than baseline, with no appendix and fewer inherited genetic disabilities, but a more aggressive metabolism."
diff --git a/code/modules/mob/living/carbon/human/species/station/monkey.dm b/code/modules/mob/living/carbon/human/species/station/monkey.dm
index aa2d4c16725..9363ca97800 100644
--- a/code/modules/mob/living/carbon/human/species/station/monkey.dm
+++ b/code/modules/mob/living/carbon/human/species/station/monkey.dm
@@ -69,26 +69,26 @@
/datum/species/monkey/tajaran
name = SPECIES_MONKEY_TAJ
- name_plural = "Farwa"
+ name_plural = SPECIES_MONKEY_TAJ
icobase = 'icons/mob/human_races/monkeys/r_farwa.dmi'
deform = 'icons/mob/human_races/monkeys/r_farwa.dmi'
greater_form = SPECIES_TAJ
- default_language = "Farwa"
+ default_language = SPECIES_MONKEY_TAJ
flesh_color = "#AFA59E"
base_color = "#333333"
tail = "farwatail"
/datum/species/monkey/skrell
name = SPECIES_MONKEY_SKRELL
- name_plural = "Neaera"
+ name_plural = SPECIES_MONKEY_SKRELL
icobase = 'icons/mob/human_races/monkeys/r_neaera.dmi'
deform = 'icons/mob/human_races/monkeys/r_neaera.dmi'
greater_form = SPECIES_SKRELL
- default_language = "Neaera"
+ default_language = LANGUAGE_NEAERA
flesh_color = "#8CD7A3"
blood_color = "#1D2CBF"
reagent_tag = IS_SKRELL
@@ -96,30 +96,30 @@
/datum/species/monkey/unathi
name = SPECIES_MONKEY_UNATHI
- name_plural = "Stok"
+ name_plural = SPECIES_MONKEY_UNATHI
icobase = 'icons/mob/human_races/monkeys/r_stok.dmi'
deform = 'icons/mob/human_races/monkeys/r_stok.dmi'
tail = "stoktail"
greater_form = SPECIES_UNATHI
- default_language = "Stok"
+ default_language = LANGUAGE_STOK
flesh_color = "#34AF10"
base_color = "#066000"
reagent_tag = IS_UNATHI
/datum/species/monkey/shark
name = SPECIES_MONKEY_AKULA
- name_plural = "Sobaka"
+ name_plural = SPECIES_MONKEY_AKULA
icobase = 'icons/mob/human_races/monkeys/r_sobaka_vr.dmi'
deform = 'icons/mob/human_races/monkeys/r_sobaka_vr.dmi'
tail = null //The tail is part of its body due to tail using the "icons/effects/species.dmi" file. It must be null, or they'll have a chimp tail.
- greater_form = "Akula"
+ greater_form = SPECIES_AKULA
default_language = "Skrellian" //Closest we have.
/datum/species/monkey/sergal
name = SPECIES_MONKEY_SERGAL
- greater_form = "Sergal"
+ greater_form = SPECIES_SERGAL
icobase = 'icons/mob/human_races/monkeys/r_sergaling_vr.dmi'
deform = 'icons/mob/human_races/monkeys/r_sergaling_vr.dmi'
tail = null
@@ -127,8 +127,8 @@
/datum/species/monkey/sparra
name = SPECIES_MONKEY_NEVREAN
- name_plural = "Sparra"
- greater_form = "Nevrean"
+ name_plural = SPECIES_MONKEY_NEVREAN
+ greater_form = SPECIES_NEVREAN
tail = null
icobase = 'icons/mob/human_races/monkeys/r_sparra_vr.dmi'
deform = 'icons/mob/human_races/monkeys/r_sparra_vr.dmi'
@@ -137,14 +137,14 @@
/* Example from Polaris code
/datum/species/monkey/tajaran
- name = "Farwa"
- name_plural = "Farwa"
+ name = SPECIES_MONKEY_TAJ
+ name_plural = SPECIES_MONKEY_TAJ
icobase = 'icons/mob/human_races/monkeys/r_farwa.dmi'
deform = 'icons/mob/human_races/monkeys/r_farwa.dmi'
greater_form = "Tajaran"
- default_language = "Farwa"
+ default_language = LANGUAGE_FARWA
flesh_color = "#AFA59E"
base_color = "#333333"
tail = "farwatail"
@@ -152,12 +152,12 @@
/datum/species/monkey/vulpkanin
name = SPECIES_MONKEY_VULPKANIN
- name_plural = "Wolpin"
+ name_plural = SPECIES_MONKEY_VULPKANIN
icobase = 'icons/mob/human_races/monkeys/r_wolpin.dmi'
deform = 'icons/mob/human_races/monkeys/r_wolpin.dmi'
- greater_form = "Vulpkanin"
+ greater_form = SPECIES_VULPKANIN
default_language = LANGUAGE_CANILUNZT
flesh_color = "#966464"
base_color = "#000000"
@@ -167,13 +167,13 @@
//Also, M was added to the end of the spawn names to signify that it's a monkey, since some names were conflicting.
/mob/living/carbon/human/sharkm/Initialize(mapload)
- ..(mapload, "Sobaka")
+ ..(mapload, SPECIES_MONKEY_AKULA)
/mob/living/carbon/human/sergallingm/Initialize(mapload)
- ..(mapload, "Saru")
+ ..(mapload, SPECIES_MONKEY_SERGAL)
/mob/living/carbon/human/sparram/Initialize(mapload)
- ..(mapload, "Sparra")
+ ..(mapload, SPECIES_MONKEY_NEVREAN)
/mob/living/carbon/human/wolpin/Initialize(mapload)
- ..(mapload, "Wolpin")
+ ..(mapload, SPECIES_MONKEY_VULPKANIN)
diff --git a/code/modules/mob/living/carbon/human/species/station/protean/protean_blob.dm b/code/modules/mob/living/carbon/human/species/station/protean/protean_blob.dm
index 3cfffce220d..444b121c864 100644
--- a/code/modules/mob/living/carbon/human/species/station/protean/protean_blob.dm
+++ b/code/modules/mob/living/carbon/human/species/station/protean/protean_blob.dm
@@ -186,7 +186,7 @@
/mob/living/simple_mob/protean_blob/Life()
. = ..()
if(. && istype(refactory) && humanform)
- if(!humanform.has_modifier_of_type(/datum/modifier/protean/steelBlob) && health < maxHealth && refactory.get_stored_material(DEFAULT_WALL_MATERIAL) >= 100 && refactory.processingbuffs)
+ if(!humanform.has_modifier_of_type(/datum/modifier/protean/steelBlob) && health < maxHealth && refactory.get_stored_material(MAT_STEEL) >= 100 && refactory.processingbuffs)
healing = humanform.add_modifier(/datum/modifier/protean/steelBlob, origin = refactory)
else if(humanform.has_modifier_of_type(/datum/modifier/protean/steelBlob) && health >= maxHealth)
humanform.remove_a_modifier_of_type(/datum/modifier/protean/steelBlob)
@@ -305,7 +305,7 @@
pulledby.stop_pulling()
stop_pulling()
- var/panel_selected = client?.statpanel == "Protean"
+ var/panel_selected = client?.statpanel == SPECIES_PROTEAN
//Record where they should go
var/atom/creation_spot = drop_location()
@@ -378,7 +378,7 @@
moveToNullspace()
if(blob.client && panel_selected)
- blob.client.statpanel = "Protean"
+ blob.client.statpanel = SPECIES_PROTEAN
//Message
blob.visible_message("[src.name] collapses into a gooey blob!")
@@ -473,7 +473,7 @@
pulledby.stop_pulling()
stop_pulling()
- var/panel_selected = blob.client?.statpanel == "Protean"
+ var/panel_selected = blob.client?.statpanel == SPECIES_PROTEAN
//Stop healing if we are
if(blob.healing)
@@ -502,7 +502,7 @@
temporary_form = null
if(client && panel_selected)
- client.statpanel = "Protean"
+ client.statpanel = SPECIES_PROTEAN
//Transfer vore organs
vore_selected = blob.vore_selected
diff --git a/code/modules/mob/living/carbon/human/species/station/protean/protean_powers.dm b/code/modules/mob/living/carbon/human/species/station/protean/protean_powers.dm
index 4dabce36c9d..6ee6a34fef9 100644
--- a/code/modules/mob/living/carbon/human/species/station/protean/protean_powers.dm
+++ b/code/modules/mob/living/carbon/human/species/station/protean/protean_powers.dm
@@ -25,7 +25,7 @@
//Organ is missing, needs restoring
if(!organs_by_name[choice] || istype(organs_by_name[choice], /obj/item/organ/external/stump)) //allows limb stumps to regenerate like removed limbs.
- if(refactory.get_stored_material(DEFAULT_WALL_MATERIAL) < PER_LIMB_STEEL_COST)
+ if(refactory.get_stored_material(MAT_STEEL) < PER_LIMB_STEEL_COST)
to_chat(src,"You're missing that limb, and need to store at least [PER_LIMB_STEEL_COST] steel to regenerate it.")
return
var/regen = alert(src,"That limb is missing, do you want to regenerate it in exchange for [PER_LIMB_STEEL_COST] steel?","Regenerate limb?","Yes","No")
@@ -40,7 +40,7 @@
active_regen = TRUE
src.visible_message("[src]'s flesh begins to bubble, growing oily tendrils from their limb stump...") // Gives a visualization for regenerating limbs.
if(do_after(src,5 SECONDS)) // Makes you not need to blob to regen a single limb. I'm keeping the full-body regen as blob-only, though
- if(!refactory.use_stored_material(DEFAULT_WALL_MATERIAL,PER_LIMB_STEEL_COST))
+ if(!refactory.use_stored_material(MAT_STEEL,PER_LIMB_STEEL_COST))
return
var/list/limblist = species.has_limbs[choice]
var/limbpath = limblist["path"]
@@ -142,7 +142,7 @@
return
//Not enough resources (AND spends the resources, should be the last check)
- if(refactory.get_stored_material(DEFAULT_WALL_MATERIAL) < min(10000, refactory.max_storage))
+ if(refactory.get_stored_material(MAT_STEEL) < min(10000, refactory.max_storage))
to_chat(src, "You need to be maxed out on normal metal to do this!")
return
@@ -155,7 +155,7 @@
if(do_after(blob, delay_length, null, 0))
if(stat != DEAD && refactory)
//Not enough resources (AND spends the resources, should be the last check)
- if(!refactory.use_stored_material(DEFAULT_WALL_MATERIAL,refactory.max_storage))
+ if(!refactory.use_stored_material(MAT_STEEL,refactory.max_storage))
to_chat(src, "You need to be maxed out on normal metal to do this!")
return
var/list/holder = refactory.materials
diff --git a/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm b/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm
index 7591836be62..1bdf9774ff6 100755
--- a/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm
+++ b/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm
@@ -227,7 +227,7 @@ I redid the calculations, as the burn weakness has been changed. This should be
if(refactory && !(refactory.status & ORGAN_DEAD) && refactory.processingbuffs)
//Steel adds regen
- if(protean_requires_healing(H) && refactory.get_stored_material(DEFAULT_WALL_MATERIAL) >= METAL_PER_TICK) // Regen without blobform, though relatively slow compared to blob regen
+ if(protean_requires_healing(H) && refactory.get_stored_material(MAT_STEEL) >= METAL_PER_TICK) // Regen without blobform, though relatively slow compared to blob regen
H.add_modifier(/datum/modifier/protean/steel, origin = refactory)
//MHydrogen adds speeeeeed
@@ -253,7 +253,7 @@ I redid the calculations, as the burn weakness has been changed. This should be
/datum/species/protean/Stat(var/mob/living/carbon/human/H)
..()
- if(statpanel("Protean"))
+ if(statpanel(SPECIES_PROTEAN))
var/obj/item/organ/internal/nano/refactory/refactory = H.nano_get_refactory()
if(refactory && !(refactory.status & ORGAN_DEAD))
stat(null, "- -- --- Refactory Metal Storage --- -- -")
@@ -273,7 +273,7 @@ I redid the calculations, as the burn weakness has been changed. This should be
/datum/modifier/protean
stacks = MODIFIER_STACK_FORBID
var/material_use = METAL_PER_TICK
- var/material_name = DEFAULT_WALL_MATERIAL
+ var/material_name = MAT_STEEL
/datum/modifier/protean/on_applied()
. = ..()
diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm
index cf9dd07b667..c53b0086a12 100644
--- a/code/modules/mob/living/carbon/human/species/station/station.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station.dm
@@ -53,7 +53,7 @@
/datum/species/unathi
name = SPECIES_UNATHI
- name_plural = "Unathi"
+ name_plural = SPECIES_UNATHI
icobase = 'icons/mob/human_races/r_lizard_vr.dmi'
deform = 'icons/mob/human_races/r_def_lizard_vr.dmi'
tail = "sogtail"
@@ -269,7 +269,7 @@
/datum/species/skrell
name = SPECIES_SKRELL
- name_plural = "Skrell"
+ name_plural = SPECIES_SKRELL
icobase = 'icons/mob/human_races/r_skrell_vr.dmi'
deform = 'icons/mob/human_races/r_def_skrell_vr.dmi'
primitive_form = SPECIES_MONKEY_SKRELL
@@ -348,7 +348,7 @@
/datum/species/zaddat
name = SPECIES_ZADDAT
- name_plural = "Zaddat"
+ name_plural = SPECIES_ZADDAT
icobase = 'icons/mob/human_races/r_zaddat.dmi'
deform = 'icons/mob/human_races/r_zaddat.dmi'
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch)
@@ -496,7 +496,7 @@
catalogue_data = list(/datum/category_item/catalogue/fauna/sergal)
- primitive_form = "Saru"
+ primitive_form = SPECIES_MONKEY_SERGAL
spawn_flags = SPECIES_CAN_JOIN
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
@@ -530,7 +530,7 @@
/datum/species/akula
name = SPECIES_AKULA
- name_plural = "Akula"
+ name_plural = SPECIES_AKULA //It's singular and plural. English is weird.
icobase = 'icons/mob/human_races/r_akula.dmi'
deform = 'icons/mob/human_races/r_def_akula.dmi'
tail = "tail"
@@ -566,7 +566,7 @@
catalogue_data = list(/datum/category_item/catalogue/fauna/akula)
- primitive_form = "Sobaka"
+ primitive_form = SPECIES_MONKEY_AKULA
spawn_flags = SPECIES_CAN_JOIN
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
@@ -614,7 +614,7 @@
catalogue_data = list(/datum/category_item/catalogue/fauna/nevrean)
- primitive_form = "Sparra"
+ primitive_form = SPECIES_MONKEY_NEVREAN
spawn_flags = SPECIES_CAN_JOIN
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
@@ -722,14 +722,14 @@
/datum/species/vulpkanin
name = SPECIES_VULPKANIN
- name_plural = "Vulpkanin"
+ name_plural = SPECIES_VULPKANIN
icobase = 'icons/mob/human_races/r_vulpkanin.dmi'
deform = 'icons/mob/human_races/r_vulpkanin.dmi'
// path = /mob/living/carbon/human/vulpkanin
// default_language = "Sol Common"
secondary_langs = list(LANGUAGE_CANILUNZT)
name_language = LANGUAGE_CANILUNZT
- primitive_form = "Wolpin"
+ primitive_form = SPECIES_MONKEY_VULPKANIN
tail = "vulptail"
tail_animation = 'icons/mob/species/vulpkanin/tail.dmi' // probably need more than just one of each, but w/e
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp)
@@ -752,7 +752,7 @@
catalogue_data = list(/datum/category_item/catalogue/fauna/vulpkanin)
- primitive_form = "Wolpin"
+ primitive_form = SPECIES_MONKEY_VULPKANIN
spawn_flags = SPECIES_CAN_JOIN
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
@@ -805,7 +805,7 @@
/datum/species/crew_shadekin
name = SPECIES_SHADEKIN_CREW
- name_plural = "Black-Eyed Shadekin"
+ name_plural = SPECIES_SHADEKIN_CREW
icobase = 'icons/mob/human_races/r_shadekin_vr.dmi'
deform = 'icons/mob/human_races/r_shadekin_vr.dmi'
tail = "tail"
diff --git a/code/modules/mob/living/carbon/human/species/station/station_special.dm b/code/modules/mob/living/carbon/human/species/station/station_special.dm
index 3a541238d70..a1d2a511e2e 100644
--- a/code/modules/mob/living/carbon/human/species/station/station_special.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station_special.dm
@@ -16,7 +16,7 @@
brute_mod = 0.8 //About as tanky to brute as a Unathi. They'll probably snap and go feral when hurt though.
burn_mod = 1.15 //As vulnerable to burn as a Tajara.
radiation_mod = 1.15 //To help simulate the volatility of a living 'viral' cluster.
- base_species = "Xenochimera"
+ base_species = SPECIES_XENOCHIMERA
selects_bodytype = TRUE
num_alternate_languages = 5
@@ -110,14 +110,14 @@
)
valid_transform_species = list(
- "Human", "Unathi", "Tajara", "Skrell",
- "Diona", "Teshari", "Monkey","Sergal",
- "Akula","Nevrean","Highlander Zorren",
- "Flatland Zorren", "Vulpkanin", "Vasilissan",
- "Rapala", "Neaera", "Stok", "Farwa", "Sobaka",
- "Wolpin", "Saru", "Sparra", "Vox")
+ SPECIES_HUMAN, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_SKRELL,
+ SPECIES_DIONA, SPECIES_TESHARI, SPECIES_MONKEY,SPECIES_SERGAL,
+ SPECIES_AKULA,SPECIES_NEVREAN,SPECIES_ZORREN_HIGH,
+ SPECIES_ZORREN_FLAT, SPECIES_VULPKANIN, SPECIES_VASILISSAN,
+ SPECIES_RAPALA, SPECIES_MONKEY_SKRELL, SPECIES_MONKEY_UNATHI, SPECIES_MONKEY_TAJ, SPECIES_MONKEY_AKULA,
+ SPECIES_MONKEY_VULPKANIN, SPECIES_MONKEY_SERGAL, SPECIES_MONKEY_NEVREAN, SPECIES_VOX)
- //primitive_form = "Farwa"
+ //primitive_form = SPECIES_MONKEY_TAJ
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED | SPECIES_WHITELIST_SELECTABLE//Whitelisted as restricted is broken.
flags = NO_SCAN | NO_INFECT | NO_DEFIB //Dying as a chimera is, quite literally, a death sentence. Well, if it wasn't for their revive, that is.
@@ -726,7 +726,7 @@
cold_level_2 = -1
cold_level_3 = -1
- //primitive_form = "Monkey" //I dunno. Replace this in the future.
+ //primitive_form = SPECIES_MONKEY //I dunno. Replace this in the future.
flags = NO_MINOR_CUT | CONTAMINATION_IMMUNE
spawn_flags = SPECIES_CAN_JOIN
@@ -773,7 +773,7 @@
num_alternate_languages = 3
secondary_langs = list(LANGUAGE_CANILUNZT)
name_language = LANGUAGE_CANILUNZT
- primitive_form = "Wolpin"
+ primitive_form = SPECIES_MONKEY_VULPKANIN
color_mult = 1
max_age = 200
@@ -818,7 +818,7 @@
/////////////////////
/datum/species/apidaen
name = SPECIES_APIDAEN
- name_plural = "Apidaen"
+ name_plural = SPECIES_APIDAEN
icobase = 'icons/mob/human_races/r_def_apidaen.dmi'
deform = 'icons/mob/human_races/r_def_apidaen.dmi'
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp)
@@ -860,7 +860,7 @@
hazard_low_pressure = 20
- //primitive_form = "Monkey" //I dunno. Replace this in the future.
+ //primitive_form = SPECIES_MONKEY //I dunno. Replace this in the future.
flags = NO_MINOR_CUT
spawn_flags = SPECIES_CAN_JOIN
@@ -881,7 +881,7 @@
O_EYES = /obj/item/organ/internal/eyes,
O_STOMACH = /obj/item/organ/internal/stomach,
O_INTESTINE =/obj/item/organ/internal/intestine,
- H_STOMACH = /obj/item/organ/internal/honey_stomach
+ O_HONEYSTOMACH = /obj/item/organ/internal/honey_stomach
)
//Did you know it's actually called a honey stomach? I didn't!
@@ -890,7 +890,7 @@
icon_state = "innards"
name = "honey stomach"
desc = "A squishy enzymatic processor that turns airborne pollen into nectar."
- organ_tag = H_STOMACH
+ organ_tag = O_HONEYSTOMACH
var/generated_reagents = list("honey" = 5)
var/usable_volume = 50
var/transfer_amount = 50
diff --git a/code/modules/mob/living/carbon/human/species/station/xenomorph_hybrids/xeno_hybrids.dm b/code/modules/mob/living/carbon/human/species/station/xenomorph_hybrids/xeno_hybrids.dm
index eea01205610..39d3d25e6f8 100644
--- a/code/modules/mob/living/carbon/human/species/station/xenomorph_hybrids/xeno_hybrids.dm
+++ b/code/modules/mob/living/carbon/human/species/station/xenomorph_hybrids/xeno_hybrids.dm
@@ -20,10 +20,10 @@
wikilink = "https://citadel-station.net/wikiRP/index.php?title=Race:_Neomorphs"
//primitive_form = "" //None for these guys
- language = "Xenomorph"
- name_language = "Xenomorph"
- species_language = "Xenomorph"
- secondary_langs = list("Xenomorph")
+ language = LANGUAGE_XENO
+ name_language = LANGUAGE_XENO
+ species_language = LANGUAGE_XENO
+ secondary_langs = list(LANGUAGE_XENO)
num_alternate_languages = 3
flags = NO_MINOR_CUT | CONTAMINATION_IMMUNE//Chitin like VASILISSANs should have the same flags
diff --git a/code/modules/mob/living/carbon/human/species/virtual_reality/opaque_form.dm b/code/modules/mob/living/carbon/human/species/virtual_reality/opaque_form.dm
index c9aa8a9a339..5780bf0ceb0 100644
--- a/code/modules/mob/living/carbon/human/species/virtual_reality/opaque_form.dm
+++ b/code/modules/mob/living/carbon/human/species/virtual_reality/opaque_form.dm
@@ -2,7 +2,7 @@
// Due to sprite construction, they have to have separate limb lists
/datum/species/shapeshifter/promethean/avatar/human
- name = "Virtual Reality Human"
+ name = SPECIES_VR_HUMAN
icobase = 'icons/mob/human_races/r_human.dmi'
deform = 'icons/mob/human_races/r_def_human.dmi'
appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR
@@ -21,7 +21,7 @@
)
/datum/species/shapeshifter/promethean/avatar/unathi
- name = "Virtual Reality Unathi"
+ name = SPECIES_VR_UNATHI
icobase = 'icons/mob/human_races/r_lizard.dmi'
deform = 'icons/mob/human_races/r_def_lizard.dmi'
tail = "sogtail"
@@ -63,7 +63,7 @@
)
/datum/species/shapeshifter/promethean/avatar/skrell
- name = "Virtual Reality Skrell"
+ name = SPECIES_VR_SKRELL
icobase = 'icons/mob/human_races/r_skrell.dmi'
deform = 'icons/mob/human_races/r_def_skrell.dmi'
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR
@@ -82,7 +82,7 @@
)
/datum/species/shapeshifter/promethean/avatar/teshari
- name = "Virtual Reality Teshari"
+ name = SPECIES_VR_TESHARI
icobase = 'icons/mob/human_races/r_teshari.dmi'
deform = 'icons/mob/human_races/r_teshari.dmi'
appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_COLOR | HAS_EYE_COLOR
@@ -101,7 +101,7 @@
)
/datum/species/shapeshifter/promethean/avatar/diona
- name = "Virtual Reality Diona"
+ name = SPECIES_VR_DIONA
icobase = 'icons/mob/human_races/r_diona.dmi'
deform = 'icons/mob/human_races/r_def_plant.dmi'
appearance_flags = 0
@@ -120,7 +120,7 @@
)
/datum/species/shapeshifter/promethean/avatar/monkey
- name = "Virtual Reality Monkey"
+ name = SPECIES_VR_MONKEY
icobase = 'icons/mob/human_races/monkeys/r_monkey.dmi'
deform = 'icons/mob/human_races/monkeys/r_monkey.dmi'
damage_overlays = 'icons/mob/human_races/masks/dam_monkey.dmi'
@@ -143,7 +143,7 @@
)
/datum/species/shapeshifter/promethean/avatar/vox
- name = "Virtual Reality Vox"
+ name = SPECIES_VR_VOX
icobase = 'icons/mob/human_races/r_vox.dmi'
deform = 'icons/mob/human_races/r_def_vox.dmi'
appearance_flags = HAS_EYE_COLOR | HAS_HAIR_COLOR
@@ -162,7 +162,7 @@
)
/datum/species/shapeshifter/promethean/avatar/skeleton
- name = "Virtual Reality Skeleton"
+ name = SPECIES_VR_SKELETON
icobase = 'icons/mob/human_races/r_skeleton.dmi'
deform = 'icons/mob/human_races/r_skeleton.dmi'
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR
diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm
index 7761a69fa9a..3938ddc43f2 100644
--- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm
+++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm
@@ -110,7 +110,7 @@
if(check_alien_ability(500))
visible_message("[src] begins to twist and contort!", "You begin to evolve!")
- src.set_species("Xenomorph Queen")
+ src.set_species(SPECIES_XENO_QUEEN)
return
diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm
index 8c007515fb3..e3111fce3b7 100644
--- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm
+++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm
@@ -3,7 +3,7 @@
name = SPECIES_XENO
name_plural = "Xenomorphs"
- default_language = "Xenomorph"
+ default_language = LANGUAGE_XENO
language = "Hivemind"
assisted_langs = list()
unarmed_types = list(/datum/unarmed_attack/claws/strong/xeno, /datum/unarmed_attack/bite/strong/xeno)
diff --git a/code/modules/mob/living/carbon/metroid/items.dm b/code/modules/mob/living/carbon/metroid/items.dm
index ca1ee4012d8..fe14bff7a3a 100644
--- a/code/modules/mob/living/carbon/metroid/items.dm
+++ b/code/modules/mob/living/carbon/metroid/items.dm
@@ -291,7 +291,7 @@
to_chat(user, "The rune fizzles uselessly. There is no spirit nearby.")
return
var/mob/living/carbon/human/G = new(src.loc)
- G.set_species("Golem")
+ G.set_species(SPECIES_GOLEM)
G.key = ghost.key
to_chat(G, "You are an adamantine golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. Serve [user], and assist them in completing their goals at any cost.")
qdel(src)
diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm
index ebe56a0ac0b..e3e26d9b534 100644
--- a/code/modules/mob/living/carbon/metroid/life.dm
+++ b/code/modules/mob/living/carbon/metroid/life.dm
@@ -214,7 +214,7 @@
if(istype(L, /mob/living/carbon/human) && dna) //Ignore slime(wo)men
var/mob/living/carbon/human/H = L
- if(H.species.name == "Promethean")
+ if(H.species.name == SPECIES_PROMETHEAN)
continue
if(!L.canmove) // Only one slime can latch on at a time.
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index e7dff242de8..3a6279ea098 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -41,6 +41,19 @@
if(buckled)
buckled.unbuckle_mob(src, TRUE)
qdel(selected_image)
+ if(LAZYLEN(organs))
+ organs_by_name.Cut()
+ while(organs.len)
+ var/obj/item/OR = organs[1]
+ organs -= OR
+ qdel(OR)
+
+ if(LAZYLEN(internal_organs))
+ internal_organs_by_name.Cut()
+ while(internal_organs.len)
+ var/obj/item/OR = internal_organs[1]
+ internal_organs -= OR
+ qdel(OR)
return ..()
//mob verbs are faster than object verbs. See mob/verb/examine.
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index d2cf119a8f3..27233f09dc0 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -461,7 +461,7 @@
stuttering += 20
make_jittery(150)
emp_act(1)
- to_chat(src, span("critical", "You've been struck by lightning!"))
+ to_chat(src, SPAN_CRITICAL("You've been struck by lightning!"))
// Called when touching a lava tile.
// Does roughly 100 damage to unprotected mobs, and 20 to fully protected mobs.
diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm
index 6ef12dcd21d..91b6a022c20 100644
--- a/code/modules/mob/living/living_defines.dm
+++ b/code/modules/mob/living/living_defines.dm
@@ -1,27 +1,41 @@
/mob/living
see_invisible = SEE_INVISIBLE_LIVING
- //Health and life related vars
- var/maxHealth = 100 //Maximum health that should be possible. Avoid adjusting this if you can, and instead use modifiers datums.
- var/health = 100 //A mob's health
+ //* Health and life related vars *//
+ /// Maximum health that should be possible. Avoid adjusting this if you can, and instead use modifiers datums.
+ var/maxHealth = 100
+ /// A mob's health
+ var/health = 100
- var/mob_class = null // A mob's "class", e.g. human, mechanical, animal, etc. Used for certain projectile effects. See __defines/mob.dm for available classes.
+ /// A mob's "class", e.g. human, mechanical, animal, etc. Used for certain projectile effects. See __defines/mob.dm for available classes.
+ var/mob_class = null
- var/list/status_effects //a list of all status effects the mob has
+ /// A list of all status effects the mob has
+ var/list/status_effects
- //Damage related vars, NOTE: THESE SHOULD ONLY BE MODIFIED BY PROCS
- var/bruteloss = 0.0 //Brutal damage caused by brute force (punching, being clubbed by a toolbox ect... this also accounts for pressure damage)
- var/oxyloss = 0.0 //Oxygen depravation damage (no air in lungs)
- var/toxloss = 0.0 //Toxic damage caused by being poisoned or radiated
- var/fireloss = 0.0 //Burn damage caused by being way too hot, too cold or burnt.
- var/cloneloss = 0 //Damage caused by being cloned or ejected from the cloner early. slimes also deal cloneloss damage to victims
- var/brainloss = 0 //Damage caused by someone hitting you in the head with a bible or being infected with brainrot.
- var/halloss = 0 //Hallucination damage. 'Fake' damage obtained through hallucinating or the holodeck. Sleeping should cause it to wear off.
+ //* Damage related vars *// NOTE: THESE SHOULD ONLY BE MODIFIED BY PROCS
+ /// Brutal damage caused by brute force. (punching, being clubbed by a toolbox ect... this also accounts for pressure damage)
+ var/bruteloss = 0.0
+ /// Oxygen depravation damage. (no air in lungs)
+ var/oxyloss = 0.0
+ /// Toxic damage caused by being poisoned or radiated.
+ var/toxloss = 0.0
+ /// Burn damage caused by being way too hot, too cold or burnt.
+ var/fireloss = 0.0
+ /// Damage caused by being cloned or ejected from the cloner early. slimes also deal cloneloss damage to victims.
+ var/cloneloss = 0
+ /// Damage caused by someone hitting you in the head with a bible or being infected with brainrot.
+ var/brainloss = 0
+ /// Hallucination damage. 'Fake' damage obtained through hallucinating or the holodeck. Sleeping should cause it to wear off.
+ var/halloss = 0
- var/hallucination = 0 //Directly affects how long a mob will hallucinate for
- var/list/atom/hallucinations = list() //A list of hallucinated people that try to attack the mob. See /obj/effect/fake_attacker in hallucinations.dm
+ /// Directly affects how long a mob will hallucinate for
+ var/hallucination = 0
+ /// A list of hallucinated people that try to attack the mob. See /obj/effect/fake_attacker in hallucinations.dm
+ var/list/atom/hallucinations = list()
- var/last_special = 0 //Used by the resist verb, likely used to prevent players from bypassing next_move by logging in/out.
+ /// Used by the resist verb, likely used to prevent players from bypassing next_move by logging in/out.
+ var/last_special = 0
var/base_attack_cooldown = DEFAULT_ATTACK_COOLDOWN
var/t_phoron = null
@@ -38,38 +52,46 @@
var/mob/living/cameraFollow = null
var/list/datum/action/actions = list()
- var/tod = null // Time of death
+ /// Time of death
+ var/tod = null
var/update_slimes = 1
- var/silent = null // Can't talk. Value goes down every life proc.
- var/on_fire = 0 //The "Are we on fire?" var
+ /// Can't talk. Value goes down every life proc.
+ var/silent = null
+ /// The "Are we on fire?" var
+ var/on_fire = FALSE
var/fire_stacks = 0
- var/failed_last_breath = 0 //This is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks.
+ /// This is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks.
+ var/failed_last_breath = 0
var/lastpuke = 0
- var/evasion = 0 // Makes attacks harder to land. Negative numbers increase hit chance.
- var/force_max_speed = 0 // If 1, the mob runs extremely fast and cannot be slowed.
+ /// Makes attacks harder to land. Negative numbers increase hit chance.
+ var/evasion = 0
+ /// If true, the mob runs extremely fast and cannot be slowed.
+ var/force_max_speed = FALSE
- var/image/dsoverlay = null //Overlay used for darksight eye adjustments
+ /// Overlay used for darksight eye adjustments
+ var/image/dsoverlay = null
- var/glow_toggle = 0 // If they're glowing!
+ /// If they're glowing!
+ var/glow_toggle = FALSE
+ /// The range that they're glowing at!
var/glow_range = 2
+ /// The intensity that they're glowing at!
var/glow_intensity = null
- var/glow_color = "#FFFFFF" // The color they're glowing!
+ /// The color they're glowing!
+ var/glow_color = "#FFFFFF"
var/see_invisible_default = SEE_INVISIBLE_LIVING
- var/nest //Not specific, because a Nest may be the prop nest, or blob factory in this case.
-
- var/makes_dirt = TRUE //FALSE if the mob shouldn't be making dirt on the ground when it walks
-
- var/looking_elsewhere = FALSE //If the mob's view has been relocated to somewhere else, like via a camera or with binocs
-
- var/image/selected_image = null // Used for buildmode AI control stuff.
+ /// Not specific, because a Nest may be the prop nest, or blob factory in this case.
+ var/nest
+ /// FALSE if the mob shouldn't be making dirt on the ground when it walks
+ var/makes_dirt = TRUE
+ /// If the mob's view has been relocated to somewhere else, like via a camera or with binocs
+ var/looking_elsewhere = FALSE
+ /// Used for buildmode AI control stuff.
+ var/image/selected_image = null
//Pending Refactor, as per Kev.
//var/mobility_flags = MOBILITY_FLAGS_DEFAULT
-
- var/list/butcher_results = null //these will be yielded from butchering with a probability chance equal to the butcher item's effectiveness
- var/list/guaranteed_butcher_results = null //these will always be yielded from butchering
- var/butcher_difficulty = 0 //effectiveness prob. is modified negatively by this amount; positive numbers make it more difficult, negative ones make it easier
diff --git a/code/modules/mob/living/organs.dm b/code/modules/mob/living/organs.dm
new file mode 100644
index 00000000000..c1b48619969
--- /dev/null
+++ b/code/modules/mob/living/organs.dm
@@ -0,0 +1,39 @@
+/mob/living
+ var/list/internal_organs = list()
+ var/list/organs = list()
+ /// Map organ names to organs
+ var/list/organs_by_name = list()
+ /// So internal organs have less ickiness too
+ var/list/internal_organs_by_name = list()
+ /// Organs we check until they are good.
+ var/list/bad_external_organs = list()
+
+/mob/living/proc/get_bodypart_name(var/zone)
+ var/obj/item/organ/external/E = get_organ(zone)
+ if(E) . = E.name
+
+/mob/living/proc/get_organ(var/zone)
+ if(!zone)
+ zone = BP_TORSO
+ else if (zone in list( O_EYES, O_MOUTH ))
+ zone = BP_HEAD
+ return organs_by_name[zone]
+
+/mob/living/gib()
+ for(var/path in internal_organs)
+ if(ispath(path))
+ var/obj/item/organ/neworg = new path(src, TRUE)
+ internal_organs -= path
+ neworg.name = "[name] [neworg.name]"
+ neworg.meat_type = meat_type
+ internal_organs |= neworg
+
+ for(var/obj/item/organ/I in internal_organs)
+ I.removed()
+ if(isturf(I?.loc)) // Some organs qdel themselves or other things when removed
+ I.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),30)
+
+ for(var/obj/item/organ/external/E in src.organs)
+ if(!ispath(E))
+ E.droplimb(0,DROPLIMB_EDGE,1)
+ ..()
diff --git a/code/modules/mob/living/silicon/ai/ai_remote_control.dm b/code/modules/mob/living/silicon/ai/ai_remote_control.dm
index 2dce45bb5d4..9b5cd71443b 100644
--- a/code/modules/mob/living/silicon/ai/ai_remote_control.dm
+++ b/code/modules/mob/living/silicon/ai/ai_remote_control.dm
@@ -3,19 +3,19 @@
/mob/living/silicon/ai/proc/deploy_to_shell(var/mob/living/silicon/robot/target)
if(!config_legacy.allow_ai_shells)
- to_chat(src, span("warning", "AI Shells are not allowed on this server. You shouldn't have this verb because of it, so consider making a bug report."))
+ to_chat(src, SPAN_WARNING( "AI Shells are not allowed on this server. You shouldn't have this verb because of it, so consider making a bug report."))
return
if(incapacitated())
- to_chat(src, span("warning", "You are incapacitated!"))
+ to_chat(src, SPAN_WARNING( "You are incapacitated!"))
return
if(lacks_power())
- to_chat(src, span("warning", "Your core lacks power, wireless is disabled."))
+ to_chat(src, SPAN_WARNING( "Your core lacks power, wireless is disabled."))
return
if(control_disabled)
- to_chat(src, span("warning", "Wireless networking module is offline."))
+ to_chat(src, SPAN_WARNING( "Wireless networking module is offline."))
return
var/list/possible = list()
@@ -27,16 +27,16 @@
possible += R
if(!LAZYLEN(possible))
- to_chat(src, span("warning", "No usable AI shell beacons detected."))
+ to_chat(src, SPAN_WARNING( "No usable AI shell beacons detected."))
if(!target || !(target in possible)) //If the AI is looking for a new shell, or its pre-selected shell is no longer valid
target = input(src, "Which body to control?") as null|anything in possible
if(!target || target.stat == DEAD || target.deployed || !(!target.connected_ai || (target.connected_ai == src) ) )
if(target)
- to_chat(src, span("warning", "It is no longer possible to deploy to \the [target]."))
+ to_chat(src, SPAN_WARNING( "It is no longer possible to deploy to \the [target]."))
else
- to_chat(src, span("notice", "Deployment aborted."))
+ to_chat(src, SPAN_NOTICE("Deployment aborted."))
return
else if(mind)
@@ -54,5 +54,5 @@
/mob/living/silicon/ai/proc/disconnect_shell(message = "Your remote connection has been reset!")
if(deployed_shell) // Forcibly call back AI in event of things such as damage, EMP or power loss.
- message = span("danger", message)
+ message = SPAN_DANGER(message)
deployed_shell.undeploy(message)
diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm
index ff88b0e72e6..fa74c128131 100644
--- a/code/modules/mob/living/silicon/laws.dm
+++ b/code/modules/mob/living/silicon/laws.dm
@@ -81,7 +81,7 @@
last_law_notification = world.time
SEND_SOUND(src, 'sound/machines/defib_success.ogg')
window_flash(client)
- to_chat(src, span("warning", message))
+ to_chat(src, SPAN_WARNING( message))
/mob/living/silicon/proc/statelaws(var/datum/ai_laws/laws)
var/prefix = ""
diff --git a/code/modules/mob/living/silicon/robot/analyzer.dm b/code/modules/mob/living/silicon/robot/analyzer.dm
index c738c00e51c..ba00f46e10f 100644
--- a/code/modules/mob/living/silicon/robot/analyzer.dm
+++ b/code/modules/mob/living/silicon/robot/analyzer.dm
@@ -13,7 +13,7 @@
throw_speed = 5
throw_range = 10
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 1, TECH_ENGINEERING = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 200)
+ matter = list(MAT_STEEL = 500, MAT_GLASS = 200)
var/mode = 1;
/obj/item/robotanalyzer/attack(mob/living/M as mob, mob/living/user as mob)
diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm
index a16c7ede0c2..32458fd058a 100644
--- a/code/modules/mob/living/silicon/robot/component.dm
+++ b/code/modules/mob/living/silicon/robot/component.dm
@@ -208,7 +208,7 @@
name = "broken component"
icon = 'icons/obj/robot_component.dmi'
icon_state = "broken"
- matter = list(DEFAULT_WALL_MATERIAL = 1000)
+ matter = list(MAT_STEEL = 1000)
/obj/item/broken_device/random
var/static/list/possible_icons = list("binradio_broken",
diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
index 0eaf51bfdf2..850a3bc871b 100644
--- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
+++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
@@ -603,7 +603,7 @@
if(istype(T,/obj/item/stack))
var/obj/item/stack/stack = T
total_material *= stack.get_amount()
- if(material == DEFAULT_WALL_MATERIAL)
+ if(material == MAT_STEEL)
metal.add_charge(total_material)
if(material == "glass")
glass.add_charge(total_material)
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 355fdedbaea..b61e06b415c 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -520,7 +520,7 @@
return
if(shell) // AI shells always have the laws of the AI
- to_chat(user, span("warning", "\The [src] is controlled remotely! You cannot upload new laws this way!"))
+ to_chat(user, SPAN_WARNING( "\The [src] is controlled remotely! You cannot upload new laws this way!"))
return
var/obj/item/aiModule/M = W
@@ -1150,7 +1150,7 @@
to_chat(src, "Hack attempt detected.")
if(shell) // A warning to Traitors who may not know that emagging AI shells does not slave them.
- to_chat(user, span("warning", "[src] seems to be controlled remotely! Emagging the interface may not work as expected."))
+ to_chat(user, SPAN_WARNING( "[src] seems to be controlled remotely! Emagging the interface may not work as expected."))
return 1
else
to_chat(user, "The cover is already unlocked.")
@@ -1165,7 +1165,7 @@
// The block of code below is from TG. Feel free to replace with a better result if desired.
if(shell) // AI shells cannot be emagged, so we try to make it look like a standard reset. Smart players may see through this, however.
- to_chat(user, span("danger", "[src] is remotely controlled! Your emag attempt has triggered a system reset instead!"))
+ to_chat(user, SPAN_DANGER("[src] is remotely controlled! Your emag attempt has triggered a system reset instead!"))
log_game("[key_name(user)] attempted to emag an AI shell belonging to [key_name(src) ? key_name(src) : connected_ai]. The shell has been reset as a result.")
module_reset()
return
diff --git a/code/modules/mob/living/silicon/robot/robot_remote_control.dm b/code/modules/mob/living/silicon/robot/robot_remote_control.dm
index c3b27b08102..51a1af5f225 100644
--- a/code/modules/mob/living/silicon/robot/robot_remote_control.dm
+++ b/code/modules/mob/living/silicon/robot/robot_remote_control.dm
@@ -63,7 +63,7 @@ GLOBAL_LIST_EMPTY(available_ai_shells)
// Give button to leave.
verbs += /mob/living/silicon/robot/proc/undeploy_act
- to_chat(AI, span("notice", "You have connected to an AI Shell remotely, and are now in control of it.
\
+ to_chat(AI, SPAN_NOTICE("You have connected to an AI Shell remotely, and are now in control of it.
\
To return to your core, use the Release Control verb."))
// Languages and comms.
@@ -89,7 +89,7 @@ GLOBAL_LIST_EMPTY(available_ai_shells)
// mainframe.redeploy_action.Grant(mainframe)
// mainframe.redeploy_action.last_used_shell = src
if(message)
- to_chat(src, span("notice", message))
+ to_chat(src, SPAN_NOTICE(message))
mind.transfer_to(mainframe)
deployed = FALSE
updateicon()
diff --git a/code/modules/mob/living/simple_mob/combat.dm b/code/modules/mob/living/simple_mob/combat.dm
index 921094e7554..fb331d61c1d 100644
--- a/code/modules/mob/living/simple_mob/combat.dm
+++ b/code/modules/mob/living/simple_mob/combat.dm
@@ -38,7 +38,7 @@
if(missed) // Most likely we have a slow attack and they dodged it or we somehow got moved.
add_attack_logs(src, A, "Animal-attacked (dodged)", admin_notify = FALSE)
playsound(src, 'sound/weapons/punchmiss.ogg', 75, 1)
- visible_message(span("warning", "\The [src] misses their attack."))
+ visible_message(SPAN_WARNING( "\The [src] misses their attack."))
return FALSE
var/damage_to_do = rand(melee_damage_lower, melee_damage_upper)
diff --git a/code/modules/mob/living/simple_mob/defense.dm b/code/modules/mob/living/simple_mob/defense.dm
index cb105056ea9..f06eab11543 100644
--- a/code/modules/mob/living/simple_mob/defense.dm
+++ b/code/modules/mob/living/simple_mob/defense.dm
@@ -56,10 +56,11 @@
visible_message("\The [user] applies the [MED] on [src].")
else
var/datum/gender/T = gender_datums[src.get_visible_gender()]
- to_chat(user, "\The [src] is dead, medical items won't bring [T.him] back to life.") // the gender lookup is somewhat overkill, but it functions identically to the obsolete gender macros and future-proofs this code
- if(meat_type && (stat == DEAD)) //if the animal has a meat, and if it is dead.
- if(istype(O, /obj/item/material/knife))
- harvest(user)
+ // the gender lookup is somewhat overkill, but it functions identically to the obsolete gender macros and future-proofs this code
+ to_chat(user, "\The [src] is dead, medical items won't bring [T.him] back to life.")
+ if(can_butcher(user, O)) //if the animal can be butchered, do so and return. It's likely to be gibbed.
+ harvest(user, O)
+ return
return ..()
@@ -201,7 +202,7 @@
inflict_shock_damage(200) // Mobs that are very beefy or resistant to shock may survive getting struck.
updatehealth()
if(health <= 0)
- visible_message(span("critical", "\The [src] disintegrates into ash!"))
+ visible_message(SPAN_CRITICAL("\The [src] disintegrates into ash!"))
ash()
return // No point deafening something that wont exist.
@@ -213,7 +214,7 @@
if(!client)
updatehealth()
if(health <= 0)
- visible_message(span("critical", "\The [src] flashes into ash as the lava consumes them!"))
+ visible_message(SPAN_CRITICAL("\The [src] flashes into ash as the lava consumes them!"))
ash()
//Acid
@@ -226,7 +227,7 @@
inflict_poison_damage(10)
updatehealth()
if(health <= 0)
- visible_message(span("critical", "\The [src] melts into slurry!"))
+ visible_message(SPAN_CRITICAL("\The [src] melts into slurry!"))
gib()
return // No point deafening something that wont exist.
diff --git a/code/modules/mob/living/simple_mob/harvesting.dm b/code/modules/mob/living/simple_mob/harvesting.dm
new file mode 100644
index 00000000000..94d79c58b2f
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/harvesting.dm
@@ -0,0 +1,41 @@
+/mob/living/simple_mob
+ /// What do you hit the mob with (on help) to get something from it?
+ var/obj/harvest_tool
+ /// How long do we have to wait until it's harvestable again?
+ var/harvest_cooldown = 10 MINUTES
+ /// How long does it take to harvest?
+ var/harvest_delay = 30 SECONDS
+ /// What world.time was the last harvest?
+ var/harvest_recent = 0
+ /// How many times can we roll at max on the chance table?
+ var/harvest_per_hit = 1
+ /// Verb for harvesting. "sheared" "clipped" etc.
+ var/harvest_verb = "harvested"
+ /// Associative list of paths and their chances. path = straws in the lot
+ var/list/harvest_results
+
+/mob/living/simple_mob/examine(mob/user)
+ . = ..()
+ if(stat != DEAD && user && harvest_tool && (get_dist(user, src) <= 3))
+ . += SPAN_NOTICE("\The [src] can be [harvest_verb] with a [initial(harvest_tool.name)] every [round(harvest_cooldown, 0.1)] minutes.")
+ var/time_to_harvest = (harvest_recent + harvest_cooldown) - world.time
+ if(time_to_harvest > 0)
+ . += SPAN_NOTICE("It can be [harvest_verb] in [time_to_harvest / (1 MINUTE)] second(s).")
+ else
+ . += SPAN_NOTICE("It can be [harvest_verb] now.")
+
+/mob/living/simple_mob/proc/livestock_harvest(var/obj/item/tool, var/mob/living/user)
+ if(!LAZYLEN(harvest_results)) // Might be a unique interaction of an object using the proc to do something weird, or just someone's a donk.
+ harvest_recent = world.time
+ return
+
+ if(istype(tool, harvest_tool)) // Sanity incase something incorrect is passed in.
+ harvest_recent = world.time
+
+ var/max_harvests = rand(1,harvest_per_hit)
+
+ for(var/I = 1 to max_harvests)
+ var/new_path = pickweight(harvest_results)
+ new new_path(get_turf(user))
+
+ return
diff --git a/code/modules/mob/living/simple_mob/life.dm b/code/modules/mob/living/simple_mob/life.dm
index b6e9413816a..07dba07d95e 100644
--- a/code/modules/mob/living/simple_mob/life.dm
+++ b/code/modules/mob/living/simple_mob/life.dm
@@ -13,6 +13,7 @@
handle_atmos()
handle_special()
+ handle_guts()
return TRUE
@@ -141,6 +142,12 @@
oxygen.icon_state = "oxy0"
adjustOxyLoss(-unsuitable_atoms_damage)
+/mob/living/simple_mob/proc/handle_guts()
+ for(var/obj/item/organ/OR in internal_organs)
+ OR.process()
+
+ for(var/obj/item/organ/OR in organs)
+ OR.process()
/mob/living/simple_mob/proc/handle_supernatural()
if(purge)
diff --git a/code/modules/mob/living/simple_mob/simple_mob.dm b/code/modules/mob/living/simple_mob/simple_mob.dm
index b333a371aae..76d4c85bcc4 100644
--- a/code/modules/mob/living/simple_mob/simple_mob.dm
+++ b/code/modules/mob/living/simple_mob/simple_mob.dm
@@ -14,123 +14,194 @@
mob_swap_flags = ~HEAVY
mob_push_flags = ~HEAVY
- var/tt_desc = null //Tooltip description
+ ///Tooltip description
+ var/tt_desc = null
- //Settings for played mobs
- var/show_stat_health = 1 // Does the percentage health show in the stat panel for the mob
- var/has_hands = 0 // Set to 1 to enable the use of hands and the hands hud
- var/humanoid_hands = 0 // Can a player in this mob use things like guns or AI cards?
- var/hand_form = "hands" // Used in IsHumanoidToolUser. 'Your X are not fit-'.
- var/list/hud_gears // Slots to show on the hud (typically none)
- var/ui_icons // Icon file path to use for the HUD, otherwise generic icons are used
- var/r_hand_sprite // If they have hands,
- var/l_hand_sprite // they could use some icons.
- var/player_msg // Message to print to players about 'how' to play this mob on login.
+ //* Settings for played mobs *//
+ /// Does the percentage health show in the stat panel for the mob
+ var/show_stat_health = TRUE
+ /// Set to TRUE to enable the use of hands and the hands hud
+ var/has_hands = FALSE
+ /// Can a player in this mob use things like guns or AI cards?
+ var/humanoid_hands = FALSE
+ /// Used in IsHumanoidToolUser. 'Your X are not fit-'.
+ var/hand_form = "hands"
+ /// Slots to show on the hud (typically none)
+ var/list/hud_gears
+ /// Icon file path to use for the HUD, otherwise generic icons are used
+ var/ui_icons
+ /// If they have hands, they could use some icons.
+ var/r_hand_sprite
+ /// If they have hands, they could use some icons.
+ var/l_hand_sprite
+ /// Message to print to players about 'how' to play this mob on login.
+ var/player_msg
- //Mob icon/appearance settings
- var/icon_living = "" // The iconstate if we're alive, required
- var/icon_dead = "" // The iconstate if we're dead, required
- var/icon_gib = "generic_gib" // The iconstate for being gibbed, optional. Defaults to a generic gib animation.
- var/icon_rest = null // The iconstate for resting, optional
- var/image/modifier_overlay = null // Holds overlays from modifiers.
- var/image/eye_layer = null // Holds the eye overlay.
- var/has_eye_glow = FALSE // If true, adds an overlay over the lighting plane for [icon_state]-eyes.
- attack_icon = 'icons/effects/effects.dmi' //Just the default, played like the weapon attack anim
- attack_icon_state = "slash" //Just the default
+ //* Mob icon/appearance settings *//
+ /// The iconstate if we're alive. //!REQUIRED
+ var/icon_living = ""
+ /// The iconstate if we're dead. //!REQUIRED
+ var/icon_dead = ""
+ /// The iconstate for being gibbed, optional. Defaults to a generic gib animation.
+ var/icon_gib = "generic_gib"
+ /// The iconstate for resting, optional
+ var/icon_rest = null
+ /// Holds overlays from modifiers.
+ var/image/modifier_overlay = null
+ /// Holds the eye overlay.
+ var/image/eye_layer = null
+ /// If true, adds an overlay over the lighting plane for [icon_state]-eyes.
+ var/has_eye_glow = FALSE
+ ///Just the default, played like the weapon attack anim
+ attack_icon = 'icons/effects/effects.dmi'
+ ///Just the default
+ attack_icon_state = "slash"
- //Mob talking settings
- universal_speak = 0 // Can all mobs in the entire universe understand this one?
- var/has_langs = list(LANGUAGE_GALCOM)// Text name of their language if they speak something other than galcom. They speak the first one.
+ //* Mob talking settings *//
+ /// Can all mobs in the entire universe understand this one?
+ universal_speak = 0
+ /// Text name of their language if they speak something other than galcom. They speak the first one.
+ var/has_langs = list(LANGUAGE_GALCOM)
- //Movement things.
- var/movement_cooldown = 5 // Lower is faster.
- var/movement_sound = null // If set, will play this sound when it moves on its own will.
- var/turn_sound = null // If set, plays the sound when the mob's dir changes in most cases.
- var/movement_shake_radius = 0 // If set, moving will shake the camera of all living mobs within this radius slightly.
- var/aquatic_movement = 0 // If set, the mob will move through fluids with no hinderance.
+ //* Movement things. *//
+ /// Lower is faster.
+ var/movement_cooldown = 5
+ /// If set, will play this sound when it moves on its own will.
+ var/movement_sound = null
+ /// If set, plays the sound when the mob's dir changes in most cases.
+ var/turn_sound = null
+ /// If set, moving will shake the camera of all living mobs within this radius slightly.
+ var/movement_shake_radius = 0
+ /// If set, the mob will move through fluids with no hinderance.
+ var/aquatic_movement = 0
- //Mob interaction
- var/response_help = "tries to help" // If clicked on help intent
- var/response_disarm = "tries to disarm" // If clicked on disarm intent
- var/response_harm = "tries to hurt" // If clicked on harm intent
- var/list/friends = list() // Mobs on this list wont get attacked regardless of faction status.
- var/harm_intent_damage = 3 // How much an unarmed harm click does to this mob.
- var/meat_amount = 0 // How much meat to drop from this mob when butchered
- var/obj/meat_type // The meat object to drop
- var/bone_amount = 0
- var/obj/bone_type
- var/hide_amount = 0
- var/obj/hide_type
- var/exotic_amount = 0
- var/obj/exotic_type
- var/list/harvest_type = list()
- var/list/loot_list = list() // The list of lootable objects to drop, with "/path = prob%" structure
- var/obj/item/card/id/myid// An ID card if they have one to give them access to stuff.
+ //* Mob interaction *//
+ /// If clicked on help intent.
+ var/response_help = "tries to help"
+ /// If clicked on disarm intent.
+ var/response_disarm = "tries to disarm"
+ /// If clicked on harm intent.
+ var/response_harm = "tries to hurt"
+ /// Mobs on this list wont get attacked regardless of faction status.
+ var/list/friends = list()
+ /// How much an unarmed harm click does to this mob.
+ var/harm_intent_damage = 3
+ /// The list of lootable objects to drop, with "/path = prob%" structure
+ var/list/loot_list = list()
+ /// An ID card if they have one to give them access to stuff.
+ var/obj/item/card/id/myid
- //Mob environment settings
- var/minbodytemp = 250 // Minimum "okay" temperature in kelvin
- var/maxbodytemp = 350 // Maximum of above
- var/heat_damage_per_tick = 3 // Amount of damage applied if animal's body temperature is higher than maxbodytemp
- var/cold_damage_per_tick = 2 // Same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
- var/fire_alert = 0 // 0 = fine, 1 = hot, 2 = cold
+ //* Mob environment settings *//
+ /// Minimum "okay" temperature in kelvin
+ var/minbodytemp = 250
+ /// Maximum of above
+ var/maxbodytemp = 350
+ /// Amount of damage applied if animal's body temperature is higher than maxbodytemp.
+ var/heat_damage_per_tick = 3
+ /// Same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp.
+ var/cold_damage_per_tick = 2
+ /// The mob's fire state: 0 = fine, 1 = hot, 2 = cold
+ var/fire_alert = 0
+ /// Oxygen in moles, minimum, 0 is 'no minimum'
+ var/min_oxy = 5
+ /// Oxygen in moles, maximum, 0 is 'no maximum'
+ var/max_oxy = 0
+ /// Phoron min
+ var/min_tox = 0
+ /// Phoron max
+ var/max_tox = 1
+ /// CO2 min
+ var/min_co2 = 0
+ /// CO2 max
+ var/max_co2 = 5
+ /// N2 min
+ var/min_n2 = 0
+ /// N2 max
+ var/max_n2 = 0
+ /// This damage is taken when atmos doesn't fit all the requirements set.
+ var/unsuitable_atoms_damage = 2
- var/min_oxy = 5 // Oxygen in moles, minimum, 0 is 'no minimum'
- var/max_oxy = 0 // Oxygen in moles, maximum, 0 is 'no maximum'
- var/min_tox = 0 // Phoron min
- var/max_tox = 1 // Phoron max
- var/min_co2 = 0 // CO2 min
- var/max_co2 = 5 // CO2 max
- var/min_n2 = 0 // N2 min
- var/max_n2 = 0 // N2 max
- var/unsuitable_atoms_damage = 2 // This damage is taken when atmos doesn't fit all the requirements above
+ //* Hostility settings *//
+ /// Is the mob weak to tasers?
+ var/taser_kill = 1
- //Hostility settings
- var/taser_kill = 1 // Is the mob weak to tasers
+ //* Attack ranged settings *//
+ /// The projectiles I shoot.
+ var/projectiletype
+ /// The sound I make when I do it
+ var/projectilesound
+ /// Accuracy modifier to add onto the bullet when its fired.
+ var/projectile_accuracy = 0
+ /// How many degrees to vary when I do it.
+ var/projectile_dispersion = 0
+ /// What to make the hugely laggy casings pile out of.
+ var/casingtype
- //Attack ranged settings
- var/projectiletype // The projectiles I shoot
- var/projectilesound // The sound I make when I do it
- var/projectile_accuracy = 0 // Accuracy modifier to add onto the bullet when its fired.
- var/projectile_dispersion = 0 // How many degrees to vary when I do it.
- var/casingtype // What to make the hugely laggy casings pile out of
+ //* Reloading settings, part of ranged code *//
+ /// If TRUE, mob needs to reload occasionally.
+ var/needs_reload = FALSE
+ /// How many shots the mob gets before it has to reload, will not be used if needs_reload is FALSE
+ var/reload_max = 1
+ /// A counter to keep track of how many shots the mob has fired so far. Reloads when it hits reload_max.
+ var/reload_count = 0
+ /// How long it takes for a mob to reload. This is to buy a player a bit of time to run or fight.
+ var/reload_time = 1 SECONDS
+ /// What sound gets played when the mob successfully reloads. Defaults to the same sound as reloading guns. Can be null.
+ var/reload_sound = 'sound/weapons/flipblade.ogg'
- // Reloading settings, part of ranged code
- var/needs_reload = FALSE // If TRUE, mob needs to reload occasionally
- var/reload_max = 1 // How many shots the mob gets before it has to reload, will not be used if needs_reload is FALSE
- var/reload_count = 0 // A counter to keep track of how many shots the mob has fired so far. Reloads when it hits reload_max.
- var/reload_time = 1 SECONDS // How long it takes for a mob to reload. This is to buy a player a bit of time to run or fight.
- var/reload_sound = 'sound/weapons/flipblade.ogg' // What sound gets played when the mob successfully reloads. Defaults to the same sound as reloading guns. Can be null.
+ //* Mob melee settings *//
+ /// Lower bound of randomized melee damage.
+ var/melee_damage_lower = 2
+ /// Upper bound of randomized melee damage.
+ var/melee_damage_upper = 6
+ /// "You are [attacktext] by the mob!"
+ var/list/attacktext = list("attacked")
+ /// "The mob [friendly] the person."
+ var/list/friendly = list("nuzzles")
+ /// Sound to play when I attack.
+ var/attack_sound = null
+ /// Percent chance to miss a melee attack.
+ var/melee_miss_chance = 0
+ /// What armor does this check?
+ var/attack_armor_type = "melee"
+ /// How much armor pen this attack has.
+ var/attack_armor_pen = 0
+ /// Is the attack sharp?
+ var/attack_sharp = FALSE
+ /// Does the attack have an edge?
+ var/attack_edge = FALSE
- //Mob melee settings
- var/melee_damage_lower = 2 // Lower bound of randomized melee damage
- var/melee_damage_upper = 6 // Upper bound of randomized melee damage
- var/list/attacktext = list("attacked") // "You are [attacktext] by the mob!"
- var/list/friendly = list("nuzzles") // "The mob [friendly] the person."
- var/attack_sound = null // Sound to play when I attack
- var/melee_miss_chance = 0 // percent chance to miss a melee attack.
- var/attack_armor_type = "melee" // What armor does this check?
- var/attack_armor_pen = 0 // How much armor pen this attack has.
- var/attack_sharp = FALSE // Is the attack sharp?
- var/attack_edge = FALSE // Does the attack have an edge?
-
- var/melee_attack_delay = null // If set, the mob will do a windup animation and can miss if the target moves out of the way.
+ /// If set, the mob will do a windup animation and can miss if the target moves out of the way.
+ var/melee_attack_delay = null
+ /// If set, the mob will do a windup animation and can miss if the target moves out of the way.
var/ranged_attack_delay = null
+ /// If set, the mob will do a windup animation and can miss if the target moves out of the way.
var/special_attack_delay = null
- //Special attacks
-// var/special_attack_prob = 0 // The chance to ATTEMPT a special_attack_target(). If it fails, it will do a regular attack instead.
- // This is commented out to ease the AI attack logic by being (a bit more) determanistic.
- // You should instead limit special attacks using the below vars instead.
- var/special_attack_min_range = null // The minimum distance required for an attempt to be made.
- var/special_attack_max_range = null // The maximum for an attempt.
- var/special_attack_charges = null // If set, special attacks will work off of a charge system, and won't be usable if all charges are expended. Good for grenades.
- var/special_attack_cooldown = null // If set, special attacks will have a cooldown between uses.
- var/last_special_attack = null // world.time when a special attack occured last, for cooldown calculations.
+ //* Special attacks *//
+ /// The chance to ATTEMPT a special_attack_target(). If it fails, it will do a regular attack instead.
+ //? This is commented out to ease the AI attack logic by being (a bit more) determanistic.
+ //? You should instead limit special attacks using the below vars instead.
+// var/special_attack_prob = 0
- //Damage resistances
- var/grab_resist = 0 // Chance for a grab attempt to fail. Note that this is not a true resist and is just a prob() of failure.
- var/resistance = 0 // Damage reduction for all types
- var/list/armor = list( // Values for normal getarmor() checks
+ /// The minimum distance required for an attempt to be made.
+ var/special_attack_min_range = null
+ /// The maximum for an attempt.
+ var/special_attack_max_range = null
+ /// If set, special attacks will work off of a charge system, and won't be usable if all charges are expended. Good for grenades.
+ var/special_attack_charges = null
+ /// If set, special attacks will have a cooldown between uses.
+ var/special_attack_cooldown = null
+ /// world.time when a special attack occured last, for cooldown calculations.
+ var/last_special_attack = null
+
+ //* Damage resistances *//
+ /// Chance for a grab attempt to fail. Note that this is not a true resist and is just a prob() of failure.
+ var/grab_resist = 0
+ /// Damage reduction for all types
+ var/resistance = 0
+ /// Values for normal getarmor() checks
+ var/list/armor = list(
"melee" = 0,
"bullet" = 0,
"laser" = 0,
@@ -139,7 +210,8 @@
"bio" = 100,
"rad" = 100
)
- var/list/armor_soak = list( // Values for getsoak() checks.
+ /// Values for getsoak() checks.
+ var/list/armor_soak = list(
"melee" = 0,
"bullet" = 0,
"laser" = 0,
@@ -155,19 +227,30 @@
var/shock_resist = 0.0
var/water_resist = 1.0
var/poison_resist = 0.0
- var/thick_armor = FALSE // Stops injections and "injections".
- var/purge = 0 // Cult stuff.
- var/supernatural = FALSE // Ditto.
- // contained in a cage
+ /// Stops injections and "injections".
+ var/thick_armor = FALSE
+
+ //* Cult stuff. *//
+ var/purge = 0
+ var/supernatural = FALSE
+
+
+ /// Is it contained in a cage?
var/in_stasis = 0
//Randomization code base
var/mod_min = 70
var/mod_max = 130
+ /// Are we randomized?
var/randomized = FALSE
-//randomization code.
+ /// Used for if the mob can drop limbs. Overrides species dmi.
+ var/limb_icon
+ /// Used for if the mob can drop limbs. Overrides the icon cache key, so it doesn't keep remaking the icon needlessly.
+ var/limb_icon_key
+
+//* randomization code. *//
/mob/living/simple_mob/proc/randomize()
if(randomized == TRUE)
var/mod = rand(mod_min,mod_max)/100
@@ -192,6 +275,7 @@
if(has_eye_glow)
add_eyes()
+
return ..()
/mob/living/simple_mob/Destroy()
@@ -301,8 +385,9 @@
return verb
+//TODO: This needs to be phased out for a newer butchering system. Though I am too scared to undo all our custom stuff. -Zandario
// Harvest an animal's delicious byproducts
-/mob/living/simple_mob/proc/harvest(mob/user)
+/mob/living/simple_mob/harvest(mob/user)
var/actual_meat_amount = pick(0, meat_amount)
var/actual_bone_amount = pick(0, bone_amount)
var/actual_hide_amount = pick(0, hide_amount)
@@ -351,3 +436,9 @@
/mob/living/simple_mob/get_nametag_desc(mob/user)
return "[tt_desc]"
+
+/// Override for special butchering checks.
+/mob/living/simple_mob/can_butcher(var/mob/user, var/obj/item/I)
+ . = ..()
+ if(. && (!is_sharp(I) || !has_edge(I)))
+ return FALSE
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/animal.dm b/code/modules/mob/living/simple_mob/subtypes/animal/animal.dm
index 0c4174f6f5a..41f032608cd 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/animal.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/animal.dm
@@ -10,3 +10,16 @@
response_harm = "hits"
ai_holder_type = /datum/ai_holder/simple_mob/melee
+
+ internal_organs = list(\
+ /obj/item/organ/internal/brain,\
+ /obj/item/organ/internal/heart,\
+ /obj/item/organ/internal/liver,\
+ /obj/item/organ/internal/stomach,\
+ /obj/item/organ/internal/intestine,\
+ /obj/item/organ/internal/lungs\
+ )
+
+ butchery_loot = list(\
+ /obj/item/stack/animalhide = 3\
+ )
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm
index 8eb48f3a5b9..2bb34b41826 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm
@@ -79,13 +79,13 @@
if(host.reagents.has_reagent("sugar") && !docile)
var/message = "You feel the soporific flow of sugar in your host's blood, lulling you into docility."
var/target = controlling ? host : src
- to_chat(target, span("warning", message))
+ to_chat(target, SPAN_WARNING( message))
docile = TRUE
else if(docile)
var/message = "You shake off your lethargy as the sugar leaves your host's blood."
var/target = controlling ? host : src
- to_chat(target, span("notice", message))
+ to_chat(target, SPAN_NOTICE(message))
docile = FALSE
// Chem regen.
@@ -95,7 +95,7 @@
// Control stuff.
if(controlling)
if(docile)
- to_chat(host, span("warning", "You are feeling far too docile to continue controlling your host..."))
+ to_chat(host, SPAN_WARNING( "You are feeling far too docile to continue controlling your host..."))
host.release_control()
return
@@ -210,7 +210,7 @@
mind.assigned_role = "Cortical Borer"
mind.special_role = "Cortical Borer"
- to_chat(src, span("notice", "You are a cortical borer! You are a brain slug that worms its way \
+ to_chat(src, SPAN_NOTICE("You are a cortical borer! You are a brain slug that worms its way \
into the head of its victim. Use stealth, persuasion and your powers of mind control to keep you, \
your host and your eventual spawn safe and warm."))
to_chat(src, "You can speak to your victim with say, to other borers with say :x, and use your Abilities tab to access powers.")
@@ -232,7 +232,7 @@
return
if(client && client.prefs.muted & MUTE_IC)
- to_chat(src, span("danger", "You cannot speak in IC (muted)."))
+ to_chat(src, SPAN_DANGER("You cannot speak in IC (muted)."))
return
if(copytext(message, 1, 2) == "*")
@@ -245,7 +245,7 @@
if(!host)
if(chemicals >= 30)
- to_chat(src, span("alien", "..You emit a psionic pulse with an encoded message.."))
+ to_chat(src, SPAN_ALIEN("..You emit a psionic pulse with an encoded message.."))
var/list/nearby_mobs = list()
for(var/mob/living/LM in view(src, 1 + round(6 * (chemicals / max_chemicals))))
if(LM == src)
@@ -260,9 +260,9 @@
message_admins("[src.ckey]/([src]) tried to force [speaker] to say: [message]")
speaker.say("[message]")
return
- to_chat(src, span("alien", "..But nothing heard it.."))
+ to_chat(src, SPAN_ALIEN("..But nothing heard it.."))
else
- to_chat(src, span("warning", "You have no host to speak to."))
+ to_chat(src, SPAN_WARNING( "You have no host to speak to."))
return //No host, no audible speech.
to_chat(src, "You drop words into [host]'s mind: \"[message]\"")
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm
index cd612dd9b5a..b56c5c85cb7 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm
@@ -106,6 +106,10 @@
var/poison_chance = 10 // Chance for injection to occur.
var/poison_per_bite = 5 // Amount added per injection.
+ butchery_loot = list(\
+ /obj/item/stack/material/chitin = 1\
+ )
+
/mob/living/simple_mob/animal/giant_spider/apply_melee_effects(var/atom/A)
if(isliving(A))
var/mob/living/L = A
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/carrier.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/carrier.dm
index 26041eb4f6b..3ae36c66b1f 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/carrier.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/carrier.dm
@@ -46,7 +46,7 @@
return ..()
/mob/living/simple_mob/animal/giant_spider/carrier/death()
- visible_message(span("warning", "\The [src]'s abdomen splits as it rolls over, spiderlings crawling from the wound.") )
+ visible_message(SPAN_WARNING( "\The [src]'s abdomen splits as it rolls over, spiderlings crawling from the wound.") )
spawn(1)
var/list/new_spiders = list()
for(var/i = 1 to spiderling_count)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/hunter.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/hunter.dm
index 5e4cff9b7b1..c342f0df715 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/hunter.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/hunter.dm
@@ -68,7 +68,7 @@
// Do the actual leap.
status_flags |= LEAPING // Lets us pass over everything.
- visible_message(span("danger","\The [src] leaps at \the [A]!"))
+ visible_message(SPAN_DANGER("\The [src] leaps at \the [A]!"))
throw_at(get_step(get_turf(A), get_turf(src)), special_attack_max_range+1, 1, src)
playsound(src, leap_sound, 75, 1)
@@ -97,8 +97,8 @@
if(victim)
victim.Weaken(2)
- victim.visible_message(span("danger","\The [src] knocks down \the [victim]!"))
- to_chat(victim, span("critical", "\The [src] jumps on you!"))
+ victim.visible_message(SPAN_DANGER("\The [src] knocks down \the [victim]!"))
+ to_chat(victim, SPAN_CRITICAL("\The [src] jumps on you!"))
. = TRUE
set_AI_busy(FALSE)
@@ -139,7 +139,7 @@
to_chat(world, "Failed to pull.")
return FALSE
- holder.visible_message(span("danger","\The [holder] starts to drag \the [L] away!"))
+ holder.visible_message(SPAN_DANGER("\The [holder] starts to drag \the [L] away!"))
var/list/allies = list()
var/list/enemies = list()
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/lurker.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/lurker.dm
index b27ad1e480d..a44d2b5a6db 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/lurker.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/lurker.dm
@@ -110,7 +110,7 @@
if(isliving(A))
var/mob/living/L = A
L.Weaken(stealthed_weaken_amount)
- to_chat(L, span("danger", "\The [src] ambushes you!"))
+ to_chat(L, SPAN_DANGER("\The [src] ambushes you!"))
playsound(L, 'sound/weapons/spiderlunge.ogg', 75, 1)
unstealth()
..() // For the poison.
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/nurse.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/nurse.dm
index 40982d3c44e..20c69c6350a 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/nurse.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/nurse.dm
@@ -67,7 +67,7 @@
if(!eggcount)
var/eggs = new egg_type(O, src)
O.implants += eggs
- to_chat(H, span("critical", "\The [src] injects something into your [O.name]!") ) // Oh god its laying eggs in me!
+ to_chat(H, SPAN_CRITICAL("\The [src] injects something into your [O.name]!") ) // Oh god its laying eggs in me!
// Webs target in a web if able to.
/mob/living/simple_mob/animal/giant_spider/nurse/attack_target(atom/A)
@@ -94,28 +94,28 @@
/mob/living/simple_mob/animal/giant_spider/nurse/proc/spin_cocoon(atom/movable/AM)
if(!istype(AM))
return FALSE // We can't cocoon walls sadly.
- visible_message(span("notice", "\The [src] begins to secrete a sticky substance around \the [AM].") )
+ visible_message(SPAN_NOTICE("\The [src] begins to secrete a sticky substance around \the [AM].") )
// Get our AI to stay still.
set_AI_busy(TRUE)
if(!do_mob(src, AM, 5 SECONDS))
set_AI_busy(FALSE)
- to_chat(src, span("warning", "You need to stay still to spin a web around \the [AM]."))
+ to_chat(src, SPAN_WARNING( "You need to stay still to spin a web around \the [AM]."))
return FALSE
set_AI_busy(FALSE)
if(!AM) // Make sure it didn't get deleted for whatever reason.
- to_chat(src, span("warning", "Whatever you were spinning a web for, its no longer there..."))
+ to_chat(src, SPAN_WARNING( "Whatever you were spinning a web for, its no longer there..."))
return FALSE
if(!isturf(AM.loc))
- to_chat(src, span("warning", "You can't spin \the [AM] in a web while it is inside \the [AM.loc]."))
+ to_chat(src, SPAN_WARNING( "You can't spin \the [AM] in a web while it is inside \the [AM.loc]."))
return FALSE
if(!Adjacent(AM))
- to_chat(src, span("warning", "You need to be next to \the [AM] to spin it into a web."))
+ to_chat(src, SPAN_WARNING( "You need to be next to \the [AM] to spin it into a web."))
return FALSE
// Finally done with the checks.
@@ -125,8 +125,8 @@
if(istype(L, /mob/living/simple_mob/animal/giant_spider)) // Cannibalism is bad.
continue
fed++
- visible_message(span("warning","\The [src] sticks a proboscis into \the [L], and sucks a viscous substance out."))
- to_chat(src, span("notice", "You've fed upon \the [L], and can now lay [fed] cluster\s of eggs."))
+ visible_message(SPAN_WARNING("\The [src] sticks a proboscis into \the [L], and sucks a viscous substance out."))
+ to_chat(src, SPAN_NOTICE("You've fed upon \the [L], and can now lay [fed] cluster\s of eggs."))
L.forceMove(C)
large_cocoon = TRUE
break
@@ -160,13 +160,13 @@
if(W)
return FALSE // Already got webs here.
- visible_message(span("notice", "\The [src] begins to secrete a sticky substance.") )
+ visible_message(SPAN_NOTICE("\The [src] begins to secrete a sticky substance.") )
// Get our AI to stay still.
set_AI_busy(TRUE)
if(!do_mob(src, T, 5 SECONDS))
set_AI_busy(FALSE)
- to_chat(src, span("warning", "You need to stay still to spin a web on \the [T]."))
+ to_chat(src, SPAN_WARNING( "You need to stay still to spin a web on \the [T]."))
return FALSE
W = locate() in T
@@ -189,7 +189,7 @@
if(E)
return FALSE // Already got eggs here.
- visible_message(span("notice", "\The [src] begins to lay a cluster of eggs.") )
+ visible_message(SPAN_NOTICE("\The [src] begins to lay a cluster of eggs.") )
// Get our AI to stay still.
set_AI_busy(TRUE)
// Stop players from spamming eggs.
@@ -197,7 +197,7 @@
if(!do_mob(src, T, 5 SECONDS))
set_AI_busy(FALSE)
- to_chat(src, span("warning", "You need to stay still to lay eggs on \the [T]."))
+ to_chat(src, SPAN_WARNING( "You need to stay still to lay eggs on \the [T]."))
return FALSE
E = locate() in T
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/phorogenic.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/phorogenic.dm
index 3efa948edab..779b969b6fa 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/phorogenic.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/phorogenic.dm
@@ -59,7 +59,7 @@
return ..()
/mob/living/simple_mob/animal/giant_spider/phorogenic/death()
- visible_message(span("critical", "\The [src]'s body begins to rupture!"))
+ visible_message(SPAN_CRITICAL("\The [src]'s body begins to rupture!"))
var/delay = rand(explosion_delay_lower, explosion_delay_upper)
spawn(0)
// Flash black and red as a warning.
@@ -73,8 +73,7 @@
spawn(delay)
// The actual boom.
if(src && !exploded)
- visible_message(span("danger", "\The [src]'s body detonates!"))
+ visible_message(SPAN_DANGER("\The [src]'s body detonates!"))
exploded = TRUE
explosion(src.loc, explosion_dev_range, explosion_heavy_range, explosion_light_range, explosion_flash_range)
return ..()
-
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/tunneler.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/tunneler.dm
index 89b83ffd776..de61372ba3c 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/tunneler.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/tunneler.dm
@@ -93,7 +93,7 @@
sleep(tunnel_warning) // For the telegraphing.
// Do the dig!
- visible_message(span("danger","\The [src] tunnels towards \the [A]!"))
+ visible_message(SPAN_DANGER("\The [src] tunnels towards \the [A]!"))
submerge()
if(handle_tunnel(destination) == FALSE)
@@ -114,7 +114,7 @@
if(L == src)
continue
- visible_message(span("danger","\The [src] erupts from underneath, and hits \the [L]!"))
+ visible_message(SPAN_DANGER("\The [src] erupts from underneath, and hits \the [L]!"))
playsound(L, 'sound/weapons/heavysmash.ogg', 75, 1)
L.Weaken(3)
overshoot = FALSE
@@ -125,7 +125,7 @@
return TRUE
// Otherwise we need to keep going.
- to_chat(src, span("warning", "You overshoot your target!"))
+ to_chat(src, SPAN_WARNING( "You overshoot your target!"))
playsound(src, 'sound/weapons/punchmiss.ogg', 75, 1)
var/dir_to_go = get_dir(starting_turf, destination)
for(var/i = 1 to rand(2, 4))
@@ -156,7 +156,7 @@
// Update T.
T = get_step(src, get_dir(src, destination))
if(T.check_density(ignore_mobs = TRUE))
- to_chat(src, span("critical", "You hit something really solid!"))
+ to_chat(src, SPAN_CRITICAL("You hit something really solid!"))
playsound(src, "punch", 75, 1)
Weaken(5)
add_modifier(/datum/modifier/tunneler_vulnerable, 10 SECONDS)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/pets/cat.dm b/code/modules/mob/living/simple_mob/subtypes/animal/pets/cat.dm
index 8f8b1b4df9f..c3398303b2b 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/pets/cat.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/pets/cat.dm
@@ -90,24 +90,24 @@
if(friend)
if(friend == usr)
- to_chat(L, span("notice", "\The [src] is already your friend! Meow!"))
+ to_chat(L, SPAN_NOTICE("\The [src] is already your friend! Meow!"))
return
else
- to_chat(L, span("warning", "\The [src] ignores you."))
+ to_chat(L, SPAN_WARNING( "\The [src] ignores you."))
return
//VOREStation Edit Start - Adds friend_name var checks
if(!friend_name || L.real_name == friend_name)
friend = L
face_atom(L)
- to_chat(L, span("notice", "\The [src] is now your friend! Meow."))
+ to_chat(L, SPAN_NOTICE("\The [src] is now your friend! Meow."))
visible_emote(pick("nuzzles [friend].", "brushes against [friend].", "rubs against [friend].", "purrs."))
if(has_AI())
var/datum/ai_holder/AI = ai_holder
AI.set_follow(friend)
else
- to_chat(L, span("notice", "[src] ignores you."))
+ to_chat(L, SPAN_NOTICE("[src] ignores you."))
//VOREStation Edit End
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/pets/fox_vr.dm b/code/modules/mob/living/simple_mob/subtypes/animal/pets/fox_vr.dm
index 85fd07bacd0..4916c6ddd70 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/pets/fox_vr.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/pets/fox_vr.dm
@@ -129,15 +129,15 @@
if(friend)
if(friend == usr)
- to_chat(L, span("notice", "\The [src] is already your friend!"))
+ to_chat(L, SPAN_NOTICE("\The [src] is already your friend!"))
return
else
- to_chat(L, span("warning", "\The [src] ignores you."))
+ to_chat(L, SPAN_WARNING( "\The [src] ignores you."))
return
friend = L
face_atom(L)
- to_chat(L, span("notice", "\The [src] is now your friend!"))
+ to_chat(L, SPAN_NOTICE("\The [src] is now your friend!"))
visible_emote(pick("nips [friend].", "brushes against [friend].", "tugs on [friend].", "chrrrrs."))
if(has_AI())
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm b/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm
index e4b60f531a8..f48ad8d2d4f 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm
@@ -81,17 +81,17 @@
/mob/living/simple_mob/animal/passive/bird/parrot/proc/give_headset(obj/item/radio/headset/new_headset, mob/living/user)
if(!istype(new_headset))
- to_chat(user, span("warning", "\The [new_headset] isn't a headset."))
+ to_chat(user, SPAN_WARNING( "\The [new_headset] isn't a headset."))
return
if(my_headset)
- to_chat(user, span("warning", "\The [src] is already wearing \a [my_headset]."))
+ to_chat(user, SPAN_WARNING( "\The [src] is already wearing \a [my_headset]."))
return
else
user.drop_item(new_headset)
my_headset = new_headset
new_headset.forceMove(src)
- to_chat(user, span("warning", "You place \a [new_headset] on \the [src]. You monster."))
- to_chat(src, span("notice", "\The [user] gives you \a [new_headset]. You should put it to good use immediately."))
+ to_chat(user, SPAN_WARNING( "You place \a [new_headset] on \the [src]. You monster."))
+ to_chat(src, SPAN_NOTICE("\The [user] gives you \a [new_headset]. You should put it to good use immediately."))
return
/mob/living/simple_mob/animal/passive/bird/parrot/proc/remove_headset(mob/living/user)
@@ -101,8 +101,8 @@
ISay("BAWWWWWK LEAVE THE HEADSET BAWKKKKK!")
my_headset.forceMove(get_turf(src))
user.put_in_hands(my_headset)
- to_chat(user, span("notice", "You take away \the [src]'s [my_headset.name]. Finally."))
- to_chat(src, span("warning", "\The [user] takes your [my_headset.name] away! How cruel!"))
+ to_chat(user, SPAN_NOTICE("You take away \the [src]'s [my_headset.name]. Finally."))
+ to_chat(src, SPAN_WARNING( "\The [user] takes your [my_headset.name] away! How cruel!"))
my_headset = null
/mob/living/simple_mob/animal/passive/bird/parrot/examine(mob/user)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/roach/roach.dm b/code/modules/mob/living/simple_mob/subtypes/animal/roach/roach.dm
index e1a83b634ec..ffdadf12433 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/roach/roach.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/roach/roach.dm
@@ -527,7 +527,7 @@
if(isliving(A))
var/mob/living/L = A
L.Weaken(stealthed_weaken_amount)
- to_chat(L, span("danger", "\The [src] ambushes you!"))
+ to_chat(L, SPAN_DANGER("\The [src] ambushes you!"))
playsound(L, 'sound/weapons/spiderlunge.ogg', 75, 1)
unstealth()
..() // For the poison.
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm
index a2691f06800..4891f8f902c 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm
@@ -99,9 +99,9 @@
if(was_stunned) // Try to prevent chain-stuns by having them thrown.
var/throwdir = get_dir(src, L)
L.throw_at(get_edge_target_turf(L, throwdir), 5, 1, src)
- visible_message(span("danger", "\The [src] hurls \the [L] away!"))
+ visible_message(SPAN_DANGER("\The [src] hurls \the [L] away!"))
else
- visible_message(span("danger", "\The [src] crushes \the [L]!"))
+ visible_message(SPAN_DANGER("\The [src] crushes \the [L]!"))
// The AI for hooligan crabs. Follows people for awhile.
/datum/ai_holder/simple_mob/melee/hooligan
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/kururak.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/kururak.dm
index d31dacc15af..b4463a688e3 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/kururak.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/kururak.dm
@@ -144,7 +144,7 @@
set desc = "Disorient a creature within range."
if(world.time < last_flash_time + special_attack_cooldown)
- to_chat(src, span("warning", "You do not have the focus to do this so soon.."))
+ to_chat(src, SPAN_WARNING( "You do not have the focus to do this so soon.."))
return
last_flash_time = world.time
@@ -154,7 +154,7 @@
set waitfor = FALSE
if(stat)
- to_chat(src, span("warning","You cannot move your tails in this state.."))
+ to_chat(src, SPAN_WARNING("You cannot move your tails in this state.."))
return
if(!A && src.client)
@@ -173,7 +173,7 @@
A = input(src,"What do we wish to flash?") in null|choices
- visible_message(span("alien","\The [src] flares its tails!"))
+ visible_message(SPAN_ALIEN("\The [src] flares its tails!"))
if(isliving(A))
var/mob/living/L = A
if(iscarbon(L))
@@ -186,7 +186,7 @@
var/mob/living/carbon/human/H = C
flash_strength *= H.species.flash_mod
if(flash_strength > 0)
- to_chat(H, span("alien","You are disoriented by \the [src]!"))
+ to_chat(H, SPAN_ALIEN("You are disoriented by \the [src]!"))
H.Confuse(flash_strength + 5)
H.Blind(flash_strength)
H.eye_blurry = max(H.eye_blurry, flash_strength + 5)
@@ -205,7 +205,7 @@
shield.adjust_flash_count(R, 1)
flashfail = TRUE
if(!flashfail)
- to_chat(R, span("alien","Your optics are scrambled by \the [src]!"))
+ to_chat(R, SPAN_ALIEN("Your optics are scrambled by \the [src]!"))
R.Confuse(10)
R.flash_eyes()
@@ -233,7 +233,7 @@
set desc = "Strike viciously at an entity within range."
if(world.time < last_strike_time + special_attack_cooldown)
- to_chat(src, span("warning", "Your claws cannot take that much stress in so short a time.."))
+ to_chat(src, SPAN_WARNING( "Your claws cannot take that much stress in so short a time.."))
return
last_strike_time = world.time
@@ -241,7 +241,7 @@
/mob/living/simple_mob/animal/sif/kururak/proc/rending_strike(atom/A)
if(stat)
- to_chat(src, span("warning","You cannot strike in this state.."))
+ to_chat(src, SPAN_WARNING("You cannot strike in this state.."))
return
if(!A && src.client)
@@ -255,7 +255,7 @@
choices += M
if(!choices.len)
- to_chat(src, span("warning","There are no viable targets within range..."))
+ to_chat(src, SPAN_WARNING("There are no viable targets within range..."))
return
A = input(src,"What do we wish to strike?") in null|choices
@@ -266,7 +266,7 @@
var/damage_to_apply = rand(melee_damage_lower, melee_damage_upper) + 10
if(isliving(A))
- visible_message(span("danger","\The [src] rakes its claws across [A]."))
+ visible_message(SPAN_DANGER("\The [src] rakes its claws across [A]."))
var/mob/living/L = A
if(ishuman(L))
var/mob/living/carbon/human/H = L
@@ -278,11 +278,11 @@
L.add_modifier(/datum/modifier/grievous_wounds, 60 SECONDS)
else if(istype(A, /obj/mecha))
- visible_message(span("danger","\The [src] rakes its claws against \the [A]."))
+ visible_message(SPAN_DANGER("\The [src] rakes its claws against \the [A]."))
var/obj/mecha/M = A
M.take_damage(damage_to_apply)
if(prob(3) && do_after(src, 5))
- visible_message(span("critical","\The [src]'s strike ripped \the [M]'s access hatch open, allowing it to drag [M.occupant] out!"))
+ visible_message(SPAN_CRITICAL("\The [src]'s strike ripped \the [M]'s access hatch open, allowing it to drag [M.occupant] out!"))
M.go_out()
else
@@ -302,7 +302,7 @@
if(K.faction != src.faction)
continue
var/datum/ai_holder/AI = K.ai_holder
- to_chat(K, span("notice","The pack leader wishes for you to follow them."))
+ to_chat(K, SPAN_NOTICE("The pack leader wishes for you to follow them."))
AI.set_follow(src)
/mob/living/simple_mob/animal/sif/kururak/proc/detect_instinct() // Will return the Kururak within 10 tiles that has the highest instinct.
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm
index ff570d8a696..878a41dfccc 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm
@@ -166,14 +166,14 @@
alpha = 5
if(host.reagents.has_reagent("cordradaxon") && !docile) // Overwhelms the leech with food.
var/message = "We feel the rush of cardiac pluripotent cells in your host's blood, lulling us into docility."
- to_chat(src, span("warning", message))
+ to_chat(src, SPAN_WARNING( message))
docile = TRUE
if(chemicals + 5 <= max_chemicals)
chemicals += 5
else if(docile)
var/message = "We shake off our lethargy as the pluripotent cell count declines in our host's blood."
- to_chat(src, span("notice", message))
+ to_chat(src, SPAN_NOTICE(message))
docile = FALSE
if(!host.reagents.has_reagent(passive_reagent))
@@ -235,18 +235,18 @@
set desc = "Infest a suitable humanoid host."
if(docile)
- to_chat(src, span("alium","We are too tired to do this..."))
+ to_chat(src, SPAN_NOTICEALIEN("We are too tired to do this..."))
return
do_infest(usr)
/mob/living/simple_mob/animal/sif/leech/proc/do_infest(var/mob/living/user, var/mob/living/target = null)
if(host)
- to_chat(user, span("alien", "We are already within a host."))
+ to_chat(user, SPAN_ALIEN("We are already within a host."))
return
if(stat)
- to_chat(user, span("warning","We cannot infest a target in your current state."))
+ to_chat(user, SPAN_WARNING("We cannot infest a target in your current state."))
return
var/mob/living/carbon/M = target
@@ -258,7 +258,7 @@
choices += C
if(!choices.len)
- to_chat(user, span("warning","There are no viable hosts within range..."))
+ to_chat(user, SPAN_WARNING("There are no viable hosts within range..."))
return
M = input(src,"Who do we wish to infest?") in null|choices
@@ -281,24 +281,24 @@
var/list/covering_clothing = E.get_covering_clothing()
for(var/obj/item/clothing/C in covering_clothing)
if(C.armor["melee"] >= 20 + attack_armor_pen)
- to_chat(user, span("notice","We cannot get through that host's protective gear."))
+ to_chat(user, SPAN_NOTICE("We cannot get through that host's protective gear."))
return
if(!do_after(src,2))
- to_chat(user, span("notice", "As [M] moves away, we are dislodged and fall to the ground."))
+ to_chat(user, SPAN_NOTICE("As [M] moves away, we are dislodged and fall to the ground."))
return
if(!M || !src)
return
if(src.stat)
- to_chat(user, span("warning","We cannot infest a target in your current state."))
+ to_chat(user, SPAN_WARNING("We cannot infest a target in your current state."))
return
if(M in view(1, src))
- to_chat(user,span("alien", "We burrow into [M]'s flesh."))
+ to_chat(user,SPAN_ALIEN("We burrow into [M]'s flesh."))
if(!M.stat)
- to_chat(M, span("critical", "You feel a sharp pain as something digs into your flesh!"))
+ to_chat(M, SPAN_CRITICAL("You feel a sharp pain as something digs into your flesh!"))
src.host = M
src.forceMove(M)
@@ -313,7 +313,7 @@
return
else
- to_chat(user, span("notice","They are no longer in range."))
+ to_chat(user, SPAN_NOTICE("They are no longer in range."))
return
/mob/living/simple_mob/animal/sif/leech/verb/uninfest()
@@ -322,7 +322,7 @@
set desc = "Leave your current host."
if(docile)
- to_chat(src, span("alium","We are too tired to do this..."))
+ to_chat(src, SPAN_NOTICEALIEN("We are too tired to do this..."))
return
leave_host()
@@ -350,7 +350,7 @@
set desc = "Inject an organic host with an incredibly painful mixture of chemicals."
if(docile)
- to_chat(src, span("alium","We are too tired to do this..."))
+ to_chat(src, SPAN_NOTICEALIEN("We are too tired to do this..."))
return
var/mob/living/carbon/M
@@ -361,7 +361,7 @@
choices += C
if(!choices.len)
- to_chat(src, span("warning","There are no viable hosts within range..."))
+ to_chat(src, SPAN_WARNING("There are no viable hosts within range..."))
return
M = input(src,"Who do we wish to inject?") in null|choices
@@ -378,7 +378,7 @@
var/mob/living/carbon/human/H = L
if(!istype(H) || H.isSynthetic())
- to_chat(user, span("warning","You cannot inject this target..."))
+ to_chat(user, SPAN_WARNING("You cannot inject this target..."))
var/obj/item/organ/external/E = H.organs_by_name[infest_target]
if(!E || E.is_stump() || E.robotic >= ORGAN_ROBOT)
@@ -387,7 +387,7 @@
var/list/covering_clothing = E.get_covering_clothing()
for(var/obj/item/clothing/C in covering_clothing)
if(C.armor["melee"] >= 40 + attack_armor_pen)
- to_chat(user, span("notice","You cannot get through that host's protective gear."))
+ to_chat(user, SPAN_NOTICE("You cannot get through that host's protective gear."))
return
H.add_modifier(/datum/modifier/poisoned/paralysis, 15 SECONDS)
@@ -398,11 +398,11 @@
set desc = "Inject your host with possibly beneficial chemicals, to keep the blood flowing."
if(docile)
- to_chat(src, span("alium","We are too tired to do this..."))
+ to_chat(src, SPAN_NOTICEALIEN("We are too tired to do this..."))
return
if(!host || chemicals <= 50)
- to_chat(usr, span("alien","We cannot produce any chemicals right now."))
+ to_chat(usr, SPAN_ALIEN("We cannot produce any chemicals right now."))
return
if(host)
@@ -413,7 +413,7 @@
if(host)
chemicals = max(1, chemicals - 50)
host.reagents.add_reagent(chem, 5)
- to_chat(src, span("alien","We injected \the [host] with five units of [chem]."))
+ to_chat(src, SPAN_ALIEN("We injected \the [host] with five units of [chem]."))
/mob/living/simple_mob/animal/sif/leech/verb/feed_on_organ()
set category = "Abilities"
@@ -421,7 +421,7 @@
set desc = "Extend probosci to feed on a piece of your host's organs."
if(docile)
- to_chat(src, span("alium","We are too tired to do this..."))
+ to_chat(src, SPAN_NOTICEALIEN("We are too tired to do this..."))
return
if(host && world.time >= last_feeding + feeding_delay)
@@ -435,7 +435,7 @@
if(client)
target = input("Select an organ to feed on.", "Organs") as null|anything in host_internal_organs
if(!target)
- to_chat(src, span("alien","We decide not to feed."))
+ to_chat(src, SPAN_ALIEN("We decide not to feed."))
return
if(!target)
@@ -445,13 +445,13 @@
bite_organ(target)
else
- to_chat(src, span("warning","We cannot feed now."))
+ to_chat(src, SPAN_WARNING("We cannot feed now."))
/mob/living/simple_mob/animal/sif/leech/proc/bite_organ(var/obj/item/organ/internal/O)
last_feeding = world.time
if(O)
- to_chat(src, span("alien","We feed on [O]."))
+ to_chat(src, SPAN_ALIEN("We feed on [O]."))
O.take_damage(2,silent=prob(10))
chemicals = min(max_chemicals, chemicals + 60)
host.add_modifier(/datum/modifier/grievous_wounds, 60 SECONDS)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm
index 33bb9b2dd05..2d53cca61e1 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm
@@ -65,7 +65,7 @@
var/mob/living/L = A
if(prob(knockdown_chance))
L.Weaken(3)
- L.visible_message(span("danger", "\The [src] knocks down \the [L]!"))
+ L.visible_message(SPAN_DANGER("\The [src] knocks down \the [L]!"))
// Subtypes.
@@ -151,7 +151,7 @@
// Called on death.
/mob/living/simple_mob/animal/space/carp/holographic/proc/derez()
- visible_message(span("notice", "\The [src] fades away!"))
+ visible_message(SPAN_NOTICE("\The [src] fades away!"))
qdel(src)
/mob/living/simple_mob/animal/space/carp/holographic/gib()
@@ -160,5 +160,3 @@
/mob/living/simple_mob/animal/space/carp/holographic/death()
..()
derez()
-
-
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/mouse_army.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/mouse_army.dm
index a08d3b7e303..4d5bb92f53c 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/space/mouse_army.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/mouse_army.dm
@@ -414,7 +414,7 @@
if(isliving(A))
var/mob/living/L = A
L.Weaken(stealthed_weaken_amount)
- to_chat(L, span("danger", "\The [src] ambushes you!"))
+ to_chat(L, SPAN_DANGER("\The [src] ambushes you!"))
playsound(L, 'sound/weapons/spiderlunge.ogg', 75, 1)
unstealth()
..() // For the poison.
diff --git a/code/modules/mob/living/simple_mob/subtypes/blob/spore.dm b/code/modules/mob/living/simple_mob/subtypes/blob/spore.dm
index 96ffc462ea4..9c411f9d713 100644
--- a/code/modules/mob/living/simple_mob/subtypes/blob/spore.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/blob/spore.dm
@@ -68,7 +68,7 @@
factory = null
if(infested)
infested.forceMove(get_turf(src))
- visible_message(span("warning", "\The [infested] falls to the ground as the blob spore bursts."))
+ visible_message(SPAN_WARNING( "\The [infested] falls to the ground as the blob spore bursts."))
infested = null
return ..()
@@ -136,7 +136,7 @@
say_list = new /datum/say_list/infested()
update_icons()
- visible_message(span("warning", "The corpse of [H.name] suddenly rises!"))
+ visible_message(SPAN_WARNING( "The corpse of [H.name] suddenly rises!"))
/mob/living/simple_mob/blob/spore/GetIdCard()
if(infested) // If we've infested someone, use their ID.
@@ -154,5 +154,5 @@
helpers++
if(helpers)
- to_chat(src, span("notice", "Your attack is assisted by [helpers] other spore\s."))
+ to_chat(src, SPAN_NOTICE("Your attack is assisted by [helpers] other spore\s."))
return damage_to_do
diff --git a/code/modules/mob/living/simple_mob/subtypes/humanoid/cultist.dm b/code/modules/mob/living/simple_mob/subtypes/humanoid/cultist.dm
index 6923939214c..cddc870eb7c 100644
--- a/code/modules/mob/living/simple_mob/subtypes/humanoid/cultist.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/humanoid/cultist.dm
@@ -107,7 +107,7 @@
sleep(jaunt_warning) // For the telegraphing.
// Do the dig!
- visible_message(span("danger","\The [src] sinks into a puddle of blood \the [A]!"))
+ visible_message(SPAN_DANGER("\The [src] sinks into a puddle of blood \the [A]!"))
new /obj/effect/decal/cleanable/blood (src.loc)
flick("blood_out",A)
icon_state = "bloodout"
@@ -132,7 +132,7 @@
if(L == src)
continue
- visible_message(span("danger","\The [src] suddenly rises from a pool of blood \the [L]!"))
+ visible_message(SPAN_DANGER("\The [src] suddenly rises from a pool of blood \the [L]!"))
new /obj/effect/decal/cleanable/blood (src.loc)
playsound(L, 'sound/weapons/heavysmash.ogg', 75, 1)
L.Weaken(3)
@@ -145,7 +145,7 @@
return TRUE
// Otherwise we need to keep going.
- to_chat(src, span("warning", "You overshoot your target!"))
+ to_chat(src, SPAN_WARNING( "You overshoot your target!"))
playsound(src, 'sound/weapons/punchmiss.ogg', 75, 1)
var/dir_to_go = get_dir(starting_turf, destination)
for(var/i = 1 to rand(2, 4))
@@ -176,7 +176,7 @@
// Update T.
T = get_step(src, get_dir(src, destination))
if(T.check_density(ignore_mobs = TRUE))
- to_chat(src, span("critical", "You hit something really solid!"))
+ to_chat(src, SPAN_CRITICAL("You hit something really solid!"))
playsound(src, "punch", 75, 1)
Weaken(5)
add_modifier(/datum/modifier/tunneler_vulnerable, 10 SECONDS)
diff --git a/code/modules/mob/living/simple_mob/subtypes/humanoid/possessed.dm b/code/modules/mob/living/simple_mob/subtypes/humanoid/possessed.dm
index f239ef8262e..607ddf4e0a6 100644
--- a/code/modules/mob/living/simple_mob/subtypes/humanoid/possessed.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/humanoid/possessed.dm
@@ -93,7 +93,7 @@
/mob/living/simple_mob/humanoid/possessed/Destroy()
var/droploc = get_turf(src)
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
- visible_message(span("critical", pick("\The The horrid screech of metal grating metal cuts through the air as the suit's interlocking joints grind and fold inwards upon itself. A putrid wash of decayed flesh spills forwards, staining the ground dark with the contents of the collapsing RIG's long expired pilot.",
+ visible_message(SPAN_CRITICAL(pick("\The The horrid screech of metal grating metal cuts through the air as the suit's interlocking joints grind and fold inwards upon itself. A putrid wash of decayed flesh spills forwards, staining the ground dark with the contents of the collapsing RIG's long expired pilot.",
"\The The [src] shudders as some hurt living thing, reeling as screaming servos overcompensate beneath the weight of that debilitating strike - the horrid sounds of shattered metal resonate as the RIG rips itself apart. Limbs flung about in distinctly inhuman motions in a final failed effort at balance before buckling inwards at the joints, hydraulic fluid jettisoned as blood from a severed artery as the long liquidized contents of the suit's ex-pilot spill from its chassis in a thick slurry.",
"\The Hissing atmosphereic valves pop and snap, breaking the ageless seal as the putrid stench of rot and carrion assaults the senses in debilitating waves. The damaged RIG's visor alight with warnings of hazardous atmospheric conditions as a final distorted scream echos from within the damaged chassis. The fetid miasma that breeches through those wheezing seals overtaken by a wet burble and plop as the suit is bathed in the liquid contents of its passenger, blackened flesh fed through those narrow seals as rotten grounds.",
"\The The timeworn suit's seals finally crack open with a hiss - spilling forth a thick fungal mist. The control module ejects from the rig as it loses all control impulses - leaving behind but a pile of bones and the rotten sludge it had been swimming in for heaven knows how long.",
diff --git a/code/modules/mob/living/simple_mob/subtypes/illusion/illusion.dm b/code/modules/mob/living/simple_mob/subtypes/illusion/illusion.dm
index 98d3023f92e..07b5bf58d4b 100644
--- a/code/modules/mob/living/simple_mob/subtypes/illusion/illusion.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/illusion/illusion.dm
@@ -43,7 +43,7 @@
if(copying)
copying.examine(user)
return
-
+
/mob/living/simple_mob/illusion/bullet_act(obj/item/projectile/P)
if(!P)
@@ -57,21 +57,21 @@
/mob/living/simple_mob/illusion/attack_hand(mob/living/carbon/human/M)
if(!realistic)
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
- visible_message(span("warning", "\The [M]'s hand goes through \the [src]!"))
+ visible_message(SPAN_WARNING( "\The [M]'s hand goes through \the [src]!"))
return
else
switch(M.a_intent)
if(INTENT_HELP)
var/datum/gender/T = gender_datums[src.get_visible_gender()]
M.visible_message(
- span("notice", "\The [M] hugs [src] to make [T.him] feel better!"), \
- span("notice", "You hug [src] to make [T.him] feel better!")
+ SPAN_NOTICE("\The [M] hugs [src] to make [T.him] feel better!"), \
+ SPAN_NOTICE("You hug [src] to make [T.him] feel better!")
) // slightly redundant as at the moment most mobs still use the normal gender var, but it works and future-proofs it
playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
if(INTENT_DISARM)
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
- visible_message(span("danger", "\The [M] attempted to disarm [src]!"))
+ visible_message(SPAN_DANGER("\The [M] attempted to disarm [src]!"))
M.do_attack_animation(src)
if(INTENT_GRAB)
@@ -79,7 +79,7 @@
if(INTENT_HARM)
adjustBruteLoss(harm_intent_damage)
- M.visible_message(span("danger", "\The [M] [response_harm] \the [src]"))
+ M.visible_message(SPAN_DANGER("\The [M] [response_harm] \the [src]"))
M.do_attack_animation(src)
/mob/living/simple_mob/illusion/hit_with_weapon(obj/item/I, mob/living/user, effective_force, hit_zone)
@@ -87,7 +87,7 @@
return ..()
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
- visible_message(span("warning", "\The [user]'s [I] goes through \the [src]!"))
+ visible_message(SPAN_WARNING( "\The [user]'s [I] goes through \the [src]!"))
return FALSE
/mob/living/simple_mob/illusion/ex_act()
diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/cyber_horror/cyber_horror.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/cyber_horror/cyber_horror.dm
index 1ced7372db4..f2b9f9f96e9 100644
--- a/code/modules/mob/living/simple_mob/subtypes/mechanical/cyber_horror/cyber_horror.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/cyber_horror/cyber_horror.dm
@@ -161,7 +161,7 @@
// Do the actual leap.
// Lets us pass over everything.
status_flags |= LEAPING
- visible_message(span("danger","\The [src] leaps at \the [A]!"))
+ visible_message(SPAN_DANGER("\The [src] leaps at \the [A]!"))
throw_at(get_step(get_turf(A), get_turf(src)), special_attack_max_range+1, 1, src)
playsound(src, leap_sound, 75, 1)
// For the throw to complete. It won't hold up the AI SSticker due to waitfor being false.
@@ -193,8 +193,8 @@
if(victim)
victim.Weaken(2)
- victim.visible_message(span("danger","\The [src] knocks down \the [victim]!"))
- to_chat(victim, span("critical", "\The [src] jumps on you!"))
+ victim.visible_message(SPAN_DANGER("\The [src] knocks down \the [victim]!"))
+ to_chat(victim, SPAN_CRITICAL("\The [src] jumps on you!"))
. = TRUE
set_AI_busy(FALSE)
@@ -293,7 +293,7 @@
if(isliving(A))
var/mob/living/L = A
L.Weaken(stealthed_weaken_amount)
- to_chat(L, span("danger", "\The [src] tears into you!"))
+ to_chat(L, SPAN_DANGER("\The [src] tears into you!"))
playsound(L, 'sound/weapons/spiderlunge.ogg', 75, 1)
unstealth()
..() // For the poison.
@@ -476,7 +476,7 @@
// Warm-up
Beam(target, icon_state = "sat_beam", time = 2 SECONDS, maxdistance = INFINITY)
- visible_message(span("warning", "A glowing port opens up in the [src]'s carapace!"))
+ visible_message(SPAN_WARNING( "A glowing port opens up in the [src]'s carapace!"))
playsound(src, 'sound/effects/turret/move1.wav', 50, 1)
sleep(2 SECONDS)
@@ -484,7 +484,7 @@
if(target) // Might get deleted in the meantime.
var/turf/T = get_turf(target)
if(T)
- visible_message(span("warning", "[src] discharges a beam of concentrated energy!"))
+ visible_message(SPAN_WARNING( "[src] discharges a beam of concentrated energy!"))
playsound(src, 'sound/weapons/lasercannonfire.ogg', 70, 1)
face_atom(T)
var/obj/item/projectile/arc/radioactive/priest/ball = new(loc)
@@ -492,7 +492,7 @@
ball.fire()
sleep(2 SECONDS)
- visible_message(span("warning", "[src] closes its reactor port."))
+ visible_message(SPAN_WARNING( "[src] closes its reactor port."))
playsound(src, 'sound/effects/turret/move2.wav', 50, 1)
/obj/item/projectile/arc/radioactive/priest
diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/hivebot.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/hivebot.dm
index 9289ea4bb81..3418f260fe3 100644
--- a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/hivebot.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/hivebot.dm
@@ -34,7 +34,7 @@
/mob/living/simple_mob/mechanical/hivebot/death()
..()
- visible_message(span("warning","\The [src] blows apart!"))
+ visible_message(SPAN_WARNING("\The [src] blows apart!"))
new /obj/effect/decal/cleanable/blood/gibs/robot(src.loc)
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
s.set_up(3, 1, src)
diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support.dm
index 2cf1720dded..b678fb56709 100644
--- a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support.dm
@@ -81,7 +81,7 @@
if(IIsAlly(SM)) // Don't resupply enemies.
if(!isnull(SM.special_attack_charges) && SM.special_attack_charges < initial(SM.special_attack_charges))
SM.special_attack_charges += 1
- to_chat(SM, span("notice", "\The [src] has resupplied you, and you can use your special ability one additional time."))
- to_chat(src, span("notice", "You have resupplied \the [SM]."))
+ to_chat(SM, SPAN_NOTICE("\The [src] has resupplied you, and you can use your special ability one additional time."))
+ to_chat(src, SPAN_NOTICE("You have resupplied \the [SM]."))
last_resupply = world.time
break // Only one resupply per pulse.
diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/tank.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/tank.dm
index 7f4e10f05dd..3ba66b63fa1 100644
--- a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/tank.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/tank.dm
@@ -150,8 +150,8 @@
if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam))
var/reflect_prob = reflect_chance - round(P.damage/3)
if(prob(reflect_prob))
- visible_message(span("danger", "The [P.name] gets reflected by [src]'s armor!"), \
- span("userdanger", "The [P.name] gets reflected by [src]'s armor!"))
+ visible_message(SPAN_DANGER("The [P.name] gets reflected by [src]'s armor!"), \
+ SPAN_USERDANGER("The [P.name] gets reflected by [src]'s armor!"))
// Find a turf near or on the original location to bounce to
if(P.starting)
diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm
index b9fe2ddad59..9396bbb49d0 100644
--- a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax.dm
@@ -150,7 +150,7 @@
energy_ball.adjust_scale(0.5)
energy_ball.orbit(src, 32, TRUE, 1 SECOND)
- visible_message(span("warning", "\The [src] creates \an [energy_ball] around itself!"))
+ visible_message(SPAN_WARNING( "\The [src] creates \an [energy_ball] around itself!"))
playsound(src.loc, 'sound/effects/lightning_chargeup.ogg', 100, 1, extrarange = 30)
@@ -178,7 +178,7 @@
sleep(1 SECOND)
// Shoot a tesla bolt, and flashes people who are looking at the mecha without sufficent eye protection.
- visible_message(span("warning", "\The [energy_ball] explodes in a flash of light, sending a shock everywhere!"))
+ visible_message(SPAN_WARNING( "\The [energy_ball] explodes in a flash of light, sending a shock everywhere!"))
playsound(src.loc, 'sound/effects/lightningbolt.ogg', 100, 1, extrarange = 30)
tesla_zap(src.loc, 5, ELECTRIC_ZAP_POWER, FALSE)
for(var/mob/living/L in viewers(src))
@@ -186,7 +186,7 @@
continue
var/dir_towards_us = get_dir(L, src)
if(L.dir && L.dir & dir_towards_us)
- to_chat(L, span("danger", "The flash of light blinds you briefly."))
+ to_chat(L, SPAN_DANGER("The flash of light blinds you briefly."))
L.flash_eyes(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = TRUE)
// Get rid of our energy ball.
@@ -204,7 +204,7 @@
// Telegraph our next move.
Beam(target, icon_state = "sat_beam", time = 3.5 SECONDS, maxdistance = INFINITY)
- visible_message(span("warning", "\The [src] deploys a missile rack!"))
+ visible_message(SPAN_WARNING( "\The [src] deploys a missile rack!"))
playsound(src, 'sound/effects/turret/move1.wav', 50, 1)
sleep(0.5 SECONDS)
@@ -212,7 +212,7 @@
if(target) // Might get deleted in the meantime.
var/turf/T = get_turf(target)
if(T)
- visible_message(span("warning", "\The [src] fires a rocket into the air!"))
+ visible_message(SPAN_WARNING( "\The [src] fires a rocket into the air!"))
playsound(src, 'sound/weapons/rpg.ogg', 70, 1)
face_atom(T)
var/obj/item/projectile/arc/explosive_rocket/rocket = new(loc)
@@ -220,7 +220,7 @@
rocket.fire()
sleep(1 SECOND)
- visible_message(span("warning", "\The [src] retracts the missile rack."))
+ visible_message(SPAN_WARNING( "\The [src] retracts the missile rack."))
playsound(src, 'sound/effects/turret/move2.wav', 50, 1)
// Arcing rocket projectile that produces a weak explosion when it lands.
@@ -235,7 +235,7 @@
/mob/living/simple_mob/mechanical/mecha/combat/gygax/dark/advanced/proc/launch_microsingularity(atom/target)
var/turf/T = get_turf(target)
- visible_message(span("warning", "\The [src] fires an energetic sphere into the air!"))
+ visible_message(SPAN_WARNING( "\The [src] fires an energetic sphere into the air!"))
playsound(src, 'sound/weapons/Laser.ogg', 50, 1)
face_atom(T)
var/obj/item/projectile/arc/microsingulo/sphere = new(loc)
diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/combat_mecha.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/combat_mecha.dm
index 96c1753bb65..a7dd486f1f9 100644
--- a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/combat_mecha.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/combat_mecha.dm
@@ -28,11 +28,11 @@
if(isliving(A))
var/mob/living/L = A
if(L.mob_size <= MOB_MEDIUM)
- visible_message(span("danger", "\The [src] sends \the [L] flying with their mechanized fist!"))
+ visible_message(SPAN_DANGER("\The [src] sends \the [L] flying with their mechanized fist!"))
playsound(src, "punch", 50, 1)
L.Weaken(weaken_amount)
var/throw_dir = get_dir(src, L)
var/throw_dist = L.incapacitated(INCAPACITATION_DISABLED) ? 4 : 1
L.throw_at(get_edge_target_turf(L, throw_dir), throw_dist, 1, src)
else
- to_chat(L, span("warning", "\The [src] punches you with incredible force, but you remain in place."))
+ to_chat(L, SPAN_WARNING( "\The [src] punches you with incredible force, but you remain in place."))
diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/durand.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/durand.dm
index 96fd4645873..e38b4eb23bc 100644
--- a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/durand.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/durand.dm
@@ -45,11 +45,11 @@
/mob/living/simple_mob/mechanical/mecha/combat/durand/proc/set_defense_mode(new_mode)
defense_mode = new_mode
deflect_chance = defense_mode ? defense_deflect : initial(deflect_chance)
- to_chat(src, span("notice", "You [defense_mode ? "en" : "dis"]able defense mode."))
+ to_chat(src, SPAN_NOTICE("You [defense_mode ? "en" : "dis"]able defense mode."))
/mob/living/simple_mob/mechanical/mecha/combat/durand/SelfMove(turf/n, direct)
if(defense_mode)
- to_chat(src, span("warning", "You are in defense mode, you cannot move."))
+ to_chat(src, SPAN_WARNING( "You are in defense mode, you cannot move."))
return FALSE
return ..()
diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/mecha.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/mecha.dm
index 4b92410f555..fcc0672cfbb 100644
--- a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/mecha.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/mecha.dm
@@ -113,7 +113,7 @@
/mob/living/simple_mob/mechanical/mecha/bullet_act(obj/item/projectile/P)
if(prob(deflect_chance))
- visible_message(span("warning", "\The [P] is deflected by \the [src]'s armor!"))
+ visible_message(SPAN_WARNING( "\The [P] is deflected by \the [src]'s armor!"))
deflect_sprite()
return 0
return ..()
@@ -128,7 +128,7 @@
/mob/living/simple_mob/mechanical/mecha/attackby(obj/item/I, mob/user)
if(prob(deflect_chance))
- visible_message(span("warning", "\The [user]'s [I] bounces off \the [src]'s armor!"))
+ visible_message(SPAN_WARNING( "\The [user]'s [I] bounces off \the [src]'s armor!"))
deflect_sprite()
user.setClickCooldown(user.get_attack_speed(I))
return
diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/odysseus.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/odysseus.dm
index 6d7954e36f3..d620c0a558d 100644
--- a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/odysseus.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/odysseus.dm
@@ -53,7 +53,7 @@
var/target_zone = pick(BP_TORSO,BP_TORSO,BP_TORSO,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_HEAD)
if(L.can_inject(src, null, target_zone))
- to_chat(L, span("warning", "You feel a tiny prick."))
+ to_chat(L, SPAN_WARNING( "You feel a tiny prick."))
if(L.get_poison_protection() < 1)
L.add_modifier(/datum/modifier/poisoned, 30 SECONDS)
L.inflict_poison_damage(5)
@@ -71,7 +71,7 @@
var/mob/living/L = target
if(!L.can_inject(null, null, def_zone, piercing))
return FALSE
- to_chat(L, span("warning", "You feel a tiny prick."))
+ to_chat(L, SPAN_WARNING( "You feel a tiny prick."))
return ..() // This will add the modifier and return the correct value.
@@ -79,6 +79,3 @@
/obj/item/projectile/fake_syringe/poison
modifier_type_to_apply = /datum/modifier/poisoned
modifier_duration = 1 MINUTE // About 30 damage per stack over a minute.
-
-
-
diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/ward/monitor_ward.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/ward/monitor_ward.dm
index 858c669ec24..e232bb53de2 100644
--- a/code/modules/mob/living/simple_mob/subtypes/mechanical/ward/monitor_ward.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/ward/monitor_ward.dm
@@ -60,7 +60,7 @@
/mob/living/simple_mob/mechanical/ward/monitor/death()
if(owner)
- to_chat(owner, span("warning", "Your [src.name] inside [get_area(src)] was destroyed!"))
+ to_chat(owner, SPAN_WARNING( "Your [src.name] inside [get_area(src)] was destroyed!"))
..()
/mob/living/simple_mob/mechanical/ward/monitor/handle_special()
@@ -96,9 +96,9 @@
playsound(L, 'sound/effects/EMPulse.ogg', 75, 1)
L.break_cloak()
- to_chat(L, span("danger", "\The [src] disrupts your cloak!"))
+ to_chat(L, SPAN_DANGER("\The [src] disrupts your cloak!"))
if(owner)
- to_chat(owner, span("notice", "Your [src.name] at [get_area(src)] uncloaked \the [L]."))
+ to_chat(owner, SPAN_NOTICE("Your [src.name] at [get_area(src)] uncloaked \the [L]."))
// Warn the owner when it sees a new mob.
if(!(L in seen_mobs))
@@ -106,7 +106,7 @@
newly_seen_mobs += L
if(newly_seen_mobs.len && owner) // Yell at our owner if someone new shows up.
- to_chat(owner, span("notice", "Your [src.name] at [get_area(src)] detected [english_list(newly_seen_mobs)]."))
+ to_chat(owner, SPAN_NOTICE("Your [src.name] at [get_area(src)] detected [english_list(newly_seen_mobs)]."))
// Now get rid of old mobs that left vision.
for(var/thing in seen_mobs)
diff --git a/code/modules/mob/living/simple_mob/subtypes/occult/constructs/wraith.dm b/code/modules/mob/living/simple_mob/subtypes/occult/constructs/wraith.dm
index 8aa84a7af60..d7fb6b81b9a 100644
--- a/code/modules/mob/living/simple_mob/subtypes/occult/constructs/wraith.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/occult/constructs/wraith.dm
@@ -75,7 +75,7 @@
sleep(jaunt_warning) // For the telegraphing.
// Do the dig!
- visible_message(span("danger","\The [src] vanishes into thin air \the [A]!"))
+ visible_message(SPAN_DANGER("\The [src] vanishes into thin air \the [A]!"))
flick("phase_shift",A)
icon_state = "phase_shift"
@@ -99,7 +99,7 @@
if(L == src)
continue
- visible_message(span("danger","\The [src] appears in a flurry of slashes \the [L]!"))
+ visible_message(SPAN_DANGER("\The [src] appears in a flurry of slashes \the [L]!"))
playsound(L, 'sound/weapons/heavysmash.ogg', 75, 1)
L.Weaken(3)
overshoot = FALSE
@@ -111,7 +111,7 @@
return TRUE
// Otherwise we need to keep going.
- to_chat(src, span("warning", "You overshoot your target!"))
+ to_chat(src, SPAN_WARNING( "You overshoot your target!"))
playsound(src, 'sound/weapons/punchmiss.ogg', 75, 1)
var/dir_to_go = get_dir(starting_turf, destination)
for(var/i = 1 to rand(2, 4))
@@ -142,7 +142,7 @@
// Update T.
T = get_step(src, get_dir(src, destination))
if(T.check_density(ignore_mobs = TRUE))
- to_chat(src, span("critical", "You hit something really solid!"))
+ to_chat(src, SPAN_CRITICAL("You hit something really solid!"))
playsound(src, "punch", 75, 1)
Weaken(5)
add_modifier(/datum/modifier/tunneler_vulnerable, 10 SECONDS)
diff --git a/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm b/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm
index 89b4afe3f3a..144168c1580 100644
--- a/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm
@@ -43,7 +43,7 @@
var/mob/living/L = A
if(prob(15))
L.Weaken(3)
- L.visible_message(span("danger", "\The [src] knocks down \the [L]!"))
+ L.visible_message(SPAN_DANGER("\The [src] knocks down \the [L]!"))
/mob/living/simple_mob/animal/space/tree/death()
..(null,"is hacked into pieces!")
diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm b/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm
index c3b3b11b30e..bf93a2af63f 100644
--- a/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/slime/slime.dm
@@ -183,7 +183,7 @@
// Otherwise they're probably fighting the slime.
if(prob(25) && can_miss) //VOREStation Edit
- visible_message(span("warning", "\The [user]'s [I] passes right through \the [src]!"))
+ visible_message(SPAN_WARNING( "\The [user]'s [I] passes right through \the [src]!"))
user.setClickCooldown(user.get_attack_speed(I))
return
..()
@@ -196,16 +196,16 @@
// Hat simulator
/mob/living/simple_mob/slime/proc/give_hat(var/obj/item/clothing/head/new_hat, var/mob/living/user)
if(!istype(new_hat))
- to_chat(user, span("warning", "\The [new_hat] isn't a hat."))
+ to_chat(user, SPAN_WARNING( "\The [new_hat] isn't a hat."))
return
if(hat)
- to_chat(user, span("warning", "\The [src] is already wearing \a [hat]."))
+ to_chat(user, SPAN_WARNING( "\The [src] is already wearing \a [hat]."))
return
else
user.drop_item(new_hat)
hat = new_hat
new_hat.forceMove(src)
- to_chat(user, span("notice", "You place \a [new_hat] on \the [src]. How adorable!"))
+ to_chat(user, SPAN_NOTICE("You place \a [new_hat] on \the [src]. How adorable!"))
update_icon()
return
diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/combat.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/combat.dm
index d83fd030409..d889de6acc2 100644
--- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/combat.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/combat.dm
@@ -17,8 +17,8 @@
if(prob(stun_power * 10)) // Try an electric shock.
power_charge = max(0, power_charge - 3)
L.visible_message(
- span("danger", "\The [src] has shocked \the [L]!"),
- span("danger", "\The [src] has shocked you!")
+ SPAN_DANGER("\The [src] has shocked \the [L]!"),
+ SPAN_DANGER("\The [src] has shocked you!")
)
playsound(src, 'sound/weapons/Egloves.ogg', 75, 1)
L.Weaken(4)
@@ -38,8 +38,8 @@
else if(prob(20)) // Try to do a regular disarm attack.
L.visible_message(
- span("danger", "\The [src] has pounced at \the [L]!"),
- span("danger", "\The [src] has pounced at you!")
+ SPAN_DANGER("\The [src] has pounced at \the [L]!"),
+ SPAN_DANGER("\The [src] has pounced at you!")
)
playsound(src, 'sound/weapons/thudswoosh.ogg', 75, 1)
L.Weaken(2)
@@ -50,8 +50,8 @@
else // Failed to do anything this time.
L.visible_message(
- span("warning", "\The [src] has tried to pounce at \the [L]!"),
- span("warning", "\The [src] has tried to pounce at you!")
+ SPAN_WARNING( "\The [src] has tried to pounce at \the [L]!"),
+ SPAN_WARNING( "\The [src] has tried to pounce at you!")
)
playsound(src, 'sound/weapons/punchmiss.ogg', 75, 1)
do_attack_animation(L)
diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/consumption.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/consumption.dm
index 9e8c83027eb..e0e04273aa6 100644
--- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/consumption.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/consumption.dm
@@ -56,7 +56,7 @@
if(victim && !stat)
if(istype(victim) && consume(victim, 20))
if(prob(25))
- to_chat(src, span("notice", "You continue absorbing \the [victim]."))
+ to_chat(src, SPAN_NOTICE("You continue absorbing \the [victim]."))
else
var/list/feedback = list(
@@ -68,7 +68,7 @@
"I do not feel nourished",
"This subject is not food"
)
- to_chat(src, span("warning", "[pick(feedback)]..."))
+ to_chat(src, SPAN_WARNING( "[pick(feedback)]..."))
stop_consumption()
if(victim)
@@ -92,8 +92,8 @@
update_icon()
set_AI_busy(TRUE) // Don't want the AI to interfere with eatting.
victim.visible_message(
- span("danger", "\The [src] latches onto \the [victim]!"),
- span("critical", "\The [src] latches onto you!")
+ SPAN_DANGER("\The [src] latches onto \the [victim]!"),
+ SPAN_CRITICAL("\The [src] latches onto you!")
)
/mob/living/simple_mob/slime/xenobio/proc/stop_consumption(mob/living/L)
@@ -101,8 +101,8 @@
return
victim.unbuckle_mob()
victim.visible_message(
- span("notice", "\The [src] slides off of [victim]!"),
- span("notice", "\The [src] slides off of you!")
+ SPAN_NOTICE("\The [src] slides off of [victim]!"),
+ SPAN_NOTICE("\The [src] slides off of you!")
)
victim = null
update_icon()
@@ -161,7 +161,7 @@
victim.adjustToxLoss(damage_done * 0.4)
adjust_nutrition(damage_done * 5)
Beam(victim, icon_state = "slime_consume", time = 8)
- to_chat(src, span("notice", "You absorb some biomaterial from \the [victim]."))
- to_chat(victim, span("danger", "\The [src] consumes some of your flesh!"))
+ to_chat(src, SPAN_NOTICE("You absorb some biomaterial from \the [victim]."))
+ to_chat(victim, SPAN_DANGER("\The [src] consumes some of your flesh!"))
return TRUE
return FALSE
diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/defense.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/defense.dm
index dc8c2be0324..0a644124227 100644
--- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/defense.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/defense.dm
@@ -9,11 +9,11 @@
fail_odds = 60
if(prob(fail_odds))
- visible_message(span("warning", "\The [L] attempts to wrestle \the [name] off!"))
+ visible_message(SPAN_WARNING( "\The [L] attempts to wrestle \the [name] off!"))
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
else
- visible_message(span("warning", "\The [L] manages to wrestle \the [name] off!"))
+ visible_message(SPAN_WARNING( "\The [L] manages to wrestle \the [name] off!"))
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
if(prob(40))
@@ -46,7 +46,7 @@
// Shocked grilles don't hurt slimes, and in fact give them charge.
/mob/living/simple_mob/slime/xenobio/electrocute_act(shock_damage, obj/source, siemens_coeff = 1.0, def_zone = null)
power_charge = between(0, power_charge + round(shock_damage / 10), 10)
- to_chat(src, span("notice", "\The [source] shocks you, and it charges you."))
+ to_chat(src, SPAN_NOTICE("\The [source] shocks you, and it charges you."))
// Getting slimebatoned/xenotased.
/mob/living/simple_mob/slime/xenobio/slimebatoned(mob/living/user, amount)
diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/discipline.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/discipline.dm
index 0ab838f329a..b33800416a9 100644
--- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/discipline.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/discipline.dm
@@ -3,7 +3,7 @@
/mob/living/simple_mob/slime/xenobio/proc/adjust_discipline(amount, silent)
if(amount > 0)
- to_chat(src, span("warning", "You've been disciplined!"))
+ to_chat(src, SPAN_WARNING( "You've been disciplined!"))
if(has_AI())
var/datum/ai_holder/simple_mob/xenobio_slime/AI = ai_holder
AI.adjust_discipline(amount, silent)
diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm
index 2f616481ade..667d5391ced 100644
--- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm
@@ -46,8 +46,8 @@
if(isliving(A))
var/mob/living/L = A
L.inflict_heat_damage(is_adult ? 10 : 5)
- to_chat(src, span("span", "You burn \the [L]."))
- to_chat(L, span("danger", "You've been burned by \the [src]!"))
+ to_chat(src, SPAN_NOTICE("You burn \the [L]."))
+ to_chat(L, SPAN_DANGER("You've been burned by \the [src]!"))
L.adjust_fire_stacks(1)
if(prob(12))
L.IgniteMob()
@@ -154,8 +154,8 @@
if(isliving(A))
var/mob/living/L = A
L.inflict_shock_damage(is_adult ? 10 : 5)
- to_chat(src, span("span", "You shock \the [L]."))
- to_chat(L, span("danger", "You've been shocked by \the [src]!"))
+ to_chat(src, SPAN_NOTICE("You shock \the [L]."))
+ to_chat(L, SPAN_DANGER("You've been shocked by \the [src]!"))
/mob/living/simple_mob/slime/xenobio/yellow/handle_special()
if(stat == CONSCIOUS)
@@ -188,7 +188,7 @@
)
/mob/living/simple_mob/slime/xenobio/dark_purple/proc/ignite()
- visible_message(span("critical", "\The [src] erupts in an inferno!"))
+ visible_message(SPAN_CRITICAL("\The [src] erupts in an inferno!"))
for(var/turf/simulated/target_turf in get_ignition_turfs(25, 2))
target_turf.assume_gas(/datum/gas/phoron, 30, 1500+T0C)
spawn(0)
@@ -282,8 +282,8 @@
if(isliving(A))
var/mob/living/L = A
chill(L)
- to_chat(src, span("span", "You chill \the [L]."))
- to_chat(L, span("danger", "You've been chilled by \the [src]!"))
+ to_chat(src, SPAN_NOTICE("You chill \the [L]."))
+ to_chat(L, SPAN_DANGER("You've been chilled by \the [src]!"))
/mob/living/simple_mob/slime/xenobio/dark_blue/proc/chill(mob/living/L)
@@ -311,7 +311,7 @@
/mob/living/simple_mob/slime/xenobio/silver/bullet_act(var/obj/item/projectile/P, var/def_zone)
if(istype(P,/obj/item/projectile/beam) || istype(P, /obj/item/projectile/energy))
- visible_message(span("danger", "\The [src] reflects \the [P]!"))
+ visible_message(SPAN_DANGER("\The [src] reflects \the [P]!"))
// Find a turf near or on the original location to bounce to
var/new_x = P.starting.x + pick(0, 0, 0, -1, 1, -2, 2)
@@ -351,7 +351,7 @@
/mob/living/simple_mob/slime/xenobio/bluespace/do_special_attack(atom/A)
// Teleport attack.
if(!A)
- to_chat(src, span("warning", "There's nothing to teleport to."))
+ to_chat(src, SPAN_WARNING( "There's nothing to teleport to."))
return FALSE
var/list/nearby_things = range(1, A)
@@ -372,7 +372,7 @@
var/turf/target_turf = pick(valid_turfs)
if(!target_turf)
- to_chat(src, span("warning", "There wasn't an unoccupied spot to teleport to."))
+ to_chat(src, SPAN_WARNING( "There wasn't an unoccupied spot to teleport to."))
return FALSE
var/datum/effect_system/spark_spread/s1 = new /datum/effect_system/spark_spread
@@ -381,14 +381,14 @@
s2.set_up(5, 1, target_turf)
- T.visible_message(span("notice", "\The [src] vanishes!"))
+ T.visible_message(SPAN_NOTICE("\The [src] vanishes!"))
s1.start()
forceMove(target_turf)
playsound(target_turf, 'sound/effects/phasein.ogg', 50, 1)
- to_chat(src, span("notice", "You teleport to \the [target_turf]."))
+ to_chat(src, SPAN_NOTICE("You teleport to \the [target_turf]."))
- target_turf.visible_message(span("warning", "\The [src] appears!"))
+ target_turf.visible_message(SPAN_WARNING( "\The [src] appears!"))
s2.start()
if(Adjacent(A))
@@ -427,13 +427,13 @@
if(isliving(A) && a_intent == INTENT_HARM)
var/mob/living/L = A
if(L.mob_size <= MOB_MEDIUM)
- visible_message(span("danger", "\The [src] sends \the [L] flying with the impact!"))
+ visible_message(SPAN_DANGER("\The [src] sends \the [L] flying with the impact!"))
playsound(src, "punch", 50, 1)
L.Weaken(1)
var/throwdir = get_dir(src, L)
L.throw_at(get_edge_target_turf(L, throwdir), 3, 1, src)
else
- to_chat(L, span("warning", "\The [src] hits you with incredible force, but you remain in place."))
+ to_chat(L, SPAN_WARNING( "\The [src] hits you with incredible force, but you remain in place."))
/mob/living/simple_mob/slime/xenobio/amber
diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm
index 7488c1a3fa5..b32f02f3bf7 100644
--- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm
@@ -164,20 +164,20 @@
set desc = "This will let you evolve from baby to adult slime."
if(stat)
- to_chat(src, span("warning", "I must be conscious to do this..."))
+ to_chat(src, SPAN_WARNING( "I must be conscious to do this..."))
return
if(harmless)
- to_chat(src, span("warning", "I have been pacified. I cannot evolve..."))
+ to_chat(src, SPAN_WARNING( "I have been pacified. I cannot evolve..."))
return
if(!is_adult)
if(amount_grown >= 10)
make_adult()
else
- to_chat(src, span("warning", "I am not ready to evolve yet..."))
+ to_chat(src, SPAN_WARNING( "I am not ready to evolve yet..."))
else
- to_chat(src, span("warning", "I have already evolved..."))
+ to_chat(src, SPAN_WARNING( "I have already evolved..."))
/mob/living/simple_mob/slime/xenobio/verb/reproduce()
@@ -185,11 +185,11 @@
set desc = "This will make you split into four new slimes."
if(stat)
- to_chat(src, span("warning", "I must be conscious to do this..."))
+ to_chat(src, SPAN_WARNING( "I must be conscious to do this..."))
return
if(harmless)
- to_chat(src, span("warning", "I have been pacified. I cannot reproduce..."))
+ to_chat(src, SPAN_WARNING( "I have been pacified. I cannot reproduce..."))
return
if(is_adult)
@@ -210,7 +210,7 @@
free_tiles++
if(free_tiles < 3) // Three free tiles are needed, as four slimes are made and the 4th tile is from the center tile that the current slime occupies.
- to_chat(src, span("warning", "It is too cramped here to reproduce..."))
+ to_chat(src, SPAN_WARNING( "It is too cramped here to reproduce..."))
return
var/list/babies = list()
@@ -225,9 +225,9 @@
new_slime.key = src.key
qdel(src)
else
- to_chat(src, span("warning", "I am not ready to reproduce yet..."))
+ to_chat(src, SPAN_WARNING( "I am not ready to reproduce yet..."))
else
- to_chat(src, span("warning", "I have not evolved enough to reproduce yet..."))
+ to_chat(src, SPAN_WARNING( "I have not evolved enough to reproduce yet..."))
// Used when reproducing or dying.
/mob/living/simple_mob/slime/xenobio/proc/make_new_slime(var/desired_type)
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm
index 59e2e50f2f2..91185e03124 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm
@@ -124,7 +124,7 @@
var/mob/living/L = A
if(prob(knockdown_chance))
L.Weaken(3)
- L.visible_message(span("danger", "\The [src] knocks down \the [L]!"))
+ L.visible_message(SPAN_DANGER("\The [src] knocks down \the [L]!"))
/mob/living/simple_mob/vore/aggressive/mimic/will_show_tooltip()
return FALSE
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index da7b5d43143..57964678a6f 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -291,7 +291,7 @@
to_chat(usr, "You can't respawn yet! You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes.")
return
/*
- if(client.prefs.species != "Human" && !check_rights(R_ADMIN, 0))
+ if(client.prefs.species != SPECIES_HUMAN && !check_rights(R_ADMIN, 0))
if (config_legacy.usealienwhitelist)
if(!is_alien_whitelisted(src, client.prefs.species))
src << alert("You are currently not whitelisted to Play [client.prefs.species].")
@@ -776,7 +776,7 @@
to_chat(src,"You are not allowed to spawn in as this species.")
//Custom species checks
- if (client && client.prefs && client.prefs.species == "Custom Species")
+ if (client && client.prefs && client.prefs.species == SPECIES_CUSTOM)
//Didn't name it
if(!client.prefs.custom_species)
diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm
index 0705cee55bc..bd50f8f87c0 100644
--- a/code/modules/mob/new_player/preferences_setup.dm
+++ b/code/modules/mob/new_player/preferences_setup.dm
@@ -1,7 +1,7 @@
/datum/preferences
//The mob should have a gender you want before running this proc. Will run fine without H
/datum/preferences/proc/randomize_appearance_and_body_for(var/mob/living/carbon/human/H)
- var/datum/species/current_species = GLOB.all_species[species ? species : "Human"]
+ var/datum/species/current_species = GLOB.all_species[species ? species : SPECIES_HUMAN]
set_biological_gender(pick(current_species.genders))
h_style = random_hair_style(biological_gender, species)
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm
index 1aa452db36d..d44debb433c 100644
--- a/code/modules/mob/new_player/sprite_accessories.dm
+++ b/code/modules/mob/new_player/sprite_accessories.dm
@@ -2374,14 +2374,14 @@
icon_state = "sergal_full"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
- species_allowed = list("Sergal")
+ species_allowed = list(SPECIES_SERGAL)
sergal_full_female
name = "Sergal Markings (Female)"
icon_state = "sergal_full_female"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
- species_allowed = list("Sergal")
+ species_allowed = list(SPECIES_SERGAL)
monoeye
name = "Monoeye"
@@ -2727,7 +2727,7 @@
name = "Panda Eye Markings"
icon_state = "eyes_panda"
body_parts = list(BP_HEAD)
- species_allowed = list("Human")
+ species_allowed = list(SPECIES_HUMAN)
catwomantorso
name = "Catwoman chest stripes"
diff --git a/code/modules/multiz/hoist.dm b/code/modules/multiz/hoist.dm
index 8df427ef233..5a7d02f1f66 100644
--- a/code/modules/multiz/hoist.dm
+++ b/code/modules/multiz/hoist.dm
@@ -12,7 +12,7 @@
/obj/item/hoist_kit/attack_self(mob/user)
new /obj/structure/hoist (get_turf(user), user.dir)
- user.visible_message(span("warning", "[user] deploys the hoist kit!"), span("notice", "You deploy the hoist kit!"), span("notice", "You hear the sound of parts snapping into place."))
+ user.visible_message(SPAN_WARNING( "[user] deploys the hoist kit!"), SPAN_NOTICE("You deploy the hoist kit!"), SPAN_NOTICE("You hear the sound of parts snapping into place."))
qdel(src)
/obj/effect/hoist_hook
@@ -33,13 +33,13 @@
return
if (!AM.simulated || AM.anchored)
- to_chat(user, span("notice", "You can't do that."))
+ to_chat(user, SPAN_NOTICE("You can't do that."))
return
if (source_hoist.hoistee)
- to_chat(user, span("notice", "\The [source_hoist.hoistee] is already attached to \the [src]!"))
+ to_chat(user, SPAN_NOTICE("\The [source_hoist.hoistee] is already attached to \the [src]!"))
return
source_hoist.attach_hoistee(AM)
- user.visible_message(span("danger", "[user] attaches \the [AM] to \the [src]."), span("danger", "You attach \the [AM] to \the [src]."), span("danger", "You hear something clamp into place."))
+ user.visible_message(SPAN_DANGER("[user] attaches \the [AM] to \the [src]."), SPAN_DANGER("You attach \the [AM] to \the [src]."), SPAN_DANGER("You hear something clamp into place."))
/obj/structure/hoist/proc/attach_hoistee(atom/movable/AM)
if (get_turf(AM) != get_turf(source_hook))
@@ -58,11 +58,11 @@
return
if (usr.incapacitated())
- to_chat(usr, span("notice", "You can't do that while incapacitated."))
+ to_chat(usr, SPAN_NOTICE("You can't do that while incapacitated."))
return
if (!usr.IsAdvancedToolUser())
- to_chat(usr, span("notice", "You stare cluelessly at \the [src]."))
+ to_chat(usr, SPAN_NOTICE("You stare cluelessly at \the [src]."))
return
if (!source_hoist.hoistee)
@@ -76,7 +76,7 @@
var/turf/desturf = dest
source_hoist.hoistee.forceMove(desturf)
- usr.visible_message(span("danger", "[usr] detaches \the [source_hoist.hoistee] from the hoist clamp."), span("danger", "You detach \the [source_hoist.hoistee] from the hoist clamp."), span("danger", "You hear something unclamp."))
+ usr.visible_message(SPAN_DANGER("[usr] detaches \the [source_hoist.hoistee] from the hoist clamp."), SPAN_DANGER("You detach \the [source_hoist.hoistee] from the hoist clamp."), SPAN_DANGER("You hear something unclamp."))
source_hoist.release_hoistee()
// This will handle mobs unbuckling themselves.
@@ -178,25 +178,25 @@
return
if (user.incapacitated())
- to_chat(user, span("notice", "You can't do that while incapacitated."))
+ to_chat(user, SPAN_NOTICE("You can't do that while incapacitated."))
return
if (!user.IsAdvancedToolUser())
- to_chat(user, span("notice", "You stare cluelessly at \the [src]."))
+ to_chat(user, SPAN_NOTICE("You stare cluelessly at \the [src]."))
return
if(broken)
- to_chat(user, span("warning", "The hoist is broken!"))
+ to_chat(user, SPAN_WARNING( "The hoist is broken!"))
return
var/can = can_move_dir(movedir)
var/movtext = movedir == UP ? "raise" : "lower"
if (!can) // If you can't...
movedir = movedir == UP ? DOWN : UP // switch directions!
- to_chat(user, span("notice", "You switch the direction of the pulley."))
+ to_chat(user, SPAN_NOTICE("You switch the direction of the pulley."))
return
if (!hoistee)
- user.visible_message(span("notice", "[user] begins to [movtext] the clamp."), span("notice", "You begin to [movtext] the clamp."), span("notice", "You hear the sound of a crank."))
+ user.visible_message(SPAN_NOTICE("[user] begins to [movtext] the clamp."), SPAN_NOTICE("You begin to [movtext] the clamp."), SPAN_NOTICE("You hear the sound of a crank."))
move_dir(movedir, 0)
return
@@ -210,7 +210,7 @@
var/obj/O = hoistee
size = O.w_class
- user.visible_message(span("notice", "[user] begins to [movtext] \the [hoistee]!"), span("notice", "You begin to [movtext] \the [hoistee]!"), span("notice", "You hear the sound of a crank."))
+ user.visible_message(SPAN_NOTICE("[user] begins to [movtext] \the [hoistee]!"), SPAN_NOTICE("You begin to [movtext] \the [hoistee]!"), SPAN_NOTICE("You hear the sound of a crank."))
if (do_after(user, (1 SECONDS) * size / 4, target = src))
move_dir(movedir, 1)
@@ -229,11 +229,11 @@
if (isobserver(usr) || usr.incapacitated())
return
if (!usr.IsAdvancedToolUser()) // thanks nanacode
- to_chat(usr, span("notice", "You stare cluelessly at \the [src]."))
+ to_chat(usr, SPAN_NOTICE("You stare cluelessly at \the [src]."))
return
if (hoistee)
- to_chat(usr, span("notice", "You cannot collapse the hoist with \the [hoistee] attached!"))
+ to_chat(usr, SPAN_NOTICE("You cannot collapse the hoist with \the [hoistee] attached!"))
return
collapse_kit()
diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm
index 0f07df617bb..94fc6ceec43 100644
--- a/code/modules/multiz/movement.dm
+++ b/code/modules/multiz/movement.dm
@@ -58,7 +58,7 @@
to_chat(src, "You gave up on pulling yourself up.")
return 0
else if(ismob(src)) //VOREStation Edit Start. Are they a mob, and are they currently flying??
- var/mob/H = src
+ var/mob/living/H = src
if(H.flying)
if(H.incapacitated(INCAPACITATION_ALL))
to_chat(src, "You can't fly in your current state.")
diff --git a/code/modules/organs/internal/augment.dm b/code/modules/organs/internal/augment.dm
index 03b70d4c43a..68e38fe233b 100644
--- a/code/modules/organs/internal/augment.dm
+++ b/code/modules/organs/internal/augment.dm
@@ -10,20 +10,32 @@
robotic = ORGAN_ROBOT
parent_organ = BP_TORSO
- organ_verbs = list(/mob/living/carbon/human/proc/augment_menu) // Verbs added by the organ when present in the body.
- target_parent_classes = list() // Is the parent supposed to be organic, robotic, assisted?
- forgiving_class = FALSE // Will the organ give its verbs when it isn't a perfect match? I.E., assisted in organic, synthetic in organic.
+ /// Verbs added by the organ when present in the body.
+ organ_verbs = list(/mob/living/carbon/human/proc/augment_menu)
+ /// Is the parent supposed to be organic, robotic, assisted?
+ target_parent_classes = list()
+ /// Will the organ give its verbs when it isn't a perfect match? I.E., assisted in organic, synthetic in organic.
+ forgiving_class = FALSE
- var/obj/item/integrated_object // Objects held by the organ, used for re-usable, deployable things.
- var/integrated_object_type // Object type the organ will spawn.
+ butcherable = FALSE
+
+ /// Objects held by the organ, used for re-usable, deployable things.
+ var/obj/item/integrated_object
+ /// Object type the organ will spawn.
+ var/integrated_object_type
var/target_slot = null
var/silent_deploy = FALSE
+ //* Raidal vars *//
+ /// Holder for the augment's image.
var/image/my_radial_icon = null
- var/radial_icon = null // DMI for the augment's radial icon.
- var/radial_name = null // The augment's name in the Radial Menu.
- var/radial_state = null // Icon state for the augment's radial icon.
+ /// DMI for the augment's radial icon.
+ var/radial_icon = null
+ /// The augment's name in the Radial Menu.
+ var/radial_name = null
+ /// Icon state for the augment's radial icon.
+ var/radial_state = null
var/aug_cooldown = 30 SECONDS
var/last_activate = null
@@ -80,8 +92,10 @@
// Attaches to the end of dropped items' code.
/obj/item
- var/destroy_on_drop = FALSE // Used by augments to determine if the item should destroy itself when dropped, or return to its master.
- var/obj/item/organ/my_augment = null // Used to reference the object's host organ.
+/// Used by augments to determine if the item should destroy itself when dropped, or return to its master.
+ var/destroy_on_drop = FALSE
+ /// Used to reference the object's host organ.
+ var/obj/item/organ/my_augment = null
/obj/item/dropped(mob/user)
. = ..()
diff --git a/code/modules/organs/internal/brain.dm b/code/modules/organs/internal/brain.dm
index 7f420a1ccd2..ba87a374558 100644
--- a/code/modules/organs/internal/brain.dm
+++ b/code/modules/organs/internal/brain.dm
@@ -98,9 +98,10 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
brainmob = new(src)
brainmob.name = H.real_name
brainmob.real_name = H.real_name
- brainmob.dna = H.dna.Clone()
- brainmob.timeofhostdeath = H.timeofdeath
- brainmob.ooc_notes = H.ooc_notes
+ if(istype(H))
+ brainmob.dna = H.dna.Clone()
+ brainmob.timeofhostdeath = H.timeofdeath
+ brainmob.ooc_notes = H.ooc_notes
// Copy modifiers.
for(var/datum/modifier/M in H.modifiers)
@@ -112,7 +113,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
brainmob.languages = H.languages
- to_chat(brainmob, "You feel slightly disoriented. That's normal when you're just \a [initial(src.name)].")
+ to_chat(brainmob, SPAN_NOTICE("You feel slightly disoriented. That's normal when you're just \a [initial(src.name)]."))
callHook("debrain", list(brainmob))
/obj/item/organ/internal/brain/examine(mob/user) // -- TLE
@@ -127,13 +128,13 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
if(name == initial(name))
name = "\the [owner.real_name]'s [initial(name)]"
- var/mob/living/simple_mob/animal/borer/borer = owner.has_brain_worms()
+ var/mob/living/simple_mob/animal/borer/borer = owner?.has_brain_worms()
if(borer)
- borer.detatch() //Should remove borer if the brain is removed - RR
+ borer.detatch() //Should remove borer if the brain is removed
var/obj/item/organ/internal/brain/B = src
- if(istype(B) && istype(owner))
+ if(istype(B) && owner)
B.transfer_identity(owner)
..()
@@ -277,7 +278,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
name = "Promethean Revival"
id = "prom_revival"
result = null
- required_reagents = list("phoron" = 40)
+ required_reagents = list(MAT_PHORON = 40)
result_amount = 1
/datum/chemical_reaction/promethean_brain_revival/can_happen(var/datum/reagents/holder)
diff --git a/code/modules/organs/internal/liver.dm b/code/modules/organs/internal/liver.dm
index 4212ae067e9..050c2712a27 100644
--- a/code/modules/organs/internal/liver.dm
+++ b/code/modules/organs/internal/liver.dm
@@ -7,7 +7,7 @@
/obj/item/organ/internal/liver/process(delta_time)
..()
- if(!owner)
+ if(!iscarbon(owner))
return
if((owner.life_tick % 10) == 0)
diff --git a/code/modules/organs/internal/robotic/_robotic.dm b/code/modules/organs/internal/robotic/_robotic.dm
index 40024a95fdb..6404d8e753f 100644
--- a/code/modules/organs/internal/robotic/_robotic.dm
+++ b/code/modules/organs/internal/robotic/_robotic.dm
@@ -3,9 +3,11 @@
desc = "A complex piece of a much more complex machine."
icon_state = "eyes-prosthetic"
- /// It's a robotic part. Why would it reject.
+ // It's a robotic part. Why would it reject.
can_reject = FALSE
- /// Ditto. Rust takes a while.
+ // Ditto. Rust takes a while.
decays = FALSE
-
+ // Well of course this organ is of the robotic type.
robotic = ORGAN_ROBOT
+ // I'd like to see you try to butcher a robot.
+ butcherable = FALSE
diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm
index f349f4545b6..27e79f536c3 100644
--- a/code/modules/organs/organ.dm
+++ b/code/modules/organs/organ.dm
@@ -7,51 +7,83 @@ var/list/organ_cache = list()
drop_sound = 'sound/items/drop/flesh.ogg'
pickup_sound = 'sound/items/pickup/flesh.ogg'
- // Strings.
- var/organ_tag = "organ" // Unique identifier.
- var/parent_organ = BP_TORSO // Organ holding this object.
+ //* Strings. *//
+ /// Unique identifier.
+ var/organ_tag = "organ"
+ /// The organ holding this object.
+ var/parent_organ = BP_TORSO
- // Status tracking.
- var/status = 0 // Various status flags
- var/vital // Lose a vital limb, die immediately.
- var/damage = 0 // Current damage to the organ
+ //* Status tracking. *//
+ /// Various status flags
+ var/status = 0
+ /// Lose a vital limb, die immediately.
+ var/vital
+ /// Current damage to the organ
+ var/damage = 0
+ /// Flag for what kind of robotic organ, if valid.
var/robotic = 0
+ /// If true, this organ can't feel pain.
var/stapled_nerves = FALSE
- // Reference data.
- var/mob/living/carbon/human/owner // Current mob owning the organ.
- var/list/transplant_data // Transplant match data.
- var/list/autopsy_data = list() // Trauma data for forensics.
- var/list/trace_chemicals = list() // Traces of chemicals in the organ.
- var/datum/dna/dna // Original DNA.
- var/datum/species/species // Original species.
+ //* Reference data. *//
+ /// Current mob owning the organ.
+ var/mob/living/carbon/human/owner
+ /// Transplant match data.
+ var/list/transplant_data
+ /// Trauma data for forensics.
+ var/list/autopsy_data = list()
+ /// Traces of chemicals in the organ.
+ var/list/trace_chemicals = list()
+ /// Original DNA.
+ var/datum/dna/dna
+ /// Original species.
+ var/datum/species/species
var/s_base
- // Damage vars.
- var/min_bruised_damage = 10 // Damage before considered bruised
- var/min_broken_damage = 30 // Damage before becoming broken
- var/max_damage // Damage cap
- var/can_reject = 1 // Can this organ reject?
- var/rejecting // Is this organ already being rejected?
- var/decays = TRUE // Can this organ decay at all?
- var/preserved = 0 // If this is 1, prevents organ decay.
+ //* Damage vars. *//
+ /// Damage before considered bruised
+ var/min_bruised_damage = 10
+ /// Damage before becoming broken
+ var/min_broken_damage = 30
+ /// Damage cap
+ var/max_damage
+ /// Can this organ reject?
+ var/can_reject = TRUE
+ /// Is this organ already being rejected?
+ var/rejecting
+ /// Can this organ decay at all?
+ var/decays = TRUE
+ /// If true, prevent organ decay.
+ var/preserved = FALSE
- // Language vars. Putting them here in case we decide to do something crazy with sign-or-other-nonverbal languages.
+ //* Language vars. Putting them here in case we decide to do something crazy with sign-or-other-nonverbal languages.
var/list/will_assist_languages = list()
var/list/datum/language/assists_languages = list()
- // Organ verb vars.
- var/list/organ_verbs // Verbs added by the organ when present in the body.
- var/list/target_parent_classes = list() // Is the parent supposed to be organic, robotic, assisted?
- var/forgiving_class = TRUE // Will the organ give its verbs when it isn't a perfect match? I.E., assisted in organic, synthetic in organic.
+ //* Organ verb vars.
+ /// Verbs added by the organ when present in the body.
+ var/list/organ_verbs
+ /// Is the parent supposed to be organic, robotic, assisted?
+ var/list/target_parent_classes = list()
+ /// Will the organ give its verbs when it isn't a perfect match? I.E., assisted in organic, synthetic in organic.
+ var/forgiving_class = TRUE
+
+ /// Can we butcher this organ.
+ var/butcherable = TRUE
+ /// What does butchering, if possible, make?
+ var/meat_type
/obj/item/organ/Destroy()
handle_organ_mod_special(TRUE)
- if(owner) owner = null
- if(transplant_data) transplant_data.Cut()
- if(autopsy_data) autopsy_data.Cut()
- if(trace_chemicals) trace_chemicals.Cut()
+ if(owner)
+ owner = null
+ if(transplant_data)
+ transplant_data.Cut()
+ if(autopsy_data)
+ autopsy_data.Cut()
+ if(trace_chemicals)
+ trace_chemicals.Cut()
dna = null
species = null
@@ -62,20 +94,42 @@ var/list/organ_cache = list()
/obj/item/organ/Initialize(mapload, internal)
. = ..()
- var/mob/living/carbon/holder = loc
+ var/mob/living/holder = loc
create_reagents(5)
- if(!max_damage)
- max_damage = min_broken_damage * 2
- if(istype(holder))
+
+ if(isliving(holder))
src.owner = holder
src.w_class = max(src.w_class + mob_size_difference(holder.mob_size, MOB_MEDIUM), 1) //smaller mobs have smaller organs.
+ if(internal)
+ if(!LAZYLEN(holder.internal_organs))
+ holder.internal_organs = list()
+ if(!LAZYLEN(holder.internal_organs_by_name))
+ holder.internal_organs_by_name = list()
+
+ holder.internal_organs |= src
+ holder.internal_organs_by_name[organ_tag] = src
+
+ else
+ if(!LAZYLEN(holder.organs))
+ holder.organs = list()
+ if(!LAZYLEN(holder.organs_by_name))
+ holder.organs_by_name = list()
+
+ holder.organs |= src
+ holder.organs_by_name[organ_tag] = src
+
+ if(!max_damage)
+ max_damage = min_broken_damage * 2
+
+ if(iscarbon(holder))
+ var/mob/living/carbon/C = holder
species = GLOB.all_species[SPECIES_HUMAN]
if(holder.dna)
- dna = holder.dna.Clone()
- species = holder.species //VOREStation Edit - For custom species
+ dna = C.dna.Clone()
+ species = C.species //For custom species
else
stack_trace("[src] at [loc] spawned without a proper DNA.")
- var/mob/living/carbon/human/H = holder
+ var/mob/living/carbon/human/H = C
if(istype(H))
if(internal)
var/obj/item/organ/external/E = H.get_organ(parent_organ)
@@ -83,15 +137,26 @@ var/list/organ_cache = list()
if(E.internal_organs == null)
E.internal_organs = list()
E.internal_organs |= src
- H.internal_organs_by_name[organ_tag] = src
if(dna)
if(!blood_DNA)
blood_DNA = list()
blood_DNA[dna.unique_enzymes] = dna.b_type
- if(internal)
- holder.internal_organs |= src
else
- species = GLOB.all_species["Human"]
+ species = GLOB.all_species[SPECIES_HUMAN]
+
+ if(owner)
+ if(!meat_type)
+ if(owner.isSynthetic())
+ meat_type = /obj/item/stack/material/steel
+ else if(ishuman(owner))
+ var/mob/living/carbon/human/H = owner
+ meat_type = H?.species?.meat_type
+
+ if(!meat_type)
+ if(owner.meat_type)
+ meat_type = owner.meat_type
+ else
+ meat_type = /obj/item/reagent_containers/food/snacks/meat
handle_organ_mod_special()
@@ -137,7 +202,7 @@ var/list/organ_cache = list()
handle_organ_proc_special()
//Process infections
- if(robotic >= ORGAN_ROBOT || (owner && owner.species && (owner.species.flags & IS_PLANT || (owner.species.flags & NO_INFECT))))
+ if(robotic >= ORGAN_ROBOT || (istype(owner) && (owner.species && (owner.species.flags & (IS_PLANT | NO_INFECT)))))
germ_level = 0
return
@@ -155,7 +220,7 @@ var/list/organ_cache = list()
if(germ_level >= INFECTION_LEVEL_THREE)
die()
- else if(owner && owner.bodytemperature >= 170) //cryo stops germs from moving and doing their bad stuffs
+ else if(owner && owner?.bodytemperature >= 170) //cryo stops germs from moving and doing their bad stuffs
//** Handle antibiotics and curing infections
handle_antibiotics()
handle_rejection()
@@ -166,18 +231,18 @@ var/list/organ_cache = list()
if(status & ORGAN_DEAD)
. += "The decay has set in."
-//A little wonky: internal organs stop calling this (they return early in process) when dead, but external ones cause further damage when dead
+///A little wonky: internal organs stop calling this (they return early in process) when dead, but external ones cause further damage when dead
/obj/item/organ/proc/handle_germ_effects()
- //** Handle the effects of infections
+ //* Handle the effects of infections
if(robotic >= ORGAN_ROBOT) //Just in case!
germ_level = 0
return 0
- var/antibiotics = owner.chem_effects[CE_ANTIBIOTIC] || 0
+ var/antibiotics = iscarbon(owner) ? owner.chem_effects[CE_ANTIBIOTIC] || 0 : 0
var/infection_damage = 0
- /// Infection damage
+ //* Infection damage *//
//If the organ is dead, for the sake of organs that may have died due to non-infection, we'll only do damage if they have at least L1 infection (built up below)
if((status & ORGAN_DEAD) && antibiotics < ANTIBIO_OD && germ_level >= INFECTION_LEVEL_ONE)
@@ -192,7 +257,7 @@ var/list/organ_cache = list()
if (germ_level > 0 && germ_level < INFECTION_LEVEL_ONE/2 && prob(30))
adjust_germ_level(-antibiotics)
- /// Germ Accumulation
+ //* Germ Accumulation
//Dead organs accumulate germs indefinitely
if(status & ORGAN_DEAD)
@@ -206,10 +271,12 @@ var/list/organ_cache = list()
//Level 1 qualifies for specific organ processing effects
if(germ_level >= INFECTION_LEVEL_ONE)
- . = 1
- var/fever_temperature = owner.species.heat_discomfort_level * 1.10 //Heat discomfort level plus 10%
- if(owner.bodytemperature < fever_temperature)
- owner.bodytemperature += min(0.2,(fever_temperature - owner.bodytemperature) / 10) //Will usually climb by 0.2, else 10% of the difference if less
+ . = 1 //Organ qualifies for effect-specific processing
+ //var/fever_temperature = (owner.species.heat_level_1 - owner.species.body_temperature - 5)* min(germ_level/INFECTION_LEVEL_TWO, 1) + owner.species.body_temperature
+ //owner.bodytemperature += between(0, (fever_temperature - T20C)/BODYTEMP_COLD_DIVISOR + 1, fever_temperature - owner.bodytemperature)
+ var/fever_temperature = owner?.species.heat_discomfort_level * 1.10 //Heat discomfort level plus 10%
+ if(owner?.bodytemperature < fever_temperature)
+ owner?.bodytemperature += min(0.2,(fever_temperature - owner?.bodytemperature) / 10) //Will usually climb by 0.2, else 10% of the difference if less
//Level two qualifies for further processing effects
if (germ_level >= INFECTION_LEVEL_TWO)
@@ -226,7 +293,7 @@ var/list/organ_cache = list()
// immunosuppressant that changes transplant data to make it match.
if(dna && can_reject)
if(!rejecting)
- if(blood_incompatible(dna.b_type, owner.dna.b_type, species.name, owner.species.name)) //VOREStation Edit - Process species by name.
+ if(blood_incompatible(dna.b_type, owner.dna.b_type, species.name, owner.species.name)) // Process species by name.
rejecting = 1
else
rejecting++ //Rejection severity increases over time.
@@ -272,21 +339,29 @@ var/list/organ_cache = list()
//Germs
/obj/item/organ/proc/handle_antibiotics()
- var/antibiotics = owner.chem_effects[CE_ANTIBIOTIC] || 0
+ if(istype(owner))
+ var/antibiotics = owner.chem_effects[CE_ANTIBIOTIC] || 0
- if (!germ_level || antibiotics < ANTIBIO_NORM)
- return
+ if (!germ_level || antibiotics < ANTIBIO_NORM)
+ return
- if (germ_level < INFECTION_LEVEL_ONE)
- germ_level = 0 //cure instantly
- else if (germ_level < INFECTION_LEVEL_TWO)
- adjust_germ_level(-antibiotics*4) //at germ_level < 500, this should cure the infection in a minute
- else if (germ_level < INFECTION_LEVEL_THREE)
- adjust_germ_level(-antibiotics*2) //at germ_level < 1000, this will cure the infection in 5 minutes
- else
- adjust_germ_level(-antibiotics) // You waited this long to get treated, you don't really deserve this organ
+ // Cure instantly
+ if (germ_level < INFECTION_LEVEL_ONE)
+ germ_level = 0
-//Adds autopsy data for used_weapon.
+ /// At germ_level < 500, this should cure the infection in a minute
+ else if (germ_level < INFECTION_LEVEL_TWO)
+ adjust_germ_level(-antibiotics*4)
+
+ /// At germ_level < 1000, this will cure the infection in 5 minutes
+ else if (germ_level < INFECTION_LEVEL_THREE)
+ adjust_germ_level(-antibiotics*2)
+
+ else
+ /// You waited this long to get treated, you don't really deserve this organ.
+ adjust_germ_level(-antibiotics)
+
+///Adds autopsy data for used_weapon.
/obj/item/organ/proc/add_autopsy_data(var/used_weapon, var/damage)
var/datum/autopsy_data/W = autopsy_data[used_weapon]
if(!W)
@@ -307,26 +382,30 @@ var/list/organ_cache = list()
//only show this if the organ is not robotic
if(owner && parent_organ && amount > 0)
- var/obj/item/organ/external/parent = owner.get_organ(parent_organ)
+ var/obj/item/organ/external/parent = owner?.get_organ(parent_organ)
if(parent && !silent)
owner.custom_pain("Something inside your [parent.name] hurts a lot.", amount)
/obj/item/organ/proc/bruise()
damage = max(damage, min_bruised_damage)
-/obj/item/organ/proc/robotize() //Being used to make robutt hearts, etc
+/// Being used to make robutt hearts, etc
+/obj/item/organ/proc/robotize()
robotic = ORGAN_ROBOT
src.status &= ~ORGAN_BROKEN
src.status &= ~ORGAN_BLEEDING
src.status &= ~ORGAN_CUT_AWAY
-/obj/item/organ/proc/mechassist() //Used to add things like pacemakers, etc
+/// Used to add things like pacemakers, etc
+/obj/item/organ/proc/mechassist()
robotize()
robotic = ORGAN_ASSISTED
min_bruised_damage = 15
min_broken_damage = 35
+ butcherable = FALSE
-/obj/item/organ/proc/digitize() //Used to make the circuit-brain. On this level in the event more circuit-organs are added/tweaks are wanted.
+///Used to make the circuit-brain. On this level in the event more circuit-organs are added/tweaks are wanted.
+/obj/item/organ/proc/digitize()
robotize()
/obj/item/organ/emp_act(severity)
@@ -344,35 +423,35 @@ var/list/organ_cache = list()
take_damage(rand(1,3))
/obj/item/organ/proc/removed(var/mob/living/user)
+ if(owner)
+ owner.internal_organs_by_name[organ_tag] = null
+ owner.internal_organs_by_name -= organ_tag
+ owner.internal_organs_by_name -= null
+ owner.internal_organs -= src
- if(!istype(owner))
- return
+ var/obj/item/organ/external/affected = owner.get_organ(parent_organ)
+ if(affected) affected.internal_organs -= src
- owner.internal_organs_by_name[organ_tag] = null
- owner.internal_organs_by_name -= organ_tag
- owner.internal_organs_by_name -= null
- owner.internal_organs -= src
+ forceMove(owner.drop_location())
+ START_PROCESSING(SSobj, src)
+ rejecting = null
- var/obj/item/organ/external/affected = owner.get_organ(parent_organ)
- if(affected) affected.internal_organs -= src
+ if(istype(owner))
+ var/datum/reagent/blood/organ_blood = locate(/datum/reagent/blood) in reagents.reagent_list
+ if(!organ_blood || !organ_blood.data["blood_DNA"])
+ owner.vessel.trans_to(src, 5, 1, 1)
- loc = owner.drop_location()
- START_PROCESSING(SSobj, src)
- rejecting = null
- var/datum/reagent/blood/organ_blood = locate(/datum/reagent/blood) in reagents.reagent_list
- if(!organ_blood || !organ_blood.data["blood_DNA"])
- owner.vessel.trans_to(src, 5, 1, 1)
-
- if(owner && vital)
- if(user)
- add_attack_logs(user,owner,"Removed vital organ [src.name]")
- owner.death()
+ if(owner && vital)
+ if(user)
+ add_attack_logs(user, owner, "Removed vital organ [src.name]")
+ if(owner.stat != DEAD)
+ owner.can_defib = 0
+ owner.death()
handle_organ_mod_special(TRUE)
owner = null
-
/obj/item/organ/proc/replaced(var/mob/living/carbon/human/target,var/obj/item/organ/external/affected)
if(!istype(target)) return
@@ -380,13 +459,13 @@ var/list/organ_cache = list()
var/datum/reagent/blood/transplant_blood = locate(/datum/reagent/blood) in reagents.reagent_list
transplant_data = list()
if(!transplant_blood)
- transplant_data["species"] = target.species.name
- transplant_data["blood_type"] = target.dna.b_type
- transplant_data["blood_DNA"] = target.dna.unique_enzymes
+ transplant_data["species"] = target?.species.name
+ transplant_data["blood_type"] = target?.dna.b_type
+ transplant_data["blood_DNA"] = target?.dna.unique_enzymes
else
- transplant_data["species"] = transplant_blood.data["species"]
- transplant_data["blood_type"] = transplant_blood.data["blood_type"]
- transplant_data["blood_DNA"] = transplant_blood.data["blood_DNA"]
+ transplant_data["species"] = transplant_blood?.data["species"]
+ transplant_data["blood_type"] = transplant_blood?.data["blood_type"]
+ transplant_data["blood_DNA"] = transplant_blood?.data["blood_DNA"]
owner = target
loc = owner
@@ -402,7 +481,7 @@ var/list/organ_cache = list()
if(robotic >= ORGAN_ROBOT)
return
- to_chat(user, "You take an experimental bite out of \the [src].")
+ to_chat(user, SPAN_NOTICE("You take an experimental bite out of \the [src]."))
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in reagents.reagent_list
blood_splatter(src,B,1)
@@ -429,15 +508,56 @@ var/list/organ_cache = list()
bitten(user)
return
+/obj/item/organ/attackby(obj/item/W as obj, mob/user as mob)
+ if(can_butcher(W, user))
+ butcher(W, user)
+ return
+
+ return ..()
+
+/obj/item/organ/proc/can_butcher(var/obj/item/O, var/mob/living/user)
+ if(butcherable && meat_type)
+
+ if(istype(O, /obj/machinery/gibber)) // The great equalizer.
+ return TRUE
+
+ if(robotic >= ORGAN_ROBOT)
+ if(O.is_screwdriver())
+ return TRUE
+
+ else
+ if(is_sharp(O) && has_edge(O))
+ return TRUE
+
+ return FALSE
+
+/obj/item/organ/proc/butcher(var/obj/item/O, var/mob/living/user, var/atom/newtarget)
+ if(robotic >= ORGAN_ROBOT)
+ user?.visible_message(SPAN_NOTICE("[user] disassembles \the [src]."))
+
+ else
+ user?.visible_message(SPAN_NOTICE("[user] butchers \the [src]."))
+
+ if(!newtarget)
+ newtarget = get_turf(src)
+
+ var/obj/item/newmeat = new meat_type(newtarget)
+
+ if(istype(newmeat, /obj/item/reagent_containers/food/snacks/meat))
+ newmeat.name = "[src.name] [newmeat.name]" // "liver meat" "heart meat", etc.
+
+ qdel(src)
+
+
/obj/item/organ/proc/organ_can_feel_pain()
if(species.flags & NO_PAIN)
- return 0
+ return FALSE
if(status & ORGAN_DESTROYED)
- return 0
+ return FALSE
if(robotic && robotic < ORGAN_LIFELIKE) //Super fancy humanlike robotics probably have sensors, or something?
- return 0
+ return FALSE
if(stapled_nerves)
- return 0
+ return FALSE
return 1
/obj/item/organ/proc/handle_organ_mod_special(var/removed = FALSE) // Called when created, transplanted, and removed.
@@ -466,10 +586,12 @@ var/list/organ_cache = list()
owner.verbs -= verb_path
return
-/obj/item/organ/proc/handle_organ_proc_special() // Called when processed.
+/// Called when processed.
+/obj/item/organ/proc/handle_organ_proc_special()
return
-/obj/item/organ/proc/check_verb_compatability() // Used for determining if an organ should give or remove its verbs. I.E., FBP part in a human, no verbs. If true, keep or add.
+/// Used for determining if an organ should give or remove its verbs. I.E., FBP part in a human, no verbs. If true, keep or add.
+/obj/item/organ/proc/check_verb_compatability()
if(owner)
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
@@ -500,8 +622,10 @@ var/list/organ_cache = list()
/obj/item/organ/proc/refresh_action_button()
return action
+
/obj/item/organ/proc/can_recover()
return (max_damage > 0) && !(status & ORGAN_DEAD)
+
/obj/item/organ/proc/heal_damage_a(amount)
if (can_recover())
damage = between(0, damage - round(amount, 0.1), max_damage)
diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm
index 56062eda9bd..3fde09b3c02 100644
--- a/code/modules/organs/organ_external.dm
+++ b/code/modules/organs/organ_external.dm
@@ -14,71 +14,119 @@
dir = SOUTH
organ_tag = "limb"
- // Strings
- var/broken_description // fracture string if any.
- var/damage_state = "00" // Modifier used for generating the on-mob damage overlay for this limb.
+ //* Strings *//
+ /// Fracture description if any.
+ var/broken_description
+ /// Modifier used for generating the on-mob damage overlay for this limb.
+ var/damage_state = "00"
- // Damage vars.
- var/brute_mod = 1 // Multiplier for incoming brute damage.
- var/burn_mod = 1 // As above for burn.
- var/brute_dam = 0 // Actual current brute damage.
- var/burn_dam = 0 // Actual current burn damage.
- var/last_dam = -1 // used in healing/processing calculations.
+ //* Damage vars. *//
+ /// Multiplier for incoming brute damage.
+ var/brute_mod = 1
+ /// As above for burn.
+ var/burn_mod = 1
+ /// Actual current brute damage.
+ var/brute_dam = 0
+ /// Actual current burn damage.
+ var/burn_dam = 0
+ /// used in healing/processing calculations.
+ var/last_dam = -1
var/spread_dam = 0
- var/thick_skin = 0 // If a needle has a chance to fail to penetrate.
+ /// If a needle has a chance to fail to penetrate.
+ var/thick_skin = 0
/// EMP damage multiplier
var/emp_mod = 1
- // Appearance vars.
- var/nonsolid // Snowflake warning, reee. Used for slime limbs.
- var/icon_name = null // Icon state base.
- var/body_part = null // Part flag
- var/icon_position = 0 // Used in mob overlay layering calculations.
- var/model // Used when caching robolimb icons.
- var/force_icon // Used to force override of species-specific limb icons (for prosthetics).
- var/icon/mob_icon // Cached icon for use in mob overlays.
- var/gendered_icon = 0 // Whether or not the icon state appends a gender.
- var/s_tone // Skin tone.
- var/list/s_col // skin colour
- var/s_col_blend = ICON_ADD // How the skin colour is applied.
- var/list/h_col // hair colour
- var/body_hair // Icon blend for body hair if any.
+ //* Appearance vars. *//
+ /// Snowflake warning, reee. Used for slime limbs.
+ var/nonsolid
+ /// Also for slimes. Used for transparent limbs.
+ var/transparent = 0
+ /// Icon state base.
+ var/icon_name = null
+ /// Part flag
+ var/body_part = null
+ /// Used in mob overlay layering calculations.
+ var/icon_position = 0
+ /// Used when caching robolimb icons.
+ var/model
+ /// Used to force override of species-specific limb icons (for prosthetics). Also used for any limbs chopped from a simple mob, and then attached to humans.
+ var/force_icon
+ /// Used to force the override of the icon-key generated using the species. Must be used in tandem with the above.
+ var/force_icon_key
+ /// Cached icon for use in mob overlays.
+ var/icon/mob_icon
+ /// Whether or not the icon state appends a gender.
+ var/gendered_icon = 0
+ /// Skin tone.
+ var/s_tone
+ /// Skin colour
+ var/list/s_col
+ /// How the skin colour is applied.
+ var/s_col_blend = ICON_ADD
+ /// Hair colour
+ var/list/h_col
+ /// Icon blend for body hair if any.
+ var/body_hair
var/mob/living/applied_pressure
- var/list/markings = list() // Markings (body_markings) to apply to the icon
+ /// Markings (body_markings) to apply to the icon
+ var/list/markings = list()
- // Wound and structural data.
- var/wound_update_accuracy = 1 // how often wounds should be updated, a higher number means less often
- var/list/wounds = list() // wound datum list.
- var/number_wounds = 0 // number of wounds, which is NOT wounds.len!
- var/obj/item/organ/external/parent // Master-limb.
- var/list/children = list() // Sub-limbs.
- var/list/internal_organs = list() // Internal organs of this body part
- var/sabotaged = 0 // If a prosthetic limb is emagged, it will detonate when it fails.
- var/list/implants = list() // Currently implanted objects.
- var/organ_rel_size = 25 // Relative size of the organ.
- var/base_miss_chance = 20 // Chance of missing.
+ //* Wound and structural data. *//
+ /// How often wounds should be updated, a higher number means less often
+ var/wound_update_accuracy = 1
+ /// Wound datum list.
+ var/list/wounds = list()
+ /// Number of wounds, which is NOT wounds.len!
+ var/number_wounds = 0
+ /// Master-limb.
+ var/obj/item/organ/external/parent
+ /// Sub-limbs.
+ var/list/children = list()
+ /// Internal organs of this body part
+ var/list/internal_organs = list()
+ /// If a prosthetic limb is emagged, it will detonate when it fails.
+ var/sabotaged = 0
+ /// Currently implanted objects.
+ var/list/implants = list()
+ /// Relative size of the organ.
+ var/organ_rel_size = 25
+ /// Chance of missing.
+ var/base_miss_chance = 20
var/atom/movable/splinted
- // Joint/state stuff.
- var/can_grasp // It would be more appropriate if these two were named "affects_grasp" and "affects_stand" at this point
- var/can_stand // Modifies stance tally/ability to stand.
- var/disfigured = 0 // Scarred/burned beyond recognition.
- var/cannot_amputate // Impossible to amputate.
- var/cannot_break // Impossible to fracture.
- var/cannot_gib // Impossible to gib, distinct from amputation.
- var/joint = "joint" // Descriptive string used in dislocation.
- var/amputation_point // Descriptive string used in amputation.
- var/dislocated = 0 // If you target a joint, you can dislocate the limb, impairing it's usefulness and causing pain
- var/encased // Needs to be opened with a saw to access the organs.
+ //* Joint/state stuff. *//
+ /// It would be more appropriate if these two were named "affects_grasp" and "affects_stand" at this point
+ var/can_grasp
+ /// Modifies stance tally/ability to stand.
+ var/can_stand
+ /// Scarred/burned beyond recognition.
+ var/disfigured = 0
+ /// Impossible to amputate.
+ var/cannot_amputate
+ /// Impossible to fracture.
+ var/cannot_break
+ /// Impossible to gib, distinct from amputation.
+ var/cannot_gib
+ /// Descriptive string used in dislocation.
+ var/joint = "joint"
+ /// Descriptive string used in amputation.
+ var/amputation_point
+ /// If you target a joint, you can dislocate the limb, impairing it's usefulness and causing pain.
+ var/dislocated = 0
+ /// Needs to be opened with a saw to access the organs.
+ var/encased
- // Surgery vars.
+ //* Surgery vars. *//
var/open = 0
var/stage = 0
var/cavity = 0
- var/burn_stage = 0 //Surgical repair stage for burn.
- var/brute_stage = 0 //Surgical repair stage for brute.
+ /// Surgical repair stage for burn.
+ var/burn_stage = 0
+ /// Surgical repair stage for brute.
+ var/brute_stage = 0
- // HUD element variable, see organ_icon.dm get_damage_hud_image()
+ /// HUD element variable, see organ_icon.dm get_damage_hud_image()
var/image/hud_damage_image
/// makes this dumb as fuck mechanic slightly less awful - records queued syringe infections instead of a spawn()
@@ -101,14 +149,14 @@
qdel(splinted)
splinted = null
- if(owner)
+ if(istype(owner))
owner.organs -= src
owner.organs_by_name[organ_tag] = null
owner.organs_by_name -= organ_tag
while(null in owner.organs)
owner.organs -= null
- implants.Cut() //VOREStation Add - Remove these too!
+ implants.Cut() // Remove these too!
return ..()
@@ -203,7 +251,7 @@
return
dislocated = 1
- if(owner)
+ if(istype(owner))
owner.verbs |= /mob/living/carbon/human/proc/relocate
/obj/item/organ/external/proc/relocate()
@@ -211,7 +259,7 @@
return
dislocated = 0
- if(owner)
+ if(istype(owner))
owner.shock_stage += 20
//check to see if we still need the verb
@@ -225,7 +273,7 @@
/obj/item/organ/external/Initialize(mapload)
. = ..(mapload, FALSE)
- if(owner)
+ if(istype(owner))
replaced(owner)
sync_colour_to_human(owner)
addtimer(CALLBACK(src, .proc/get_icon), 1)
@@ -882,11 +930,11 @@ Note that amputating the affected organ does in fact remove the infection from t
var/mob/living/carbon/human/victim = owner //Keep a reference for post-removed().
var/obj/item/organ/external/parent_organ = parent
- var/use_flesh_colour = species.get_flesh_colour(owner)
- var/use_blood_colour = species.get_blood_colour(owner)
+ var/use_flesh_colour = species?.get_flesh_colour(owner) ? species.get_flesh_colour(owner) : "#C80000"
+ var/use_blood_colour = species?.get_blood_colour(owner) ? species.get_blood_colour(owner) : "#C80000"
removed(null, ignore_children)
- victim.traumatic_shock += 60
+ victim?.traumatic_shock += 60
if(parent_organ)
var/datum/wound/lost_limb/W = new (src, disintegrate, clean)
@@ -902,9 +950,12 @@ Note that amputating the affected organ does in fact remove the infection from t
stump.update_damages()
spawn(1)
- victim.updatehealth()
- victim.UpdateDamageIcon()
- victim.update_icons_body()
+ if(istype(victim))
+ victim.updatehealth()
+ victim.UpdateDamageIcon()
+ victim.update_icons_body()
+ else
+ victim.update_icons()
dir = 2
var/atom/droploc = victim.drop_location()
@@ -1231,7 +1282,7 @@ Note that amputating the affected organ does in fact remove the infection from t
organ.forceMove(src)
// Remove parent references
- parent.children -= src
+ parent?.children -= src
parent = null
release_restraints(victim)
@@ -1395,3 +1446,7 @@ Note that amputating the affected organ does in fact remove the infection from t
/obj/item/organ/external/proc/has_genitals()
return !BP_IS_ROBOTIC(src) && species && species.sexybits_location == organ_tag
+
+/obj/item/organ/external/proc/is_hidden_by_tail()
+ if(owner && owner.tail_style && owner.tail_style.hide_body_parts && (organ_tag in owner.tail_style.hide_body_parts))
+ return TRUE
diff --git a/code/modules/organs/organ_external_vr.dm b/code/modules/organs/organ_external_vr.dm
index 35627dceef1..0e3fb07d9ee 100644
--- a/code/modules/organs/organ_external_vr.dm
+++ b/code/modules/organs/organ_external_vr.dm
@@ -1,6 +1,3 @@
-/obj/item/organ/external
- var/transparent = 0 //For better slime limbs
-
//Sideways override for nanoform limbs (ugh)
/obj/item/organ/external/robotize(var/company, var/skip_prosthetics = FALSE, var/keep_organs = FALSE)
var/original_robotic = robotic
@@ -16,7 +13,3 @@
min_broken_damage = o_min_broken_damage
else
return ..()
-
-/obj/item/organ/external/proc/is_hidden_by_tail()
- if(owner && owner.tail_style && owner.tail_style.hide_body_parts && (organ_tag in owner.tail_style.hide_body_parts))
- return 1
diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm
index 50bd6c444d8..c4b1972588b 100644
--- a/code/modules/organs/organ_icon.dm
+++ b/code/modules/organs/organ_icon.dm
@@ -57,7 +57,7 @@ var/global/list/limb_icon_cache = list()
cut_overlays()
//Every 'addon' below requires information from species
- if(!owner || !owner.species)
+ if(!iscarbon(owner) || !owner.species)
return
//Eye color/icon
@@ -134,7 +134,10 @@ var/global/list/limb_icon_cache = list()
if(owner && owner.gender == MALE)
gender = "m"
- icon_cache_key = "[icon_name]_[species ? species.get_bodytype() : SPECIES_HUMAN]" //VOREStation Edit
+ if(!force_icon_key)
+ icon_cache_key = "[icon_name]_[species ? species.get_bodytype() : SPECIES_HUMAN]"
+ else
+ icon_cache_key = "[icon_name]_[force_icon_key]"
if(force_icon)
mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]")
diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm
index d5ba0997eb2..3815c6ba492 100644
--- a/code/modules/organs/robolimbs.dm
+++ b/code/modules/organs/robolimbs.dm
@@ -89,7 +89,7 @@ var/const/cyberbeast_monitor_styles = "blank=cyber_blank;\
///Intensity modifier for the health GUI indicator.
var/health_hud_intensity = 1
///If it should make the torso a species
- var/suggested_species = "Human"
+ var/suggested_species = SPECIES_HUMAN
///What icon_state to use for speech bubbles when talking. Check talk.dmi for all the icons.
var/speech_bubble_appearance = "synthetic"
///Multiplier for incoming brute damage.
diff --git a/code/modules/organs/subtypes/machine.dm b/code/modules/organs/subtypes/machine.dm
index 8678258b59f..fcfb0f30f14 100644
--- a/code/modules/organs/subtypes/machine.dm
+++ b/code/modules/organs/subtypes/machine.dm
@@ -39,6 +39,7 @@
var/brain_type = /obj/item/mmi
var/obj/item/mmi/stored_mmi
robotic = ORGAN_ASSISTED
+ butcherable = FALSE
/obj/item/organ/internal/mmi_holder/Destroy()
if(stored_mmi && (stored_mmi.loc == src))
diff --git a/code/modules/organs/subtypes/nano.dm b/code/modules/organs/subtypes/nano.dm
index 6cac8cc1722..f10ad1430bf 100644
--- a/code/modules/organs/subtypes/nano.dm
+++ b/code/modules/organs/subtypes/nano.dm
@@ -108,7 +108,7 @@
organ_tag = O_FACT
parent_organ = BP_TORSO
- var/list/materials = list(DEFAULT_WALL_MATERIAL = 0)
+ var/list/materials = list(MAT_STEEL = 0)
var/max_storage = 10000
var/processingbuffs = FALSE
diff --git a/code/modules/organs/subtypes/standard.dm b/code/modules/organs/subtypes/standard.dm
index 9226668b7dd..c98ca34ceef 100644
--- a/code/modules/organs/subtypes/standard.dm
+++ b/code/modules/organs/subtypes/standard.dm
@@ -282,14 +282,15 @@
/obj/item/organ/external/head/removed()
if(owner)
- name = "[owner.real_name]'s head"
- owner.drop_from_inventory(owner.glasses)
- owner.drop_from_inventory(owner.head)
- owner.drop_from_inventory(owner.l_ear)
- owner.drop_from_inventory(owner.r_ear)
- owner.drop_from_inventory(owner.wear_mask)
- spawn(1)
- owner.update_hair()
+ if(iscarbon(owner))
+ name = "[owner.real_name]'s head"
+ owner.drop_from_inventory(owner.glasses)
+ owner.drop_from_inventory(owner.head)
+ owner.drop_from_inventory(owner.l_ear)
+ owner.drop_from_inventory(owner.r_ear)
+ owner.drop_from_inventory(owner.wear_mask)
+ spawn(1)
+ owner.update_hair()
get_icon()
..()
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index 5c6826086a7..4f2c73bb70e 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -20,7 +20,7 @@
w_class = ITEMSIZE_TINY
throw_speed = 7
throw_range = 15
- matter = list(DEFAULT_WALL_MATERIAL = 10)
+ matter = list(MAT_STEEL = 10)
var/colour = "black" //what colour the ink is!
pressure_resistance = 2
drop_sound = 'sound/items/drop/accessory.ogg'
diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm
index a5b2ee275ba..8f1a1228e2c 100644
--- a/code/modules/paperwork/photography.dm
+++ b/code/modules/paperwork/photography.dm
@@ -126,7 +126,7 @@ var/global/photo_count = 0
item_state = "camera"
w_class = ITEMSIZE_SMALL
slot_flags = SLOT_BELT
- matter = list(DEFAULT_WALL_MATERIAL = 2000)
+ matter = list(MAT_STEEL = 2000)
var/pictures_max = 10
var/pictures_left = 10
var/on = 1
diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm
index 2b409297017..7fac8b4a94c 100644
--- a/code/modules/paperwork/stamps.dm
+++ b/code/modules/paperwork/stamps.dm
@@ -9,7 +9,7 @@
slot_flags = SLOT_HOLSTER
throw_speed = 7
throw_range = 15
- matter = list(DEFAULT_WALL_MATERIAL = 60)
+ matter = list(MAT_STEEL = 60)
pressure_resistance = 2
attack_verb = list("stamped")
diff --git a/code/modules/planet/weather.dm b/code/modules/planet/weather.dm
index 5e323a45096..c863c70f569 100644
--- a/code/modules/planet/weather.dm
+++ b/code/modules/planet/weather.dm
@@ -117,7 +117,7 @@
wind_speed = new_wind_speed
wind_dir = pick(GLOB.alldirs)
var/message = "You feel the wind blowing [wind_speed > 2 ? "strongly ": ""]towards the [dir2text(wind_dir)]."
- message_all_outdoor_players(span("warning", message))
+ message_all_outdoor_players(SPAN_WARNING( message))
/datum/weather_holder/proc/message_all_outdoor_players(message)
for(var/mob/M in player_list) // Don't need to care about clientless mobs.
diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm
index 59239075c3f..54ea831ae28 100644
--- a/code/modules/power/antimatter/shielding.dm
+++ b/code/modules/power/antimatter/shielding.dm
@@ -192,7 +192,7 @@ proc/cardinalrange(var/center)
throwforce = 5
throw_speed = 1
throw_range = 2
- matter = list(DEFAULT_WALL_MATERIAL = 100)
+ matter = list(MAT_STEEL = 100)
/obj/item/am_shielding_container/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/multitool) && istype(src.loc,/turf))
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index cc5bfcc43f1..fdc4d783a5f 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -23,7 +23,7 @@ By design, d1 is the smallest direction and d2 is the highest
*/
var/list/possible_cable_coil_colours = list(
"White" = COLOR_WHITE,
- "Silver" = COLOR_SILVER,
+ MAT_SILVER = COLOR_SILVER,
"Gray" = COLOR_GRAY,
"Black" = COLOR_BLACK,
"Red" = COLOR_RED,
@@ -513,7 +513,7 @@ obj/structure/cable/proc/cableColor(var/colorC)
w_class = ITEMSIZE_SMALL
throw_speed = 2
throw_range = 5
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 20)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 20)
slot_flags = SLOT_BELT
item_state = "coil"
attack_verb = list("whipped", "lashed", "disciplined", "flogged")
@@ -944,7 +944,7 @@ obj/structure/cable/proc/cableColor(var/colorC)
w_class = ITEMSIZE_SMALL
throw_speed = 2
throw_range = 5
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 20)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 20)
slot_flags = SLOT_BELT
attack_verb = list("whipped", "lashed", "disciplined", "flogged")
stacktype = null
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 9ae3d375901..571a28a0bd6 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -24,7 +24,7 @@
var/charge_amount = 25 // How much power to give, if self_recharge is true. The number is in absolute cell charge, as it gets divided by CELLRATE later.
var/last_use = 0 // A tracker for use in self-charging
var/charge_delay = 0 // How long it takes for the cell to start recharging after last use
- matter = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 50)
+ matter = list(MAT_STEEL = 700, MAT_GLASS = 50)
// Overlay stuff.
var/overlay_half_state = "cell-o1" // Overlay used when not fully charged but not empty.
diff --git a/code/modules/power/cells/device_cells.dm b/code/modules/power/cells/device_cells.dm
index b94fd2fd0c3..af578824218 100644
--- a/code/modules/power/cells/device_cells.dm
+++ b/code/modules/power/cells/device_cells.dm
@@ -10,7 +10,7 @@
throw_range = 7
maxcharge = 480
charge_amount = 5
- matter = list("metal" = 350, "glass" = 50)
+ matter = list("metal" = 350, MAT_GLASS = 50)
preserve_item = 1
/obj/item/cell/device/empty
diff --git a/code/modules/power/cells/power_cells.dm b/code/modules/power/cells/power_cells.dm
index 72e1c1fc8f1..bd0670bee88 100644
--- a/code/modules/power/cells/power_cells.dm
+++ b/code/modules/power/cells/power_cells.dm
@@ -3,7 +3,7 @@
desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT
origin_tech = list(TECH_POWER = 0)
maxcharge = 500
- matter = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 40)
+ matter = list(MAT_STEEL = 700, MAT_GLASS = 40)
/obj/item/cell/crap/empty
charge = 0
@@ -12,7 +12,7 @@
name = "security borg rechargable D battery"
origin_tech = list(TECH_POWER = 0)
maxcharge = 600 //600 max charge / 100 charge per shot = six shots
- matter = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 40)
+ matter = list(MAT_STEEL = 700, MAT_GLASS = 40)
/obj/item/cell/secborg/empty
charge = 0
@@ -21,14 +21,14 @@
name = "heavy-duty power cell"
origin_tech = list(TECH_POWER = 1)
maxcharge = 5000
- matter = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 50)
+ matter = list(MAT_STEEL = 700, MAT_GLASS = 50)
/obj/item/cell/high
name = "high-capacity power cell"
origin_tech = list(TECH_POWER = 2)
icon_state = "hcell"
maxcharge = 10000
- matter = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 60)
+ matter = list(MAT_STEEL = 700, MAT_GLASS = 60)
/obj/item/cell/high/empty
charge = 0
@@ -38,7 +38,7 @@
origin_tech = list(TECH_POWER = 5)
icon_state = "scell"
maxcharge = 20000
- matter = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 70)
+ matter = list(MAT_STEEL = 700, MAT_GLASS = 70)
/obj/item/cell/super/empty
charge = 0
@@ -48,7 +48,7 @@
origin_tech = list(TECH_POWER = 6)
icon_state = "hpcell"
maxcharge = 30000
- matter = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 80)
+ matter = list(MAT_STEEL = 700, MAT_GLASS = 80)
/obj/item/cell/hyper/empty
charge = 0
@@ -58,7 +58,7 @@
icon_state = "icell"
origin_tech = null
maxcharge = 30000 //determines how badly mobs get shocked
- matter = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 80)
+ matter = list(MAT_STEEL = 700, MAT_GLASS = 80)
/obj/item/cell/infinite/check_charge()
return 1
@@ -130,7 +130,7 @@
name = "miniature power cell"
desc = "A tiny power cell with a very low power capacity. Used in light fixtures to power them in the event of an outage."
maxcharge = 120 //Emergency lights use 0.2 W per tick, meaning ~10 minutes of emergency power from a cell
- matter = list("glass" = 20)
+ matter = list(MAT_GLASS = 20)
w_class = ITEMSIZE_TINY
/obj/item/cell/emergency_light/Initialize()
diff --git a/code/modules/power/fusion/fusion_reactions.dm b/code/modules/power/fusion/fusion_reactions.dm
index 88117f8164b..fb88fbb3fdc 100644
--- a/code/modules/power/fusion/fusion_reactions.dm
+++ b/code/modules/power/fusion/fusion_reactions.dm
@@ -86,7 +86,7 @@ proc/get_fusion_reaction(var/p_react, var/s_react, var/m_energy)
/decl/fusion_reaction/iron_iron
p_react = "iron"
s_react = "iron"
- products = list("silver" = 1, "gold" = 1, "platinum" = 1) // Not realistic but w/e
+ products = list(MAT_SILVER = 1, MAT_GOLD = 1, MAT_PLATINUM = 1) // Not realistic but w/e
energy_consumption = 10
energy_production = 0
instability = 2
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index e68ebf6ad9a..9936b31dadd 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -885,7 +885,7 @@ var/global/list/light_type_cache = list()
var/status = 0 // LIGHT_OK, LIGHT_BURNED or LIGHT_BROKEN
var/base_state
var/switchcount = 0 // number of times switched
- matter = list(DEFAULT_WALL_MATERIAL = 60)
+ matter = list(MAT_STEEL = 60)
var/rigged = 0 // true if rigged to explode
var/broken_chance = 0
@@ -905,7 +905,7 @@ var/global/list/light_type_cache = list()
icon_state = "ltube"
base_state = "ltube"
item_state = "c_tube"
- matter = list("glass" = 100)
+ matter = list(MAT_GLASS = 100)
brightness_range = 12 // luminosity when on, also used in power calculation //VOREStation Edit
brightness_power = 1
@@ -972,7 +972,7 @@ var/global/list/light_type_cache = list()
icon_state = "lbulb"
base_state = "lbulb"
item_state = "contvapour"
- matter = list("glass" = 100)
+ matter = list(MAT_GLASS = 100)
brightness_range = 5
brightness_power = 1
brightness_color = LIGHT_COLOR_INCANDESCENT_BULB
@@ -1049,7 +1049,7 @@ var/global/list/light_type_cache = list()
icon_state = "fbulb"
base_state = "fbulb"
item_state = "egg4"
- matter = list("glass" = 100)
+ matter = list(MAT_GLASS = 100)
// update the icon state and description of the light
/obj/item/light/update_icon()
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 3e3ebe71630..f7ccca80a4e 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -207,7 +207,7 @@
to_chat(user, "You need more welding fuel to complete this task.")
return
- if(istype(W, /obj/item/stack/material) && W.get_material_name() == DEFAULT_WALL_MATERIAL)
+ if(istype(W, /obj/item/stack/material) && W.get_material_name() == MAT_STEEL)
var/amt = CEILING(( initial(integrity) - integrity)/10, 1)
if(!amt)
to_chat(user, "\The [src] is already fully repaired.")
diff --git a/code/modules/power/singularity/particle_accelerator/particle_smasher.dm b/code/modules/power/singularity/particle_accelerator/particle_smasher.dm
index 4bc899c28b7..9b3659a93b7 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_smasher.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_smasher.dm
@@ -345,7 +345,7 @@
probability = 50
/datum/particle_smasher_recipe/phoron_valhollide
- reagents = list("phoron" = 10, "pacid" = 10)
+ reagents = list(MAT_PHORON = 10, "pacid" = 10)
result = /obj/item/stack/material/valhollide
required_material = /obj/item/stack/material/phoron
@@ -358,7 +358,7 @@
probability = 10
/datum/particle_smasher_recipe/valhollide_supermatter
- reagents = list("phoron" = 300)
+ reagents = list(MAT_PHORON = 300)
result = /obj/item/stack/material/supermatter
required_material = /obj/item/stack/material/valhollide
diff --git a/code/modules/power/tesla/telsa_construction.dm b/code/modules/power/tesla/telsa_construction.dm
index c71f49a5231..ab29a5ac606 100644
--- a/code/modules/power/tesla/telsa_construction.dm
+++ b/code/modules/power/tesla/telsa_construction.dm
@@ -23,7 +23,7 @@
name = T_BOARD("grounding rod")
build_path = /obj/machinery/power/grounding_rod
board_type = new /datum/frame/frame_types/machine
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
req_components = list()
/datum/category_item/autolathe/engineering/grounding_rod
diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm
index 7c6de0f2ebb..8ccbf879727 100644
--- a/code/modules/projectiles/ammunition.dm
+++ b/code/modules/projectiles/ammunition.dm
@@ -16,7 +16,7 @@
var/obj/item/projectile/BB = null //The loaded bullet - make it so that the projectiles are created only when needed?
var/caseless = null //Caseless ammo deletes its self once the projectile is fired.
var/fall_sounds = list('sound/weapons/guns/casingfall1.ogg','sound/weapons/guns/casingfall2.ogg','sound/weapons/guns/casingfall3.ogg')
-
+
/obj/item/ammo_casing/Initialize(mapload)
. = ..()
if(ispath(projectile_type))
@@ -65,7 +65,7 @@
icon = 'icons/obj/ammo.dmi'
slot_flags = SLOT_BELT
item_state = "syringe_kit"
- matter = list(DEFAULT_WALL_MATERIAL = 500)
+ matter = list(MAT_STEEL = 500)
throwforce = 5
w_class = ITEMSIZE_SMALL
throw_speed = 4
diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm
index d036e348732..5aef571fd98 100644
--- a/code/modules/projectiles/ammunition/magazines.dm
+++ b/code/modules/projectiles/ammunition/magazines.dm
@@ -32,7 +32,7 @@
icon_state = "38"
caliber = ".357"
ammo_type = /obj/item/ammo_casing/a357
- matter = list(DEFAULT_WALL_MATERIAL = 1260)
+ matter = list(MAT_STEEL = 1260)
max_ammo = 6
multiple_sprites = 1
@@ -40,7 +40,7 @@
name = "speedloader (.357 silver)"
icon_state = "ag_38"
ammo_type = /obj/item/ammo_casing/a357/silver
- matter = list(DEFAULT_WALL_MATERIAL = 2100, "silver" = 1200)
+ matter = list(MAT_STEEL = 2100, MAT_SILVER = 1200)
///////// .38 /////////
@@ -49,7 +49,7 @@
desc = "A speedloader for .38 revolvers."
icon_state = "38"
caliber = ".38"
- matter = list(DEFAULT_WALL_MATERIAL = 360)
+ matter = list(MAT_STEEL = 360)
ammo_type = /obj/item/ammo_casing/a38
max_ammo = 6
multiple_sprites = 1
@@ -67,7 +67,7 @@
name = "speedloader (.38 silver)"
icon_state = "ag_38"
ammo_type = /obj/item/ammo_casing/a38/silver
- matter = list(DEFAULT_WALL_MATERIAL = 780, "silver" = 600)
+ matter = list(MAT_STEEL = 780, MAT_SILVER = 600)
///////// .45 /////////
@@ -76,7 +76,7 @@
icon_state = "45"
mag_type = MAGAZINE
ammo_type = /obj/item/ammo_casing/a45
- matter = list(DEFAULT_WALL_MATERIAL = 525) //metal costs are very roughly based around 1 .45 casing = 75 metal
+ matter = list(MAT_STEEL = 525) //metal costs are very roughly based around 1 .45 casing = 75 metal
caliber = ".45"
max_ammo = 7
multiple_sprites = 1
@@ -113,7 +113,7 @@
icon_state = "uzi45"
mag_type = MAGAZINE
ammo_type = /obj/item/ammo_casing/a45
- matter = list(DEFAULT_WALL_MATERIAL = 1200)
+ matter = list(MAT_STEEL = 1200)
caliber = ".45"
max_ammo = 16
multiple_sprites = 1
@@ -126,7 +126,7 @@
icon_state = "wt274"
mag_type = MAGAZINE
ammo_type = /obj/item/ammo_casing/a45
- matter = list(DEFAULT_WALL_MATERIAL = 2400)
+ matter = list(MAT_STEEL = 2400)
caliber = ".45"
max_ammo = 32
multiple_sprites = 1
@@ -136,7 +136,7 @@
icon_state = "tommy-mag"
mag_type = MAGAZINE
ammo_type = /obj/item/ammo_casing/a45
- matter = list(DEFAULT_WALL_MATERIAL = 1500)
+ matter = list(MAT_STEEL = 1500)
caliber = ".45"
max_ammo = 20
@@ -153,7 +153,7 @@
w_class = ITEMSIZE_NORMAL // Bulky ammo doesn't fit in your pockets!
mag_type = MAGAZINE
ammo_type = /obj/item/ammo_casing/a45
- matter = list(DEFAULT_WALL_MATERIAL = 3750)
+ matter = list(MAT_STEEL = 3750)
caliber = ".45"
max_ammo = 50
@@ -170,7 +170,7 @@
desc = "A stripper clip for reloading .45 rounds into magazines."
caliber = ".45"
ammo_type = /obj/item/ammo_casing/a45
- matter = list(DEFAULT_WALL_MATERIAL = 675) // metal costs very roughly based around one .45 casing = 75 metal
+ matter = list(MAT_STEEL = 675) // metal costs very roughly based around one .45 casing = 75 metal
max_ammo = 9
multiple_sprites = 1
@@ -194,7 +194,7 @@
name = "speedloader (.45)"
icon_state = "45s"
ammo_type = /obj/item/ammo_casing/a45
- matter = list(DEFAULT_WALL_MATERIAL = 525) //metal costs are very roughly based around 1 .45 casing = 75 metal
+ matter = list(MAT_STEEL = 525) //metal costs are very roughly based around 1 .45 casing = 75 metal
caliber = ".45"
max_ammo = 7
multiple_sprites = 1
@@ -222,7 +222,7 @@
name = "speedloader (.45 silver)"
icon_state = "ag45s"
ammo_type = /obj/item/ammo_casing/a45/silver
- matter = list(DEFAULT_WALL_MATERIAL = 780, "silver" = 600)
+ matter = list(MAT_STEEL = 780, MAT_SILVER = 600)
///////// 10x24mm Caseless /////////
@@ -232,7 +232,7 @@
icon_state = "usmc-large"
caliber = "10mmCL"
w_class = ITEMSIZE_NORMAL
- matter = list(DEFAULT_WALL_MATERIAL = 8500)
+ matter = list(MAT_STEEL = 8500)
mag_type = MAGAZINE
max_ammo = 96
multiple_sprites = 1
@@ -240,7 +240,7 @@
/obj/item/ammo_magazine/m10x24mm/large
name = "magazine (large) (10mm caseless)"
icon_state = "usmc-large"
- matter = list(DEFAULT_WALL_MATERIAL = 8500)
+ matter = list(MAT_STEEL = 8500)
max_ammo = 96
/obj/item/ammo_magazine/m10x24mm/large/hp
@@ -256,7 +256,7 @@
/obj/item/ammo_magazine/m10x24mm/med
name = "magazine (medium) (10mm caseless)"
icon_state = "usmc-med"
- matter = list(DEFAULT_WALL_MATERIAL = 5500)
+ matter = list(MAT_STEEL = 5500)
max_ammo = 64
multiple_sprites = 1
@@ -273,7 +273,7 @@
/obj/item/ammo_magazine/m10x24mm/small
name = "magazine (small) (10mm caseless)"
icon_state = "usmc-small"
- matter = list(DEFAULT_WALL_MATERIAL = 2500)
+ matter = list(MAT_STEEL = 2500)
max_ammo = 32
multiple_sprites = 1
@@ -324,7 +324,7 @@
icon_state = "9x19p_fullsize"
origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE
- matter = list(DEFAULT_WALL_MATERIAL = 600)
+ matter = list(MAT_STEEL = 600)
caliber = "9mm"
ammo_type = /obj/item/ammo_casing/a9mm
max_ammo = 10
@@ -364,7 +364,7 @@
icon_state = "9x19p"
origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE
- matter = list(DEFAULT_WALL_MATERIAL = 480)
+ matter = list(MAT_STEEL = 480)
caliber = "9mm"
ammo_type = /obj/item/ammo_casing/a9mm
max_ammo = 8
@@ -391,7 +391,7 @@
icon_state = "9mmt"
mag_type = MAGAZINE
ammo_type = /obj/item/ammo_casing/a9mm
- matter = list(DEFAULT_WALL_MATERIAL = 1200)
+ matter = list(MAT_STEEL = 1200)
caliber = "9mm"
max_ammo = 20
multiple_sprites = 1
@@ -421,7 +421,7 @@
desc = "A stripper clip for reloading 9mm rounds into magazines."
caliber = "9mm"
ammo_type = /obj/item/ammo_casing/a9mm
- matter = list(DEFAULT_WALL_MATERIAL = 600) // metal costs are very roughly based around one 9mm casing = 60 metal
+ matter = list(MAT_STEEL = 600) // metal costs are very roughly based around one 9mm casing = 60 metal
max_ammo = 10
multiple_sprites = 1
@@ -445,14 +445,14 @@
name = "ammo clip (9mm silver)"
ammo_type = /obj/item/ammo_casing/a9mm/silver
icon_state = "clip_pistol_ag"
- matter = list(DEFAULT_WALL_MATERIAL = 1300, "silver" = 1000)
+ matter = list(MAT_STEEL = 1300, MAT_SILVER = 1000)
/obj/item/ammo_magazine/m9mmAdvanced
desc = "A very high capacity double stack magazine made specially for the Advanced SMG. Filled with 21 9mm bullets."
icon_state = "S9mm"
mag_type = MAGAZINE
ammo_type = /obj/item/ammo_casing/a9mm
- matter = list(DEFAULT_WALL_MATERIAL = 1200)
+ matter = list(MAT_STEEL = 1200)
caliber = "9mm"
max_ammo = 21
origin_tech = list(TECH_COMBAT = 2, TECH_ILLEGAL = 1)
@@ -462,7 +462,7 @@
desc = "A high capacity double stack magazine made specially for the Advanced SMG. Filled with 21 9mm armor piercing bullets."
icon_state = "S9mm"
ammo_type = /obj/item/ammo_casing/a9mm/ap
- matter = list(DEFAULT_WALL_MATERIAL = 2000)
+ matter = list(MAT_STEEL = 2000)
/obj/item/ammo_magazine/m9mmR/saber/empty
initial_ammo = 0
@@ -474,7 +474,7 @@
icon_state = "fiveseven"
origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE
- matter = list(DEFAULT_WALL_MATERIAL = 300, "copper" = 300)
+ matter = list(MAT_STEEL = 300, MAT_COPPER = 300)
caliber = "5.7x28mm"
ammo_type = /obj/item/ammo_casing/a57x28mm
max_ammo = 20
@@ -530,7 +530,7 @@
icon_state = "fiveseven_old"
origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE
- matter = list(DEFAULT_WALL_MATERIAL = 300, "copper" = 300)
+ matter = list(MAT_STEEL = 300, MAT_COPPER = 300)
caliber = "5.7x28mm"
ammo_type = /obj/item/ammo_casing/a57x28mm
max_ammo = 15
@@ -585,7 +585,7 @@
icon_state = "p90"
mag_type = MAGAZINE
ammo_type = /obj/item/ammo_casing/a57x28mm/ap
- matter = list(DEFAULT_WALL_MATERIAL = 1500, "copper" = 1500)
+ matter = list(MAT_STEEL = 1500, MAT_COPPER = 1500)
caliber = "5.7x28mm"
max_ammo = 50
multiple_sprites = 1
@@ -605,7 +605,7 @@
origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE
caliber = "10mm"
- matter = list(DEFAULT_WALL_MATERIAL = 1500)
+ matter = list(MAT_STEEL = 1500)
ammo_type = /obj/item/ammo_casing/a10mm
max_ammo = 20
multiple_sprites = 1
@@ -619,7 +619,7 @@
desc = "A stripper clip for reloading 5mm rounds into magazines."
caliber = "10mm"
ammo_type = /obj/item/ammo_casing/a10mm
- matter = list(DEFAULT_WALL_MATERIAL = 675) // metal costs are very roughly based around one 10mm casing = 75 metal
+ matter = list(MAT_STEEL = 675) // metal costs are very roughly based around one 10mm casing = 75 metal
max_ammo = 9
multiple_sprites = 1
@@ -635,14 +635,14 @@
origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE
caliber = "5.45mm"
- matter = list(DEFAULT_WALL_MATERIAL = 1800)
+ matter = list(MAT_STEEL = 1800)
ammo_type = /obj/item/ammo_casing/a545
max_ammo = 20
multiple_sprites = 1
/obj/item/ammo_magazine/m545/ext
name = "extended magazine (5.45mm)"
- matter = list(DEFAULT_WALL_MATERIAL = 2700)
+ matter = list(MAT_STEEL = 2700)
max_ammo = 30
/obj/item/ammo_magazine/m545/empty
@@ -678,7 +678,7 @@
/obj/item/ammo_magazine/m545/small
name = "reduced magazine (5.45mm)"
icon_state = "m545-small"
- matter = list(DEFAULT_WALL_MATERIAL = 900)
+ matter = list(MAT_STEEL = 900)
max_ammo = 10
/obj/item/ammo_magazine/m545/small/empty
@@ -701,7 +701,7 @@
icon_state = "clip_rifle"
caliber = "5.45mm"
ammo_type = /obj/item/ammo_casing/a545
- matter = list(DEFAULT_WALL_MATERIAL = 450) // metal costs are very roughly based around one 10mm casing = 180 metal
+ matter = list(MAT_STEEL = 450) // metal costs are very roughly based around one 10mm casing = 180 metal
max_ammo = 5
multiple_sprites = 1
@@ -723,7 +723,7 @@
origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE
caliber = "5.45mm"
- matter = list(DEFAULT_WALL_MATERIAL = 10000)
+ matter = list(MAT_STEEL = 10000)
ammo_type = /obj/item/ammo_casing/a545
w_class = ITEMSIZE_NORMAL // This should NOT fit in your pocket!!
max_ammo = 50
@@ -748,7 +748,7 @@
origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE
caliber = ".44"
- matter = list(DEFAULT_WALL_MATERIAL = 1260)
+ matter = list(MAT_STEEL = 1260)
ammo_type = /obj/item/ammo_casing/a44
max_ammo = 7
multiple_sprites = 1
@@ -762,7 +762,7 @@
desc = "A stripper clip for reloading .44 rounds into magazines."
caliber = ".44"
ammo_type = /obj/item/ammo_casing/a44
- matter = list(DEFAULT_WALL_MATERIAL = 1620) // metal costs are very roughly based around one .50 casing = 180 metal
+ matter = list(MAT_STEEL = 1620) // metal costs are very roughly based around one .50 casing = 180 metal
max_ammo = 9
multiple_sprites = 1
@@ -771,7 +771,7 @@
icon_state = "44"
icon = 'icons/obj/ammo.dmi'
ammo_type = /obj/item/ammo_casing/a44
- matter = list(DEFAULT_WALL_MATERIAL = 1260) //metal costs are very roughly based around 1 .45 casing = 75 metal
+ matter = list(MAT_STEEL = 1260) //metal costs are very roughly based around 1 .45 casing = 75 metal
caliber = ".44"
max_ammo = 6
multiple_sprites = 1
@@ -788,7 +788,7 @@
name = "speedloader (.44 silver)"
icon_state = "ag44"
ammo_type = /obj/item/ammo_casing/a44/silver
- matter = list(DEFAULT_WALL_MATERIAL = 2100, "silver" = 1200)
+ matter = list(MAT_STEEL = 2100, MAT_SILVER = 1200)
///////// 7.62mm /////////
@@ -797,7 +797,7 @@
icon_state = "m762-small"
mag_type = MAGAZINE
caliber = "7.62mm"
- matter = list(DEFAULT_WALL_MATERIAL = 2000)
+ matter = list(MAT_STEEL = 2000)
ammo_type = /obj/item/ammo_casing/a762
max_ammo = 10
multiple_sprites = 1
@@ -814,7 +814,7 @@
icon_state = "m762"
mag_type = MAGAZINE
caliber = "7.62mm"
- matter = list(DEFAULT_WALL_MATERIAL = 4000)
+ matter = list(MAT_STEEL = 4000)
ammo_type = /obj/item/ammo_casing/a762
max_ammo = 20
multiple_sprites = 1
@@ -831,7 +831,7 @@
icon_state = "gclip"
mag_type = MAGAZINE
caliber = "7.62mm"
- matter = list(DEFAULT_WALL_MATERIAL = 1600)
+ matter = list(MAT_STEEL = 1600)
ammo_type = /obj/item/ammo_casing/a762
max_ammo = 8
multiple_sprites = 1
@@ -856,7 +856,7 @@
icon_state = "clip_rifle"
caliber = "7.62mm"
ammo_type = /obj/item/ammo_casing/a762
- matter = list(DEFAULT_WALL_MATERIAL = 1000) // metal costs are very roughly based around one 7.62 casing = 200 metal
+ matter = list(MAT_STEEL = 1000) // metal costs are very roughly based around one 7.62 casing = 200 metal
max_ammo = 5
multiple_sprites = 1
@@ -884,14 +884,14 @@
name = "rifle clip (7.62mm silver)"
icon_state = "agclip_rifle"
ammo_type = /obj/item/ammo_casing/a762/silver
- matter = list(DEFAULT_WALL_MATERIAL = 1500, "silver" = 750)
+ matter = list(MAT_STEEL = 1500, MAT_SILVER = 750)
/obj/item/ammo_magazine/m762svd
name = "\improper SVD magazine (7.62mm)"
icon_state = "SVD"
mag_type = MAGAZINE
caliber = "7.62mm"
- matter = list(DEFAULT_WALL_MATERIAL = 2000)
+ matter = list(MAT_STEEL = 2000)
ammo_type = /obj/item/ammo_casing/a762
max_ammo = 10
multiple_sprites = 1
@@ -910,7 +910,7 @@
icon_state = "ashot-mag"
mag_type = MAGAZINE
caliber = "12g"
- matter = list(DEFAULT_WALL_MATERIAL = 13000)
+ matter = list(MAT_STEEL = 13000)
ammo_type = /obj/item/ammo_casing/a12g
max_ammo = 24
multiple_sprites = 1
@@ -936,7 +936,7 @@
desc = "A color-coded metal clip for holding and quickly loading shotgun shells. This one is loaded with slugs."
caliber = "12g"
ammo_type = /obj/item/ammo_casing/a12g
- matter = list(DEFAULT_WALL_MATERIAL = 1070) // slugs shells x2 + 350 metal for the clip itself.
+ matter = list(MAT_STEEL = 1070) // slugs shells x2 + 350 metal for the clip itself.
max_ammo = 2
multiple_sprites = 1
@@ -945,21 +945,21 @@
icon_state = "12gclipshell"
desc = "A color-coded metal clip for holding and quickly loading shotgun shells. This one is loaded with buckshot."
ammo_type = /obj/item/ammo_casing/a12g/pellet
- matter = list(DEFAULT_WALL_MATERIAL = 1070) // buckshot and slugs cost the same
+ matter = list(MAT_STEEL = 1070) // buckshot and slugs cost the same
/obj/item/ammo_magazine/clip/c12g/beanbag
name = "ammo clip (12g beanbag)"
icon_state = "12gclipbean"
desc = "A color-coded metal clip for holding and quickly loading shotgun shells. This one is loaded with beanbags."
ammo_type = /obj/item/ammo_casing/a12g/beanbag
- matter = list(DEFAULT_WALL_MATERIAL = 710) //beanbags x2 + 350 metal
+ matter = list(MAT_STEEL = 710) //beanbags x2 + 350 metal
/obj/item/ammo_magazine/clip/c12g/silver
name = "ammo clip (12g buckshot)"
icon_state = "12gclipag"
desc = "A color-coded metal clip for holding and quickly loading shotgun shells. This one is loaded with silver buckshot."
ammo_type = /obj/item/ammo_casing/a12g/silver
- matter = list(DEFAULT_WALL_MATERIAL = 1070, "silver" = 480)
+ matter = list(MAT_STEEL = 1070, MAT_SILVER = 480)
/obj/item/ammo_magazine/holyshot_mag
name = "blessed drum magazine (12 gauge)"
@@ -967,7 +967,7 @@
desc = "Thrice-blessed, this drum magazine is loaded with silver shot designed to combat supernatural threats."
mag_type = MAGAZINE
caliber = "12g"
- matter = list(DEFAULT_WALL_MATERIAL = 100, "silver" = 1100)
+ matter = list(MAT_STEEL = 100, MAT_SILVER = 1100)
ammo_type = /obj/item/ammo_casing/a12g/silver
max_ammo = 12
@@ -998,7 +998,7 @@
caliber = "caps"
color = "#FF0000"
ammo_type = /obj/item/ammo_casing/cap
- matter = list(DEFAULT_WALL_MATERIAL = 600)
+ matter = list(MAT_STEEL = 600)
max_ammo = 7
multiple_sprites = 1
@@ -1041,7 +1041,7 @@
desc = "You shouldn't be seeing this, contact a Maintainer!"
icon_state = "toy_pistol"
mag_type = MAGAZINE
- matter = list("plastic" = 480)
+ matter = list(MAT_PLASTIC = 480)
caliber = "foamdart"
ammo_type = /obj/item/ammo_casing/foam
max_ammo = 8
@@ -1064,7 +1064,7 @@
name = "toy c20r magazine"
desc = "A plastic recreation of the classic c20r submachine gun."
icon_state = "toy_c20"
- matter = list("plastic" = 1500)
+ matter = list(MAT_PLASTIC = 1500)
max_ammo = 20
/obj/item/ammo_magazine/mfoam/c20/empty
@@ -1079,7 +1079,7 @@
name = "toy magazine box"
desc = "A heavy plastic box designed to hold belts of foam darts! Wow!"
icon_state = "toy_lmg"
- matter = list("plastic" = 10000)
+ matter = list(MAT_PLASTIC = 10000)
w_class = ITEMSIZE_NORMAL
max_ammo = 50
@@ -1095,7 +1095,7 @@
name = "toy submachine gun magazine"
desc = "A plastic recreation of a double-stack submachine gun magazine."
icon_state = "toy_smg"
- matter = list("plastic" = 1200)
+ matter = list(MAT_PLASTIC = 1200)
max_ammo = 20
/obj/item/ammo_magazine/mfoam/smg/empty
diff --git a/code/modules/projectiles/ammunition/magnetic.dm b/code/modules/projectiles/ammunition/magnetic.dm
index 7e8ff8c010e..bd46475a92a 100644
--- a/code/modules/projectiles/ammunition/magnetic.dm
+++ b/code/modules/projectiles/ammunition/magnetic.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/ammo.dmi'
icon_state = "5.56"
w_class = ITEMSIZE_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 1800)
+ matter = list(MAT_STEEL = 1800)
origin_tech = list(TECH_COMBAT = 1)
var/remaining = 9
preserve_item = 1
diff --git a/code/modules/projectiles/ammunition/rounds.dm b/code/modules/projectiles/ammunition/rounds.dm
index 0b3a6b037c9..d42721323cb 100644
--- a/code/modules/projectiles/ammunition/rounds.dm
+++ b/code/modules/projectiles/ammunition/rounds.dm
@@ -27,14 +27,14 @@
desc = "A .357 bullet casing."
caliber = ".357"
projectile_type = /obj/item/projectile/bullet/pistol/strong
- matter = list(DEFAULT_WALL_MATERIAL = 210)
+ matter = list(MAT_STEEL = 210)
/obj/item/ammo_casing/a357/silver
desc = "A .357 silver bullet casing. Bless and Sancitfied to banish otherworlds entities."
caliber = ".357"
icon_state = "ag-casing"
projectile_type = /obj/item/projectile/bullet/pistol/strong
- matter = list(DEFAULT_WALL_MATERIAL = 350, "silver" = 200)
+ matter = list(MAT_STEEL = 350, MAT_SILVER = 200)
/*
* .38
@@ -44,7 +44,7 @@
desc = "A .38 bullet casing."
caliber = ".38"
projectile_type = /obj/item/projectile/bullet/pistol
- matter = list(DEFAULT_WALL_MATERIAL = 60)
+ matter = list(MAT_STEEL = 60)
/obj/item/ammo_casing/a38/rubber
desc = "A .38 rubber bullet casing."
@@ -56,13 +56,13 @@
desc = "A .38 bullet casing fitted with a single-use ion pulse generator."
icon_state = "empcasing"
projectile_type = /obj/item/projectile/ion/small
- matter = list(DEFAULT_WALL_MATERIAL = 130, "uranium" = 100)
+ matter = list(MAT_STEEL = 130, MAT_URANIUM = 100)
/obj/item/ammo_casing/a38/silver
desc = "A .38 silver bullet casing. Bless and Sancitfied to banish otherworlds entities."
icon_state = "ag-casing"
projectile_type = /obj/item/projectile/bullet/pistol/silver
- matter = list(DEFAULT_WALL_MATERIAL = 130, "silver" = 100)
+ matter = list(MAT_STEEL = 130, MAT_SILVER = 100)
/*
@@ -73,19 +73,19 @@
desc = "A .44 bullet casing."
caliber = ".44"
projectile_type = /obj/item/projectile/bullet/pistol/strong
- matter = list(DEFAULT_WALL_MATERIAL = 210)
+ matter = list(MAT_STEEL = 210)
/obj/item/ammo_casing/a44/rubber
icon_state = "r-casing"
desc = "A .44 rubber bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/rubber/strong
- matter = list(DEFAULT_WALL_MATERIAL = 60)
+ matter = list(MAT_STEEL = 60)
/obj/item/ammo_casing/a44/silver
desc = "A .44 silver bullet casing. Bless and Sancitfied to banish otherworlds entities."
icon_state = "ag_casing"
projectile_type = /obj/item/projectile/bullet/pistol/strong/silver
- matter = list(DEFAULT_WALL_MATERIAL = 350, "silver" = 200)
+ matter = list(MAT_STEEL = 350, MAT_SILVER = 200)
/*
* .75 (aka Gyrojet Rockets, aka admin abuse)
@@ -95,7 +95,7 @@
desc = "A .75 gyrojet rocket sheathe."
caliber = ".75"
projectile_type = /obj/item/projectile/bullet/gyro
- matter = list(DEFAULT_WALL_MATERIAL = 4000)
+ matter = list(MAT_STEEL = 4000)
/*
* 9mm
@@ -105,12 +105,12 @@
desc = "A 9mm bullet casing."
caliber = "9mm"
projectile_type = /obj/item/projectile/bullet/pistol
- matter = list(DEFAULT_WALL_MATERIAL = 60)
+ matter = list(MAT_STEEL = 60)
/obj/item/ammo_casing/a9mm/ap
desc = "A 9mm armor-piercing bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/ap
- matter = list(DEFAULT_WALL_MATERIAL = 80)
+ matter = list(MAT_STEEL = 80)
/obj/item/ammo_casing/a9mm/hp
desc = "A 9mm hollow-point bullet casing."
@@ -119,7 +119,7 @@
/obj/item/ammo_casing/a9mm/hunter
desc = "A 9mm hunting bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/hunter
- matter = list(DEFAULT_WALL_MATERIAL = 80)
+ matter = list(MAT_STEEL = 80)
/obj/item/ammo_casing/a9mm/flash
desc = "A 9mm flash shell casing."
@@ -140,7 +140,7 @@
desc = "A 9mm silver bullet casing. Bless and Sancitfied to banish otherworlds entities."
icon_state = "ag-casing"
projectile_type = /obj/item/projectile/bullet/pistol/silver
- matter = list(DEFAULT_WALL_MATERIAL = 130, "silver" = 100)
+ matter = list(MAT_STEEL = 130, MAT_SILVER = 100)
/*
* 5.7
@@ -149,22 +149,22 @@
desc = "A 5.7x28mm bullet casing."
caliber = "5.7x28mm"
projectile_type = /obj/item/projectile/bullet/pistol/lap
- matter = list(DEFAULT_WALL_MATERIAL = 30, "copper" = 30)
+ matter = list(MAT_STEEL = 30, MAT_COPPER = 30)
/obj/item/ammo_casing/a57x28mm/ap
desc = "A 5.7x28mm armor-piercing bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/ap
- matter = list(DEFAULT_WALL_MATERIAL = 80, "copper" = 30)
+ matter = list(MAT_STEEL = 80, MAT_COPPER = 30)
/obj/item/ammo_casing/a57x28mm/hp
desc = "A 5.7x28mm hollow-point bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/hp
- matter = list(DEFAULT_WALL_MATERIAL = 60, "copper" = 30)
+ matter = list(MAT_STEEL = 60, MAT_COPPER = 30)
/obj/item/ammo_casing/a57x28mm/hunter
desc = "A 5.7x28mm hunting bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/hunter
- matter = list(DEFAULT_WALL_MATERIAL = 30, "copper" = 50)
+ matter = list(MAT_STEEL = 30, MAT_COPPER = 50)
/*
* .45
@@ -174,7 +174,7 @@
desc = "A .45 bullet casing."
caliber = ".45"
projectile_type = /obj/item/projectile/bullet/pistol/medium
- matter = list(DEFAULT_WALL_MATERIAL = 75)
+ matter = list(MAT_STEEL = 75)
/obj/item/ammo_casing/a45/ap
desc = "A .45 Armor-Piercing bullet casing."
@@ -184,32 +184,32 @@
/obj/item/ammo_casing/a45/hunter
desc = "A .45 hunting bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/medium/hunter
- matter = list(DEFAULT_WALL_MATERIAL = 75)
+ matter = list(MAT_STEEL = 75)
/obj/item/ammo_casing/a45/practice
desc = "A .45 practice bullet casing."
icon_state = "r-casing"
projectile_type = /obj/item/projectile/bullet/practice
- matter = list(DEFAULT_WALL_MATERIAL = 60)
+ matter = list(MAT_STEEL = 60)
/obj/item/ammo_casing/a45/rubber
desc = "A .45 rubber bullet casing."
icon_state = "r-casing"
projectile_type = /obj/item/projectile/bullet/pistol/rubber
- matter = list(DEFAULT_WALL_MATERIAL = 60)
+ matter = list(MAT_STEEL = 60)
/obj/item/ammo_casing/a45/flash
desc = "A .45 flash shell casing."
icon_state = "r-casing"
projectile_type = /obj/item/projectile/energy/flash
- matter = list(DEFAULT_WALL_MATERIAL = 60)
+ matter = list(MAT_STEEL = 60)
/obj/item/ammo_casing/a45/emp
name = ".45 haywire round"
desc = "A .45 bullet casing fitted with a single-use ion pulse generator."
projectile_type = /obj/item/projectile/ion/small
icon_state = "empcasing"
- matter = list(DEFAULT_WALL_MATERIAL = 130, "uranium" = 100)
+ matter = list(MAT_STEEL = 130, MAT_URANIUM = 100)
/obj/item/ammo_casing/a45/hp
desc = "A .45 hollow-point bullet casing."
@@ -220,7 +220,7 @@
desc = "A .45 silver bullet casing. Bless and Sancitfied to banish otherworlds entities."
icon_state = "ag-casing"
projectile_type = /obj/item/projectile/bullet/pistol/silver
- matter = list(DEFAULT_WALL_MATERIAL = 130, "silver" = 100)
+ matter = list(MAT_STEEL = 130, MAT_SILVER = 100)
/*
@@ -231,14 +231,14 @@
desc = "A 10mm bullet casing."
caliber = "10mm"
projectile_type = /obj/item/projectile/bullet/pistol/medium
- matter = list(DEFAULT_WALL_MATERIAL = 75)
+ matter = list(MAT_STEEL = 75)
/obj/item/ammo_casing/a10mm/emp
name = "10mm haywire round"
desc = "A 10mm bullet casing fitted with a single-use ion pulse generator."
projectile_type = /obj/item/projectile/ion/small
icon_state = "empcasing"
- matter = list(DEFAULT_WALL_MATERIAL = 130, "uranium" = 100)
+ matter = list(MAT_STEEL = 130, MAT_URANIUM = 100)
/*
* 12g (aka shotgun ammo)
@@ -250,7 +250,7 @@
icon_state = "slshell"
caliber = "12g"
projectile_type = /obj/item/projectile/bullet/shotgun
- matter = list(DEFAULT_WALL_MATERIAL = 360)
+ matter = list(MAT_STEEL = 360)
fall_sounds = list('sound/weapons/guns/shotgun_fall.ogg')
/obj/item/ammo_casing/a12g/pellet
@@ -264,28 +264,28 @@
desc = "A blank shell."
icon_state = "blshell"
projectile_type = /obj/item/projectile/bullet/blank
- matter = list(DEFAULT_WALL_MATERIAL = 90)
+ matter = list(MAT_STEEL = 90)
/obj/item/ammo_casing/a12g/practice
name = "shotgun shell"
desc = "A practice shell."
icon_state = "pshell"
projectile_type = /obj/item/projectile/bullet/practice
- matter = list(DEFAULT_WALL_MATERIAL = 90)
+ matter = list(MAT_STEEL = 90)
/obj/item/ammo_casing/a12g/beanbag
name = "beanbag shell"
desc = "A beanbag shell."
icon_state = "bshell"
projectile_type = /obj/item/projectile/bullet/shotgun/beanbag
- matter = list(DEFAULT_WALL_MATERIAL = 180)
+ matter = list(MAT_STEEL = 180)
/obj/item/ammo_casing/a12g/improvised
name = "improvised shell"
desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards."
icon_state = "improvshell"
projectile_type = /obj/item/projectile/bullet/pellet/shotgun_improvised
- matter = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 200)
+ matter = list(MAT_STEEL = 500, MAT_GLASS = 200)
//Can stun in one hit if aimed at the head, but
//is blocked by clothing that stops tasers and is vulnerable to EMP
@@ -294,7 +294,7 @@
desc = "A 12 gauge taser cartridge."
icon_state = "stunshell"
projectile_type = /obj/item/projectile/energy/electrode/stunshot
- matter = list(DEFAULT_WALL_MATERIAL = 360, "glass" = 720)
+ matter = list(MAT_STEEL = 360, MAT_GLASS = 720)
/obj/item/ammo_casing/a12g/stunshell/emp_act(severity)
if(prob(100/severity)) BB = null
@@ -306,7 +306,7 @@
desc = "A chemical shell used to signal distress or provide illumination."
icon_state = "fshell"
projectile_type = /obj/item/projectile/energy/flash/flare
- matter = list(DEFAULT_WALL_MATERIAL = 90, "glass" = 90)
+ matter = list(MAT_STEEL = 90, MAT_GLASS = 90)
//Silver 12g
/obj/item/ammo_casing/a12g/silver
@@ -315,7 +315,7 @@
icon_state = "agshell"
caliber = "12g"
projectile_type = /obj/item/projectile/bullet/pellet/shotgun/silver
- matter = list(DEFAULT_WALL_MATERIAL = 360, "silver" = 240)
+ matter = list(MAT_STEEL = 360, MAT_SILVER = 240)
//Wooden Stake 12g
/obj/item/ammo_casing/a12g/stake
@@ -324,7 +324,7 @@
icon_state = "agshell"
caliber = "12g"
projectile_type = /obj/item/projectile/bullet/shotgun/stake
- matter = list(DEFAULT_WALL_MATERIAL = 500)
+ matter = list(MAT_STEEL = 500)
//Techshell & Derivatives
/obj/item/ammo_casing/a12g/techshell
@@ -333,14 +333,14 @@
icon_state = "cshell"
caliber = "12g"
projectile_type = null
- matter = list(DEFAULT_WALL_MATERIAL = 500, "phoron" = 200)
+ matter = list(MAT_STEEL = 500, MAT_PHORON = 200)
/obj/item/ammo_casing/a12g/techshell/meteorslug
name = "meteorslug shell"
desc = "A shotgun shell rigged with CMC technology, which launches a massive slug when fired."
icon_state = "mshell"
projectile_type = /obj/item/projectile/meteor/slug
- matter = list(DEFAULT_WALL_MATERIAL = 500, "gold" = 200)
+ matter = list(MAT_STEEL = 500, MAT_GOLD = 200)
/obj/item/ammo_casing/a12g/techshell/emp
name = "ion shell"
@@ -348,7 +348,7 @@
icon_state = "empshell"
projectile_type = /obj/item/projectile/scatter/ion
// projectile_type = /obj/item/projectile/bullet/shotgun/ion
- matter = list(DEFAULT_WALL_MATERIAL = 360, "uranium" = 240)
+ matter = list(MAT_STEEL = 360, MAT_URANIUM = 240)
/obj/item/ammo_casing/a12g/techshell/pulseslug
name = "pulse slug"
@@ -357,7 +357,7 @@
would have difficulty with."
icon_state = "plshell"
projectile_type = /obj/item/projectile/beam/pulse/shotgun
- matter = list(DEFAULT_WALL_MATERIAL = 500, "silver" = 200)
+ matter = list(MAT_STEEL = 500, MAT_SILVER = 200)
/obj/item/ammo_casing/a12g/techshell/dragonsbreath
name = "dragonsbreath shell"
@@ -370,14 +370,14 @@
desc = "A high explosive breaching round for a 12 gauge shotgun."
icon_state = "heshell"
projectile_type = /obj/item/projectile/bullet/shotgun/frag12
- matter = list(DEFAULT_WALL_MATERIAL = 500, "phoron" = 200)
+ matter = list(MAT_STEEL = 500, MAT_PHORON = 200)
/obj/item/ammo_casing/a12g/techshell/laserslug
name = "scatter laser shell"
desc = "An advanced shotgun shell that uses a micro laser to replicate the effects of a scatter laser weapon in a ballistic package."
icon_state = "lshell"
projectile_type = /obj/item/projectile/scatter/laser
- matter = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 200)
+ matter = list(MAT_STEEL = 500, MAT_GLASS = 200)
/*
* 7.62mm
@@ -388,23 +388,23 @@
caliber = "7.62mm"
icon_state = "rifle-casing"
projectile_type = /obj/item/projectile/bullet/rifle/a762
- matter = list(DEFAULT_WALL_MATERIAL = 200)
+ matter = list(MAT_STEEL = 200)
/obj/item/ammo_casing/a762/ap
desc = "A 7.62mm armor-piercing bullet casing."
projectile_type = /obj/item/projectile/bullet/rifle/a762/ap
- matter = list(DEFAULT_WALL_MATERIAL = 300)
+ matter = list(MAT_STEEL = 300)
/obj/item/ammo_casing/a762/practice
desc = "A 7.62mm practice bullet casing."
icon_state = "rifle-casing" // Need to make an icon for these
projectile_type = /obj/item/projectile/bullet/practice
- matter = list(DEFAULT_WALL_MATERIAL = 90)
+ matter = list(MAT_STEEL = 90)
/obj/item/ammo_casing/a762/blank
desc = "A blank 7.62mm bullet casing."
projectile_type = /obj/item/projectile/bullet/blank
- matter = list(DEFAULT_WALL_MATERIAL = 90)
+ matter = list(MAT_STEEL = 90)
/obj/item/ammo_casing/a762/hp
desc = "A 7.62mm hollow-point bullet casing."
@@ -426,7 +426,7 @@
desc = "A 7.62mm hunting bullet casing. Bless and Sancitfied to banish otherworlds entities."
icon_state = "agrifle-casing"
projectile_type = /obj/item/projectile/bullet/rifle/a762/silver
- matter = list(DEFAULT_WALL_MATERIAL = 300, "silver" = 150)
+ matter = list(MAT_STEEL = 300, MAT_SILVER = 150)
/*
* 14.5mm (anti-materiel rifle round)
@@ -437,7 +437,7 @@
icon_state = "lcasing"
caliber = "14.5mm"
projectile_type = /obj/item/projectile/bullet/rifle/a145
- matter = list(DEFAULT_WALL_MATERIAL = 1250)
+ matter = list(MAT_STEEL = 1250)
/*
* 5.45mm
@@ -448,23 +448,23 @@
caliber = "5.45mm"
icon_state = "rifle-casing"
projectile_type = /obj/item/projectile/bullet/rifle/a545
- matter = list(DEFAULT_WALL_MATERIAL = 180)
+ matter = list(MAT_STEEL = 180)
/obj/item/ammo_casing/a545/ap
desc = "A 5.45mm armor-piercing bullet casing."
projectile_type = /obj/item/projectile/bullet/rifle/a545/ap
- matter = list(DEFAULT_WALL_MATERIAL = 270)
+ matter = list(MAT_STEEL = 270)
/obj/item/ammo_casing/a545/practice
desc = "A 5.45mm practice bullet casing."
icon_state = "rifle-casing" // Need to make an icon for these
projectile_type = /obj/item/projectile/bullet/practice
- matter = list(DEFAULT_WALL_MATERIAL = 90)
+ matter = list(MAT_STEEL = 90)
/obj/item/ammo_casing/a545/blank
desc = "A blank 5.45mm bullet casing."
projectile_type = /obj/item/projectile/bullet/blank
- matter = list(DEFAULT_WALL_MATERIAL = 90)
+ matter = list(MAT_STEEL = 90)
/obj/item/ammo_casing/a545/hp
desc = "A 5.45mm hollow-point bullet casing."
@@ -483,7 +483,7 @@
caliber = "10mmCL"
icon_state = "casing"
projectile_type = /obj/item/projectile/bullet/pistol/medium
- matter = list(DEFAULT_WALL_MATERIAL = 180)
+ matter = list(MAT_STEEL = 180)
caseless = 1
/obj/item/ammo_casing/a10x24mmcaseless/ap
@@ -491,14 +491,14 @@
caliber = "10mmCL"
icon_state = "casing"
projectile_type = /obj/item/projectile/bullet/pistol/medium/ap
- matter = list(DEFAULT_WALL_MATERIAL = 180)
+ matter = list(MAT_STEEL = 180)
/obj/item/ammo_casing/a10x24mmcaseless/hp
desc = "A 10x24mm caseless round, common during the Xenomorph wars due to its use the the battle rifles of the United Solar Marine Corps. This one was meant to shred armored targets."
caliber = "10mmCL"
icon_state = "casing"
projectile_type = /obj/item/projectile/bullet/pistol/medium/hp
- matter = list(DEFAULT_WALL_MATERIAL = 180)
+ matter = list(MAT_STEEL = 180)
/*
* 5mm Caseless
@@ -509,7 +509,7 @@
caliber = "5mm caseless"
icon_state = "casing" // Placeholder. Should probably be purple.
projectile_type = /obj/item/projectile/bullet/pistol // Close enough to be comparable.
- matter = list(DEFAULT_WALL_MATERIAL = 180)
+ matter = list(MAT_STEEL = 180)
caseless = 1
/obj/item/ammo_casing/a5mmcaseless/stun
@@ -526,12 +526,12 @@
icon_state = "rocketshell"
projectile_type = /obj/item/projectile/bullet/srmrocket
caliber = "rocket"
- matter = list(DEFAULT_WALL_MATERIAL = 10000)
+ matter = list(MAT_STEEL = 10000)
/obj/item/ammo_casing/rocket/weak
name = "low-yield rocket shell"
projectile_type = /obj/item/projectile/bullet/srmrocket/weak
- matter = list(DEFAULT_WALL_MATERIAL = 5000)
+ matter = list(MAT_STEEL = 5000)
/obj/item/ammo_casing/cap
name = "cap"
@@ -540,7 +540,7 @@
icon_state = "r-casing"
color = "#FF0000"
projectile_type = /obj/item/projectile/bullet/pistol/cap
- matter = list(DEFAULT_WALL_MATERIAL = 85)
+ matter = list(MAT_STEEL = 85)
/obj/item/ammo_casing/spent // For simple hostile mobs only, so they don't cough up usable bullets when firing. This is for literally nothing else.
icon_state = "s-casing-spent"
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 823e99c80e1..1fedef1a460 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -39,7 +39,7 @@
icon_state = "detective"
item_state = "gun"
slot_flags = SLOT_BELT|SLOT_HOLSTER
- matter = list(DEFAULT_WALL_MATERIAL = 2000)
+ matter = list(MAT_STEEL = 2000)
w_class = ITEMSIZE_NORMAL
throwforce = 5
throw_speed = 4
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index fec8265004e..4dc5029d513 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -10,7 +10,7 @@
w_class = ITEMSIZE_LARGE
force = 10
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 2000)
+ matter = list(MAT_STEEL = 2000)
projectile_type = /obj/item/projectile/beam/midlaser
heavy = TRUE
one_handed_penalty = 30
@@ -243,7 +243,7 @@
item_state = "laser"
desc = "Standard issue weapon of the Imperial Guard"
origin_tech = list(TECH_COMBAT = 1, TECH_MAGNET = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 2000)
+ matter = list(MAT_STEEL = 2000)
projectile_type = /obj/item/projectile/beam/lasertag/blue
cell_type = /obj/item/cell/device/weapon/recharge
battery_lock = 1
@@ -305,4 +305,3 @@
charge_cost = 1500 //You got 1 shot...
projectile_type = /obj/item/projectile/beam/heavylaser //But it hurts a lot
cell_type = /obj/item/cell/device/weapon
-
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 9dfc0d9eaca..12de4b1c5c8 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -431,7 +431,7 @@ obj/item/gun/energy/staff/focus
heavy = TRUE
force = 10
origin_tech = list(TECH_COMBAT = 3, TECH_ENGINEERING = 3, TECH_MAGNET = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000)
+ matter = list(MAT_STEEL = 2000, MAT_GLASS = 1000)
one_handed_penalty = 50
/obj/item/gun/energy/ionrifle/pistol/tyrmalin
diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm
index 99b77bfec3b..e1e64d1a505 100644
--- a/code/modules/projectiles/guns/energy/stun.dm
+++ b/code/modules/projectiles/guns/energy/stun.dm
@@ -53,7 +53,7 @@
w_class = ITEMSIZE_SMALL
item_state = "crossbow"
origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 2, TECH_ILLEGAL = 5)
- matter = list(DEFAULT_WALL_MATERIAL = 2000)
+ matter = list(MAT_STEEL = 2000)
slot_flags = SLOT_BELT | SLOT_HOLSTER
silenced = 1
projectile_type = /obj/item/projectile/energy/bolt
@@ -71,7 +71,7 @@
desc = "A weapon favored by mercenary infiltration teams."
w_class = ITEMSIZE_LARGE
force = 10
- matter = list(DEFAULT_WALL_MATERIAL = 200000)
+ matter = list(MAT_STEEL = 200000)
slot_flags = SLOT_BELT
projectile_type = /obj/item/projectile/energy/bolt/large
diff --git a/code/modules/projectiles/guns/launcher/grenade_launcher.dm b/code/modules/projectiles/guns/launcher/grenade_launcher.dm
index 59939e2e7e2..9477126edbe 100644
--- a/code/modules/projectiles/guns/launcher/grenade_launcher.dm
+++ b/code/modules/projectiles/guns/launcher/grenade_launcher.dm
@@ -16,7 +16,7 @@
var/list/grenades = new/list()
var/max_grenades = 5 //holds this + one in the chamber
- matter = list(DEFAULT_WALL_MATERIAL = 2000)
+ matter = list(MAT_STEEL = 2000)
//revolves the magazine, allowing players to choose between multiple grenade types
/obj/item/gun/launcher/grenade/proc/pump(mob/M as mob)
diff --git a/code/modules/projectiles/guns/launcher/pneumatic.dm b/code/modules/projectiles/guns/launcher/pneumatic.dm
index dab5abc4241..df5f7ffd7fa 100644
--- a/code/modules/projectiles/guns/launcher/pneumatic.dm
+++ b/code/modules/projectiles/guns/launcher/pneumatic.dm
@@ -173,7 +173,7 @@
buildstate++
update_icon()
return
- else if(istype(W,/obj/item/stack/material) && W.get_material_name() == DEFAULT_WALL_MATERIAL)
+ else if(istype(W,/obj/item/stack/material) && W.get_material_name() == MAT_STEEL)
if(buildstate == 2)
var/obj/item/stack/material/M = W
if(M.use(5))
diff --git a/code/modules/projectiles/guns/launcher/syringe_gun.dm b/code/modules/projectiles/guns/launcher/syringe_gun.dm
index 9da392f976d..f7c32ea1ced 100644
--- a/code/modules/projectiles/guns/launcher/syringe_gun.dm
+++ b/code/modules/projectiles/guns/launcher/syringe_gun.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/ammo.dmi'
icon_state = "syringe-cartridge"
var/icon_flight = "syringe-cartridge-flight" //so it doesn't look so weird when shot
- matter = list(DEFAULT_WALL_MATERIAL = 125, "glass" = 375)
+ matter = list(MAT_STEEL = 125, MAT_GLASS = 375)
slot_flags = SLOT_BELT | SLOT_EARS
throwforce = 3
force = 3
@@ -68,7 +68,7 @@
item_state = "syringegun"
w_class = ITEMSIZE_NORMAL
force = 7
- matter = list(DEFAULT_WALL_MATERIAL = 2000)
+ matter = list(MAT_STEEL = 2000)
slot_flags = SLOT_BELT
fire_sound = 'sound/weapons/empty.ogg'
diff --git a/code/modules/projectiles/guns/magnetic/magnetic_construction.dm b/code/modules/projectiles/guns/magnetic/magnetic_construction.dm
index 97b32e0b387..4ba01927f23 100644
--- a/code/modules/projectiles/guns/magnetic/magnetic_construction.dm
+++ b/code/modules/projectiles/guns/magnetic/magnetic_construction.dm
@@ -12,7 +12,7 @@
if(istype(thing, /obj/item/stack/material) && construction_stage == 1)
var/obj/item/stack/material/reinforcing = thing
var/datum/material/reinforcing_with = reinforcing.get_material()
- if(reinforcing_with.name == DEFAULT_WALL_MATERIAL) // Steel
+ if(reinforcing_with.name == MAT_STEEL) // Steel
if(reinforcing.get_amount() < 5)
to_chat(user, "You need at least 5 [reinforcing.singular_name]\s for this task.")
return
diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm
index 6e43596be92..1bd1e6099e1 100644
--- a/code/modules/projectiles/guns/projectile.dm
+++ b/code/modules/projectiles/guns/projectile.dm
@@ -5,7 +5,7 @@
icon_state = "revolver"
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
w_class = ITEMSIZE_NORMAL
- matter = list(DEFAULT_WALL_MATERIAL = 1000)
+ matter = list(MAT_STEEL = 1000)
recoil = 0
projectile_type = /obj/item/projectile/bullet/pistol/strong //Only used for chameleon guns
@@ -135,7 +135,7 @@
if(!user.unEquip(AM, src))
return
if(do_after(user, SPEED_RELOAD_SPEED, src))
- ammo_magazine.update_icon()
+ ammo_magazine.update_icon()
ammo_magazine.dropInto(user.loc)
user.visible_message(SPAN_WARNING("\The [user] reloads \the [src] with \the [AM]!"),
SPAN_WARNING("You speed reload \the [src] with \the [AM]!"))
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 24b14ed2b34..01e3c6b7930 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -304,10 +304,10 @@
if(istype(I,/obj/item/reagent_containers))
analyzing = TRUE
update_icon()
- to_chat(user, span("notice", "Analyzing \the [I], please stand by..."))
+ to_chat(user, SPAN_NOTICE("Analyzing \the [I], please stand by..."))
if(!do_after(user, 2 SECONDS, src))
- to_chat(user, span("warning", "Sample moved outside of scan range, please try again and remain still."))
+ to_chat(user, SPAN_WARNING( "Sample moved outside of scan range, please try again and remain still."))
analyzing = FALSE
update_icon()
return
@@ -324,14 +324,14 @@
for(var/datum/reagent/R in I.reagents.reagent_list)
if(!R.name)
continue
- to_chat(user, span("notice", "Contains [R.volume]u of [R.name].
[R.description]
"))
+ to_chat(user, SPAN_NOTICE("Contains [R.volume]u of [R.name].
[R.description]
"))
// Last, unseal it if it's an autoinjector.
if(istype(I,/obj/item/reagent_containers/hypospray/autoinjector/biginjector) && !(I.flags & OPENCONTAINER))
I.flags |= OPENCONTAINER
- to_chat(user, span("notice", "Sample container unsealed.
"))
+ to_chat(user, SPAN_NOTICE("Sample container unsealed.
"))
- to_chat(user, span("notice", "Scanning of \the [I] complete."))
+ to_chat(user, SPAN_NOTICE("Scanning of \the [I] complete."))
analyzing = FALSE
update_icon()
return
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
index c980144b470..866b088cec1 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
@@ -489,7 +489,7 @@ End Citadel Change */
return
if(alien == IS_ALRAUNE) //cit change: it wouldn't affect plants that much.
if(prob(5))
- to_chat(M, span("rose","You feel a pleasant sensation in your mouth."))
+ to_chat(M, SPAN_ROSE("You feel a pleasant sensation in your mouth."))
M.bodytemperature += rand(10, 25)
return
if(ishuman(M))
@@ -4212,7 +4212,7 @@ End Citadel Change */
M.take_organ_damage(0, removed * 1.5 * dfactor)
data["temperature"] -= (6 * removed) / (1 + volume*0.1)//Cools off as it burns you
if (lastburnmessage+100 < world.time )
- to_chat(M, span("danger", "Searing hot oil burns you, wash it off quick!"))
+ to_chat(M, SPAN_DANGER("Searing hot oil burns you, wash it off quick!"))
lastburnmessage = world.time
/datum/reagent/nutriment/triglyceride/oil/corn
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
index e0956bb4136..cf2a523eb56 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
@@ -677,7 +677,7 @@
/datum/reagent/advmutationtoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(ishuman(M))
var/mob/living/carbon/human/H = M
- if(H.species.name != "Promethean")
+ if(H.species.name != SPECIES_PROMETHEAN)
to_chat(M, "Your flesh rapidly mutates!")
var/list/backup_implants = list()
@@ -688,7 +688,7 @@
for(var/obj/item/implant/backup/BI in backup_implants)
BI.forceMove(src)
- H.set_species("Promethean")
+ H.set_species(SPECIES_PROMETHEAN)
H.shapeshifter_set_colour("#05FF9B") //They can still change their color.
if(backup_implants.len)
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index 62996a65ea4..678ab2faec6 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -135,7 +135,7 @@
name = "Inaprovaline"
id = "inaprovaline"
result = "inaprovaline"
- required_reagents = list("oxygen" = 1, "carbon" = 1, "sugar" = 1)
+ required_reagents = list("oxygen" = 1, MAT_CARBON = 1, "sugar" = 1)
result_amount = 3
/datum/chemical_reaction/tricordrazine
@@ -159,8 +159,8 @@
name = "Carthatoline"
id = "carthatoline"
result = "carthatoline"
- required_reagents = list("anti_toxin" = 1, "carbon" = 2, "phoron" = 0.1)
- catalysts = list("phoron" = 1)
+ required_reagents = list("anti_toxin" = 1, MAT_CARBON = 2, MAT_PHORON = 0.1)
+ catalysts = list(MAT_PHORON = 1)
result_amount = 2
/datum/chemical_reaction/bicaridine
@@ -168,7 +168,7 @@
name = "Bicaridine"
id = "bicaridine"
result = "bicaridine"
- required_reagents = list("inaprovaline" = 1, "carbon" = 1)
+ required_reagents = list("inaprovaline" = 1, MAT_CARBON = 1)
inhibitors = list("sugar" = 1) // Messes up with inaprovaline
result_amount = 2
@@ -177,8 +177,8 @@
name = "Vermicetol"
id = "vermicetol"
result = "vermicetol"
- required_reagents = list("bicaridine" = 2, "shockchem" = 1, "phoron" = 0.1)
- catalysts = list("phoron" = 5)
+ required_reagents = list("bicaridine" = 2, "shockchem" = 1, MAT_PHORON = 0.1)
+ catalysts = list(MAT_PHORON = 5)
result_amount = 3
/datum/chemical_reaction/kelotane
@@ -186,7 +186,7 @@
name = "Kelotane"
id = "kelotane"
result = "kelotane"
- required_reagents = list("silicon" = 1, "carbon" = 1)
+ required_reagents = list("silicon" = 1, MAT_CARBON = 1)
result_amount = 2
/datum/chemical_reaction/dermaline
@@ -202,8 +202,8 @@
name = "Dexalin"
id = "dexalin"
result = "dexalin"
- required_reagents = list("oxygen" = 2, "phoron" = 0.1)
- catalysts = list("phoron" = 1)
+ required_reagents = list("oxygen" = 2, MAT_PHORON = 0.1)
+ catalysts = list(MAT_PHORON = 1)
inhibitors = list("water" = 1) // Messes with cryox
result_amount = 1
@@ -213,7 +213,7 @@
name = "Dexalin Plus"
id = "dexalinp"
result = "dexalinp"
- required_reagents = list("dexalin" = 1, "carbon" = 1, "iron" = 1)
+ required_reagents = list("dexalin" = 1, MAT_CARBON = 1, MAT_IRON = 1)
result_amount = 3
@@ -239,7 +239,7 @@
id = "oxycodone"
result = "oxycodone"
required_reagents = list("ethanol" = 1, "tramadol" = 1)
- catalysts = list("phoron" = 5)
+ catalysts = list(MAT_PHORON = 5)
result_amount = 1
//Radiation Treatment
@@ -268,7 +268,7 @@
id = "peridaxon"
result = "peridaxon"
required_reagents = list("bicaridine" = 2, "clonexadone" = 2)
- catalysts = list("phoron" = 5)
+ catalysts = list(MAT_PHORON = 5)
result_amount = 2
/datum/chemical_reaction/nanoperidaxon
@@ -284,8 +284,8 @@
name = "Osteodaxon"
id = "osteodaxon"
result = "osteodaxon"
- required_reagents = list("bicaridine" = 2, "phoron" = 0.1, "carpotoxin" = 1)
- catalysts = list("phoron" = 5)
+ required_reagents = list("bicaridine" = 2, MAT_PHORON = 0.1, "carpotoxin" = 1)
+ catalysts = list(MAT_PHORON = 5)
inhibitors = list("clonexadone" = 1) // Messes with cryox
result_amount = 2
@@ -294,8 +294,8 @@
name = "Respirodaxon"
id = "respirodaxon"
result = "respirodaxon"
- required_reagents = list("dexalinp" = 2, "biomass" = 2, "phoron" = 1)
- catalysts = list("phoron" = 5)
+ required_reagents = list("dexalinp" = 2, "biomass" = 2, MAT_PHORON = 1)
+ catalysts = list(MAT_PHORON = 5)
inhibitors = list("dexalin" = 1)
result_amount = 2
@@ -305,7 +305,7 @@
id = "gastirodaxon"
result = "gastirodaxon"
required_reagents = list("carthatoline" = 1, "biomass" = 2, "tungsten" = 2)
- catalysts = list("phoron" = 5)
+ catalysts = list(MAT_PHORON = 5)
inhibitors = list("lithium" = 1)
result_amount = 3
@@ -315,7 +315,7 @@
id = "hepanephrodaxon"
result = "hepanephrodaxon"
required_reagents = list("carthatoline" = 2, "biomass" = 2, "lithium" = 1)
- catalysts = list("phoron" = 5)
+ catalysts = list(MAT_PHORON = 5)
inhibitors = list("tungsten" = 1)
result_amount = 2
@@ -325,7 +325,7 @@
id = "cordradaxon"
result = "cordradaxon"
required_reagents = list("potassium_chlorophoride" = 1, "biomass" = 2, "bicaridine" = 2)
- catalysts = list("phoron" = 5)
+ catalysts = list(MAT_PHORON = 5)
inhibitors = list("clonexadone" = 1)
result_amount = 2
@@ -349,7 +349,7 @@
name = "Citalopram"
id = "citalopram"
result = "citalopram"
- required_reagents = list("mindbreaker" = 1, "carbon" = 1)
+ required_reagents = list("mindbreaker" = 1, MAT_CARBON = 1)
result_amount = 3
/datum/chemical_reaction/paroxetine
@@ -376,7 +376,7 @@
name = "Myelamine"
id = "myelamine"
result = "myelamine"
- required_reagents = list("bicaridine" = 1, "iron" = 2, "spidertoxin" = 1)
+ required_reagents = list("bicaridine" = 1, MAT_IRON = 2, "spidertoxin" = 1)
result_amount = 2
/datum/chemical_reaction/imidazoline
@@ -384,7 +384,7 @@
name = "imidazoline"
id = "imidazoline"
result = "imidazoline"
- required_reagents = list("carbon" = 1, "hydrogen" = 1, "anti_toxin" = 1)
+ required_reagents = list(MAT_CARBON = 1, "hydrogen" = 1, "anti_toxin" = 1)
result_amount = 2
/datum/chemical_reaction/rezadone
@@ -392,7 +392,7 @@
name = "Rezadone"
id = "rezadone"
result = "rezadone"
- required_reagents = list("carpotoxin" = 1, "cryptobiolin" = 1, "copper" = 1)
+ required_reagents = list("carpotoxin" = 1, "cryptobiolin" = 1, MAT_COPPER = 1)
result_amount = 3
/datum/chemical_reaction/ryetalyn
@@ -400,7 +400,7 @@
name = "Ryetalyn"
id = "ryetalyn"
result = "ryetalyn"
- required_reagents = list("arithrazine" = 1, "carbon" = 1)
+ required_reagents = list("arithrazine" = 1, MAT_CARBON = 1)
result_amount = 2
//Immunsystem (Anti-)Boosters
@@ -417,8 +417,8 @@
name = "Corophizine"
id = "corophizine"
result = "corophizine"
- required_reagents = list("spaceacillin" = 1, "carbon" = 1, "phoron" = 0.1)
- catalysts = list("phoron" = 5)
+ required_reagents = list("spaceacillin" = 1, MAT_CARBON = 1, MAT_PHORON = 0.1)
+ catalysts = list(MAT_PHORON = 5)
result_amount = 2
/datum/chemical_reaction/immunosuprizine
@@ -427,7 +427,7 @@
id = "immunosuprizine"
result = "immunosuprizine"
required_reagents = list("corophizine" = 1, "tungsten" = 1, "sacid" = 1)
- catalysts = list("phoron" = 5)
+ catalysts = list(MAT_PHORON = 5)
result_amount = 2
@@ -446,8 +446,8 @@
name = "Clonexadone"
id = "clonexadone"
result = "clonexadone"
- required_reagents = list("cryoxadone" = 1, "sodium" = 1, "phoron" = 0.1)
- catalysts = list("phoron" = 5)
+ required_reagents = list("cryoxadone" = 1, "sodium" = 1, MAT_PHORON = 0.1)
+ catalysts = list(MAT_PHORON = 5)
result_amount = 2
/datum/chemical_reaction/leporazine
@@ -455,8 +455,8 @@
name = "Leporazine"
id = "leporazine"
result = "leporazine"
- required_reagents = list("silicon" = 1, "copper" = 1)
- catalysts = list("phoron" = 5)
+ required_reagents = list("silicon" = 1, MAT_COPPER = 1)
+ catalysts = list(MAT_PHORON = 5)
result_amount = 2
//Utility chems that are precursors, or have no direct healing properties of their own, but should be found in a medical environment
@@ -487,7 +487,7 @@
name = "Ethylredoxrazine"
id = "ethylredoxrazine"
result = "ethylredoxrazine"
- required_reagents = list("oxygen" = 1, "anti_toxin" = 1, "carbon" = 1)
+ required_reagents = list("oxygen" = 1, "anti_toxin" = 1, MAT_CARBON = 1)
result_amount = 3
/datum/chemical_reaction/calciumcarbonate
@@ -495,7 +495,7 @@
name = "Calcium Carbonate"
id = "calciumcarbonate"
result = "calciumcarbonate"
- required_reagents = list("oxygen" = 3, "calcium" = 1, "carbon" = 1)
+ required_reagents = list("oxygen" = 3, "calcium" = 1, MAT_CARBON = 1)
result_amount = 2
/datum/chemical_reaction/soporific
@@ -536,7 +536,7 @@
name = "Biomass"
id = "biomass"
result = "biomass"
- required_reagents = list("protein" = 1, "sugar" = 1, "phoron" = 1)
+ required_reagents = list("protein" = 1, "sugar" = 1, MAT_PHORON = 1)
result_amount = 6 // Roughly 120u per phoron sheet
@@ -573,7 +573,7 @@
name = "Qerr-quem"
id = "qerr_quem"
result = "qerr_quem"
- required_reagents = list("nicotine" = 1, "carbon" = 1, "sugar" = 2)
+ required_reagents = list("nicotine" = 1, MAT_CARBON = 1, "sugar" = 2)
result_amount = 4
/datum/chemical_reaction/malish_qualem
@@ -581,7 +581,7 @@
id = "malish-qualem"
result = "malish-qualem"
required_reagents = list("immunosuprizine" = 1, "qerr_quem" = 1, "inaprovaline" = 1)
- catalysts = list("phoron" = 5)
+ catalysts = list(MAT_PHORON = 5)
result_amount = 2
//Vore - Medication
diff --git a/code/modules/reagents/Drink-Recipes.dm b/code/modules/reagents/Drink-Recipes.dm
index 0c55e054e75..5ce39f5df99 100644
--- a/code/modules/reagents/Drink-Recipes.dm
+++ b/code/modules/reagents/Drink-Recipes.dm
@@ -55,14 +55,14 @@
name = "Goldschlager"
id = "goldschlager"
result = "goldschlager"
- required_reagents = list("vodka" = 10, "gold" = 1)
+ required_reagents = list("vodka" = 10, MAT_GOLD = 1)
result_amount = 10
/datum/chemical_reaction/drinks/patron
name = "Patron"
id = "patron"
result = "patron"
- required_reagents = list("tequilla" = 10, "silver" = 1)
+ required_reagents = list("tequilla" = 10, MAT_SILVER = 1)
result_amount = 10
/datum/chemical_reaction/drinks/bilk
@@ -90,7 +90,7 @@
name = "Nuclear Cola"
id = "nuka_cola"
result = "nuka_cola"
- required_reagents = list("uranium" = 1, "cola" = 5)
+ required_reagents = list(MAT_URANIUM = 1, "cola" = 5)
result_amount = 5
/datum/chemical_reaction/drinks/moonshine
@@ -270,14 +270,14 @@
name = "Toxins Special"
id = "phoronspecial"
result = "phoronspecial"
- required_reagents = list("rum" = 2, "vermouth" = 2, "phoron" = 2)
+ required_reagents = list("rum" = 2, "vermouth" = 2, MAT_PHORON = 2)
result_amount = 6
/datum/chemical_reaction/drinks/beepsky_smash
name = "Beepksy Smash"
id = "beepksysmash"
result = "beepskysmash"
- required_reagents = list("limejuice" = 1, "whiskey" = 1, "iron" = 1)
+ required_reagents = list("limejuice" = 1, "whiskey" = 1, MAT_IRON = 1)
result_amount = 2
/datum/chemical_reaction/drinks/doctor_delight
@@ -326,7 +326,7 @@
name = "Atomic Bomb"
id = "atomicbomb"
result = "atomicbomb"
- required_reagents = list("b52" = 10, "uranium" = 1)
+ required_reagents = list("b52" = 10, MAT_URANIUM = 1)
result_amount = 10
/datum/chemical_reaction/drinks/margarita
@@ -354,7 +354,7 @@
name = "Three Mile Island Iced Tea"
id = "threemileisland"
result = "threemileisland"
- required_reagents = list("longislandicedtea" = 10, "uranium" = 1)
+ required_reagents = list("longislandicedtea" = 10, MAT_URANIUM = 1)
result_amount = 10
/datum/chemical_reaction/drinks/whiskeysoda
@@ -382,7 +382,7 @@
name = "Manhattan Project"
id = "manhattan_proj"
result = "manhattan_proj"
- required_reagents = list("manhattan" = 10, "uranium" = 1)
+ required_reagents = list("manhattan" = 10, MAT_URANIUM = 1)
result_amount = 10
/datum/chemical_reaction/drinks/vodka_tonic
@@ -551,7 +551,7 @@
name = "Amasec"
id = "amasec"
result = "amasec"
- required_reagents = list("iron" = 1, "wine" = 5, "vodka" = 5)
+ required_reagents = list(MAT_IRON = 1, "wine" = 5, "vodka" = 5)
result_amount = 10
/datum/chemical_reaction/drinks/changelingsting
@@ -998,7 +998,7 @@
name = "Vox's Delight"
id = "voxdelight"
result = "voxdelight"
- required_reagents = list("phoron" = 3, "fuel" = 1, "water" = 1)
+ required_reagents = list(MAT_PHORON = 3, "fuel" = 1, "water" = 1)
result_amount = 4
/datum/chemical_reaction/drinks/screamingviking
@@ -1026,7 +1026,7 @@
name = "Robustin"
id = "robustin"
result = "robustin"
- required_reagents = list("antifreeze" = 1, "phoron" = 1, "fuel" = 1, "vodka" = 1)
+ required_reagents = list("antifreeze" = 1, MAT_PHORON = 1, "fuel" = 1, "vodka" = 1)
result_amount = 4
/datum/chemical_reaction/drinks/virginsip
@@ -1153,7 +1153,7 @@
name = "Angel Ichor"
id = "holywine"
result = "holywine"
- required_reagents = list("grapejuice" = 5, "gold" = 5)
+ required_reagents = list("grapejuice" = 5, MAT_GOLD = 5)
catalysts = list("holywater" = 5)
result_amount = 10
@@ -1231,14 +1231,14 @@
name = "Nuclear Waste"
id = "nuclearwasteuran"
result = "nuclearwaste"
- required_reagents = list("oilslick" = 2, "uranium" = 1)
+ required_reagents = list("oilslick" = 2, MAT_URANIUM = 1)
result_amount = 3
/datum/chemical_reaction/drinks/sodaoil
name = "Soda Oil"
id = "sodaoil"
result = "sodaoil"
- required_reagents = list("cornoil" = 4, "sodawater" = 1, "carbon" = 1, "tricordrazine" = 1)
+ required_reagents = list("cornoil" = 4, "sodawater" = 1, MAT_CARBON = 1, "tricordrazine" = 1)
result_amount = 6
/datum/chemical_reaction/drinks/fusionnaire
@@ -1337,14 +1337,14 @@
name = "Snake Oil"
id = "snakeoil"
result = "snakeoil"
- required_reagents = list("sarsaparilla" = 1, "grenadine" = 1, "absinthe" = 1, "phoron" = 1, "fuel" = 1)
+ required_reagents = list("sarsaparilla" = 1, "grenadine" = 1, "absinthe" = 1, MAT_PHORON = 1, "fuel" = 1)
result_amount = 3
/datum/chemical_reaction/drinks/highnoon
name = "High Noon"
id = "highnoon"
result = "highnoon"
- required_reagents = list("sassafras" = 2, "gold" = 2, "whiskey" = 1)
+ required_reagents = list("sassafras" = 2, MAT_GOLD = 2, "whiskey" = 1)
result_amount = 5
/datum/chemical_reaction/drinks/bloodmeridian
@@ -1358,7 +1358,7 @@
name = "The Outlaw"
id = "theoutlaw"
result = "theoutlaw"
- required_reagents = list("vodka" = 1, "gold" = 1, "bitters" = 1)
+ required_reagents = list("vodka" = 1, MAT_GOLD = 1, "bitters" = 1)
result_amount = 3
/datum/chemical_reaction/drinks/thelawman
@@ -1379,7 +1379,7 @@
name = "Big Iron"
id = "bigiron"
result = "bigiron"
- required_reagents = list("rum" = 2, "iron" = 1)
+ required_reagents = list("rum" = 2, MAT_IRON = 1)
result_amount = 3
/datum/chemical_reaction/drinks/lastcactus
@@ -1498,7 +1498,7 @@
name = "Unsweetened Tea"
id = "unsweettea"
result = "unsweettea"
- required_reagents = list("sweettea" = 3, "phoron" = 1)
+ required_reagents = list("sweettea" = 3, MAT_PHORON = 1)
result_amount = 2
/datum/chemical_reaction/drinks/sweettea
diff --git a/code/modules/reagents/Misc-Recipes.dm b/code/modules/reagents/Misc-Recipes.dm
index 86eda6d5c2f..a7723c6b2ce 100644
--- a/code/modules/reagents/Misc-Recipes.dm
+++ b/code/modules/reagents/Misc-Recipes.dm
@@ -41,7 +41,7 @@
name = "Thermite"
id = "thermite"
result = "thermite"
- required_reagents = list("aluminum" = 1, "iron" = 1, "oxygen" = 1)
+ required_reagents = list("aluminum" = 1, MAT_IRON = 1, "oxygen" = 1)
result_amount = 3
/datum/chemical_reaction/silicate
@@ -57,7 +57,7 @@
id = "condensedcapsaicin"
result = "condensedcapsaicin"
required_reagents = list("capsaicin" = 2)
- catalysts = list("phoron" = 5)
+ catalysts = list(MAT_PHORON = 5)
result_amount = 1
/datum/chemical_reaction/coolant
@@ -72,14 +72,14 @@
name = "Luminol"
id = "luminol"
result = "luminol"
- required_reagents = list("hydrogen" = 2, "carbon" = 2, "ammonia" = 2)
+ required_reagents = list("hydrogen" = 2, MAT_CARBON = 2, "ammonia" = 2)
result_amount = 6
/datum/chemical_reaction/surfactant
name = "Foam surfactant"
id = "foam surfactant"
result = "fluorosurfactant"
- required_reagents = list("fluorine" = 2, "carbon" = 2, "sacid" = 1)
+ required_reagents = list("fluorine" = 2, MAT_CARBON = 2, "sacid" = 1)
result_amount = 5
/datum/chemical_reaction/ammonia
@@ -87,7 +87,7 @@
id = "ammonia"
result = "ammonia"
required_reagents = list("hydrogen" = 3, "nitrogen" = 1)
- inhibitors = list("phoron" = 1) // Messes with lexorin
+ inhibitors = list(MAT_PHORON = 1) // Messes with lexorin
result_amount = 3
/datum/chemical_reaction/diethylamine
@@ -150,14 +150,14 @@
name = "Potassium Chlorophoride"
id = "potassium_chlorophoride"
result = "potassium_chlorophoride"
- required_reagents = list("potassium_chloride" = 1, "phoron" = 1, "chloralhydrate" = 1)
+ required_reagents = list("potassium_chloride" = 1, MAT_PHORON = 1, "chloralhydrate" = 1)
result_amount = 4
/datum/chemical_reaction/zombiepowder
name = "Zombie Powder"
id = "zombiepowder"
result = "zombiepowder"
- required_reagents = list("carpotoxin" = 5, "stoxin" = 5, "copper" = 5)
+ required_reagents = list("carpotoxin" = 5, "stoxin" = 5, MAT_COPPER = 5)
result_amount = 2
@@ -172,7 +172,7 @@
name = "Lexorin"
id = "lexorin"
result = "lexorin"
- required_reagents = list("phoron" = 1, "hydrogen" = 1, "nitrogen" = 1)
+ required_reagents = list(MAT_PHORON = 1, "hydrogen" = 1, "nitrogen" = 1)
result_amount = 3
/* Toxins and neutralisations */
@@ -226,7 +226,7 @@
name = "Hydrophoron"
id = "hydrophoron"
result = "hydrophoron"
- required_reagents = list("hydrogen" = 1, "phoron" = 1)
+ required_reagents = list("hydrogen" = 1, MAT_PHORON = 1)
inhibitors = list("nitrogen" = 1) //So it doesn't mess with lexorin
result_amount = 2
@@ -235,7 +235,7 @@
name = "Solid Iron"
id = "solidiron"
result = null
- required_reagents = list("frostoil" = 5, "iron" = REAGENTS_PER_SHEET)
+ required_reagents = list("frostoil" = 5, MAT_IRON = REAGENTS_PER_SHEET)
result_amount = 1
var/sheet_to_give = /obj/item/stack/material/iron
@@ -247,35 +247,35 @@
/datum/chemical_reaction/solidification/phoron
name = "Solid Phoron"
id = "solidphoron"
- required_reagents = list("frostoil" = 5, "phoron" = REAGENTS_PER_SHEET)
+ required_reagents = list("frostoil" = 5, MAT_PHORON = REAGENTS_PER_SHEET)
sheet_to_give = /obj/item/stack/material/phoron
/datum/chemical_reaction/solidification/silver
name = "Solid Silver"
id = "solidsilver"
- required_reagents = list("frostoil" = 5, "silver" = REAGENTS_PER_SHEET)
+ required_reagents = list("frostoil" = 5, MAT_SILVER = REAGENTS_PER_SHEET)
sheet_to_give = /obj/item/stack/material/silver
/datum/chemical_reaction/solidification/gold
name = "Solid Gold"
id = "solidgold"
- required_reagents = list("frostoil" = 5, "gold" = REAGENTS_PER_SHEET)
+ required_reagents = list("frostoil" = 5, MAT_GOLD = REAGENTS_PER_SHEET)
sheet_to_give = /obj/item/stack/material/gold
/datum/chemical_reaction/solidification/platinum
name = "Solid Platinum"
id = "solidplatinum"
- required_reagents = list("frostoil" = 5, "platinum" = REAGENTS_PER_SHEET)
+ required_reagents = list("frostoil" = 5, MAT_PLATINUM = REAGENTS_PER_SHEET)
sheet_to_give = /obj/item/stack/material/platinum
/datum/chemical_reaction/solidification/uranium
name = "Solid Uranium"
id = "soliduranium"
- required_reagents = list("frostoil" = 5, "uranium" = REAGENTS_PER_SHEET)
+ required_reagents = list("frostoil" = 5, MAT_URANIUM = REAGENTS_PER_SHEET)
sheet_to_give = /obj/item/stack/material/uranium
@@ -290,14 +290,14 @@
/datum/chemical_reaction/solidification/steel
name = "Solid Steel"
id = "solidsteel"
- required_reagents = list("frostoil" = 5, "steel" = REAGENTS_PER_SHEET)
+ required_reagents = list("frostoil" = 5, MAT_STEEL = REAGENTS_PER_SHEET)
sheet_to_give = /obj/item/stack/material/steel
/datum/chemical_reaction/solidification/plasteel
name = "Solid Plasteel"
id = "solidplasteel"
- required_reagents = list("frostoil" = 10, "plasteel" = REAGENTS_PER_SHEET)
+ required_reagents = list("frostoil" = 10, MAT_PLASTEEL = REAGENTS_PER_SHEET)
sheet_to_give = /obj/item/stack/material/plasteel
@@ -315,7 +315,7 @@
/datum/chemical_reaction/wax
name = "Wax"
id = "wax"
- required_reagents = list("hydrogen" = 1, "carbon" = 1, "tallow" = 2)
+ required_reagents = list("hydrogen" = 1, MAT_CARBON = 1, "tallow" = 2)
result_amount = 1
/datum/chemical_reaction/wax/on_reaction(var/datum/reagents/holder, var/created_volume)
@@ -381,7 +381,7 @@
name = "EMP Pulse"
id = "emp_pulse"
result = null
- required_reagents = list("uranium" = 1, "iron" = 1) // Yes, laugh, it's the best recipe I could think of that makes a little bit of sense
+ required_reagents = list(MAT_URANIUM = 1, MAT_IRON = 1) // Yes, laugh, it's the best recipe I could think of that makes a little bit of sense
result_amount = 2
/datum/chemical_reaction/emp_pulse/on_reaction(var/datum/reagents/holder, var/created_volume)
@@ -424,7 +424,7 @@
name = "Napalm"
id = "napalm"
result = null
- required_reagents = list("aluminum" = 1, "phoron" = 1, "sacid" = 1 )
+ required_reagents = list("aluminum" = 1, MAT_PHORON = 1, "sacid" = 1 )
result_amount = 1
/datum/chemical_reaction/napalm/on_reaction(var/datum/reagents/holder, var/created_volume)
@@ -501,7 +501,7 @@
name = "Iron Foam"
id = "ironlfoam"
result = null
- required_reagents = list("iron" = 3, "foaming_agent" = 1, "pacid" = 1)
+ required_reagents = list(MAT_IRON = 3, "foaming_agent" = 1, "pacid" = 1)
result_amount = 5
/datum/chemical_reaction/ironfoam/on_reaction(var/datum/reagents/holder, var/created_volume)
@@ -733,7 +733,7 @@
name = "Carbon paint"
id = "carbon_paint"
result = "paint"
- required_reagents = list("plasticide" = 1, "water" = 3, "carbon" = 1)
+ required_reagents = list("plasticide" = 1, "water" = 3, MAT_CARBON = 1)
result_amount = 5
/datum/chemical_reaction/carbon_paint/send_data()
@@ -770,7 +770,7 @@
name = "Slime Bork"
id = "m_tele2"
result = null
- required_reagents = list("phoron" = 10, "slimejelly" = 5, "nutriment" = 20)
+ required_reagents = list(MAT_PHORON = 10, "slimejelly" = 5, "nutriment" = 20)
result_amount = 1
on_reaction(var/datum/reagents/holder)
@@ -798,7 +798,7 @@
name = "Slime materials"
id = "slimematerial"
result = null
- required_reagents = list("phoron" = 20, "slimejelly" = 40, "aluminum" = 20) //Woah there! You have the possibility of making diamonds! 8 ground up slimes required for one of these, and you still have a 10% chance for it to fail.
+ required_reagents = list(MAT_PHORON = 20, "slimejelly" = 40, "aluminum" = 20) //Woah there! You have the possibility of making diamonds! 8 ground up slimes required for one of these, and you still have a 10% chance for it to fail.
result_amount = 1
on_reaction(var/datum/reagents/holder)
var/fail_chance = rand(1,1000)
@@ -840,7 +840,7 @@
name = "Slime Glow"
id = "m_glow"
result = null
- required_reagents = list("phoron" = 5, "slimejelly" = 5, "water" = 10) //Takes 10 water so it doesn't mess with the frost oil.
+ required_reagents = list(MAT_PHORON = 5, "slimejelly" = 5, "water" = 10) //Takes 10 water so it doesn't mess with the frost oil.
result_amount = 1
on_reaction(var/datum/reagents/holder)
for(var/mob/O in viewers(get_turf(holder.my_atom), null))
@@ -853,7 +853,7 @@
name = "Slime Phoron"
id = "m_plasma"
result = null
- required_reagents = list("phoron" = 20, "uranium" = 20, "slimejelly" = 20)
+ required_reagents = list(MAT_PHORON = 20, MAT_URANIUM = 20, "slimejelly" = 20)
result_amount = 1
on_reaction(var/datum/reagents/holder)
var/obj/item/stack/material/phoron/P = new /obj/item/stack/material/phoron
@@ -864,7 +864,7 @@
name = "Slime Freeze"
id = "m_freeze"
result = null
- required_reagents = list("phoron" = 10, "coolant" = 10, "slimejelly" = 10)
+ required_reagents = list(MAT_PHORON = 10, "coolant" = 10, "slimejelly" = 10)
result_amount = 1
on_reaction(var/datum/reagents/holder)
for(var/mob/O in viewers(get_turf(holder.my_atom), null))
@@ -880,7 +880,7 @@
name = "Slime Frost Oil"
id = "m_frostoil"
result = "frostoil"
- required_reagents = list("phoron" = 5, "slimejelly" = 5, "water" = 5, "coolant" = 5)
+ required_reagents = list(MAT_PHORON = 5, "slimejelly" = 5, "water" = 5, "coolant" = 5)
result_amount = 10
@@ -888,7 +888,7 @@
name = "Slime fire"
id = "m_fire"
result = null
- required_reagents = list("phoron" = 60, "slimejelly" = 30, "potassium" = 30)
+ required_reagents = list(MAT_PHORON = 60, "slimejelly" = 30, "potassium" = 30)
result_amount = 1
on_reaction(var/datum/reagents/holder)
for(var/mob/O in viewers(get_turf(holder.my_atom), null))
@@ -904,7 +904,7 @@
name = "Advanced Mutation Toxin"
id = "advmutationtoxin2"
result = "advmutationtoxin"
- required_reagents = list("phoron" = 15, "slimejelly" = 15, "mutationtoxin" = 15) //In case a xenobiologist wants to become a fully fledged slime person.
+ required_reagents = list(MAT_PHORON = 15, "slimejelly" = 15, "mutationtoxin" = 15) //In case a xenobiologist wants to become a fully fledged slime person.
result_amount = 1
@@ -912,7 +912,7 @@
name = "Slime Health"
id = "slimeheal"
result = "null"
- required_reagents = list("phoron" = 10, "bicaridine" = 10, "kelotane" = 10, "inaprovaline" = 10, "slimejelly" = 10)
+ required_reagents = list(MAT_PHORON = 10, "bicaridine" = 10, "kelotane" = 10, "inaprovaline" = 10, "slimejelly" = 10)
on_reaction(var/datum/reagents/holder, var/created_volume)
for (var/mob/living/carbon/C in viewers(get_turf(holder.my_atom), null))
to_chat(C, "A wave of energy suddenly invigorates you.")
@@ -928,7 +928,7 @@
name = "Slime Jam"
id = "m_jam"
result = "slimejelly"
- required_reagents = list("phoron" = 20, "sugar" = 50, "lithium" = 50) //In case a xenobiologist is impatient and is willing to drain their dispenser resources, along with plasma!
+ required_reagents = list(MAT_PHORON = 20, "sugar" = 50, "lithium" = 50) //In case a xenobiologist is impatient and is willing to drain their dispenser resources, along with plasma!
result_amount = 5
/* //VORESTATION AI TEMPORARY REMOVAL
@@ -936,7 +936,7 @@
name = "Slime Vore" // Hostile vore mobs only
id = "m_tele"
result = null
- required_reagents = list("phoron" = 20, "nutriment" = 20, "sugar" = 20, "mutationtoxin" = 20) //Can't do slime jelly as it'll conflict with another, but mutation toxin will do.
+ required_reagents = list(MAT_PHORON = 20, "nutriment" = 20, "sugar" = 20, "mutationtoxin" = 20) //Can't do slime jelly as it'll conflict with another, but mutation toxin will do.
result_amount = 1
on_reaction(var/datum/reagents/holder)
var/mob_path = /mob/living/simple_mob
@@ -995,8 +995,8 @@
name = "sizeoxadone"
id = "sizeoxadone"
result = "sizeoxadone"
- required_reagents = list("clonexadone" = 1, "tramadol" = 3, "phoron" = 1)
- catalysts = list("phoron" = 5)
+ required_reagents = list("clonexadone" = 1, "tramadol" = 3, MAT_PHORON = 1)
+ catalysts = list(MAT_PHORON = 5)
result_amount = 5
/datum/chemical_reaction/macrocillin
diff --git a/code/modules/reagents/Topical-Recipes.dm b/code/modules/reagents/Topical-Recipes.dm
index 53fdf5e5efa..0a7a6f8be7f 100644
--- a/code/modules/reagents/Topical-Recipes.dm
+++ b/code/modules/reagents/Topical-Recipes.dm
@@ -56,7 +56,7 @@
id = "neurolaze"
result = "neurolaze"
required_reagents = list("topical" = 1, "oxycodone" = 1, "hyperzine" = 1)
- catalysts = list("phoron" = 5)
+ catalysts = list(MAT_PHORON = 5)
result_amount = 2
/datum/chemical_reaction/topical/sterilaze
diff --git a/code/modules/reagents/distilling/Distilling-Recipes.dm b/code/modules/reagents/distilling/Distilling-Recipes.dm
index c715c89a123..0047b68685c 100644
--- a/code/modules/reagents/distilling/Distilling-Recipes.dm
+++ b/code/modules/reagents/distilling/Distilling-Recipes.dm
@@ -64,7 +64,7 @@
name = "Distilling Biomass"
id = "distill_biomass"
result = "biomass"
- required_reagents = list("blood" = 1, "sugar" = 1, "phoron" = 0.5)
+ required_reagents = list("blood" = 1, "sugar" = 1, MAT_PHORON = 0.5)
result_amount = 1 // 40 units per sheet, requires actually using the machine, and having blood to spare.
temp_range = list(T20C + 80, T20C + 130)
@@ -112,7 +112,7 @@
name = "Distilling Brute Juice"
id = "distill_brutejuice"
result = "berserkmed"
- required_reagents = list("biomass" = 1, "hyperzine" = 3, "synaptizine" = 2, "phoron" = 1)
+ required_reagents = list("biomass" = 1, "hyperzine" = 3, "synaptizine" = 2, MAT_PHORON = 1)
result_amount = 3
temp_range = list(T0C + 600, T0C + 700)
@@ -165,7 +165,7 @@
required_reagents = list("lichpowder" = 1, "cryoxadone" = 1, "carthatoline" = 1)
result_amount = 2
- catalysts = list("phoron" = 5)
+ catalysts = list(MAT_PHORON = 5)
reaction_rate = HALF_LIFE(20)
diff --git a/code/modules/reagents/machinery/dispenser/reagent_tank.dm b/code/modules/reagents/machinery/dispenser/reagent_tank.dm
index ff0ba1c46b5..b6459d8cc57 100644
--- a/code/modules/reagents/machinery/dispenser/reagent_tank.dm
+++ b/code/modules/reagents/machinery/dispenser/reagent_tank.dm
@@ -458,7 +458,7 @@
/obj/structure/reagent_dispensers/cookingoil/proc/explode()
reagents.splash_area(get_turf(src), 3)
- visible_message(span("danger", "The [src] bursts open, spreading oil all over the area."))
+ visible_message(SPAN_DANGER("The [src] bursts open, spreading oil all over the area."))
qdel(src)
/obj/structure/reagent_dispensers/he3
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 93d3a8bab9b..e2e6292f9c2 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -147,7 +147,7 @@
icon = 'icons/obj/chemical.dmi'
icon_state = "beaker"
item_state = "beaker"
- matter = list("glass" = 500)
+ matter = list(MAT_GLASS = 500)
drop_sound = 'sound/items/drop/glass.ogg'
pickup_sound = 'sound/items/pickup/glass.ogg'
@@ -197,7 +197,7 @@
name = "large beaker"
desc = "A large beaker."
icon_state = "beakerlarge"
- matter = list("glass" = 1000)
+ matter = list(MAT_GLASS = 1000)
volume = 120
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,25,30,60,120)
@@ -207,7 +207,7 @@
name = "cryostasis beaker"
desc = "A cryostasis beaker that allows for chemical storage without reactions."
icon_state = "beakernoreact"
- matter = list("glass" = 500)
+ matter = list(MAT_GLASS = 500)
volume = 60
amount_per_transfer_from_this = 10
flags = OPENCONTAINER | NOREACT
@@ -216,7 +216,7 @@
name = "bluespace beaker"
desc = "A bluespace beaker, powered by experimental bluespace technology."
icon_state = "beakerbluespace"
- matter = list("glass" = 5000)
+ matter = list(MAT_GLASS = 5000)
volume = 300
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,25,30,60,120,300)
@@ -226,7 +226,7 @@
name = "vial"
desc = "A small glass vial."
icon_state = "vial"
- matter = list("glass" = 250)
+ matter = list(MAT_GLASS = 250)
volume = 30
w_class = ITEMSIZE_TINY
amount_per_transfer_from_this = 10
@@ -245,7 +245,7 @@
icon = 'icons/obj/janitor.dmi'
icon_state = "bucket"
item_state = "bucket"
- matter = list(DEFAULT_WALL_MATERIAL = 200)
+ matter = list(MAT_STEEL = 200)
w_class = ITEMSIZE_NORMAL
amount_per_transfer_from_this = 20
possible_transfer_amounts = list(10,20,30,60,120)
@@ -270,7 +270,7 @@
user.drop_from_inventory(src)
qdel(src)
return
- else if(istype(D, /obj/item/stack/material) && D.get_material_name() == DEFAULT_WALL_MATERIAL)
+ else if(istype(D, /obj/item/stack/material) && D.get_material_name() == MAT_STEEL)
var/obj/item/stack/material/M = D
if (M.use(1))
var/obj/item/secbot_assembly/edCLN_assembly/B = new /obj/item/secbot_assembly/edCLN_assembly
@@ -304,7 +304,7 @@ obj/item/reagent_containers/glass/bucket/wood
icon = 'icons/obj/janitor.dmi'
icon_state = "woodbucket"
item_state = "woodbucket"
- matter = list("wood" = 50)
+ matter = list(MAT_WOOD = 50)
w_class = ITEMSIZE_LARGE
amount_per_transfer_from_this = 20
possible_transfer_amounts = list(10,20,30,60,120)
@@ -340,7 +340,7 @@ obj/item/reagent_containers/glass/bucket/wood
name = "water-cooler bottle"
icon = 'icons/obj/vending.dmi'
icon_state = "water_cooler_bottle"
- matter = list("glass" = 2000)
+ matter = list(MAT_GLASS = 2000)
w_class = ITEMSIZE_NORMAL
amount_per_transfer_from_this = 20
possible_transfer_amounts = list(10,20,30,60,120)
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 8be3147710b..84c3cf501f8 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -70,8 +70,8 @@
return FALSE
user.setClickCooldown(DEFAULT_QUICK_COOLDOWN)
- to_chat(user, span("notice", "You inject \the [H] with \the [src]."))
- to_chat(H, span("warning", "You feel a tiny prick!"))
+ to_chat(user, SPAN_NOTICE("You inject \the [H] with \the [src]."))
+ to_chat(H, SPAN_WARNING( "You feel a tiny prick!"))
if(hyposound)
playsound(src, hyposound, 25)
@@ -80,7 +80,7 @@
var/contained = reagentlist()
var/trans = reagents.trans_to_mob(H, amount_per_transfer_from_this, CHEM_BLOOD)
add_attack_logs(user,H,"Injected with [src.name] containing [contained], trasferred [trans] units")
- to_chat(user, span("notice", "[trans] units injected. [reagents.total_volume] units remaining in \the [src]."))
+ to_chat(user, SPAN_NOTICE("[trans] units injected. [reagents.total_volume] units remaining in \the [src]."))
return TRUE
return FALSE
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 9f28d3e2b8d..b4cb9db8ee7 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -11,7 +11,7 @@
icon = 'icons/obj/syringe.dmi'
item_state = "syringe_0"
icon_state = "0"
- matter = list("glass" = 150)
+ matter = list(MAT_GLASS = 150)
amount_per_transfer_from_this = 5
possible_transfer_amounts = null
volume = 15
diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm
index 485b57a1872..9bda2df45d9 100644
--- a/code/modules/recycling/disposal-construction.dm
+++ b/code/modules/recycling/disposal-construction.dm
@@ -10,7 +10,7 @@
anchored = 0
density = 0
pressure_resistance = 5*ONE_ATMOSPHERE
- matter = list(DEFAULT_WALL_MATERIAL = 1850)
+ matter = list(MAT_STEEL = 1850)
level = 2
var/sortType = ""
var/ptype = 0
diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm
index 1c39797d698..3a96e1559d5 100644
--- a/code/modules/research/circuitprinter.dm
+++ b/code/modules/research/circuitprinter.dm
@@ -19,7 +19,7 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid).
var/speed = 1
materials = list(
- DEFAULT_WALL_MATERIAL = 0,
+ MAT_STEEL = 0,
MAT_GLASS = 0,
MAT_PLASTEEL = 0,
MAT_PLASTIC = 0,
diff --git a/code/modules/research/designs/HUDs.dm b/code/modules/research/designs/HUDs.dm
index c8879d95863..c74467d6fb9 100644
--- a/code/modules/research/designs/HUDs.dm
+++ b/code/modules/research/designs/HUDs.dm
@@ -1,7 +1,7 @@
// HUDs
/datum/design/item/hud
- materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ materials = list(MAT_STEEL = 50, MAT_GLASS = 50)
/datum/design/item/hud/AssembleDesignName()
..()
@@ -43,7 +43,7 @@
name = "graviton visor"
id = "graviton_goggles"
req_tech = list(TECH_MAGNET = 5, TECH_ENGINEERING = 3, TECH_BLUESPACE = 3, TECH_PHORON = 3)
- materials = list(MAT_PLASTEEL = 2000, "glass" = 3000, MAT_PHORON = 1500)
+ materials = list(MAT_PLASTEEL = 2000, MAT_GLASS = 3000, MAT_PHORON = 1500)
build_path = /obj/item/clothing/glasses/graviton
sort_string = "EAAAE"
*/
@@ -52,6 +52,6 @@
name = "AR glasses"
id = "omnihud"
req_tech = list(TECH_MAGNET = 4, TECH_COMBAT = 3, TECH_BIO = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000)
build_path = /obj/item/clothing/glasses/omnihud
sort_string = "EAAVA"
diff --git a/code/modules/research/designs/ai_holders.dm b/code/modules/research/designs/ai_holders.dm
index a24fab4e0be..53a4eb1d409 100644
--- a/code/modules/research/designs/ai_holders.dm
+++ b/code/modules/research/designs/ai_holders.dm
@@ -8,7 +8,7 @@
id = "mmi"
req_tech = list(TECH_DATA = 2, TECH_BIO = 3)
build_type = PROTOLATHE | PROSFAB
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 500)
build_path = /obj/item/mmi
category = list("Misc")
sort_string = "SAAAA"
@@ -18,7 +18,7 @@
id = "posibrain"
req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 6, TECH_BLUESPACE = 2, TECH_DATA = 4)
build_type = PROTOLATHE | PROSFAB
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000, "silver" = 1000, "gold" = 500, "phoron" = 500, "diamond" = 100)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 1000, MAT_SILVER = 1000, MAT_GOLD = 500, MAT_PHORON = 500, MAT_DIAMOND = 100)
build_path = /obj/item/mmi/digital/posibrain
category = list("Misc")
sort_string = "SAAAB"
@@ -28,7 +28,7 @@
id = "dronebrain"
req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 5, TECH_DATA = 4)
build_type = PROTOLATHE | PROSFAB
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000, "silver" = 1000, "gold" = 500)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 1000, MAT_SILVER = 1000, MAT_GOLD = 500)
build_path = /obj/item/mmi/digital/robot
category = list("Misc")
sort_string = "SAAAC"
@@ -37,7 +37,7 @@
name = "'pAI', personal artificial intelligence device"
id = "paicard"
req_tech = list(TECH_DATA = 2)
- materials = list("glass" = 500, DEFAULT_WALL_MATERIAL = 500)
+ materials = list(MAT_GLASS = 500, MAT_STEEL = 500)
build_path = /obj/item/paicard
sort_string = "SBAAA"
@@ -46,6 +46,6 @@
desc = "Allows for the construction of an intelliCore."
id = "intellicore"
req_tech = list(TECH_DATA = 4, TECH_MATERIAL = 4)
- materials = list("glass" = 1000, "gold" = 200)
+ materials = list(MAT_GLASS = 1000, MAT_GOLD = 200)
build_path = /obj/item/aicard
sort_string = "SCAAA"
diff --git a/code/modules/research/designs/ai_modules.dm b/code/modules/research/designs/ai_modules.dm
index b67ef80fa29..d3a70693a0e 100644
--- a/code/modules/research/designs/ai_modules.dm
+++ b/code/modules/research/designs/ai_modules.dm
@@ -1,6 +1,6 @@
/datum/design/aimodule
build_type = IMPRINTER
- materials = list("glass" = 2000, "gold" = 100)
+ materials = list(MAT_GLASS = 2000, MAT_GOLD = 100)
/datum/design/aimodule/AssembleDesignName()
name = "AI module design ([name])"
@@ -112,6 +112,6 @@
desc = "Allows for the construction of an intelliCore."
id = "intellicore"
req_tech = list(TECH_DATA = 4, TECH_MATERIAL = 4)
- materials = list("glass" = 1000, "gold" = 200)
+ materials = list(MAT_GLASS = 1000, MAT_GOLD = 200)
build_path = /obj/item/aicard
sort_string = "VACAA"
diff --git a/code/modules/research/designs/bag_of_holding.dm b/code/modules/research/designs/bag_of_holding.dm
index bdc008d9ea8..c0625907b8b 100644
--- a/code/modules/research/designs/bag_of_holding.dm
+++ b/code/modules/research/designs/bag_of_holding.dm
@@ -9,7 +9,7 @@
desc = "Using localized pockets of bluespace this bag prototype offers incredible storage capacity with the contents weighting nothing. It's a shame the bag itself is pretty heavy."
id = "bag_holding"
req_tech = list(TECH_BLUESPACE = 4, TECH_MATERIAL = 6)
- materials = list("gold" = 3000, "diamond" = 1500, "uranium" = 250)
+ materials = list(MAT_GOLD = 3000, MAT_DIAMOND = 1500, MAT_URANIUM = 250)
build_path = /obj/item/storage/backpack/holding
sort_string = "QAAAA"
@@ -18,6 +18,6 @@
desc = "A minaturized prototype of the popular Bag of Holding, the Dufflebag of Holding is, functionally, identical to the bag of holding, but comes in a more stylish and compact form."
id = "dufflebag_holding"
req_tech = list(TECH_BLUESPACE = 4, TECH_MATERIAL = 6)
- materials = list("gold" = 3000, "diamond" = 1500, "uranium" = 250)
+ materials = list(MAT_GOLD = 3000, MAT_DIAMOND = 1500, MAT_URANIUM = 250)
build_path = /obj/item/storage/backpack/holding/duffle
sort_string = "QAAAB"
diff --git a/code/modules/research/designs/beakers.dm b/code/modules/research/designs/beakers.dm
index 376fe233516..c3929d2d3f6 100644
--- a/code/modules/research/designs/beakers.dm
+++ b/code/modules/research/designs/beakers.dm
@@ -8,7 +8,7 @@
desc = "A cryostasis beaker that allows for chemical storage without reactions. Can hold up to 50 units."
id = "splitbeaker"
req_tech = list(TECH_MATERIAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 3000)
+ materials = list(MAT_STEEL = 3000)
build_path = /obj/item/reagent_containers/glass/beaker/noreact
sort_string = "IAAAA"
@@ -17,6 +17,6 @@
desc = "A bluespace beaker, powered by experimental bluespace technology and Element Cuban combined with the Compound Pete. Can hold up to 300 units."
id = "bluespacebeaker"
req_tech = list(TECH_BLUESPACE = 2, TECH_MATERIAL = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 3000, "phoron" = 3000, "diamond" = 500)
+ materials = list(MAT_STEEL = 3000, MAT_PHORON = 3000, MAT_DIAMOND = 500)
build_path = /obj/item/reagent_containers/glass/beaker/bluespace
sort_string = "IAAAB"
diff --git a/code/modules/research/designs/bio_devices.dm b/code/modules/research/designs/bio_devices.dm
index b4308d84b1b..bde025472c9 100644
--- a/code/modules/research/designs/bio_devices.dm
+++ b/code/modules/research/designs/bio_devices.dm
@@ -1,5 +1,5 @@
/datum/design/item/biotech
- materials = list(DEFAULT_WALL_MATERIAL = 30, "glass" = 20)
+ materials = list(MAT_STEEL = 30, MAT_GLASS = 20)
/datum/design/item/biotech/AssembleDesignName()
..()
@@ -39,7 +39,7 @@
desc = "A hand-held scanner able to diagnose robotic injuries."
id = "robot_scanner"
req_tech = list(TECH_MAGNET = 3, TECH_BIO = 2, TECH_ENGINEERING = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 200)
+ materials = list(MAT_STEEL = 500, MAT_GLASS = 200)
build_path = /obj/item/robotanalyzer
sort_string = "JAACA"
@@ -47,7 +47,7 @@
desc = "A tube of paste containing swarms of repair nanites. Very effective in repairing robotic machinery."
id = "nanopaste"
req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 7000)
+ materials = list(MAT_STEEL = 7000, MAT_GLASS = 7000)
build_path = /obj/item/stack/nanopaste
sort_string = "JAACB"
@@ -55,7 +55,7 @@
desc = "A device capable of quickly scanning all relevant data about a plant."
id = "plant_analyzer"
req_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 500)
+ materials = list(MAT_STEEL = 500, MAT_GLASS = 500)
build_path = /obj/item/analyzer/plant_analyzer
sort_string = "JAADA"
@@ -63,7 +63,7 @@
name = "nanite implant framework"
id = "nif"
req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 8000, "uranium" = 6000, "diamond" = 6000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 8000, MAT_URANIUM = 6000, MAT_DIAMOND = 6000)
build_path = /obj/item/nif
sort_string = "JVAAA"
@@ -71,7 +71,7 @@
name = "bioadaptive NIF"
id = "bioadapnif"
req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5, TECH_BIO = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 15000, "uranium" = 10000, "diamond" = 10000)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 15000, MAT_URANIUM = 10000, MAT_DIAMOND = 10000)
build_path = /obj/item/nif/bioadap
sort_string = "JVAAB"
@@ -79,6 +79,6 @@
name = "adv. NIF repair tool"
id = "anrt"
req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 200, "glass" = 3000, "uranium" = 2000, "diamond" = 2000)
+ materials = list(MAT_STEEL = 200, MAT_GLASS = 3000, MAT_URANIUM = 2000, MAT_DIAMOND = 2000)
build_path = /obj/item/nifrepairer
sort_string = "JVABA"
diff --git a/code/modules/research/designs/circuit_assembly.dm b/code/modules/research/designs/circuit_assembly.dm
index c95681b000f..48641d04201 100644
--- a/code/modules/research/designs/circuit_assembly.dm
+++ b/code/modules/research/designs/circuit_assembly.dm
@@ -9,7 +9,7 @@
desc = "A portable(ish) printer for modular machines."
id = "ic_printer"
req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 4, TECH_DATA = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 10000)
+ materials = list(MAT_STEEL = 10000)
build_path = /obj/item/integrated_circuit_printer
sort_string = "UAAAA"
@@ -18,7 +18,7 @@
desc = "Allows the integrated circuit printer to create advanced circuits"
id = "ic_printer_upgrade_adv"
req_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 2000)
+ materials = list(MAT_STEEL = 2000)
build_path = /obj/item/disk/integrated_circuit/upgrade/advanced
sort_string = "UBAAA"
@@ -26,7 +26,7 @@
name = "Custom wirer tool"
id = "wirer"
req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 2500)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 2500)
build_path = /obj/item/integrated_electronics/wirer
sort_string = "UCAAA"
@@ -34,7 +34,7 @@
name = "Custom circuit debugger tool"
id = "debugger"
req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 2500)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 2500)
build_path = /obj/item/integrated_electronics/debugger
sort_string = "UCBBB"
@@ -49,7 +49,7 @@
desc = "A customizable assembly for simple, small devices."
id = "assembly-small"
req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 2, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 10000)
+ materials = list(MAT_STEEL = 10000)
build_path = /obj/item/electronic_assembly
sort_string = "UDAAA"
@@ -58,7 +58,7 @@
desc = "A customizable assembly suited for more ambitious mechanisms."
id = "assembly-medium"
req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 3, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 20000)
+ materials = list(MAT_STEEL = 20000)
build_path = /obj/item/electronic_assembly/medium
sort_string = "UDAAB"
@@ -67,7 +67,7 @@
desc = "A customizable assembly for large machines."
id = "assembly-large"
req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4, TECH_POWER = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 40000)
+ materials = list(MAT_STEEL = 40000)
build_path = /obj/item/electronic_assembly/large
sort_string = "UDAAC"
@@ -76,7 +76,7 @@
desc = "A customizable assembly optimized for autonomous devices."
id = "assembly-drone"
req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 4, TECH_POWER = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 30000)
+ materials = list(MAT_STEEL = 30000)
build_path = /obj/item/electronic_assembly/drone
sort_string = "UDAAD"
@@ -85,7 +85,7 @@
desc = "An customizable assembly designed to interface with other devices."
id = "assembly-device"
req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 5000)
+ materials = list(MAT_STEEL = 5000)
build_path = /obj/item/assembly/electronic_assembly
sort_string = "UDAAE"
@@ -94,6 +94,6 @@
desc = "An customizable assembly for very small devices, implanted into living entities."
id = "assembly-implant"
req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4, TECH_POWER = 3, TECH_BIO = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 2000)
+ materials = list(MAT_STEEL = 2000)
build_path = /obj/item/implant/integrated_circuit
sort_string = "UDAAF"
diff --git a/code/modules/research/designs/circuits/ai_modules.dm b/code/modules/research/designs/circuits/ai_modules.dm
index 9ba201245c8..9320253c937 100644
--- a/code/modules/research/designs/circuits/ai_modules.dm
+++ b/code/modules/research/designs/circuits/ai_modules.dm
@@ -1,6 +1,6 @@
/datum/design/aimodule
build_type = IMPRINTER
- materials = list("glass" = 2000, "gold" = 100)
+ materials = list(MAT_GLASS = 2000, MAT_GOLD = 100)
/datum/design/aimodule/AssembleDesignName()
name = "AI module design ([name])"
diff --git a/code/modules/research/designs/circuits/circuits.dm b/code/modules/research/designs/circuits/circuits.dm
index 8a8acb0be88..ddf9a5e5027 100644
--- a/code/modules/research/designs/circuits/circuits.dm
+++ b/code/modules/research/designs/circuits/circuits.dm
@@ -5,7 +5,7 @@ CIRCUITS BELOW
/datum/design/circuit
build_type = IMPRINTER
req_tech = list(TECH_DATA = 2)
- materials = list("glass" = 2000)
+ materials = list(MAT_GLASS = 2000)
chemicals = list("sacid" = 20)
time = 5
diff --git a/code/modules/research/designs/engineering.dm b/code/modules/research/designs/engineering.dm
index d9f5de81ea3..a2cb524d43b 100644
--- a/code/modules/research/designs/engineering.dm
+++ b/code/modules/research/designs/engineering.dm
@@ -9,7 +9,7 @@
desc = "A welding tool that generates fuel for itself."
id = "expwelder"
req_tech = list(TECH_ENGINEERING = 4, TECH_PHORON = 3, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120, "phoron" = 100)
+ materials = list(MAT_STEEL = 70, MAT_GLASS = 120, MAT_PHORON = 100)
build_path = /obj/item/weldingtool/experimental
sort_string = "NAAAA"
@@ -18,7 +18,7 @@
desc = "A simple powered hand drill."
id = "handdrill"
req_tech = list(TECH_ENGINEERING = 3, TECH_MATERIAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 300, "silver" = 100)
+ materials = list(MAT_STEEL = 300, MAT_SILVER = 100)
build_path = /obj/item/tool/screwdriver/power
sort_string = "NAAAB"
@@ -27,7 +27,7 @@
desc = "A set of jaws of life, compressed through the magic of science."
id = "jawslife"
req_tech = list(TECH_ENGINEERING = 3, TECH_MATERIAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 300, "silver" = 100)
+ materials = list(MAT_STEEL = 300, MAT_SILVER = 100)
build_path = /obj/item/tool/crowbar/power
sort_string = "NAAAC"
@@ -36,7 +36,7 @@
desc = "A combined wirecutter, screwdriver, crowbar, wrench and multitool. The small size makes it somewhat slower at work."
id = "switchtool"
req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 2000)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 2000)
build_path = /obj/item/switchtool
sort_string = "NAAAD"
@@ -51,7 +51,7 @@
desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes."
id = "tscanner"
req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2, TECH_MATERIAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 200)
+ materials = list(MAT_STEEL = 200)
build_path = /obj/item/t_scanner
sort_string = "NBAAA"
@@ -60,7 +60,7 @@
desc = "An upgraded version of the terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes."
id = "upgradedtscanner"
req_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 4, TECH_MATERIAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 500, "phoron" = 150)
+ materials = list(MAT_STEEL = 500, MAT_PHORON = 150)
build_path = /obj/item/t_scanner/upgraded
sort_string = "NBAAB"
@@ -69,7 +69,7 @@
desc = "An advanced version of the terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes."
id = "advancedtscanner"
req_tech = list(TECH_MAGNET = 6, TECH_ENGINEERING = 6, TECH_MATERIAL = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 1250, "phoron" = 500, "silver" = 50)
+ materials = list(MAT_STEEL = 1250, MAT_PHORON = 500, MAT_SILVER = 50)
build_path = /obj/item/t_scanner/advanced
sort_string = "NBAAC"
@@ -78,7 +78,7 @@
desc = "A hand-held environmental scanner which reports current gas levels."
id = "atmosanalyzer"
req_tech = list(TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 200, "glass" = 100)
+ materials = list(MAT_STEEL = 200, MAT_GLASS = 100)
build_path = /obj/item/analyzer
sort_string = "NBABA"
@@ -87,6 +87,6 @@
desc = "A hand-held environmental scanner which reports current gas levels from a distance."
id = "atmosanalyzerlr"
req_tech = list(TECH_ENGINEERING = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 300, "glass" = 300)
+ materials = list(MAT_STEEL = 300, MAT_GLASS = 300)
build_path = /obj/item/analyzer/longrange
sort_string = "NBABB"
diff --git a/code/modules/research/designs/implants.dm b/code/modules/research/designs/implants.dm
index 373b417dcfb..130f1188a29 100644
--- a/code/modules/research/designs/implants.dm
+++ b/code/modules/research/designs/implants.dm
@@ -1,7 +1,7 @@
// Implants
/datum/design/item/implant
- materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ materials = list(MAT_STEEL = 50, MAT_GLASS = 50)
/datum/design/item/implant/AssembleDesignName()
..()
diff --git a/code/modules/research/designs/implants_vr.dm b/code/modules/research/designs/implants_vr.dm
index 1e754ecac06..dc92e641337 100644
--- a/code/modules/research/designs/implants_vr.dm
+++ b/code/modules/research/designs/implants_vr.dm
@@ -2,7 +2,7 @@
// name = "Backup implant"
// id = "implant_backup"
// req_tech = list(TECH_MATERIAL = 2, TECH_BIO = 2, TECH_DATA = 4, TECH_ENGINEERING = 2)
-// materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000)
+// materials = list(MAT_STEEL = 2000, MAT_GLASS = 2000)
// build_path = /obj/item/implantcase/backup
// sort_string = "MFAVA"
@@ -10,7 +10,7 @@
name = "Size control implant"
id = "implant_size"
req_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4, TECH_DATA = 4, TECH_ENGINEERING = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000, "silver" = 3000)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 2000, MAT_SILVER = 3000)
build_path = /obj/item/implanter/sizecontrol
sort_string = "MFAVB"
@@ -19,7 +19,7 @@
name = "Language implant"
id = "implant_language"
req_tech = list(TECH_MATERIAL = 5, TECH_BIO = 5, TECH_DATA = 4, TECH_ENGINEERING = 4) //This is not an easy to make implant.
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 7000, "gold" = 2000, "diamond" = 3000)
+ materials = list(MAT_STEEL = 7000, MAT_GLASS = 7000, MAT_GOLD = 2000, MAT_DIAMOND = 3000)
build_path = /obj/item/implantcase/vrlanguage
sort_string = "MFAVC"
*/
diff --git a/code/modules/research/designs/locator_devices.dm b/code/modules/research/designs/locator_devices.dm
index 0abd2991e26..5a29014e387 100644
--- a/code/modules/research/designs/locator_devices.dm
+++ b/code/modules/research/designs/locator_devices.dm
@@ -2,7 +2,7 @@
/datum/design/item/gps
req_tech = list(TECH_MATERIAL = 2, TECH_DATA = 2, TECH_BLUESPACE = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 500)
+ materials = list(MAT_STEEL = 500)
/datum/design/item/gps/AssembleDesignName()
..()
@@ -67,7 +67,7 @@
desc = "Used to scan and locate signals on a particular frequency."
id = "beacon_locator"
req_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 2, TECH_BLUESPACE = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 1000,"glass" = 500)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 500)
build_path = /obj/item/beacon_locator
sort_string = "DBAAA"
@@ -75,6 +75,6 @@
name = "Bluespace tracking beacon"
id = "beacon"
req_tech = list(TECH_BLUESPACE = 1)
- materials = list (DEFAULT_WALL_MATERIAL = 20, "glass" = 10)
+ materials = list (MAT_STEEL = 20, MAT_GLASS = 10)
build_path = /obj/item/radio/beacon
sort_string = "DBABA"
diff --git a/code/modules/research/designs/medical.dm b/code/modules/research/designs/medical.dm
index 9015847dad5..e744c9f8527 100644
--- a/code/modules/research/designs/medical.dm
+++ b/code/modules/research/designs/medical.dm
@@ -1,5 +1,5 @@
/datum/design/item/medical
- materials = list(DEFAULT_WALL_MATERIAL = 30, "glass" = 20)
+ materials = list(MAT_STEEL = 30, MAT_GLASS = 20)
/datum/design/item/medical/AssembleDesignName()
..()
@@ -12,7 +12,7 @@
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks basic and could be improved."
id = "scalpel_laser1"
req_tech = list(TECH_BIO = 2, TECH_MATERIAL = 2, TECH_MAGNET = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "glass" = 5000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 5000)
build_path = /obj/item/surgical/scalpel/laser1
sort_string = "KAAAA"
@@ -21,7 +21,7 @@
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks somewhat advanced."
id = "scalpel_laser2"
req_tech = list(TECH_BIO = 3, TECH_MATERIAL = 4, TECH_MAGNET = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "glass" = 5000, "silver" = 2500)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 5000, MAT_SILVER = 2500)
build_path = /obj/item/surgical/scalpel/laser2
sort_string = "KAAAB"
@@ -30,7 +30,7 @@
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks to be the pinnacle of precision energy cutlery!"
id = "scalpel_laser3"
req_tech = list(TECH_BIO = 4, TECH_MATERIAL = 6, TECH_MAGNET = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "glass" = 5000, "silver" = 2000, "gold" = 1500)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 5000, MAT_SILVER = 2000, MAT_GOLD = 1500)
build_path = /obj/item/surgical/scalpel/laser3
sort_string = "KAAAC"
@@ -39,7 +39,7 @@
desc = "A true extension of the surgeon's body, this marvel instantly and completely prepares an incision allowing for the immediate commencement of therapeutic steps."
id = "scalpel_manager"
req_tech = list(TECH_BIO = 4, TECH_MATERIAL = 7, TECH_MAGNET = 5, TECH_DATA = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "glass" = 5000, "silver" = 1500, "gold" = 1500, "diamond" = 750)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 5000, MAT_SILVER = 1500, MAT_GOLD = 1500, MAT_DIAMOND = 750)
build_path = /obj/item/surgical/scalpel/manager
sort_string = "KAAAD"
@@ -48,7 +48,7 @@
desc = "A strange development following the I.M.S., this heavy tool can split and open, or close and shut, intentional holes in bones."
id = "advanced_saw"
req_tech = list(TECH_BIO = 4, TECH_MATERIAL = 7, TECH_MAGNET = 6, TECH_DATA = 5)
- materials = list (DEFAULT_WALL_MATERIAL = 12500, MAT_PLASTIC = 800, "silver" = 1500, "gold" = 1500, MAT_OSMIUM = 1000)
+ materials = list (MAT_STEEL = 12500, MAT_PLASTIC = 800, MAT_SILVER = 1500, MAT_GOLD = 1500, MAT_OSMIUM = 1000)
build_path = /obj/item/surgical/circular_saw/manager
sort_string = "KAAAE"
@@ -57,7 +57,7 @@
desc = "A modern and horrifying take on an ancient practice, this tool is capable of rapidly removing an organ from a hopefully willing patient, without damaging it."
id = "organ_ripper"
req_tech = list(TECH_BIO = 3, TECH_MATERIAL = 5, TECH_MAGNET = 4, TECH_ILLEGAL = 3)
- materials = list (DEFAULT_WALL_MATERIAL = 12500, MAT_PLASTIC = 8000, MAT_OSMIUM = 2500)
+ materials = list (MAT_STEEL = 12500, MAT_PLASTIC = 8000, MAT_OSMIUM = 2500)
build_path = /obj/item/surgical/scalpel/ripper
sort_string = "KAAAF"
@@ -66,7 +66,7 @@
desc = "A miracle of modern science, this tool rapidly knits together bone, without the need for bone gel."
id = "bone_clamp"
req_tech = list(TECH_BIO = 4, TECH_MATERIAL = 5, TECH_MAGNET = 4, TECH_DATA = 4)
- materials = list (DEFAULT_WALL_MATERIAL = 12500, "glass" = 7500, "silver" = 2500)
+ materials = list (MAT_STEEL = 12500, MAT_GLASS = 7500, MAT_SILVER = 2500)
build_path = /obj/item/surgical/bone_clamp
sort_string = "KAABA"
@@ -75,7 +75,7 @@
desc = "A set of compact surgical instruments housed in a small handle, allowing surgical proccedures on the go."
id = "surgery_switchtool"
req_tech = list(TECH_BIO = 4, TECH_MATERIAL = 5, TECH_MAGNET = 4, TECH_DATA = 4)
- materials = list (DEFAULT_WALL_MATERIAL = 12500, "glass" = 7500, "silver" = 2500)
+ materials = list (MAT_STEEL = 12500, MAT_GLASS = 7500, MAT_SILVER = 2500)
build_path = /obj/item/switchtool/surgery
sort_string = "KAABA"
@@ -84,7 +84,7 @@
desc = "A hand-held body scanner able to distinguish vital signs of the subject."
id = "medical_analyzer"
req_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 500)
+ materials = list(MAT_STEEL = 500, MAT_GLASS = 500)
build_path = /obj/item/healthanalyzer
sort_string = "KBAAA"
@@ -93,7 +93,7 @@
desc = "A prototype version of the regular health analyzer, able to distinguish the location of more serious injuries as well as accurately determine radiation levels."
id = "improved_analyzer"
req_tech = list(TECH_MAGNET = 5, TECH_BIO = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000, "silver" = 1000, "gold" = 1500)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 1000, MAT_SILVER = 1000, MAT_GOLD = 1500)
build_path = /obj/item/healthanalyzer/improved
sort_string = "KBAAB"
@@ -102,7 +102,7 @@
desc = "A prototype version of the improved health analyzer, able to distinguish the location of more serious injuries as well as accurately determine radiation levels, and neurological analysis suites"
id = "advanced_analyzer"
req_tech = list(TECH_MAGNET = 6, TECH_BIO = 7, TECH_PHORON = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000, "silver" = 1250, "gold" = 1750, "uranium" = 1000, "plastic" = 500)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 1000, MAT_SILVER = 1250, MAT_GOLD = 1750, MAT_URANIUM = 1000, MAT_PLASTIC = 500)
build_path = /obj/item/healthanalyzer/advanced
sort_string = "KBAAC"
@@ -111,7 +111,7 @@
desc = "A prototype version of the advanced health analyzer, able to distinguish the location of more serious injuries as well as accurately determine radiation levels, and neurological analysis suites. This analyzer even picks up chemicals in the patient's stomach."
id = "phasic_analyzer"
req_tech = list(TECH_MAGNET = 7, TECH_BIO = 8, TECH_BLUESPACE = 6, TECH_PHORON = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000, "silver" = 1500, "gold" = 2000, "uranium" = 1250, "diamond" = 750, "phoron" = 500, "plastic" = 1000, "osmium" = 500)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 1000, MAT_SILVER = 1500, MAT_GOLD = 2000, MAT_URANIUM = 1250, MAT_DIAMOND = 750, MAT_PHORON = 500, MAT_PLASTIC = 1000, MAT_OSMIUM = 500)
build_path = /obj/item/healthanalyzer/phasic
sort_string = "KBAAD"
@@ -120,7 +120,7 @@
desc = "A more advanced version of the regular roller bed, with inbuilt surgical stabilisers and an improved folding system."
id = "roller_bed"
req_tech = list(TECH_BIO = 3, TECH_MATERIAL = 3, TECH_MAGNET = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 2000, "phoron" = 2000)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 2000, MAT_PHORON = 2000)
build_path = /obj/item/roller/adv
sort_string = "KCAAA"
@@ -143,7 +143,7 @@
// name = "SleeveMate 3700"
// id = "sleevemate"
// req_tech = list(TECH_MATERIAL = 3, TECH_MAGNET = 2, TECH_BIO = 2)
-// materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 4000)
+// materials = list(MAT_STEEL = 4000, MAT_GLASS = 4000)
// build_path = /obj/item/sleevemate
// sort_string = "KCAVA"
@@ -152,7 +152,7 @@
desc = "This prototype hypospray is a sterile, air-needle autoinjector for rapid administration of drugs to patients."
id = "protohypospray"
req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 3, TECH_POWER = 2, TECH_BIO = 4, TECH_ILLEGAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 1500, "silver" = 2000, "gold" = 1500, "uranium" = 1000)
+ materials = list(MAT_STEEL = 500, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 1500, MAT_URANIUM = 1000)
build_path = /obj/item/reagent_containers/hypospray/science
sort_string = "KCAVB"
@@ -165,7 +165,7 @@
name = "advanced medical cell magazine"
id = "cell_medigun_mag_advanced"
req_tech = list(TECH_MATERIAL = 7, TECH_MAGNET = 6, TECH_POWER = 4, TECH_BIO = 7)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "plastic" = 10000, "glass" = 5000, "silver" = 1500, "gold" = 1500, "diamond" = 5000)
+ materials = list(MAT_STEEL = 5000, MAT_PLASTIC = 10000, MAT_GLASS = 5000, MAT_SILVER = 1500, MAT_GOLD = 1500, MAT_DIAMOND = 5000)
build_path = /obj/item/ammo_magazine/cell_mag/medical/advanced
sort_string = "KVAAA"
@@ -179,7 +179,7 @@
name = "TOXIN"
id = "ml3m_cell_toxin"
req_tech = list(TECH_MATERIAL = 3, TECH_MAGNET = 3, TECH_BIO = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250)
build_path = /obj/item/ammo_casing/microbattery/medical/toxin
sort_string = "KVBAA"
@@ -187,7 +187,7 @@
name = "OMNI"
id = "ml3m_cell_omni"
req_tech = list(TECH_MATERIAL = 3, TECH_MAGNET = 3, TECH_BIO = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250)
build_path = /obj/item/ammo_casing/microbattery/medical/omni
sort_string = "KVBAB"
@@ -195,7 +195,7 @@
name = "ANTIRAD"
id = "ml3m_cell_antirad"
req_tech = list(TECH_MATERIAL = 3, TECH_MAGNET = 3, TECH_BIO = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250)
build_path = /obj/item/ammo_casing/microbattery/medical/antirad
sort_string = "KVBAC"
@@ -205,7 +205,7 @@
name = "BRUTE-II"
id = "ml3m_cell_brute2"
req_tech = list(TECH_MATERIAL = 5, TECH_MAGNET = 3, TECH_POWER = 2, TECH_BIO = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "gold" = 900)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_GOLD = 900)
build_path = /obj/item/ammo_casing/microbattery/medical/brute2
sort_string = "KVCBA"
@@ -213,7 +213,7 @@
name = "BURN-II"
id = "ml3m_cell_burn2"
req_tech = list(TECH_MATERIAL = 5, TECH_MAGNET = 3, TECH_POWER = 2, TECH_BIO = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "gold" = 900)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_GOLD = 900)
build_path = /obj/item/ammo_casing/microbattery/medical/burn2
sort_string = "KVCBB"
@@ -221,7 +221,7 @@
name = "STABILIZE-II"
id = "ml3m_cell_stabilize2"
req_tech = list(TECH_MATERIAL = 5, TECH_MAGNET = 3, TECH_POWER = 2, TECH_BIO = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "silver" = 900)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_SILVER = 900)
build_path = /obj/item/ammo_casing/microbattery/medical/stabilize2
sort_string = "KVCBC"
@@ -229,7 +229,7 @@
name = "OMNI-II"
id = "ml3m_cell_omni2"
req_tech = list(TECH_MATERIAL = 5, TECH_MAGNET = 3, TECH_POWER = 2, TECH_BIO = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "uranium" = 900)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_URANIUM = 900)
build_path = /obj/item/ammo_casing/microbattery/medical/omni2
sort_string = "KVCBD"
@@ -239,7 +239,7 @@
name = "TOXIN-II"
id = "ml3m_cell_toxin2"
req_tech = list(TECH_MATERIAL = 6, TECH_MAGNET = 3, TECH_POWER = 3, TECH_BIO = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "uranium" = 900, "silver" = 900, "diamond" = 500)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_URANIUM = 900, MAT_SILVER = 900, MAT_DIAMOND = 500)
build_path = /obj/item/ammo_casing/microbattery/medical/toxin2
sort_string = "KVCCA"
@@ -247,7 +247,7 @@
name = "HASTE"
id = "ml3m_cell_haste"
req_tech = list(TECH_MATERIAL = 6, TECH_MAGNET = 3, TECH_POWER = 3, TECH_BIO = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "gold" = 900, "silver" = 900, "diamond" = 900)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_GOLD = 900, MAT_SILVER = 900, MAT_DIAMOND = 900)
build_path = /obj/item/ammo_casing/microbattery/medical/haste
sort_string = "KVCCB"
@@ -255,7 +255,7 @@
name = "RESIST"
id = "ml3m_cell_resist"
req_tech = list(TECH_MATERIAL = 6, TECH_MAGNET = 3, TECH_POWER = 3, TECH_BIO = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "gold" = 900, "uranium" = 900, "diamond" = 900)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_GOLD = 900, MAT_URANIUM = 900, MAT_DIAMOND = 900)
build_path = /obj/item/ammo_casing/microbattery/medical/resist
sort_string = "KVCCC"
@@ -263,7 +263,7 @@
name = "CORPSE MEND"
id = "ml3m_cell_corpse_mend"
req_tech = list(TECH_MATERIAL = 6, TECH_MAGNET = 3, TECH_POWER = 3, TECH_BIO = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "phoron" = 3000, "diamond" = 3000)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_PHORON = 3000, MAT_DIAMOND = 3000)
build_path = /obj/item/ammo_casing/microbattery/medical/corpse_mend
sort_string = "KVCCD"
@@ -273,7 +273,7 @@
name = "BRUTE-III"
id = "ml3m_cell_brute3"
req_tech = list(TECH_MATERIAL = 7, TECH_MAGNET = 6, TECH_POWER = 5, TECH_BIO = 7, TECH_PRECURSOR = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "diamond" = 500, "verdantium" = 900)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_DIAMOND = 500, MAT_VERDANTIUM = 900)
build_path = /obj/item/ammo_casing/microbattery/medical/brute3
sort_string = "KVCDA"
@@ -281,7 +281,7 @@
name = "BURN-III"
id = "ml3m_cell_burn3"
req_tech = list(TECH_MATERIAL = 7, TECH_MAGNET = 6, TECH_POWER = 5, TECH_BIO = 7, TECH_PRECURSOR = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "diamond" = 500, "verdantium" = 900)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_DIAMOND = 500, MAT_VERDANTIUM = 900)
build_path = /obj/item/ammo_casing/microbattery/medical/burn3
sort_string = "KVCDB"
@@ -289,7 +289,7 @@
name = "TOXIN-III"
id = "ml3m_cell_toxin3"
req_tech = list(TECH_MATERIAL = 7, TECH_MAGNET = 6, TECH_POWER = 5, TECH_BIO = 7, TECH_ARCANE = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "diamond" = 500, "verdantium" = 900)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_DIAMOND = 500, MAT_VERDANTIUM = 900)
build_path = /obj/item/ammo_casing/microbattery/medical/toxin3
sort_string = "KVCDC"
@@ -297,7 +297,7 @@
name = "OMNI-III"
id = "ml3m_cell_omni3"
req_tech = list(TECH_MATERIAL = 7, TECH_MAGNET = 6, TECH_POWER = 5, TECH_BIO = 7, TECH_ARCANE = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "diamond" = 500, "verdantium" = 900)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_DIAMOND = 500, MAT_VERDANTIUM = 900)
build_path = /obj/item/ammo_casing/microbattery/medical/omni3
sort_string = "KVCDD"
@@ -307,7 +307,7 @@
name = "SHRINK"
id = "ml3m_cell_shrink"
req_tech = list(TECH_MATERIAL = 5, TECH_MAGNET = 3, TECH_BLUESPACE = 3, TECH_BIO = 5, TECH_ILLEGAL = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "uranium" = 1800)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_URANIUM = 1800)
build_path = /obj/item/ammo_casing/microbattery/medical/shrink
sort_string = "KVCOA"
@@ -315,7 +315,7 @@
name = "GROW"
id = "ml3m_cell_grow"
req_tech = list(TECH_MATERIAL = 5, TECH_MAGNET = 3, TECH_BLUESPACE = 3, TECH_BIO = 5, TECH_ILLEGAL = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "uranium" = 1800)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_URANIUM = 1800)
build_path = /obj/item/ammo_casing/microbattery/medical/grow
sort_string = "KVCOB"
@@ -323,6 +323,6 @@
name = "NORMALSIZE"
id = "ml3m_cell_normalsize"
req_tech = list(TECH_MATERIAL = 5, TECH_MAGNET = 3, TECH_BLUESPACE = 3, TECH_BIO = 5, TECH_ILLEGAL = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 4500, "glass" = 4500, "plastic" = 2250, "uranium" = 1800)
+ materials = list(MAT_STEEL = 4500, MAT_GLASS = 4500, MAT_PLASTIC = 2250, MAT_URANIUM = 1800)
build_path = /obj/item/ammo_casing/microbattery/medical/normalsize
sort_string = "KVCOC"
diff --git a/code/modules/research/designs/mining_toys.dm b/code/modules/research/designs/mining_toys.dm
index d459331750c..8df3567e230 100644
--- a/code/modules/research/designs/mining_toys.dm
+++ b/code/modules/research/designs/mining_toys.dm
@@ -7,49 +7,49 @@
/datum/design/item/mining/drill
id = "drill"
req_tech = list(TECH_MATERIAL = 2, TECH_POWER = 3, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 1000) //expensive, but no need for miners.
+ materials = list(MAT_STEEL = 6000, MAT_GLASS = 1000) //expensive, but no need for miners.
build_path = /obj/item/pickaxe/drill
sort_string = "FAAAA"
/datum/design/item/mining/jackhammer
id = "jackhammer"
req_tech = list(TECH_MATERIAL = 3, TECH_POWER = 2, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 500, "silver" = 500)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 500, MAT_SILVER = 500)
build_path = /obj/item/pickaxe/jackhammer
sort_string = "FAAAB"
/datum/design/item/mining/plasmacutter
id = "plasmacutter"
req_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 3, TECH_ENGINEERING = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 1500, "glass" = 500, "gold" = 500, "phoron" = 500)
+ materials = list(MAT_STEEL = 1500, MAT_GLASS = 500, MAT_GOLD = 500, MAT_PHORON = 500)
build_path = /obj/item/pickaxe/plasmacutter
sort_string = "FAAAC"
/datum/design/item/mining/pick_diamond
id = "pick_diamond"
req_tech = list(TECH_MATERIAL = 6)
- materials = list("diamond" = 3000)
+ materials = list(MAT_DIAMOND = 3000)
build_path = /obj/item/pickaxe/diamond
sort_string = "FAAAD"
/datum/design/item/mining/drill_diamond
id = "drill_diamond"
req_tech = list(TECH_MATERIAL = 6, TECH_POWER = 4, TECH_ENGINEERING = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 1000, "diamond" = 2000)
+ materials = list(MAT_STEEL = 3000, MAT_GLASS = 1000, MAT_DIAMOND = 2000)
build_path = /obj/item/pickaxe/diamonddrill
sort_string = "FAAAE"
/datum/design/item/mining/advbore
id = "adv_bore"
req_tech = list(TECH_MATERIAL = 5, TECH_PHORON = 5, TECH_ENGINEERING = 4, TECH_POWER = 4) //phoron 5 needs materials to get
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 2500, "gold" = 2500, "phoron" = 2500)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 2500, MAT_GOLD = 2500, MAT_PHORON = 2500)
build_path = /obj/item/gun/magnetic/matfed/advanced
sort_string = "FAABA"
/datum/design/item/mining/vertibore
id = "vertibore"
req_tech = list(TECH_MATERIAL = 5, TECH_PHORON = 5, TECH_ENGINEERING = 6, TECH_POWER = 7)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 5000, "gold" = 5000, "phoron" = 5000, "diamond" = 100, "uranium" = 1000)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 5000, MAT_GOLD = 5000, MAT_PHORON = 5000, MAT_DIAMOND = 100, MAT_URANIUM = 1000)
build_path = /obj/item/vertibore
sort_string = "FAABB"
@@ -57,13 +57,13 @@
/datum/design/item/mining/mining_scanner
id = "mining_scanner"
req_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 150)
+ materials = list(MAT_STEEL = 150)
build_path = /obj/item/mining_scanner
sort_string = "FAACA"
/datum/design/item/mining/mining_scanner_adv
id = "mining_scanner_adv"
req_tech = list(TECH_MAGNET = 4, TECH_ENGINEERING = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 1000)
build_path = /obj/item/mining_scanner/advanced
sort_string = "FAACB"
diff --git a/code/modules/research/designs/misc.dm b/code/modules/research/designs/misc.dm
index 32f140d7656..4a39550e78d 100644
--- a/code/modules/research/designs/misc.dm
+++ b/code/modules/research/designs/misc.dm
@@ -8,7 +8,7 @@
name = "Communicator"
id = "communicator"
req_tech = list(TECH_DATA = 2, TECH_MAGNET = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 500)
+ materials = list(MAT_STEEL = 500, MAT_GLASS = 500)
build_path = /obj/item/communicator
sort_string = "TAAAA"
@@ -17,7 +17,7 @@ datum/design/item/general/laserpointer
desc = "Don't shine it in your eyes!"
id = "laser_pointer"
req_tech = list(TECH_MAGNET = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 100, "glass" = 50)
+ materials = list(MAT_STEEL = 100, MAT_GLASS = 50)
build_path = /obj/item/laser_pointer
sort_string = "TAABA"
@@ -25,7 +25,7 @@ datum/design/item/general/laserpointer
name = "handheld translator"
id = "translator"
req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 3000)
+ materials = list(MAT_STEEL = 3000, MAT_GLASS = 3000)
build_path = /obj/item/universal_translator
sort_string = "TAACA"
@@ -33,7 +33,7 @@ datum/design/item/general/laserpointer
name = "earpiece translator"
id = "ear_translator"
req_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 5) //It's been hella miniaturized.
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000, "gold" = 1000)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 2000, MAT_GOLD = 1000)
build_path = /obj/item/universal_translator/ear
sort_string = "TAACB"
@@ -42,7 +42,7 @@ datum/design/item/general/laserpointer
desc = "A device to automatically replace lights. Refill with working lightbulbs."
id = "light_replacer"
req_tech = list(TECH_MAGNET = 3, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 1500, "silver" = 150, "glass" = 3000)
+ materials = list(MAT_STEEL = 1500, MAT_SILVER = 150, MAT_GLASS = 3000)
build_path = /obj/item/lightreplacer
sort_string = "TAADA"
@@ -55,7 +55,7 @@ datum/design/item/general/laserpointer
desc = "Allows for deciphering the binary channel on-the-fly."
id = "binaryencrypt"
req_tech = list(TECH_ILLEGAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 300, "glass" = 300)
+ materials = list(MAT_STEEL = 300, MAT_GLASS = 300)
build_path = /obj/item/encryptionkey/binary
sort_string = "TBAAA"
@@ -64,7 +64,7 @@ datum/design/item/general/laserpointer
desc = "A kit of dangerous, high-tech equipment with changeable looks."
id = "chameleon"
req_tech = list(TECH_ILLEGAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 500)
+ materials = list(MAT_STEEL = 500)
build_path = /obj/item/storage/box/syndie_kit/chameleon
sort_string = "TBAAB"
@@ -72,7 +72,7 @@ datum/design/item/general/laserpointer
name = "Bluespace jumpsuit"
id = "bsjumpsuit"
req_tech = list(TECH_BLUESPACE = 2, TECH_MATERIAL = 3, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 4000)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 4000)
build_path = /obj/item/clothing/under/bluespace
sort_string = "TAVAA"
@@ -80,7 +80,7 @@ datum/design/item/general/laserpointer
name = "Size gun"
id = "sizegun"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 2000, "uranium" = 2000)
+ materials = list(MAT_STEEL = 3000, MAT_GLASS = 2000, MAT_URANIUM = 2000)
build_path = /obj/item/gun/energy/sizegun
sort_string = "TAVAB"
/*
@@ -88,7 +88,7 @@ datum/design/item/general/laserpointer
name = "Body Snatcher"
id = "bodysnatcher"
req_tech = list(TECH_MAGNET = 3, TECH_BIO = 3, TECH_ILLEGAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 4000)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 4000)
build_path = /obj/item/bodysnatcher
sort_string = "TBVAA"
*/
@@ -96,7 +96,7 @@ datum/design/item/general/laserpointer
name = "Inducer (Scientific)"
id = "inducersci"
req_tech = list(TECH_BLUESPACE = 4, TECH_MATERIAL = 5, TECH_POWER = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 2000, MAT_URANIUM = 4000, MAT_PHORON = 4000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 2000, MAT_URANIUM = 4000, MAT_PHORON = 4000)
build_path = /obj/item/inducer/sci
sort_string = "TAVAB"
@@ -104,7 +104,7 @@ datum/design/item/general/laserpointer
name = "Inducer (Industrial)"
id = "inducerind"
req_tech = list(TECH_BLUESPACE = 5, TECH_MATERIAL = 7, TECH_POWER = 7)
- materials = list(DEFAULT_WALL_MATERIAL = 9000, MAT_GLASS = 3000, MAT_URANIUM = 5000, MAT_PHORON = 6000, MAT_DIAMOND = 1000) // Cit change until we have more of a need for titanium, MAT_TITANIUM = 2000)
+ materials = list(MAT_STEEL = 9000, MAT_GLASS = 3000, MAT_URANIUM = 5000, MAT_PHORON = 6000, MAT_DIAMOND = 1000) // Cit change until we have more of a need for titanium, MAT_TITANIUM = 2000)
build_path = /obj/item/inducer/unloaded
sort_string = "TAVAC"
@@ -112,7 +112,7 @@ datum/design/item/general/laserpointer
name = "handheld omni-translator"
id = "translator_all"
req_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 3000, "gold" = 500, "silver" = 500)
+ materials = list(MAT_STEEL = 3000, MAT_GLASS = 3000, MAT_GOLD = 500, MAT_SILVER = 500)
build_path = /obj/item/universal_translator/all
sort_string = "TAACC"
@@ -120,6 +120,6 @@ datum/design/item/general/laserpointer
name = "earpiece omni-translator"
id = "ear_translator_all"
req_tech = list(TECH_DATA = 6, TECH_ENGINEERING = 6) //dude what hte fuck lmao
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000, "gold" = 2000, "silver" = 2000)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 2000, MAT_GOLD = 2000, MAT_SILVER = 2000)
build_path = /obj/item/universal_translator/ear/all
sort_string = "TAACD"
diff --git a/code/modules/research/designs/modular_computer.dm b/code/modules/research/designs/modular_computer.dm
index 886d0e193ee..4fb8b2ce3cc 100644
--- a/code/modules/research/designs/modular_computer.dm
+++ b/code/modules/research/designs/modular_computer.dm
@@ -9,14 +9,14 @@
name = "basic hard drive"
id = "hdd_basic"
req_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 100)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 100)
build_path = /obj/item/computer_hardware/hard_drive/
sort_string = "VAAAA"
/datum/design/item/modularcomponent/disk/advanced
name = "advanced hard drive"
id = "hdd_advanced"
- materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 200)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 200)
build_path = /obj/item/computer_hardware/hard_drive/advanced
sort_string = "VAAAB"
@@ -24,7 +24,7 @@
name = "super hard drive"
id = "hdd_super"
req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "glass" = 400)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 400)
build_path = /obj/item/computer_hardware/hard_drive/super
sort_string = "VAAAC"
@@ -32,7 +32,7 @@
name = "cluster hard drive"
id = "hdd_cluster"
req_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 16000, "glass" = 800)
+ materials = list(MAT_STEEL = 16000, MAT_GLASS = 800)
build_path = /obj/item/computer_hardware/hard_drive/cluster
sort_string = "VAAAD"
@@ -40,7 +40,7 @@
name = "small hard drive"
id = "hdd_small"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 200)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 200)
build_path = /obj/item/computer_hardware/hard_drive/small
sort_string = "VAAAE"
@@ -48,7 +48,7 @@
name = "micro hard drive"
id = "hdd_micro"
req_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 100)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 100)
build_path = /obj/item/computer_hardware/hard_drive/micro
sort_string = "VAAAF"
@@ -58,7 +58,7 @@
name = "basic network card"
id = "netcard_basic"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 100)
+ materials = list(MAT_STEEL = 500, MAT_GLASS = 100)
build_path = /obj/item/computer_hardware/network_card
sort_string = "VBAAA"
@@ -66,7 +66,7 @@
name = "advanced network card"
id = "netcard_advanced"
req_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 200)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 200)
build_path = /obj/item/computer_hardware/network_card/advanced
sort_string = "VBAAB"
@@ -74,7 +74,7 @@
name = "wired network card"
id = "netcard_wired"
req_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 400)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 400)
build_path = /obj/item/computer_hardware/network_card/wired
sort_string = "VBAAC"
@@ -84,7 +84,7 @@
name = "standard battery module"
id = "bat_normal"
req_tech = list(TECH_POWER = 1, TECH_ENGINEERING = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 2000)
+ materials = list(MAT_STEEL = 2000)
build_path = /obj/item/computer_hardware/battery_module
sort_string = "VCAAA"
@@ -92,7 +92,7 @@
name = "advanced battery module"
id = "bat_advanced"
req_tech = list(TECH_POWER = 2, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000)
+ materials = list(MAT_STEEL = 4000)
build_path = /obj/item/computer_hardware/battery_module/advanced
sort_string = "VCAAB"
@@ -100,7 +100,7 @@
name = "super battery module"
id = "bat_super"
req_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 8000)
+ materials = list(MAT_STEEL = 8000)
build_path = /obj/item/computer_hardware/battery_module/super
sort_string = "VCAAC"
@@ -108,7 +108,7 @@
name = "ultra battery module"
id = "bat_ultra"
req_tech = list(TECH_POWER = 5, TECH_ENGINEERING = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 16000)
+ materials = list(MAT_STEEL = 16000)
build_path = /obj/item/computer_hardware/battery_module/ultra
sort_string = "VCAAD"
@@ -116,7 +116,7 @@
name = "nano battery module"
id = "bat_nano"
req_tech = list(TECH_POWER = 1, TECH_ENGINEERING = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 2000)
+ materials = list(MAT_STEEL = 2000)
build_path = /obj/item/computer_hardware/battery_module/nano
sort_string = "VCAAE"
@@ -124,7 +124,7 @@
name = "micro battery module"
id = "bat_micro"
req_tech = list(TECH_POWER = 2, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000)
+ materials = list(MAT_STEEL = 4000)
build_path = /obj/item/computer_hardware/battery_module/micro
sort_string = "VCAAF"
@@ -134,7 +134,7 @@
name = "computer processor unit"
id = "cpu_normal"
req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 8000)
+ materials = list(MAT_STEEL = 8000)
build_path = /obj/item/computer_hardware/processor_unit
sort_string = "VDAAA"
@@ -142,7 +142,7 @@
name = "computer microprocessor unit"
id = "cpu_small"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000)
+ materials = list(MAT_STEEL = 4000)
build_path = /obj/item/computer_hardware/processor_unit/small
sort_string = "VDAAB"
@@ -150,7 +150,7 @@
name = "computer photonic processor unit"
id = "pcpu_normal"
req_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 32000, glass = 8000)
+ materials = list(MAT_STEEL = 32000, glass = 8000)
build_path = /obj/item/computer_hardware/processor_unit/photonic
sort_string = "VDAAC"
@@ -158,7 +158,7 @@
name = "computer photonic microprocessor unit"
id = "pcpu_small"
req_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 16000, glass = 4000)
+ materials = list(MAT_STEEL = 16000, glass = 4000)
build_path = /obj/item/computer_hardware/processor_unit/photonic/small
sort_string = "VDAAD"
@@ -168,7 +168,7 @@
name = "RFID card slot"
id = "cardslot"
req_tech = list(TECH_DATA = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 3000)
+ materials = list(MAT_STEEL = 3000)
build_path = /obj/item/computer_hardware/card_slot
sort_string = "VEAAA"
@@ -176,7 +176,7 @@
name = "nano printer"
id = "nanoprinter"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 3000)
+ materials = list(MAT_STEEL = 3000)
build_path = /obj/item/computer_hardware/nano_printer
sort_string = "VEAAB"
@@ -184,7 +184,7 @@
name = "tesla link"
id = "teslalink"
req_tech = list(TECH_DATA = 2, TECH_POWER = 3, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 10000)
+ materials = list(MAT_STEEL = 10000)
build_path = /obj/item/computer_hardware/tesla_link
sort_string = "VEAAC"
@@ -198,7 +198,7 @@
name = "basic data crystal"
id = "portadrive_basic"
req_tech = list(TECH_DATA = 1)
- materials = list("glass" = 8000)
+ materials = list(MAT_GLASS = 8000)
build_path = /obj/item/computer_hardware/hard_drive/portable
sort_string = "VFAAA"
@@ -206,7 +206,7 @@
name = "advanced data crystal"
id = "portadrive_advanced"
req_tech = list(TECH_DATA = 2)
- materials = list("glass" = 16000)
+ materials = list(MAT_GLASS = 16000)
build_path = /obj/item/computer_hardware/hard_drive/portable/advanced
sort_string = "VFAAB"
@@ -214,6 +214,6 @@
name = "super data crystal"
id = "portadrive_super"
req_tech = list(TECH_DATA = 4)
- materials = list("glass" = 32000)
+ materials = list(MAT_GLASS = 32000)
build_path = /obj/item/computer_hardware/hard_drive/portable/super
sort_string = "VFAAC"
diff --git a/code/modules/research/designs/pdas.dm b/code/modules/research/designs/pdas.dm
index a86769efb1f..97d44ef1190 100644
--- a/code/modules/research/designs/pdas.dm
+++ b/code/modules/research/designs/pdas.dm
@@ -5,7 +5,7 @@
desc = "Cheaper than whiny non-digital assistants."
id = "pda"
req_tech = list(TECH_ENGINEERING = 2, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ materials = list(MAT_STEEL = 50, MAT_GLASS = 50)
build_path = /obj/item/pda
sort_string = "WAAAA"
@@ -13,7 +13,7 @@
/datum/design/item/pda_cartridge
req_tech = list(TECH_ENGINEERING = 2, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ materials = list(MAT_STEEL = 50, MAT_GLASS = 50)
/datum/design/item/pda_cartridge/AssembleDesignName()
..()
diff --git a/code/modules/research/designs/power_cells.dm b/code/modules/research/designs/power_cells.dm
index 4ba91e48574..9a34f568d80 100644
--- a/code/modules/research/designs/power_cells.dm
+++ b/code/modules/research/designs/power_cells.dm
@@ -20,7 +20,7 @@
build_type = PROTOLATHE | MECHFAB
id = "basic_cell"
req_tech = list(TECH_POWER = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 50)
+ materials = list(MAT_STEEL = 700, MAT_GLASS = 50)
build_path = /obj/item/cell
category = list("Misc")
sort_string = "BAAAA"
@@ -30,7 +30,7 @@
build_type = PROTOLATHE | MECHFAB
id = "high_cell"
req_tech = list(TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 60)
+ materials = list(MAT_STEEL = 700, MAT_GLASS = 60)
build_path = /obj/item/cell/high
category = list("Misc")
sort_string = "BAAAB"
@@ -39,7 +39,7 @@
name = "super-capacity"
id = "super_cell"
req_tech = list(TECH_POWER = 3, TECH_MATERIAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 70)
+ materials = list(MAT_STEEL = 700, MAT_GLASS = 70)
build_path = /obj/item/cell/super
category = list("Misc")
sort_string = "BAAAC"
@@ -48,7 +48,7 @@
name = "hyper-capacity"
id = "hyper_cell"
req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 400, "gold" = 150, "silver" = 150, "glass" = 70)
+ materials = list(MAT_STEEL = 400, MAT_GOLD = 150, MAT_SILVER = 150, MAT_GLASS = 70)
build_path = /obj/item/cell/hyper
category = list("Misc")
sort_string = "BAAAD"
@@ -57,7 +57,7 @@
name = "device"
build_type = PROTOLATHE
id = "device"
- materials = list(DEFAULT_WALL_MATERIAL = 350, "glass" = 25)
+ materials = list(MAT_STEEL = 350, MAT_GLASS = 25)
build_path = /obj/item/cell/device
category = list("Misc")
sort_string = "BAABA"
@@ -66,7 +66,7 @@
name = "weapon"
build_type = PROTOLATHE
id = "weapon"
- materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 50)
+ materials = list(MAT_STEEL = 700, MAT_GLASS = 50)
build_path = /obj/item/cell/device/weapon
category = list("Misc")
sort_string = "BAABB"
diff --git a/code/modules/research/designs/powercells.dm b/code/modules/research/designs/powercells.dm
index a138e70841d..4f8a10bd76a 100644
--- a/code/modules/research/designs/powercells.dm
+++ b/code/modules/research/designs/powercells.dm
@@ -19,7 +19,7 @@
build_type = PROTOLATHE | MECHFAB
id = "basic_cell"
req_tech = list(TECH_POWER = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 50)
+ materials = list(MAT_STEEL = 700, MAT_GLASS = 50)
build_path = /obj/item/cell
category = "Misc"
sort_string = "DAAAA"
@@ -29,7 +29,7 @@
build_type = PROTOLATHE | MECHFAB
id = "high_cell"
req_tech = list(TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 60)
+ materials = list(MAT_STEEL = 700, MAT_GLASS = 60)
build_path = /obj/item/cell/high
category = "Misc"
sort_string = "DAAAB"
@@ -38,7 +38,7 @@
name = "super-capacity"
id = "super_cell"
req_tech = list(TECH_POWER = 3, TECH_MATERIAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 70)
+ materials = list(MAT_STEEL = 700, MAT_GLASS = 70)
build_path = /obj/item/cell/super
category = "Misc"
sort_string = "DAAAC"
@@ -47,7 +47,7 @@
name = "hyper-capacity"
id = "hyper_cell"
req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 400, "gold" = 150, "silver" = 150, "glass" = 70)
+ materials = list(MAT_STEEL = 400, MAT_GOLD = 150, MAT_SILVER = 150, MAT_GLASS = 70)
build_path = /obj/item/cell/hyper
category = "Misc"
sort_string = "DAAAD"
@@ -56,7 +56,7 @@
name = "device"
build_type = PROTOLATHE
id = "device"
- materials = list(DEFAULT_WALL_MATERIAL = 350, "glass" = 25)
+ materials = list(MAT_STEEL = 350, MAT_GLASS = 25)
build_path = /obj/item/cell/device
category = "Misc"
sort_string = "DAABA"
@@ -65,7 +65,7 @@
name = "weapon"
build_type = PROTOLATHE
id = "weapon"
- materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 50)
+ materials = list(MAT_STEEL = 700, MAT_GLASS = 50)
build_path = /obj/item/cell/device/weapon
category = "Misc"
sort_string = "DAABB"
diff --git a/code/modules/research/designs/stock_parts.dm b/code/modules/research/designs/stock_parts.dm
index 3962365f44a..483b7d16952 100644
--- a/code/modules/research/designs/stock_parts.dm
+++ b/code/modules/research/designs/stock_parts.dm
@@ -19,35 +19,35 @@
/datum/design/item/stock_part/basic_matter_bin
id = "basic_matter_bin"
req_tech = list(TECH_MATERIAL = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 80)
+ materials = list(MAT_STEEL = 80)
build_path = /obj/item/stock_parts/matter_bin
sort_string = "AAAAA"
/datum/design/item/stock_part/adv_matter_bin
id = "adv_matter_bin"
req_tech = list(TECH_MATERIAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 80)
+ materials = list(MAT_STEEL = 80)
build_path = /obj/item/stock_parts/matter_bin/adv
sort_string = "AAAAB"
/datum/design/item/stock_part/super_matter_bin
id = "super_matter_bin"
req_tech = list(TECH_MATERIAL = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 80)
+ materials = list(MAT_STEEL = 80)
build_path = /obj/item/stock_parts/matter_bin/super
sort_string = "AAAAC"
/datum/design/item/stock_part/hyper_matter_bin
id = "hyper_matter_bin"
req_tech = list(TECH_MATERIAL = 6, TECH_ARCANE = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 200, MAT_VERDANTIUM = 60, MAT_DURASTEEL = 75)
+ materials = list(MAT_STEEL = 200, MAT_VERDANTIUM = 60, MAT_DURASTEEL = 75)
build_path = /obj/item/stock_parts/matter_bin/hyper
sort_string = "AAAAD"
/datum/design/item/stock_part/omni_matter_bin
id = "omni_matter_bin"
req_tech = list(TECH_MATERIAL = 7, TECH_PRECURSOR = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, MAT_PLASTEEL = 100, MAT_MORPHIUM = 100, MAT_DURASTEEL = 100)
+ materials = list(MAT_STEEL = 2000, MAT_PLASTEEL = 100, MAT_MORPHIUM = 100, MAT_DURASTEEL = 100)
build_path = /obj/item/stock_parts/matter_bin/omni
sort_string = "AAAAE"
@@ -56,35 +56,35 @@
/datum/design/item/stock_part/micro_mani
id = "micro_mani"
req_tech = list(TECH_MATERIAL = 1, TECH_DATA = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 30)
+ materials = list(MAT_STEEL = 30)
build_path = /obj/item/stock_parts/manipulator
sort_string = "AAABA"
/datum/design/item/stock_part/nano_mani
id = "nano_mani"
req_tech = list(TECH_MATERIAL = 3, TECH_DATA = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 30)
+ materials = list(MAT_STEEL = 30)
build_path = /obj/item/stock_parts/manipulator/nano
sort_string = "AAABB"
/datum/design/item/stock_part/pico_mani
id = "pico_mani"
req_tech = list(TECH_MATERIAL = 5, TECH_DATA = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 30)
+ materials = list(MAT_STEEL = 30)
build_path = /obj/item/stock_parts/manipulator/pico
sort_string = "AAABC"
/datum/design/item/stock_part/hyper_mani
id = "hyper_mani"
req_tech = list(TECH_MATERIAL = 6, TECH_DATA = 3, TECH_ARCANE = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 200, MAT_VERDANTIUM = 50, MAT_DURASTEEL = 50)
+ materials = list(MAT_STEEL = 200, MAT_VERDANTIUM = 50, MAT_DURASTEEL = 50)
build_path = /obj/item/stock_parts/manipulator/hyper
sort_string = "AAABD"
/datum/design/item/stock_part/omni_mani
id = "omni_mani"
req_tech = list(TECH_MATERIAL = 7, TECH_DATA = 4, TECH_PRECURSOR = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, MAT_PLASTEEL = 500, MAT_MORPHIUM = 100, MAT_DURASTEEL = 100)
+ materials = list(MAT_STEEL = 2000, MAT_PLASTEEL = 500, MAT_MORPHIUM = 100, MAT_DURASTEEL = 100)
build_path = /obj/item/stock_parts/manipulator/omni
sort_string = "AAABE"
@@ -93,35 +93,35 @@
/datum/design/item/stock_part/basic_capacitor
id = "basic_capacitor"
req_tech = list(TECH_POWER = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ materials = list(MAT_STEEL = 50, MAT_GLASS = 50)
build_path = /obj/item/stock_parts/capacitor
sort_string = "AAACA"
/datum/design/item/stock_part/adv_capacitor
id = "adv_capacitor"
req_tech = list(TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ materials = list(MAT_STEEL = 50, MAT_GLASS = 50)
build_path = /obj/item/stock_parts/capacitor/adv
sort_string = "AAACB"
/datum/design/item/stock_part/super_capacitor
id = "super_capacitor"
req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50, "gold" = 20)
+ materials = list(MAT_STEEL = 50, MAT_GLASS = 50, MAT_GOLD = 20)
build_path = /obj/item/stock_parts/capacitor/super
sort_string = "AAACC"
/datum/design/item/stock_part/hyper_capacitor
id = "hyper_capacitor"
req_tech = list(TECH_POWER = 6, TECH_MATERIAL = 5, TECH_BLUESPACE = 1, TECH_ARCANE = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 200, MAT_GLASS = 100, MAT_VERDANTIUM = 30, MAT_DURASTEEL = 25)
+ materials = list(MAT_STEEL = 200, MAT_GLASS = 100, MAT_VERDANTIUM = 30, MAT_DURASTEEL = 25)
build_path = /obj/item/stock_parts/capacitor/hyper
sort_string = "AAACD"
/datum/design/item/stock_part/omni_capacitor
id = "omni_capacitor"
req_tech = list(TECH_POWER = 7, TECH_MATERIAL = 6, TECH_BLUESPACE = 3, TECH_PRECURSOR = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, MAT_DIAMOND = 1000, MAT_GLASS = 1000, MAT_MORPHIUM = 100, MAT_DURASTEEL = 100)
+ materials = list(MAT_STEEL = 2000, MAT_DIAMOND = 1000, MAT_GLASS = 1000, MAT_MORPHIUM = 100, MAT_DURASTEEL = 100)
build_path = /obj/item/stock_parts/capacitor/omni
sort_string = "AAACE"
@@ -130,35 +130,35 @@
/datum/design/item/stock_part/basic_sensor
id = "basic_sensor"
req_tech = list(TECH_MAGNET = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 20)
+ materials = list(MAT_STEEL = 50, MAT_GLASS = 20)
build_path = /obj/item/stock_parts/scanning_module
sort_string = "AAADA"
/datum/design/item/stock_part/adv_sensor
id = "adv_sensor"
req_tech = list(TECH_MAGNET = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 20)
+ materials = list(MAT_STEEL = 50, MAT_GLASS = 20)
build_path = /obj/item/stock_parts/scanning_module/adv
sort_string = "AAADB"
/datum/design/item/stock_part/phasic_sensor
id = "phasic_sensor"
req_tech = list(TECH_MAGNET = 5, TECH_MATERIAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 20, "silver" = 10)
+ materials = list(MAT_STEEL = 50, MAT_GLASS = 20, MAT_SILVER = 10)
build_path = /obj/item/stock_parts/scanning_module/phasic
sort_string = "AAADC"
/datum/design/item/stock_part/hyper_sensor
id = "hyper_sensor"
req_tech = list(TECH_MAGNET = 6, TECH_MATERIAL = 4, TECH_ARCANE = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 50, MAT_GLASS = 20, MAT_SILVER = 50, MAT_VERDANTIUM = 40, MAT_DURASTEEL = 50)
+ materials = list(MAT_STEEL = 50, MAT_GLASS = 20, MAT_SILVER = 50, MAT_VERDANTIUM = 40, MAT_DURASTEEL = 50)
build_path = /obj/item/stock_parts/scanning_module/hyper
sort_string = "AAADD"
/datum/design/item/stock_part/omni_sensor
id = "omni_sensor"
req_tech = list(TECH_MAGNET = 7, TECH_MATERIAL = 5, TECH_PRECURSOR = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_PLASTEEL = 500, MAT_GLASS = 750, MAT_SILVER = 500, MAT_MORPHIUM = 60, MAT_DURASTEEL = 100)
+ materials = list(MAT_STEEL = 1000, MAT_PLASTEEL = 500, MAT_GLASS = 750, MAT_SILVER = 500, MAT_MORPHIUM = 60, MAT_DURASTEEL = 100)
build_path = /obj/item/stock_parts/scanning_module/omni
sort_string = "AAADE"
@@ -167,35 +167,35 @@
/datum/design/item/stock_part/basic_micro_laser
id = "basic_micro_laser"
req_tech = list(TECH_MAGNET = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 10, "glass" = 20)
+ materials = list(MAT_STEEL = 10, MAT_GLASS = 20)
build_path = /obj/item/stock_parts/micro_laser
sort_string = "AAAEA"
/datum/design/item/stock_part/high_micro_laser
id = "high_micro_laser"
req_tech = list(TECH_MAGNET = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 10, "glass" = 20)
+ materials = list(MAT_STEEL = 10, MAT_GLASS = 20)
build_path = /obj/item/stock_parts/micro_laser/high
sort_string = "AAAEB"
/datum/design/item/stock_part/ultra_micro_laser
id = "ultra_micro_laser"
req_tech = list(TECH_MAGNET = 5, TECH_MATERIAL = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 10, "glass" = 20, "uranium" = 10)
+ materials = list(MAT_STEEL = 10, MAT_GLASS = 20, MAT_URANIUM = 10)
build_path = /obj/item/stock_parts/micro_laser/ultra
sort_string = "AAAEC"
/datum/design/item/stock_part/hyper_micro_laser
id = "hyper_micro_laser"
req_tech = list(TECH_MAGNET = 6, TECH_MATERIAL = 6, TECH_ARCANE = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 200, MAT_GLASS = 20, MAT_URANIUM = 30, MAT_VERDANTIUM = 50, MAT_DURASTEEL = 100)
+ materials = list(MAT_STEEL = 200, MAT_GLASS = 20, MAT_URANIUM = 30, MAT_VERDANTIUM = 50, MAT_DURASTEEL = 100)
build_path = /obj/item/stock_parts/micro_laser/hyper
sort_string = "AAAED"
/datum/design/item/stock_part/omni_micro_laser
id = "omni_micro_laser"
req_tech = list(TECH_MAGNET = 7, TECH_MATERIAL = 7, TECH_PRECURSOR = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, MAT_GLASS = 500, MAT_URANIUM = 2000, MAT_MORPHIUM = 50, MAT_DURASTEEL = 100)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 500, MAT_URANIUM = 2000, MAT_MORPHIUM = 50, MAT_DURASTEEL = 100)
build_path = /obj/item/stock_parts/micro_laser/omni
sort_string = "AAAEE"
@@ -207,7 +207,7 @@
desc = "Special mechanical module made to store, sort, and apply standard machine parts."
id = "rped"
req_tech = list(TECH_ENGINEERING = 3, TECH_MATERIAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 5000)
+ materials = list(MAT_STEEL = 15000, MAT_GLASS = 5000)
build_path = /obj/item/storage/part_replacer
sort_string = "ABAAA"
@@ -216,6 +216,6 @@
desc = "Special mechanical module made to store, sort, and apply standard machine parts. This one has a greatly upgraded storage capacity."
id = "arped"
req_tech = list(TECH_ENGINEERING = 5, TECH_MATERIAL = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 30000, "glass" = 10000)
+ materials = list(MAT_STEEL = 30000, MAT_GLASS = 10000)
build_path = /obj/item/storage/part_replacer/adv
sort_string = "ABAAB"
diff --git a/code/modules/research/designs/subspace_parts.dm b/code/modules/research/designs/subspace_parts.dm
index 8302df88138..28daad82a2f 100644
--- a/code/modules/research/designs/subspace_parts.dm
+++ b/code/modules/research/designs/subspace_parts.dm
@@ -7,48 +7,48 @@
/datum/design/item/stock_part/subspace/subspace_ansible
id = "s-ansible"
req_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 80, "silver" = 20)
+ materials = list(MAT_STEEL = 80, MAT_SILVER = 20)
build_path = /obj/item/stock_parts/subspace/ansible
sort_string = "RAAAA"
/datum/design/item/stock_part/subspace/hyperwave_filter
id = "s-filter"
req_tech = list(TECH_DATA = 3, TECH_MAGNET = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 40, "silver" = 10)
+ materials = list(MAT_STEEL = 40, MAT_SILVER = 10)
build_path = /obj/item/stock_parts/subspace/sub_filter
sort_string = "RAAAB"
/datum/design/item/stock_part/subspace/subspace_amplifier
id = "s-amplifier"
req_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 10, "gold" = 30, "uranium" = 15)
+ materials = list(MAT_STEEL = 10, MAT_GOLD = 30, MAT_URANIUM = 15)
build_path = /obj/item/stock_parts/subspace/amplifier
sort_string = "RAAAC"
/datum/design/item/stock_part/subspace/subspace_treatment
id = "s-treatment"
req_tech = list(TECH_DATA = 3, TECH_MAGNET = 2, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 10, "silver" = 20)
+ materials = list(MAT_STEEL = 10, MAT_SILVER = 20)
build_path = /obj/item/stock_parts/subspace/treatment
sort_string = "RAAAD"
/datum/design/item/stock_part/subspace/subspace_analyzer
id = "s-analyzer"
req_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 10, "gold" = 15)
+ materials = list(MAT_STEEL = 10, MAT_GOLD = 15)
build_path = /obj/item/stock_parts/subspace/analyzer
sort_string = "RAAAE"
/datum/design/item/stock_part/subspace/subspace_crystal
id = "s-crystal"
req_tech = list(TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
- materials = list("glass" = 1000, "silver" = 20, "gold" = 20)
+ materials = list(MAT_GLASS = 1000, MAT_SILVER = 20, MAT_GOLD = 20)
build_path = /obj/item/stock_parts/subspace/crystal
sort_string = "RAAAF"
/datum/design/item/stock_part/subspace/subspace_transmitter
id = "s-transmitter"
req_tech = list(TECH_MAGNET = 5, TECH_MATERIAL = 5, TECH_BLUESPACE = 3)
- materials = list("glass" = 100, "silver" = 10, "uranium" = 15)
+ materials = list(MAT_GLASS = 100, MAT_SILVER = 10, MAT_URANIUM = 15)
build_path = /obj/item/stock_parts/subspace/transmitter
sort_string = "RAAAG"
diff --git a/code/modules/research/designs/tech_disks.dm b/code/modules/research/designs/tech_disks.dm
index e63dae09a3b..399d898e658 100644
--- a/code/modules/research/designs/tech_disks.dm
+++ b/code/modules/research/designs/tech_disks.dm
@@ -7,7 +7,7 @@
desc = "Produce additional disks for storing device designs."
id = "design_disk"
req_tech = list(TECH_DATA = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 30, "glass" = 10)
+ materials = list(MAT_STEEL = 30, MAT_GLASS = 10)
build_path = /obj/item/disk/design_disk
sort_string = "CAAAA"
@@ -16,6 +16,6 @@
desc = "Produce additional disks for storing technology data."
id = "tech_disk"
req_tech = list(TECH_DATA = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 30, "glass" = 10)
+ materials = list(MAT_STEEL = 30, MAT_GLASS = 10)
build_path = /obj/item/disk/tech_disk
sort_string = "CAAAB"
diff --git a/code/modules/research/designs/uncommented.dm b/code/modules/research/designs/uncommented.dm
index 86c8edf15e3..d5de214a5ce 100644
--- a/code/modules/research/designs/uncommented.dm
+++ b/code/modules/research/designs/uncommented.dm
@@ -10,7 +10,7 @@
name = "loyalty"
id = "implant_loyal"
req_tech = list(TECH_MATERIAL = 2, TECH_BIO = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 7000)
+ materials = list(MAT_STEEL = 7000, MAT_GLASS = 7000)
build_path = /obj/item/implantcase/loyalty"
/datum/design/rust_core_control
@@ -19,7 +19,7 @@
id = "rust_core_control"
req_tech = list("programming" = 4, "engineering" = 4)
build_type = IMPRINTER
- materials = list("glass" = 2000, "sacid" = 20)
+ materials = list(MAT_GLASS = 2000, "sacid" = 20)
build_path = "/obj/item/circuitboard/rust_core_control"
datum/design/rust_fuel_control
@@ -28,7 +28,7 @@ datum/design/rust_fuel_control
id = "rust_fuel_control"
req_tech = list("programming" = 4, "engineering" = 4)
build_type = IMPRINTER
- materials = list("glass" = 2000, "sacid" = 20)
+ materials = list(MAT_GLASS = 2000, "sacid" = 20)
build_path = "/obj/item/circuitboard/rust_fuel_control"
datum/design/rust_fuel_port
@@ -37,7 +37,7 @@ datum/design/rust_fuel_port
id = "rust_fuel_port"
req_tech = list("engineering" = 4, "materials" = 5)
build_type = IMPRINTER
- materials = list("glass" = 2000, "sacid" = 20, "uranium" = 3000)
+ materials = list(MAT_GLASS = 2000, "sacid" = 20, MAT_URANIUM = 3000)
build_path = "/obj/item/module/rust_fuel_port"
datum/design/rust_fuel_compressor
@@ -46,7 +46,7 @@ datum/design/rust_fuel_compressor
id = "rust_fuel_compressor"
req_tech = list("materials" = 6, "phorontech" = 4)
build_type = IMPRINTER
- materials = list("glass" = 2000, "sacid" = 20, "phoron" = 3000, "diamond" = 1000)
+ materials = list(MAT_GLASS = 2000, "sacid" = 20, MAT_PHORON = 3000, MAT_DIAMOND = 1000)
build_path = "/obj/item/module/rust_fuel_compressor"
datum/design/rust_core
@@ -55,7 +55,7 @@ datum/design/rust_core
id = "pacman"
req_tech = list(bluespace = 3, phorontech = 4, magnets = 5, powerstorage = 6)
build_type = IMPRINTER
- materials = list("glass" = 2000, "sacid" = 20, "phoron" = 3000, "diamond" = 2000)
+ materials = list(MAT_GLASS = 2000, "sacid" = 20, MAT_PHORON = 3000, MAT_DIAMOND = 2000)
build_path = "/obj/item/circuitboard/rust_core"
datum/design/rust_injector
@@ -64,6 +64,6 @@ datum/design/rust_injector
id = "pacman"
req_tech = list(powerstorage = 3, engineering = 4, phorontech = 4, materials = 6)
build_type = IMPRINTER
- materials = list("glass" = 2000, "sacid" = 20, "phoron" = 3000, "uranium" = 2000)
+ materials = list(MAT_GLASS = 2000, "sacid" = 20, MAT_PHORON = 3000, MAT_URANIUM = 2000)
build_path = "/obj/item/circuitboard/rust_core"
*/
diff --git a/code/modules/research/designs/weapons.dm b/code/modules/research/designs/weapons.dm
index 33c4587727f..a2e8dd2947a 100644
--- a/code/modules/research/designs/weapons.dm
+++ b/code/modules/research/designs/weapons.dm
@@ -22,21 +22,21 @@
/datum/design/item/weapon/energy/stunrevolver
id = "stunrevolver"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000)
+ materials = list(MAT_STEEL = 4000)
build_path = /obj/item/gun/energy/stunrevolver
sort_string = "MAAAA"
/datum/design/item/weapon/energy/nuclear_gun
id = "nuclear_gun"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 5, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 1000, MAT_URANIUM = 500)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 1000, MAT_URANIUM = 500)
build_path = /obj/item/gun/energy/gun/nuclear
sort_string = "MAAAB"
/datum/design/item/weapon/energy/phoronpistol
id = "ppistol"
req_tech = list(TECH_COMBAT = 5, TECH_PHORON = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 1000, MAT_PHORON = 3000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 1000, MAT_PHORON = 3000)
build_path = /obj/item/gun/energy/toxgun
sort_string = "MAAAC"
@@ -44,7 +44,7 @@
desc = "The lasing medium of this prototype is enclosed in a tube lined with uranium-235 and subjected to high neutron flux in a nuclear reactor core."
id = "lasercannon"
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, MAT_GLASS = 1000, MAT_DIAMOND = 2000)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 1000, MAT_DIAMOND = 2000)
build_path = /obj/item/gun/energy/lasercannon
sort_string = "MAAAD"
@@ -59,14 +59,14 @@
desc = "A gun that shoots high-powered glass-encased energy temperature bullets."
id = "temp_gun"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 4, TECH_POWER = 3, TECH_MAGNET = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 500, MAT_SILVER = 3000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 500, MAT_SILVER = 3000)
build_path = /obj/item/gun/energy/temperature
sort_string = "MAAAF"
/datum/design/item/weapon/energy/flora_gun
id = "flora_gun"
req_tech = list(TECH_MATERIAL = 2, TECH_BIO = 3, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, MAT_GLASS = 500, MAT_URANIUM = 500)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 500, MAT_URANIUM = 500)
build_path = /obj/item/gun/energy/floragun
sort_string = "MAAAG"
@@ -80,7 +80,7 @@
id = "smg"
desc = "An advanced 9mm SMG with a reflective laser optic."
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_SILVER = 2000, MAT_DIAMOND = 1000)
+ materials = list(MAT_STEEL = 8000, MAT_SILVER = 2000, MAT_DIAMOND = 1000)
build_path = /obj/item/gun/projectile/automatic/advanced_smg
sort_string = "MABAA"
@@ -88,7 +88,7 @@
id = "p90"
desc = "The H90K is a compact, large capacity submachine gun produced by Hephaestus Industries. Despite its fierce reputation, it still manages to feel like a toy. Uses 9mm rounds."
req_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_PLASTIC = 5000, MAT_URANIUM = 1000)
+ materials = list(MAT_STEEL = 5000, MAT_PLASTIC = 5000, MAT_URANIUM = 1000)
build_path = /obj/item/gun/projectile/automatic/p90
sort_string = "MABAB"
@@ -103,7 +103,7 @@
id = "ammo_9mm"
desc = "A 21 round magazine for an advanced 9mm SMG."
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 3750, MAT_SILVER = 100) // Requires silver for proprietary magazines! Or something.
+ materials = list(MAT_STEEL = 3750, MAT_SILVER = 100) // Requires silver for proprietary magazines! Or something.
build_path = /obj/item/ammo_magazine/m9mmAdvanced
sort_string = "MABBA"
@@ -112,7 +112,7 @@
desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects."
id = "techshell"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 500, MAT_PHORON = 200)
+ materials = list(MAT_STEEL = 500, MAT_PHORON = 200)
build_path = /obj/item/ammo_casing/a12g/techshell
sort_string = "MABBB"
@@ -121,7 +121,7 @@
desc = "A stunning shell for a shotgun."
id = "stunshell"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 360, MAT_GLASS = 720)
+ materials = list(MAT_STEEL = 360, MAT_GLASS = 720)
build_path = /obj/item/ammo_casing/a12g/stunshell
sort_string = "MABBC"
@@ -130,7 +130,7 @@
desc = "A large capacity top mounted magazine (5.7x28mm armor-piercing)."
id = "m57x28mmp90"
req_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 2250, MAT_PLASTIC = 1500, MAT_COPPER = 1000)
+ materials = list(MAT_STEEL = 2250, MAT_PLASTIC = 1500, MAT_COPPER = 1000)
build_path = /obj/item/ammo_magazine/m57x28mmp90
sort_string = "MABBD"
@@ -139,7 +139,7 @@
desc = "A standard capacity sidearm magazine (5.7x28mm)."
id = "m57x28mm"
req_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 1750, MAT_COPPER = 750)
+ materials = list(MAT_STEEL = 1750, MAT_COPPER = 750)
build_path = /obj/item/ammo_magazine/m57x28mm
sort_string = "MABCA"
@@ -147,7 +147,7 @@
name = "5.7 magazine (AP)"
desc = "A standard capacity sidearm magazine (5.7x28mm armor-piercing)."
id = "m57x28mmap"
- materials = list(DEFAULT_WALL_MATERIAL = 2500, MAT_COPPER = 750)
+ materials = list(MAT_STEEL = 2500, MAT_COPPER = 750)
build_path = /obj/item/ammo_magazine/m57x28mm/ap
sort_string = "MABCB"
@@ -155,7 +155,7 @@
name = "5.7 magazine (HP)"
desc = "A standard capacity sidearm magazine (5.7x28mm hollow point)."
id = "m57x28mmhp"
- materials = list(DEFAULT_WALL_MATERIAL = 2100, MAT_COPPER = 750)
+ materials = list(MAT_STEEL = 2100, MAT_COPPER = 750)
build_path = /obj/item/ammo_magazine/m57x28mm/hp
sort_string = "MABCC"
@@ -163,7 +163,7 @@
name = "5.7 magazine (Hunter)"
desc = "A standard capacity sidearm magazine (5.7x28mm hunter)."
id = "m57x28mmhunter"
- materials = list(DEFAULT_WALL_MATERIAL = 1750, MAT_COPPER = 1250)
+ materials = list(MAT_STEEL = 1750, MAT_COPPER = 1250)
build_path = /obj/item/ammo_magazine/m57x28mm/hunter
sort_string = "MABCD"
@@ -176,28 +176,28 @@
/datum/design/item/weapon/phase/phase_pistol
id = "phasepistol"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000)
+ materials = list(MAT_STEEL = 4000)
build_path = /obj/item/gun/energy/phasegun/pistol
sort_string = "MACAA"
/datum/design/item/weapon/phase/phase_carbine
id = "phasecarbine"
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 2, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 6000, MAT_GLASS = 1500)
+ materials = list(MAT_STEEL = 6000, MAT_GLASS = 1500)
build_path = /obj/item/gun/energy/phasegun
sort_string = "MACAB"
/datum/design/item/weapon/phase/phase_rifle
id = "phaserifle"
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 7000, MAT_GLASS = 2000, MAT_SILVER = 500)
+ materials = list(MAT_STEEL = 7000, MAT_GLASS = 2000, MAT_SILVER = 500)
build_path = /obj/item/gun/energy/phasegun/rifle
sort_string = "MACAC"
/datum/design/item/weapon/phase/phase_cannon
id = "phasecannon"
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 4, TECH_POWER = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, MAT_GLASS = 2000, MAT_SILVER = 1000, MAT_DIAMOND = 750)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 2000, MAT_SILVER = 1000, MAT_DIAMOND = 750)
build_path = /obj/item/gun/energy/phasegun/cannon
sort_string = "MACAD"
@@ -206,7 +206,7 @@
/datum/design/item/weapon/rapidsyringe
id = "rapidsyringe"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_BIO = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 1000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 1000)
build_path = /obj/item/gun/launcher/syringe/rapid
sort_string = "MADAA"
@@ -214,7 +214,7 @@
desc = "A gun that fires small hollow chemical-payload darts."
id = "dartgun_r"
req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_BIO = 4, TECH_MAGNET = 3, TECH_ILLEGAL = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GOLD = 5000, MAT_SILVER = 2500, MAT_GLASS = 750)
+ materials = list(MAT_STEEL = 5000, MAT_GOLD = 5000, MAT_SILVER = 2500, MAT_GLASS = 750)
build_path = /obj/item/gun/projectile/dartgun/research
sort_string = "MADAB"
@@ -222,14 +222,14 @@
desc = "An advanced chem spraying device."
id = "chemsprayer"
req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_BIO = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 1000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 1000)
build_path = /obj/item/reagent_containers/spray/chemsprayer
sort_string = "MADAC"
/datum/design/item/weapon/fuelrod
id = "fuelrod_gun"
req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_PHORON = 4, TECH_ILLEGAL = 5, TECH_MAGNET = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, MAT_GLASS = 2000, MAT_GOLD = 500, MAT_SILVER = 500, MAT_URANIUM = 1000, MAT_PHORON = 3000, MAT_DIAMOND = 1000)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 2000, MAT_GOLD = 500, MAT_SILVER = 500, MAT_URANIUM = 1000, MAT_PHORON = 3000, MAT_DIAMOND = 1000)
build_path = /obj/item/gun/magnetic/fuelrod
sort_string = "MADAD"
@@ -238,28 +238,28 @@
/datum/design/item/weapon/ammo/dartgunmag_small
id = "dartgun_mag_s"
req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_MAGNET = 1, TECH_ILLEGAL = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 300, MAT_GOLD = 100, MAT_SILVER = 100, MAT_GLASS = 300)
+ materials = list(MAT_STEEL = 300, MAT_GOLD = 100, MAT_SILVER = 100, MAT_GLASS = 300)
build_path = /obj/item/ammo_magazine/chemdart/small
sort_string = "MADBA"
/datum/design/item/weapon/ammo/dartgun_ammo_small
id = "dartgun_ammo_s"
req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_MAGNET = 1, TECH_ILLEGAL = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 50, MAT_GOLD = 30, MAT_SILVER = 30, MAT_GLASS = 50)
+ materials = list(MAT_STEEL = 50, MAT_GOLD = 30, MAT_SILVER = 30, MAT_GLASS = 50)
build_path = /obj/item/ammo_casing/chemdart/small
sort_string = "MADBB"
/datum/design/item/weapon/ammo/dartgunmag_med
id = "dartgun_mag_m"
req_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_MAGNET = 1, TECH_ILLEGAL = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 500, MAT_GOLD = 150, MAT_SILVER = 150, MAT_DIAMOND = 200, MAT_GLASS = 400)
+ materials = list(MAT_STEEL = 500, MAT_GOLD = 150, MAT_SILVER = 150, MAT_DIAMOND = 200, MAT_GLASS = 400)
build_path = /obj/item/ammo_magazine/chemdart
sort_string = "MADBC"
/datum/design/item/weapon/ammo/dartgun_ammo_med
id = "dartgun_ammo_m"
req_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_MAGNET = 1, TECH_ILLEGAL = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 80, MAT_GOLD = 40, MAT_SILVER = 40, MAT_GLASS = 60)
+ materials = list(MAT_STEEL = 80, MAT_GOLD = 40, MAT_SILVER = 40, MAT_GLASS = 60)
build_path = /obj/item/ammo_casing/chemdart
sort_string = "MADBD"
@@ -293,7 +293,7 @@
/datum/design/item/weapon/grenade/large_grenade
id = "large_Grenade"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 3000)
+ materials = list(MAT_STEEL = 3000)
build_path = /obj/item/grenade/chem_grenade/large
sort_string = "MCAAA"
@@ -317,7 +317,7 @@
desc = "The 'Myrmidon' is a common energy gun that cannot fired lethally on Code Green, requiring Code Blue or higher to unlock its deadly capabilities."
id = "protector"
req_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000, MAT_GLASS = 2000, MAT_SILVER = 1000)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 2000, MAT_SILVER = 1000)
build_path = /obj/item/gun/energy/protector
sort_string = "MAAAH"
*/
@@ -326,7 +326,7 @@
name = "\'Retiarius\' capture gun"
id = "netgun"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 5, TECH_MAGNET = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 6000, MAT_GLASS = 3000)
+ materials = list(MAT_STEEL = 6000, MAT_GLASS = 3000)
build_path = /obj/item/gun/energy/netgun
sort_string = "MAAAI"
@@ -334,7 +334,7 @@
desc = "The 'Discombobulator' is a 4-shot energy revolver that causes nausea and confusion."
id = "sickshot"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_MAGNET = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 3000, MAT_GLASS = 2000)
+ materials = list(MAT_STEEL = 3000, MAT_GLASS = 2000)
build_path = /obj/item/gun/energy/sickshot
sort_string = "MAAAJ"
@@ -344,7 +344,7 @@
desc = "With the 'Pummeler', punt anyone you don't like out of the room!"
id = "pummeler"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_MAGNET = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 3000, MAT_GLASS = 3000, MAT_URANIUM = 1000)
+ materials = list(MAT_STEEL = 3000, MAT_GLASS = 3000, MAT_URANIUM = 1000)
build_path = /obj/item/gun/energy/pummeler
sort_string = "MAAAK"
@@ -358,7 +358,7 @@
name = "Advanced anti-particle rifle"
id = "advparticle"
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 5, TECH_POWER = 3, TECH_MAGNET = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_URANIUM = 750)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_URANIUM = 750)
build_path = /obj/item/gun/energy/particle/advanced
sort_string = "MAAUA"
@@ -366,7 +366,7 @@
name = "Anti-particle cannon"
id = "particlecannon"
req_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 5, TECH_POWER = 4, TECH_MAGNET = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, MAT_GLASS = 1500, MAT_GOLD = 2000, MAT_URANIUM = 1000, MAT_DIAMOND = 2000)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 1500, MAT_GOLD = 2000, MAT_URANIUM = 1000, MAT_DIAMOND = 2000)
build_path = /obj/item/gun/energy/particle/cannon
sort_string = "MAAUB"
@@ -374,7 +374,7 @@
name = "APP pressure interlock"
id = "pressureinterlock"
req_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 250)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 250)
build_path = /obj/item/pressurelock
sort_string = "MAAUC"
@@ -387,7 +387,7 @@
name = "cell-loaded revolver"
id = "nsfw_prototype"
req_tech = list(TECH_MATERIAL = 6, TECH_MAGNET = 4, TECH_POWER = 4, TECH_COMBAT = 7)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, MAT_GLASS = 6000, MAT_PHORON = 8000, MAT_URANIUM = 4000)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 6000, MAT_PHORON = 8000, MAT_URANIUM = 4000)
build_path = /obj/item/gun/projectile/cell_loaded/combat/prototype
sort_string = "MAVAA"
@@ -395,7 +395,7 @@
name = "combat cell magazine"
id = "nsfw_mag_prototype"
req_tech = list(TECH_MATERIAL = 6, TECH_MAGNET = 4, TECH_POWER = 4, TECH_COMBAT = 7)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 4000, MAT_PHORON = 4000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 4000, MAT_PHORON = 4000)
build_path = /obj/item/ammo_magazine/cell_mag/combat/prototype
sort_string = "MAVBA"
@@ -407,7 +407,7 @@
name = "STUN"
id = "nsfw_cell_stun"
req_tech = list(TECH_MATERIAL = 4, TECH_MAGNET = 2, TECH_POWER = 3, TECH_COMBAT = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 5000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 5000)
build_path = /obj/item/ammo_casing/microbattery/combat/stun
sort_string = "MAVCA"
@@ -415,7 +415,7 @@
name = "LETHAL"
id = "nsfw_cell_lethal"
req_tech = list(TECH_MATERIAL = 4, TECH_MAGNET = 3, TECH_POWER = 3, TECH_COMBAT = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 5000, MAT_PHORON = 3000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 5000, MAT_PHORON = 3000)
build_path = /obj/item/ammo_casing/microbattery/combat/lethal
sort_string = "MAVCB"
@@ -423,7 +423,7 @@
name = "NET"
id = "nsfw_cell_net"
req_tech = list(TECH_MATERIAL = 4, TECH_MAGNET = 3, TECH_POWER = 3, TECH_COMBAT = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 5000, MAT_URANIUM = 3000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 5000, MAT_URANIUM = 3000)
build_path = /obj/item/ammo_casing/microbattery/combat/net
sort_string = "MAVCC"
@@ -431,7 +431,7 @@
name = "ION"
id = "nsfw_cell_ion"
req_tech = list(TECH_MATERIAL = 5, TECH_MAGNET = 3, TECH_POWER = 5, TECH_COMBAT = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 5000, MAT_SILVER = 3000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 5000, MAT_SILVER = 3000)
build_path = /obj/item/ammo_casing/microbattery/combat/ion
sort_string = "MAVCD"
@@ -439,7 +439,7 @@
name = "SCATTERSTUN"
id = "nsfw_cell_shotstun"
req_tech = list(TECH_MATERIAL = 6, TECH_MAGNET = 3, TECH_POWER = 6, TECH_COMBAT = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 5000, MAT_SILVER = 2000, MAT_GOLD = 2000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 5000, MAT_SILVER = 2000, MAT_GOLD = 2000)
build_path = /obj/item/ammo_casing/microbattery/combat/shotstun
sort_string = "MAVCE"
@@ -447,7 +447,7 @@
name = "XRAY"
id = "nsfw_cell_xray"
req_tech = list(TECH_MATERIAL = 6, TECH_MAGNET = 4, TECH_POWER = 5, TECH_COMBAT = 7)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 5000, MAT_SILVER = 1000, MAT_GOLD = 1000, MAT_URANIUM = 1000, MAT_PHORON = 1000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 5000, MAT_SILVER = 1000, MAT_GOLD = 1000, MAT_URANIUM = 1000, MAT_PHORON = 1000)
build_path = /obj/item/ammo_casing/microbattery/combat/xray
sort_string = "MAVCF"
@@ -455,7 +455,7 @@
name = "STRIPPER"
id = "nsfw_cell_stripper"
req_tech = list(TECH_MATERIAL = 7, TECH_BIO = 4, TECH_POWER = 4, TECH_COMBAT = 4, TECH_ILLEGAL = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 5000, MAT_URANIUM = 2000, MAT_PHORON = 2000, MAT_DIAMOND = 500)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 5000, MAT_URANIUM = 2000, MAT_PHORON = 2000, MAT_DIAMOND = 500)
build_path = /obj/item/ammo_casing/microbattery/combat/stripper
sort_string = "MAVCG"
@@ -468,7 +468,7 @@
name = "modular energy pistol"
id = "modpistol"
req_tech = list(TECH_MATERIAL = 4, TECH_MAGNET = 3, TECH_POWER = 3, TECH_COMBAT = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 5000, MAT_SILVER = 3000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 5000, MAT_SILVER = 3000)
build_path = /obj/item/gun/energy/modular/basic
sort_string = "MAVDA"
@@ -476,7 +476,7 @@
name = "advanced modular energy pistol"
id = "advmodpistol"
req_tech = list(TECH_MATERIAL = 6, TECH_MAGNET = 5, TECH_POWER = 5, TECH_COMBAT = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 6000, MAT_GLASS = 6000, MAT_SILVER = 3000, MAT_GOLD = 2000, MAT_URANIUM = 3000)
+ materials = list(MAT_STEEL = 6000, MAT_GLASS = 6000, MAT_SILVER = 3000, MAT_GOLD = 2000, MAT_URANIUM = 3000)
build_path = /obj/item/gun/energy/modular/advanced
sort_string = "MAVDB"
@@ -484,7 +484,7 @@
name = "modular energy carbine"
id = "modcarbine"
req_tech = list(TECH_MATERIAL = 6, TECH_MAGNET = 5, TECH_POWER = 5, TECH_COMBAT = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000, MAT_URANIUM = 2000, MAT_GOLD = 4000, MAT_DIAMOND = 500)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000, MAT_URANIUM = 2000, MAT_GOLD = 4000, MAT_DIAMOND = 500)
build_path = /obj/item/gun/energy/modular/carbine
sort_string = "MAVDC"
@@ -492,7 +492,7 @@
name = "modular energy rifle"
id = "modrifle"
req_tech = list(TECH_MATERIAL = 6, TECH_MAGNET = 5, TECH_POWER = 5, TECH_COMBAT = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 12000, MAT_GLASS = 12000, MAT_SILVER = 6000, MAT_GOLD = 6000, MAT_URANIUM = 4000, MAT_DIAMOND = 500)
+ materials = list(MAT_STEEL = 12000, MAT_GLASS = 12000, MAT_SILVER = 6000, MAT_GOLD = 6000, MAT_URANIUM = 4000, MAT_DIAMOND = 500)
build_path = /obj/item/gun/energy/modular/rifle
sort_string = "MAVDD"
@@ -500,7 +500,7 @@
name = "tri-core modular energy rifle"
id = "threemodrifle"
req_tech = list(TECH_MATERIAL = 7, TECH_MAGNET = 5, TECH_POWER = 5, TECH_COMBAT = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 12000, MAT_GLASS = 12000, MAT_SILVER = 6000, MAT_GOLD = 6000, MAT_URANIUM = 4000, MAT_DIAMOND = 1500)
+ materials = list(MAT_STEEL = 12000, MAT_GLASS = 12000, MAT_SILVER = 6000, MAT_GOLD = 6000, MAT_URANIUM = 4000, MAT_DIAMOND = 1500)
build_path = /obj/item/gun/energy/modular/rifle/tribeam
sort_string = "MAVDE"
@@ -508,7 +508,7 @@
name = "compact modular energy pistol"
id = "modcompact"
req_tech = list(TECH_MATERIAL = 7, TECH_MAGNET = 6, TECH_POWER = 6, TECH_COMBAT = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_GLASS = 5000, MAT_DIAMOND = 3000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 5000, MAT_DIAMOND = 3000)
build_path = /obj/item/gun/energy/modular/compact
sort_string = "MAVDF"
@@ -516,7 +516,7 @@
name = "modular energy scattergun"
id = "modscatter"
req_tech = list(TECH_MATERIAL = 7, TECH_MAGNET = 6, TECH_POWER = 6, TECH_COMBAT = 5, TECH_ILLEGAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 12000, MAT_GLASS = 12000, MAT_SILVER = 6000, MAT_GOLD = 6000, MAT_URANIUM = 4000, MAT_DIAMOND = 2000)
+ materials = list(MAT_STEEL = 12000, MAT_GLASS = 12000, MAT_SILVER = 6000, MAT_GOLD = 6000, MAT_URANIUM = 4000, MAT_DIAMOND = 2000)
build_path = /obj/item/gun/energy/modular/rifle/scatter
sort_string = "MAVDG"
@@ -524,7 +524,7 @@
name = "modular energy cannon"
id = "modcannon"
req_tech = list(TECH_MATERIAL = 6, TECH_MAGNET = 6, TECH_POWER = 6, TECH_COMBAT = 6, TECH_ENGINEERING = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 12000, MAT_GLASS = 12000, MAT_SILVER = 6000, MAT_GOLD = 6000, MAT_URANIUM = 4000, MAT_DIAMOND = 4000)
+ materials = list(MAT_STEEL = 12000, MAT_GLASS = 12000, MAT_SILVER = 6000, MAT_GOLD = 6000, MAT_URANIUM = 4000, MAT_DIAMOND = 4000)
build_path = /obj/item/gun/energy/modular/cannon
sort_string = "MAVDH"
@@ -532,7 +532,7 @@
name = "modular AEG"
id = "modAEG"
req_tech = list(TECH_MATERIAL = 6, TECH_MAGNET = 6, TECH_POWER = 6, TECH_COMBAT = 6, TECH_ENGINEERING = 6, TECH_BLUESPACE = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 12000, MAT_GLASS = 12000, MAT_SILVER = 6000, MAT_LEAD = 20000, MAT_URANIUM = 20000, MAT_DIAMOND = 4000)
+ materials = list(MAT_STEEL = 12000, MAT_GLASS = 12000, MAT_SILVER = 6000, MAT_LEAD = 20000, MAT_URANIUM = 20000, MAT_DIAMOND = 4000)
build_path = /obj/item/gun/energy/modular/nuke
sort_string = "MAVDG"
@@ -544,7 +544,7 @@
name = "stun medium"
id = "stunmedium"
req_tech = list(TECH_MAGNET = 3, TECH_POWER = 3, TECH_COMBAT = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000, MAT_GOLD = 4000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000, MAT_GOLD = 4000)
build_path = /obj/item/modularlaser/lasermedium/stun
sort_string = "MAVEA"
@@ -552,7 +552,7 @@
name = "weak stun medium"
id = "stunweak"
req_tech = list(TECH_MAGNET = 1, TECH_POWER = 2, TECH_COMBAT = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000)
build_path = /obj/item/modularlaser/lasermedium/stun/weak
sort_string = "MAVEB"
@@ -560,7 +560,7 @@
name = "net projector medium"
id = "netmedium"
req_tech = list(TECH_MAGNET = 5, TECH_POWER = 5, TECH_COMBAT = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000, MAT_GOLD = 4000, MAT_URANIUM = 2000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000, MAT_GOLD = 4000, MAT_URANIUM = 2000)
build_path = /obj/item/modularlaser/lasermedium/net
sort_string = "MAVEC"
@@ -568,7 +568,7 @@
name = "electrode projector tube"
id = "electrodetube"
req_tech = list(TECH_MAGNET = 2, TECH_POWER = 3, TECH_COMBAT = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000)
build_path = /obj/item/modularlaser/lasermedium/electrode
sort_string = "MAVED"
@@ -576,7 +576,7 @@
name = "laser medium"
id = "lasermedium"
req_tech = list(TECH_MAGNET = 5, TECH_POWER = 5, TECH_COMBAT = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000, MAT_URANIUM = 2000, MAT_SILVER = 4000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000, MAT_URANIUM = 2000, MAT_SILVER = 4000)
build_path = /obj/item/modularlaser/lasermedium/laser
sort_string = "MAVEE"
@@ -584,7 +584,7 @@
name = "low-power laser medium"
id = "weaklaser"
req_tech = list(TECH_MAGNET = 3, TECH_POWER = 3, TECH_COMBAT = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000)
build_path = /obj/item/modularlaser/lasermedium/laser/weak
sort_string = "MAVEF"
@@ -592,7 +592,7 @@
name = "laser sniper medium"
id = "sniperlaser"
req_tech = list(TECH_MAGNET = 5, TECH_POWER = 6, TECH_COMBAT = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000, MAT_URANIUM = 2000, MAT_DIAMOND = 10)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000, MAT_URANIUM = 2000, MAT_DIAMOND = 10)
build_path = /obj/item/modularlaser/lasermedium/laser/sniper
sort_string = "MAVEG"
@@ -600,7 +600,7 @@
name = "heavy laser medium"
id = "heavylasermedium"
req_tech = list(TECH_MAGNET = 6, TECH_POWER = 6, TECH_COMBAT = 5, TECH_ILLEGAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000, MAT_URANIUM = 2000, MAT_GOLD = 4000, MAT_DIAMOND = 500)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000, MAT_URANIUM = 2000, MAT_GOLD = 4000, MAT_DIAMOND = 500)
build_path = /obj/item/modularlaser/lasermedium/laser/heavy
sort_string = "MAVEH"
@@ -608,7 +608,7 @@
name = "cannon beam medium"
id = "cannonmedium"
req_tech = list(TECH_MAGNET = 5, TECH_POWER = 5, TECH_COMBAT = 5, TECH_ILLEGAL = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000, MAT_URANIUM = 2000, MAT_GOLD = 4000, MAT_DIAMOND = 500)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000, MAT_URANIUM = 2000, MAT_GOLD = 4000, MAT_DIAMOND = 500)
build_path = /obj/item/modularlaser/lasermedium/laser/cannon
sort_string = "MAVEI"
@@ -616,7 +616,7 @@
name = "xraser medium"
id = "xraser"
req_tech = list(TECH_MAGNET = 5, TECH_POWER = 5, TECH_COMBAT = 5, TECH_ILLEGAL = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000, MAT_URANIUM = 4000, MAT_GOLD = 4000, MAT_DIAMOND = 500)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000, MAT_URANIUM = 4000, MAT_GOLD = 4000, MAT_DIAMOND = 500)
build_path = /obj/item/modularlaser/lasermedium/laser/xray
sort_string = "MAVEJ"
@@ -624,7 +624,7 @@
name = "excavation beam medium"
id = "digbeam"
req_tech = list(TECH_MAGNET = 3, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000, MAT_PLASTEEL = 500)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000, MAT_PLASTEEL = 500)
build_path = /obj/item/modularlaser/lasermedium/dig
sort_string = "MAVEK"
@@ -632,7 +632,7 @@
name = "lightning arc tube"
id = "lightning"
req_tech = list(TECH_MAGNET = 6, TECH_POWER = 7)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000, MAT_SILVER = 4000, MAT_GOLD = 4000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000, MAT_SILVER = 4000, MAT_GOLD = 4000)
build_path = /obj/item/modularlaser/lasermedium/lightning
sort_string = "MAVEL"
@@ -640,7 +640,7 @@
name = "graviton grapple tube"
id = "hook"
req_tech = list(TECH_ARCANE = 4, TECH_POWER = 2)
- materials =list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000, MAT_MORPHIUM = 4000, MAT_VERDANTIUM = 4000)
+ materials =list(MAT_STEEL = 8000, MAT_GLASS = 8000, MAT_MORPHIUM = 4000, MAT_VERDANTIUM = 4000)
build_path = /obj/item/modularlaser/lasermedium/hook
sort_string = "MAVEM"
@@ -648,7 +648,7 @@
name = "phase projector tube"
id = "phasemedium"
req_tech = list(TECH_MAGNET = 3, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GLASS = 8000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 8000)
build_path = /obj/item/modularlaser/lasermedium/phase
sort_string = "MAVEN"
@@ -696,7 +696,7 @@
name = "basic capacitor"
id = "basiccap"
req_tech = list(TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000)
build_path = /obj/item/modularlaser/capacitor/basic
sort_string = "MAVEV"
@@ -704,7 +704,7 @@
name = "efficient capacitor"
id = "ecocap"
req_tech = list(TECH_POWER = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500)
build_path = /obj/item/modularlaser/capacitor/eco
sort_string = "MAVEW"
@@ -712,7 +712,7 @@
name = "economical capacitor"
id = "superecocap"
req_tech = list(TECH_POWER = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500)
build_path = /obj/item/modularlaser/capacitor/eco/super
sort_string = "MAVEX"
@@ -720,7 +720,7 @@
name = "high throughput capactior"
id = "quickcap"
req_tech = list(TECH_POWER = 8)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500)
build_path = /obj/item/modularlaser/capacitor/speed
sort_string = "MAVEY"
@@ -728,7 +728,7 @@
name = "very high throughput capactior"
id = "advqcap"
req_tech = list(TECH_POWER = 8)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500, MAT_VERDANTIUM = 300)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500, MAT_VERDANTIUM = 300)
build_path = /obj/item/modularlaser/capacitor/speed/advanced
sort_string = "MAVEZ"
@@ -736,7 +736,7 @@
name = "cooling system"
id = "basicac"
req_tech = list(TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000)
build_path = /obj/item/modularlaser/cooling/basic
sort_string = "MAVFA"
@@ -744,7 +744,7 @@
name = "regenerative cooling system"
id = "recoverac"
req_tech = list(TECH_ENGINEERING = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500)
build_path = /obj/item/modularlaser/cooling/efficient
sort_string = "MAVFB"
@@ -752,7 +752,7 @@
name = "high-power regenerative cooling system"
id = "fastac"
req_tech = list(TECH_ENGINEERING = 7)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500, MAT_VERDANTIUM = 300)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500, MAT_VERDANTIUM = 300)
build_path = /obj/item/modularlaser/cooling/efficient/super
sort_string = "MAVFC"
@@ -760,7 +760,7 @@
name = "supercharged cooling system"
id = "superac"
req_tech = list(TECH_ENGINEERING = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500)
build_path = /obj/item/modularlaser/cooling/speed
sort_string = "MAVFD"
@@ -768,7 +768,7 @@
name = "hypercharged cooling system"
id = "hyperac"
req_tech = list(TECH_ENGINEERING = 7)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500, MAT_VERDANTIUM = 300)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500, MAT_VERDANTIUM = 300)
build_path = /obj/item/modularlaser/cooling/speed/adv
sort_string = "MAVFE"
@@ -776,7 +776,7 @@
name = "controller"
id = "modcontrol"
req_tech = list(TECH_DATA = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000)
build_path = /obj/item/modularlaser/controller/basic
sort_string = "MAVFF"
@@ -784,7 +784,7 @@
name = "AN-94 patterned fire controller"
id = "an94"
req_tech = list(TECH_DATA = 5, TECH_COMBAT = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000)
build_path = /obj/item/modularlaser/controller/twoburst
sort_string = "MAVFG"
@@ -792,7 +792,7 @@
name = "burst FCU"
id = "threecontrol"
req_tech = list(TECH_DATA = 5, TECH_COMBAT = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500)
build_path = /obj/item/modularlaser/controller/threeburst
sort_string = "MAVFH"
@@ -800,7 +800,7 @@
name = "quintburst FCU"
id = "fivecontrol"
req_tech = list(TECH_DATA = 5, TECH_COMBAT = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000, MAT_SILVER = 500, MAT_GOLD = 500)
build_path = /obj/item/modularlaser/controller/fiveburst
sort_string = "MAVFI"
@@ -813,7 +813,7 @@
name = "Testing range"
id = "test_range_pin"
req_tech = list(TECH_MATERIAL = 3, TECH_POWER = 2, TECH_COMBAT = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 1000)
+ materials = list(MAT_STEEL = 1000)
build_path = /obj/item/firing_pin/test_range
sort_string = "MAVGA"
@@ -821,7 +821,6 @@
name = "Exploration"
id = "explorer_pin"
req_tech = list(TECH_MATERIAL = 3, TECH_POWER = 2, TECH_COMBAT = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 500)
build_path = /obj/item/firing_pin/explorer
sort_string = "MAVGC"
-
diff --git a/code/modules/research/designs/xenoarch_toys.dm b/code/modules/research/designs/xenoarch_toys.dm
index 5d7196ec08f..7522d070761 100644
--- a/code/modules/research/designs/xenoarch_toys.dm
+++ b/code/modules/research/designs/xenoarch_toys.dm
@@ -9,7 +9,7 @@
id = "ano_scanner"
desc = "Aids in triangulation of exotic particles."
req_tech = list(TECH_BLUESPACE = 3, TECH_MAGNET = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 10000,"glass" = 5000)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 5000)
build_path = /obj/item/ano_scanner
sort_string = "GAAAA"
@@ -17,7 +17,7 @@
desc = "Used to check spatial depth and density of rock outcroppings."
id = "depth_scanner"
req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2, TECH_BLUESPACE = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 1000,"glass" = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000)
build_path = /obj/item/depth_scanner
sort_string = "GAAAB"
@@ -26,7 +26,7 @@
id = "xenoarch_multitool"
req_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 3, TECH_BLUESPACE = 3)
build_path = /obj/item/xenoarch_multi_tool
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000, "uranium" = 500, "phoron" = 500)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 1000, MAT_URANIUM = 500, MAT_PHORON = 500)
sort_string = "GAAAC"
/datum/design/item/xenoarch/excavationdrill
@@ -34,6 +34,6 @@
id = "excavationdrill"
req_tech = list(TECH_MATERIAL = 3, TECH_POWER = 2, TECH_ENGINEERING = 2, TECH_BLUESPACE = 3)
build_type = PROTOLATHE
- materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 4000)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 4000)
build_path = /obj/item/pickaxe/excavationdrill
sort_string = "GAAAD"
diff --git a/code/modules/research/designs/xenobio_toys.dm b/code/modules/research/designs/xenobio_toys.dm
index 805c4e3a5ef..ed623476c63 100644
--- a/code/modules/research/designs/xenobio_toys.dm
+++ b/code/modules/research/designs/xenobio_toys.dm
@@ -7,14 +7,14 @@
/datum/design/item/xenobio/slimebaton
id = "slimebaton"
req_tech = list(TECH_MATERIAL = 2, TECH_BIO = 2, TECH_POWER = 3, TECH_COMBAT = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 5000)
+ materials = list(MAT_STEEL = 5000)
build_path = /obj/item/melee/baton/slime
sort_string = "HAAAA"
/datum/design/item/xenobio/slimetaser
id = "slimetaser"
req_tech = list(TECH_MATERIAL = 3, TECH_BIO = 3, TECH_POWER = 4, TECH_COMBAT = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 5000)
+ materials = list(MAT_STEEL = 5000)
build_path = /obj/item/gun/energy/taser/xeno
sort_string = "HAAAB"
@@ -25,6 +25,6 @@
desc = "A hand-held body scanner able to learn information about slimes."
id = "slime_scanner"
req_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 500)
+ materials = list(MAT_STEEL = 500, MAT_GLASS = 500)
build_path = /obj/item/slime_scanner
sort_string = "HBAAA"
diff --git a/code/modules/research/designs_vr.dm b/code/modules/research/designs_vr.dm
index 86177c04f1e..51822d05525 100644
--- a/code/modules/research/designs_vr.dm
+++ b/code/modules/research/designs_vr.dm
@@ -3,21 +3,21 @@
name = "Language implant"
id = "implant_language"
req_tech = list(TECH_MATERIAL = 5, TECH_BIO = 5, TECH_DATA = 4, TECH_ENGINEERING = 4) //This is not an easy to make implant.
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 7000, "gold" = 2000, "diamond" = 3000)
+ materials = list(MAT_STEEL = 7000, MAT_GLASS = 7000, MAT_GOLD = 2000, MAT_DIAMOND = 3000)
build_path = /obj/item/implantcase/vrlanguage
*/
// /datum/design/item/implant/backup
// name = "Backup implant"
// id = "implant_backup"
// req_tech = list(TECH_MATERIAL = 2, TECH_BIO = 2, TECH_DATA = 4, TECH_ENGINEERING = 2)
-// materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000)
+// materials = list(MAT_STEEL = 2000, MAT_GLASS = 2000)
// build_path = /obj/item/implantcase/backup
/datum/design/item/weapon/sizegun
name = "Size gun"
id = "sizegun"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 2000, "uranium" = 2000)
+ materials = list(MAT_STEEL = 3000, MAT_GLASS = 2000, MAT_URANIUM = 2000)
build_path = /obj/item/gun/energy/sizegun
sort_string = "TAAAB"
@@ -25,7 +25,7 @@
name = "Bluespace jumpsuit"
id = "bsjumpsuit"
req_tech = list(TECH_BLUESPACE = 2, TECH_MATERIAL = 3, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 4000)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 4000)
build_path = /obj/item/clothing/under/bluespace
sort_string = "TAAAC"
@@ -33,7 +33,7 @@
// name = "SleeveMate 3700"
// id = "sleevemate"
// req_tech = list(TECH_MATERIAL = 3, TECH_MAGNET = 2, TECH_BIO = 2)
-// materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 4000)
+// materials = list(MAT_STEEL = 4000, MAT_GLASS = 4000)
// build_path = /obj/item/sleevemate
// sort_string = "TAAAD"
@@ -41,14 +41,14 @@
// name = "Body Snatcher"
// id = "bodysnatcher"
// req_tech = list(TECH_MAGNET = 3, TECH_BIO = 3, TECH_ILLEGAL = 2)
-// materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 4000)
+// materials = list(MAT_STEEL = 4000, MAT_GLASS = 4000)
// build_path = /obj/item/bodysnatcher
/datum/design/item/item/pressureinterlock
name = "APP pressure interlock"
id = "pressureinterlock"
req_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 250)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 250)
build_path = /obj/item/pressurelock
sort_string = "TAADA"
@@ -56,7 +56,7 @@
name = "Advanced anti-particle rifle"
id = "advparticle"
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 5, TECH_POWER = 3, TECH_MAGNET = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000, "gold" = 1000, "uranium" = 750)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_URANIUM = 750)
build_path = /obj/item/gun/energy/particle/advanced
sort_string = "TAADB"
@@ -64,7 +64,7 @@
name = "Anti-particle cannon"
id = "particlecannon"
req_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 5, TECH_POWER = 4, TECH_MAGNET = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 1500, "gold" = 2000, "uranium" = 1000, "diamond" = 2000)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 1500, MAT_GOLD = 2000, MAT_URANIUM = 1000, MAT_DIAMOND = 2000)
build_path = /obj/item/gun/energy/particle/cannon
sort_string = "TAADC"
@@ -72,7 +72,7 @@
name = "AR glasses"
id = "omnihud"
req_tech = list(TECH_MAGNET = 4, TECH_COMBAT = 3, TECH_BIO = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 1000)
build_path = /obj/item/clothing/glasses/omnihud
sort_string = "GAAFB"
@@ -80,7 +80,7 @@
name = "Personal translocator"
id = "translocator"
req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_ILLEGAL = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 2000, "uranium" = 4000, "diamond" = 2000)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 2000, MAT_URANIUM = 4000, MAT_DIAMOND = 2000)
build_path = /obj/item/perfect_tele
sort_string = "HABAF"
@@ -88,7 +88,7 @@
name = "nanite implant framework"
id = "nif"
req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 8000, "uranium" = 6000, "diamond" = 6000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 8000, MAT_URANIUM = 6000, MAT_DIAMOND = 6000)
build_path = /obj/item/nif
sort_string = "HABBC"
@@ -96,7 +96,7 @@
name = "bioadaptive NIF"
id = "bioadapnif"
req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5, TECH_BIO = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 15000, "uranium" = 10000, "diamond" = 10000)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 15000, MAT_URANIUM = 10000, MAT_DIAMOND = 10000)
build_path = /obj/item/nif/bioadap
sort_string = "HABBD" //Changed String from HABBE to HABBD
//Addiing bioadaptive NIF to Protolathe
@@ -105,7 +105,7 @@
name = "adv. NIF repair tool"
id = "anrt"
req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 200, "glass" = 3000, "uranium" = 2000, "diamond" = 2000)
+ materials = list(MAT_STEEL = 200, MAT_GLASS = 3000, MAT_URANIUM = 2000, MAT_DIAMOND = 2000)
build_path = /obj/item/nifrepairer
sort_string = "HABBE" //Changed String from HABBD to HABBE
@@ -157,7 +157,7 @@
name = "\'Retiarius\' capture gun" //cit change
id = "netgun"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 5, TECH_MAGNET = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 3000)
+ materials = list(MAT_STEEL = 6000, MAT_GLASS = 3000)
build_path = /obj/item/gun/energy/netgun
sort_string = "TAADF"
@@ -248,7 +248,7 @@
/*
/datum/design/item/rig
req_tech = list(TECH_MATERIAL = 5, TECH_POWER = 5, TECH_MAGNET = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 6000, "silver" = 6000, "uranium" = 4000)
+ materials = list(MAT_STEEL = 6000, MAT_GLASS = 6000, MAT_SILVER = 6000, MAT_URANIUM = 4000)
/datum/design/item/rig/eva
name = "eva hardsuit (empty)"
@@ -277,7 +277,7 @@
/datum/design/item/rig_module
req_tech = list(TECH_MATERIAL = 5, TECH_POWER = 5, TECH_MAGNET = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 6000, "silver" = 4000, "uranium" = 2000)
+ materials = list(MAT_STEEL = 6000, MAT_GLASS = 6000, MAT_SILVER = 4000, MAT_URANIUM = 2000)
/datum/design/item/rig_module/plasma_cutter
name = "rig module - plasma cutter"
diff --git a/code/modules/research/mechfab_designs.dm b/code/modules/research/mechfab_designs.dm
index 8842072eafd..bf1a846088d 100644
--- a/code/modules/research/mechfab_designs.dm
+++ b/code/modules/research/mechfab_designs.dm
@@ -11,7 +11,7 @@
id = "ripley_chassis"
build_path = /obj/item/mecha_parts/chassis/ripley
time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 15000)
+ materials = list(MAT_STEEL = 15000)
/datum/design/item/mechfab/ripley/chassis/firefighter
name = "Firefigher Chassis"
@@ -28,42 +28,42 @@
id = "ripley_torso"
build_path = /obj/item/mecha_parts/part/ripley_torso
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 30000, "glass" = 11250)
+ materials = list(MAT_STEEL = 30000, MAT_GLASS = 11250)
/datum/design/item/mechfab/ripley/torso/geiger
name = "Geiger Torso"
id = "geiger_torso"
build_path = /obj/item/mecha_parts/part/geiger_torso
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 25000, "glass" = 10000)
+ materials = list(MAT_STEEL = 25000, MAT_GLASS = 10000)
/datum/design/item/mechfab/ripley/left_arm
name = "Ripley Left Arm"
id = "ripley_left_arm"
build_path = /obj/item/mecha_parts/part/ripley_left_arm
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 18750)
+ materials = list(MAT_STEEL = 18750)
/datum/design/item/mechfab/ripley/right_arm
name = "Ripley Right Arm"
id = "ripley_right_arm"
build_path = /obj/item/mecha_parts/part/ripley_right_arm
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 18750)
+ materials = list(MAT_STEEL = 18750)
/datum/design/item/mechfab/ripley/left_leg
name = "Ripley Left Leg"
id = "ripley_left_leg"
build_path = /obj/item/mecha_parts/part/ripley_left_leg
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 22500)
+ materials = list(MAT_STEEL = 22500)
/datum/design/item/mechfab/ripley/right_leg
name = "Ripley Right Leg"
id = "ripley_right_leg"
build_path = /obj/item/mecha_parts/part/ripley_right_leg
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 22500)
+ materials = list(MAT_STEEL = 22500)
/datum/design/item/mechfab/odysseus
category = list("Odysseus")
@@ -73,49 +73,49 @@
id = "odysseus_chassis"
build_path = /obj/item/mecha_parts/chassis/odysseus
time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 15000)
+ materials = list(MAT_STEEL = 15000)
/datum/design/item/mechfab/odysseus/torso
name = "Odysseus Torso"
id = "odysseus_torso"
build_path = /obj/item/mecha_parts/part/odysseus_torso
time = 18
- materials = list(DEFAULT_WALL_MATERIAL = 18750)
+ materials = list(MAT_STEEL = 18750)
/datum/design/item/mechfab/odysseus/head
name = "Odysseus Head"
id = "odysseus_head"
build_path = /obj/item/mecha_parts/part/odysseus_head
time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 1500, "glass" = 7500)
+ materials = list(MAT_STEEL = 1500, MAT_GLASS = 7500)
/datum/design/item/mechfab/odysseus/left_arm
name = "Odysseus Left Arm"
id = "odysseus_left_arm"
build_path = /obj/item/mecha_parts/part/odysseus_left_arm
time = 12
- materials = list(DEFAULT_WALL_MATERIAL = 7500)
+ materials = list(MAT_STEEL = 7500)
/datum/design/item/mechfab/odysseus/right_arm
name = "Odysseus Right Arm"
id = "odysseus_right_arm"
build_path = /obj/item/mecha_parts/part/odysseus_right_arm
time = 12
- materials = list(DEFAULT_WALL_MATERIAL = 7500)
+ materials = list(MAT_STEEL = 7500)
/datum/design/item/mechfab/odysseus/left_leg
name = "Odysseus Left Leg"
id = "odysseus_left_leg"
build_path = /obj/item/mecha_parts/part/odysseus_left_leg
time = 13
- materials = list(DEFAULT_WALL_MATERIAL = 11250)
+ materials = list(MAT_STEEL = 11250)
/datum/design/item/mechfab/odysseus/right_leg
name = "Odysseus Right Leg"
id = "odysseus_right_leg"
build_path = /obj/item/mecha_parts/part/odysseus_right_leg
time = 13
- materials = list(DEFAULT_WALL_MATERIAL = 11250)
+ materials = list(MAT_STEEL = 11250)
/datum/design/item/mechfab/gygax
category = list("Gygax")
@@ -124,63 +124,63 @@
name = "Serenity Chassis"
id = "serenity_chassis"
build_path = /obj/item/mecha_parts/chassis/serenity
- materials = list(DEFAULT_WALL_MATERIAL = 18750, "phoron" = 4000)
+ materials = list(MAT_STEEL = 18750, MAT_PHORON = 4000)
/datum/design/item/mechfab/gygax/chassis
name = "Gygax Chassis"
id = "gygax_chassis"
build_path = /obj/item/mecha_parts/chassis/gygax
time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 18750)
+ materials = list(MAT_STEEL = 18750)
/datum/design/item/mechfab/gygax/torso
name = "Gygax Torso"
id = "gygax_torso"
build_path = /obj/item/mecha_parts/part/gygax_torso
time = 30
- materials = list(DEFAULT_WALL_MATERIAL = 37500, "glass" = 15000)
+ materials = list(MAT_STEEL = 37500, MAT_GLASS = 15000)
/datum/design/item/mechfab/gygax/head
name = "Gygax Head"
id = "gygax_head"
build_path = /obj/item/mecha_parts/part/gygax_head
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 7500)
+ materials = list(MAT_STEEL = 15000, MAT_GLASS = 7500)
/datum/design/item/mechfab/gygax/left_arm
name = "Gygax Left Arm"
id = "gygax_left_arm"
build_path = /obj/item/mecha_parts/part/gygax_left_arm
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 22500)
+ materials = list(MAT_STEEL = 22500)
/datum/design/item/mechfab/gygax/right_arm
name = "Gygax Right Arm"
id = "gygax_right_arm"
build_path = /obj/item/mecha_parts/part/gygax_right_arm
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 22500)
+ materials = list(MAT_STEEL = 22500)
/datum/design/item/mechfab/gygax/left_leg
name = "Gygax Left Leg"
id = "gygax_left_leg"
build_path = /obj/item/mecha_parts/part/gygax_left_leg
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 26250)
+ materials = list(MAT_STEEL = 26250)
/datum/design/item/mechfab/gygax/right_leg
name = "Gygax Right Leg"
id = "gygax_right_leg"
build_path = /obj/item/mecha_parts/part/gygax_right_leg
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 26250)
+ materials = list(MAT_STEEL = 26250)
/datum/design/item/mechfab/gygax/armour
name = "Gygax Armour Plates"
id = "gygax_armour"
build_path = /obj/item/mecha_parts/part/gygax_armour
time = 60
- materials = list(DEFAULT_WALL_MATERIAL = 37500, "diamond" = 7500)
+ materials = list(MAT_STEEL = 37500, MAT_DIAMOND = 7500)
/datum/design/item/mechfab/durand
category = list("Durand")
@@ -190,56 +190,56 @@
id = "durand_chassis"
build_path = /obj/item/mecha_parts/chassis/durand
time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 18750)
+ materials = list(MAT_STEEL = 18750)
/datum/design/item/mechfab/durand/torso
name = "Durand Torso"
id = "durand_torso"
build_path = /obj/item/mecha_parts/part/durand_torso
time = 30
- materials = list(DEFAULT_WALL_MATERIAL = 41250, "glass" = 15000, "silver" = 7500)
+ materials = list(MAT_STEEL = 41250, MAT_GLASS = 15000, MAT_SILVER = 7500)
/datum/design/item/mechfab/durand/head
name = "Durand Head"
id = "durand_head"
build_path = /obj/item/mecha_parts/part/durand_head
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 18750, "glass" = 7500, "silver" = 2250)
+ materials = list(MAT_STEEL = 18750, MAT_GLASS = 7500, MAT_SILVER = 2250)
/datum/design/item/mechfab/durand/left_arm
name = "Durand Left Arm"
id = "durand_left_arm"
build_path = /obj/item/mecha_parts/part/durand_left_arm
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 26250, "silver" = 2250)
+ materials = list(MAT_STEEL = 26250, MAT_SILVER = 2250)
/datum/design/item/mechfab/durand/right_arm
name = "Durand Right Arm"
id = "durand_right_arm"
build_path = /obj/item/mecha_parts/part/durand_right_arm
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 26250, "silver" = 2250)
+ materials = list(MAT_STEEL = 26250, MAT_SILVER = 2250)
/datum/design/item/mechfab/durand/left_leg
name = "Durand Left Leg"
id = "durand_left_leg"
build_path = /obj/item/mecha_parts/part/durand_left_leg
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 30000, "silver" = 2250)
+ materials = list(MAT_STEEL = 30000, MAT_SILVER = 2250)
/datum/design/item/mechfab/durand/right_leg
name = "Durand Right Leg"
id = "durand_right_leg"
build_path = /obj/item/mecha_parts/part/durand_right_leg
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 30000, "silver" = 2250)
+ materials = list(MAT_STEEL = 30000, MAT_SILVER = 2250)
/datum/design/item/mechfab/durand/armour
name = "Durand Armour Plates"
id = "durand_armour"
build_path = /obj/item/mecha_parts/part/durand_armour
time = 60
- materials = list(DEFAULT_WALL_MATERIAL = 37500, "uranium" = 7500)
+ materials = list(MAT_STEEL = 37500, MAT_URANIUM = 7500)
/datum/design/item/mechfab/janus
category = list("Janus")
@@ -258,42 +258,42 @@
id = "janus_torso"
build_path = /obj/item/mecha_parts/part/janus_torso
time = 300
- materials = list(DEFAULT_WALL_MATERIAL = 30000, MAT_DURASTEEL = 8000, MAT_MORPHIUM = 10000, MAT_GOLD = 5000, MAT_VERDANTIUM = 5000)
+ materials = list(MAT_STEEL = 30000, MAT_DURASTEEL = 8000, MAT_MORPHIUM = 10000, MAT_GOLD = 5000, MAT_VERDANTIUM = 5000)
/datum/design/item/mechfab/janus/head
name = "Imperion Head"
id = "janus_head"
build_path = /obj/item/mecha_parts/part/janus_head
time = 200
- materials = list(DEFAULT_WALL_MATERIAL = 30000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 6000, MAT_GOLD = 5000)
+ materials = list(MAT_STEEL = 30000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 6000, MAT_GOLD = 5000)
/datum/design/item/mechfab/janus/left_arm
name = "Prototype Gygax Left Arm"
id = "janus_left_arm"
build_path = /obj/item/mecha_parts/part/janus_left_arm
time = 200
- materials = list(DEFAULT_WALL_MATERIAL = 30000, MAT_METALHYDROGEN = 3000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_GOLD = 5000, MAT_DIAMOND = 7000)
+ materials = list(MAT_STEEL = 30000, MAT_METALHYDROGEN = 3000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_GOLD = 5000, MAT_DIAMOND = 7000)
/datum/design/item/mechfab/janus/right_arm
name = "Prototype Gygax Right Arm"
id = "janus_right_arm"
build_path = /obj/item/mecha_parts/part/janus_right_arm
time = 200
- materials = list(DEFAULT_WALL_MATERIAL = 30000, MAT_METALHYDROGEN = 3000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_GOLD = 5000, MAT_DIAMOND = 7000)
+ materials = list(MAT_STEEL = 30000, MAT_METALHYDROGEN = 3000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_GOLD = 5000, MAT_DIAMOND = 7000)
/datum/design/item/mechfab/janus/left_leg
name = "Prototype Durand Left Leg"
id = "janus_left_leg"
build_path = /obj/item/mecha_parts/part/janus_left_leg
time = 200
- materials = list(DEFAULT_WALL_MATERIAL = 30000, MAT_METALHYDROGEN = 3000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_GOLD = 5000, MAT_URANIUM = 7000)
+ materials = list(MAT_STEEL = 30000, MAT_METALHYDROGEN = 3000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_GOLD = 5000, MAT_URANIUM = 7000)
/datum/design/item/mechfab/janus/right_leg
name = "Prototype Durand Right Leg"
id = "janus_right_leg"
build_path = /obj/item/mecha_parts/part/janus_right_leg
time = 200
- materials = list(DEFAULT_WALL_MATERIAL = 30000, MAT_METALHYDROGEN = 3000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_GOLD = 5000, MAT_URANIUM = 7000)
+ materials = list(MAT_STEEL = 30000, MAT_METALHYDROGEN = 3000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_GOLD = 5000, MAT_URANIUM = 7000)
/datum/design/item/mechfab/janus/phase_coil
name = "Janus Phase Coil"
@@ -310,56 +310,56 @@
id = "honker_chassis"
build_path = /obj/item/mecha_parts/chassis/honker
time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 18750)
+ materials = list(MAT_STEEL = 18750)
/datum/design/item/mechfab/honker/torso
name = "H.O.N.K. Torso"
id = "honker_torso"
build_path = /obj/item/mecha_parts/part/honker_torso
time = 30
- materials = list(DEFAULT_WALL_MATERIAL = 37500, "glass" = 15000, "plastic" = 10000)
+ materials = list(MAT_STEEL = 37500, MAT_GLASS = 15000, MAT_PLASTIC = 10000)
/datum/design/item/mechfab/honker/head
name = "H.O.N.K. Head"
id = "honker_head"
build_path = /obj/item/mecha_parts/part/honker_head
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 7500, "plastic" = 5000)
+ materials = list(MAT_STEEL = 15000, MAT_GLASS = 7500, MAT_PLASTIC = 5000)
/datum/design/item/mechfab/honker/left_arm
name = "H.O.N.K. Left Arm"
id = "honker_left_arm"
build_path = /obj/item/mecha_parts/part/honker_left_arm
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 22500, "plastic" = 12000)
+ materials = list(MAT_STEEL = 22500, MAT_PLASTIC = 12000)
/datum/design/item/mechfab/honker/right_arm
name = "H.O.N.K. Right Arm"
id = "honker_right_arm"
build_path = /obj/item/mecha_parts/part/honker_right_arm
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 22500, "plastic" = 12000)
+ materials = list(MAT_STEEL = 22500, MAT_PLASTIC = 12000)
/datum/design/item/mechfab/honker/left_leg
name = "H.O.N.K. Left Leg"
id = "honker_left_leg"
build_path = /obj/item/mecha_parts/part/honker_left_leg
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 26250, "plastic" = 15000)
+ materials = list(MAT_STEEL = 26250, MAT_PLASTIC = 15000)
/datum/design/item/mechfab/honker/right_leg
name = "H.O.N.K. Right Leg"
id = "honker_right_leg"
build_path = /obj/item/mecha_parts/part/honker_right_leg
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 26250, "plastic" = 15000)
+ materials = list(MAT_STEEL = 26250, MAT_PLASTIC = 15000)
/datum/design/item/mechfab/honker/armour
name = "H.O.N.K. Armour Plates"
id = "honker_armour"
build_path = /obj/item/mecha_parts/part/honker_armour
time = 60
- materials = list(DEFAULT_WALL_MATERIAL = 37500, "diamond" = 7500, "plastic" = 5000, "bananium" = 20000)
+ materials = list(MAT_STEEL = 37500, MAT_DIAMOND = 7500, MAT_PLASTIC = 5000, MAT_BANANIUM = 20000)
/datum/design/item/mechfab/reticent
category = list("Reticent")
@@ -369,62 +369,62 @@
id = "reticent_chassis"
build_path = /obj/item/mecha_parts/chassis/reticent
time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 18750)
+ materials = list(MAT_STEEL = 18750)
/datum/design/item/mechfab/reticent/torso
name = "Reticent Torso"
id = "reticent_torso"
build_path = /obj/item/mecha_parts/part/reticent_torso
time = 30
- materials = list(DEFAULT_WALL_MATERIAL = 37500, "glass" = 15000, "osmium" = 5000)
+ materials = list(MAT_STEEL = 37500, MAT_GLASS = 15000, MAT_OSMIUM = 5000)
/datum/design/item/mechfab/reticent/head
name = "Reticent Head"
id = "reticent_head"
build_path = /obj/item/mecha_parts/part/reticent_head
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 7500, "osmium" = 5000)
+ materials = list(MAT_STEEL = 15000, MAT_GLASS = 7500, MAT_OSMIUM = 5000)
/datum/design/item/mechfab/reticent/left_arm
name = "Reticent Left Arm"
id = "reticent_left_arm"
build_path = /obj/item/mecha_parts/part/reticent_left_arm
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 22500, "plastic" = 12000)
+ materials = list(MAT_STEEL = 22500, MAT_PLASTIC = 12000)
/datum/design/item/mechfab/reticent/right_arm
name = "Reticent Right Arm"
id = "reticent_right_arm"
build_path = /obj/item/mecha_parts/part/reticent_right_arm
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 22500, "plastic" = 12000)
+ materials = list(MAT_STEEL = 22500, MAT_PLASTIC = 12000)
/datum/design/item/mechfab/reticent/left_leg
name = "Reticent Left Leg"
id = "reticent_left_leg"
build_path = /obj/item/mecha_parts/part/reticent_left_leg
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 26250, "plastic" = 15000)
+ materials = list(MAT_STEEL = 26250, MAT_PLASTIC = 15000)
/datum/design/item/mechfab/reticent/right_leg
name = "Reticent Right Leg"
id = "reticent_right_leg"
build_path = /obj/item/mecha_parts/part/reticent_right_leg
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 26250, "plastic" = 15000)
+ materials = list(MAT_STEEL = 26250, MAT_PLASTIC = 15000)
/datum/design/item/mechfab/reticent/armour
name = "Reticent Armour Plates"
id = "reticent_armour"
build_path = /obj/item/mecha_parts/part/reticent_armour
time = 60
- materials = list(DEFAULT_WALL_MATERIAL = 37500, "osmium" = 7500, "plastic" = 5000, "silencium" = 20000)
+ materials = list(MAT_STEEL = 37500, MAT_OSMIUM = 7500, MAT_PLASTIC = 5000, MAT_SILENCIUM = 20000)
/datum/design/item/mecha
build_type = MECHFAB
category = list("Exosuit Equipment")
time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 7500)
+ materials = list(MAT_STEEL = 7500)
/datum/design/item/mecha/AssembleDesignDesc()
if(!desc)
@@ -434,7 +434,7 @@
name = "Exosuit Tracking Beacon"
id = "mech_tracker"
time = 5
- materials = list(DEFAULT_WALL_MATERIAL = 375)
+ materials = list(MAT_STEEL = 375)
build_path = /obj/item/mecha_parts/mecha_tracking
/datum/design/item/mecha/hydraulic_clamp
@@ -456,32 +456,32 @@
name = "Cable Layer"
id = "mech_cable_layer"
build_path = /obj/item/mecha_parts/mecha_equipment/tool/cable_layer
- materials = list(DEFAULT_WALL_MATERIAL = 7500, "plastic" = 1000)
+ materials = list(MAT_STEEL = 7500, MAT_PLASTIC = 1000)
/datum/design/item/mecha/flaregun
name = "Flare Launcher"
id = "mecha_flare_gun"
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flare
- materials = list(DEFAULT_WALL_MATERIAL = 9375)
+ materials = list(MAT_STEEL = 9375)
/datum/design/item/mecha/sleeper
name = "Sleeper"
id = "mech_sleeper"
build_path = /obj/item/mecha_parts/mecha_equipment/tool/sleeper
- materials = list(DEFAULT_WALL_MATERIAL = 3750, "glass" = 7500)
+ materials = list(MAT_STEEL = 3750, MAT_GLASS = 7500)
/datum/design/item/mecha/syringe_gun
name = "Syringe Gun"
id = "mech_syringe_gun"
build_path = /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 2250, "glass" = 1500)
+ materials = list(MAT_STEEL = 2250, MAT_GLASS = 1500)
/datum/design/item/mecha/passenger
name = "Passenger Compartment"
id = "mech_passenger"
build_path = /obj/item/mecha_parts/mecha_equipment/tool/passenger
- materials = list(DEFAULT_WALL_MATERIAL = 3750, "glass" = 3750)
+ materials = list(MAT_STEEL = 3750, MAT_GLASS = 3750)
/datum/design/item/mecha/taser
name = "PBT \"Pacifier\" Mounted Taser"
@@ -499,7 +499,7 @@
id = "mech_shocker"
req_tech = list(TECH_COMBAT = 3, TECH_POWER = 6, TECH_MAGNET = 1)
build_path = /obj/item/mecha_parts/mecha_equipment/shocker
- materials = list(DEFAULT_WALL_MATERIAL = 3500, "gold" = 750, "glass" = 1000)
+ materials = list(MAT_STEEL = 3500, MAT_GOLD = 750, MAT_GLASS = 1000)
/datum/design/item/mecha/lmg
name = "Ultra AC 2"
@@ -513,7 +513,7 @@
/datum/design/item/mecha/weapon
req_tech = list(TECH_COMBAT = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "glass" = 2000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 2000)
// *** Weapon modules
/datum/design/item/mecha/weapon/scattershot
@@ -521,21 +521,21 @@
id = "mech_scattershot"
req_tech = list(TECH_COMBAT = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "glass" = 3000, "plastic" = 2000, "silver" = 2500)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 3000, MAT_PLASTIC = 2000, MAT_SILVER = 2500)
/datum/design/item/mecha/weapon/rigged_scattershot
name = "Jury-Rigged Shrapnel Cannon"
id = "mech_scattershot-r"
req_tech = list(TECH_COMBAT = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot/rigged
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 2000, "plastic" = 2000, "silver" = 2000)
+ materials = list(MAT_STEEL = 7000, MAT_GLASS = 2000, MAT_PLASTIC = 2000, MAT_SILVER = 2000)
/datum/design/item/mecha/weapon/laser
name = "CH-PS \"Immolator\" Laser"
id = "mech_laser"
req_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "glass" = 3000, "plastic" = 2000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 3000, MAT_PLASTIC = 2000)
/datum/design/item/mecha/weapon/laser_rigged
name = "Jury-Rigged Welder-Laser"
@@ -549,91 +549,91 @@
id = "mech_laser_heavy"
req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 3000, "diamond" = 2000, "osmium" = 5000, "plastic" = 2000)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 3000, MAT_DIAMOND = 2000, MAT_OSMIUM = 5000, MAT_PLASTIC = 2000)
/datum/design/item/mecha/weapon/rigged_laser_heavy
name = "Jury-Rigged Emitter Cannon"
id = "mech_laser_heavy-r"
req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 4, TECH_PHORON = 3, TECH_ILLEGAL = 1)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/rigged
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "glass" = 4000, "diamond" = 1500, "osmium" = 4000, "plastic" = 2000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 4000, MAT_DIAMOND = 1500, MAT_OSMIUM = 4000, MAT_PLASTIC = 2000)
/datum/design/item/mecha/weapon/laser_xray
name = "CH-XS \"Penetrator\" Laser"
id = "mech_laser_xray"
req_tech = list(TECH_MATERIAL = 3, TECH_COMBAT = 3, TECH_PHORON = 3, TECH_POWER = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/xray
- materials = list(DEFAULT_WALL_MATERIAL = 9000, "glass" = 3000, "phoron" = 1000, "silver" = 1500, "gold" = 2500, "plastic" = 2000)
+ materials = list(MAT_STEEL = 9000, MAT_GLASS = 3000, MAT_PHORON = 1000, MAT_SILVER = 1500, MAT_GOLD = 2500, MAT_PLASTIC = 2000)
/datum/design/item/mecha/weapon/rigged_laser_xray
name = "Jury-Rigged Xray Rifle"
id = "mech_laser_xray-r"
req_tech = list(TECH_MATERIAL = 3, TECH_COMBAT = 3, TECH_PHORON = 3, TECH_POWER = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/xray/rigged
- materials = list(DEFAULT_WALL_MATERIAL = 8500, "glass" = 2500, "phoron" = 1000, "silver" = 1250, "gold" = 2000, "plastic" = 2000)
+ materials = list(MAT_STEEL = 8500, MAT_GLASS = 2500, MAT_PHORON = 1000, MAT_SILVER = 1250, MAT_GOLD = 2000, MAT_PLASTIC = 2000)
/datum/design/item/mecha/weapon/phase
name = "NT-PE \"Scorpio\" Phase-Emitter"
id = "mech_phase"
req_tech = list(TECH_MATERIAL = 1, TECH_COMBAT = 2, TECH_MAGNET = 2)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/phase
- materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 3000, "plastic" = 3000)
+ materials = list(MAT_STEEL = 6000, MAT_GLASS = 3000, MAT_PLASTIC = 3000)
/datum/design/item/mecha/weapon/ion
name = "MK-IV Ion Heavy Cannon"
id = "mech_ion"
req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/ion
- materials = list(DEFAULT_WALL_MATERIAL = 15000, "uranium" = 2000, "silver" = 2000, "osmium" = 4500, "plastic" = 2000)
+ materials = list(MAT_STEEL = 15000, MAT_URANIUM = 2000, MAT_SILVER = 2000, MAT_OSMIUM = 4500, MAT_PLASTIC = 2000)
/datum/design/item/mecha/weapon/rigged_ion
name = "Jury-Rigged Ion Cannon"
id = "mech_ion-r"
req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/ion/rigged
- materials = list(DEFAULT_WALL_MATERIAL = 13000, "uranium" = 1000, "silver" = 1000, "osmium" = 3000, "plastic" = 2000)
+ materials = list(MAT_STEEL = 13000, MAT_URANIUM = 1000, MAT_SILVER = 1000, MAT_OSMIUM = 3000, MAT_PLASTIC = 2000)
/datum/design/item/mecha/weapon/sound_cannon
name = "H.O.N.K. Sound Cannon"
id = "mech_soundcannon"
req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 4, TECH_ILLEGAL = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/honker
- materials = list(DEFAULT_WALL_MATERIAL = 13000, "silver" = 1000, "osmium" = 3000, "plastic" = 2000, "bananium" = 4000)
+ materials = list(MAT_STEEL = 13000, MAT_SILVER = 1000, MAT_OSMIUM = 3000, MAT_PLASTIC = 2000, MAT_BANANIUM = 4000)
/datum/design/item/mecha/weapon/whisper_blade
name = "Reticent Whisper Blade"
id = "mech_whisper"
req_tech = list(TECH_COMBAT = 5, TECH_MAGNET = 4, TECH_ILLEGAL = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/whisperblade
- materials = list(DEFAULT_WALL_MATERIAL = 13000, "gold" = 1000, "osmium" = 3000, "plasteel" = 2000, "silencium" = 4000)
+ materials = list(MAT_STEEL = 13000, MAT_GOLD = 1000, MAT_OSMIUM = 3000, MAT_PLASTEEL = 2000, MAT_SILENCIUM = 4000)
/datum/design/item/mecha/weapon/inferno_blade
name = "Reticent Inferno Blade"
id = "mech_inferno"
req_tech = list(TECH_COMBAT = 5, TECH_MAGNET = 4, TECH_ILLEGAL = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/infernoblade
- materials = list(DEFAULT_WALL_MATERIAL = 13000, "gold" = 1000, "lead" = 3000, "plasteel" = 2000, "silencium" = 4000)
+ materials = list(MAT_STEEL = 13000, MAT_GOLD = 1000, MAT_LEAD = 3000, MAT_PLASTEEL = 2000, MAT_SILENCIUM = 4000)
/datum/design/item/mecha/weapon/grenade_launcher
name = "SGL-6 Grenade Launcher"
id = "mech_grenade_launcher"
req_tech = list(TECH_COMBAT = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/grenade
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "gold" = 2000, "plastic" = 3000)
+ materials = list(MAT_STEEL = 7000, MAT_GOLD = 2000, MAT_PLASTIC = 3000)
/datum/design/item/mecha/weapon/rigged_grenade_launcher
name = "Jury-Rigged Pneumatic Flashlauncher"
id = "mech_grenade_launcher-rig"
req_tech = list(TECH_COMBAT = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/grenade/rigged
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "gold" = 2000, "plastic" = 2000)
+ materials = list(MAT_STEEL = 5000, MAT_GOLD = 2000, MAT_PLASTIC = 2000)
/datum/design/item/mecha/weapon/clusterbang_launcher
name = "SOP-6 Grenade Launcher"
desc = "A weapon that violates the Geneva Convention at 6 rounds per minute."
id = "clusterbang_launcher"
req_tech = list(TECH_COMBAT= 5, TECH_MATERIAL = 5, TECH_ILLEGAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 15000, "gold" = 4500, "uranium" = 4500)
+ materials = list(MAT_STEEL = 15000, MAT_GOLD = 4500, MAT_URANIUM = 4500)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/grenade/clusterbang/limited
/datum/design/item/mecha/weapon/conc_grenade_launcher
@@ -641,35 +641,35 @@
id = "mech_grenade_launcher_conc"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 4, TECH_ILLEGAL = 1)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/grenade/concussion
- materials = list(DEFAULT_WALL_MATERIAL = 9000, "gold" = 1000, "osmium" = 1000, "plastic" = 3000)
+ materials = list(MAT_STEEL = 9000, MAT_GOLD = 1000, MAT_OSMIUM = 1000, MAT_PLASTIC = 3000)
/datum/design/item/mecha/weapon/frag_grenade_launcher
name = "HEP-MI 6 Grenade Launcher"
id = "mech_grenade_launcher_frag"
req_tech = list(TECH_COMBAT = 4, TECH_ENGINEERING = 2, TECH_MATERIAL = 3, TECH_ILLEGAL = 2)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/grenade/frag/mini
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "gold" = 2500, "uranium" = 3000, "osmium" = 3000, "plastic" = 3000)
+ materials = list(MAT_STEEL = 10000, MAT_GOLD = 2500, MAT_URANIUM = 3000, MAT_OSMIUM = 3000, MAT_PLASTIC = 3000)
/datum/design/item/mecha/weapon/banana_launcher
name = "WSS-2 Banana Peel Launcher"
id = "mech_banana_launcher"
req_tech = list(TECH_COMBAT = 3, TECH_ILLEGAL = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/grenade/banana
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "gold" = 2000, "osmium" = 1000, "plastic" = 5000, "bananium" = 4000)
+ materials = list(MAT_STEEL = 7000, MAT_GOLD = 2000, MAT_OSMIUM = 1000, MAT_PLASTIC = 5000, MAT_BANANIUM = 4000)
/datum/design/item/mecha/weapon/mousetrap_launcher
name = "WSS-5 Mouse Trap Launcher"
id = "mech_mousetrap_launcher"
req_tech = list(TECH_COMBAT = 3, TECH_ILLEGAL = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/grenade/mousetrap
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "gold" = 2000, "osmium" = 1000, "plastic" = 5000, "bananium" = 4000)
+ materials = list(MAT_STEEL = 7000, MAT_GOLD = 2000, MAT_OSMIUM = 1000, MAT_PLASTIC = 5000, MAT_BANANIUM = 4000)
/datum/design/item/mecha/weapon/flamer
name = "CR-3 Mark 8 Flamethrower"
desc = "A weapon that violates the CCWC at two hundred gallons per minute."
id = "mech_flamer_full"
req_tech = list(TECH_MATERIAL = 4, TECH_COMBAT = 6, TECH_PHORON = 4, TECH_ILLEGAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "gold" = 2000, "uranium" = 3000, "phoron" = 8000)
+ materials = list(MAT_STEEL = 10000, MAT_GOLD = 2000, MAT_URANIUM = 3000, MAT_PHORON = 8000)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/flamer
/datum/design/item/mecha/weapon/flamer_rigged
@@ -677,7 +677,7 @@
desc = "A weapon that accidentally violates the CCWC at one hundred gallons per minute."
id = "mech_flamer_rigged"
req_tech = list(TECH_MATERIAL = 3, TECH_COMBAT = 3, TECH_PHORON = 3, TECH_ILLEGAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "gold" = 1500, "silver" = 1500, "uranium" = 2000, "phoron" = 6000)
+ materials = list(MAT_STEEL = 8000, MAT_GOLD = 1500, MAT_SILVER = 1500, MAT_URANIUM = 2000, MAT_PHORON = 6000)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/flamer/rigged
/datum/design/item/mecha/weapon/flame_mg
@@ -685,7 +685,7 @@
desc = "A weapon that violates the CCWC at sixty rounds a minute."
id = "mech_lmg_flamer"
req_tech = list(TECH_MATERIAL = 4, TECH_COMBAT = 5, TECH_PHORON = 2, TECH_ILLEGAL = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "gold" = 2000, "silver" = 1750, "uranium" = 1500, "phoron" = 4000)
+ materials = list(MAT_STEEL = 8000, MAT_GOLD = 2000, MAT_SILVER = 1750, MAT_URANIUM = 1500, MAT_PHORON = 4000)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/incendiary
// *** Nonweapon modules
@@ -708,7 +708,7 @@
desc = "An exosuit-mounted rapid construction device."
id = "mech_rcd"
time = 120
- materials = list(DEFAULT_WALL_MATERIAL = 20000, "plastic" = 10000, "phoron" = 18750, "silver" = 15000, "gold" = 15000)
+ materials = list(MAT_STEEL = 20000, MAT_PLASTIC = 10000, MAT_PHORON = 18750, MAT_SILVER = 15000, MAT_GOLD = 15000)
req_tech = list(TECH_MATERIAL = 4, TECH_BLUESPACE = 3, TECH_MAGNET = 4, TECH_POWER = 4, TECH_ENGINEERING = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/rcd
@@ -724,7 +724,7 @@
desc = "Automated repair droid, exosuits' best companion. BEEP BOOP"
id = "mech_repair_droid"
req_tech = list(TECH_MAGNET = 3, TECH_DATA = 3, TECH_ENGINEERING = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 7500, "gold" = 750, "silver" = 1500, "glass" = 3750)
+ materials = list(MAT_STEEL = 7500, MAT_GOLD = 750, MAT_SILVER = 1500, MAT_GLASS = 3750)
build_path = /obj/item/mecha_parts/mecha_equipment/repair_droid
/datum/design/item/mecha/shield_drone
@@ -732,7 +732,7 @@
desc = "Manual shield drone. Deploys a large, familiar, and rectangular shield in one direction at a time."
id = "mech_shield_droid"
req_tech = list(TECH_PHORON = 3, TECH_MAGNET = 6, TECH_ILLEGAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "gold" = 2000, "silver" = 3000, "phoron" = 5000, "glass" = 3750)
+ materials = list(MAT_STEEL = 8000, MAT_GOLD = 2000, MAT_SILVER = 3000, MAT_PHORON = 5000, MAT_GLASS = 3750)
build_path = /obj/item/mecha_parts/mecha_equipment/combat_shield
/datum/design/item/mecha/reticent_shield_drone
@@ -740,7 +740,7 @@
desc = "A Le Rien specialty shield drone. Deploys a translucent rectangular shield in one direction."
id = "mech_reticent_shield_droid"
req_tech = list(TECH_PHORON = 3, TECH_MAGNET = 6, TECH_ILLEGAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "osmium" = 4000, "silver" = 3000, "silencium" = 10000, "glass" = 3750)
+ materials = list(MAT_STEEL = 8000, MAT_OSMIUM = 4000, MAT_SILVER = 3000, MAT_SILENCIUM = 10000, MAT_GLASS = 3750)
build_path = /obj/item/mecha_parts/mecha_equipment/combat_shield/reticent
/datum/design/item/mecha/crisis_drone
@@ -748,7 +748,7 @@
desc = "Deploys a small medical drone capable of patching small wounds in order to stabilize nearby patients."
id = "mech_med_droid"
req_tech = list(TECH_PHORON = 3, TECH_MAGNET = 6, TECH_BIO = 5, TECH_DATA = 4, TECH_ARCANE = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GOLD = 2000, MAT_SILVER = 3000, MAT_VERDANTIUM = 2500, MAT_GLASS = 3000)
+ materials = list(MAT_STEEL = 8000, MAT_GOLD = 2000, MAT_SILVER = 3000, MAT_VERDANTIUM = 2500, MAT_GLASS = 3000)
build_path = /obj/item/mecha_parts/mecha_equipment/crisis_drone
/datum/design/item/mecha/rad_drone
@@ -756,7 +756,7 @@
desc = "Deploys a small hazmat drone capable of purging minor radiation damage in order to stabilize nearby patients."
id = "mech_rad_droid"
req_tech = list(TECH_PHORON = 4, TECH_MAGNET = 5, TECH_BIO = 6, TECH_DATA = 4, TECH_ARCANE = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_GOLD = 2000, MAT_URANIUM = 3000, MAT_VERDANTIUM = 2500, MAT_GLASS = 3000)
+ materials = list(MAT_STEEL = 8000, MAT_GOLD = 2000, MAT_URANIUM = 3000, MAT_VERDANTIUM = 2500, MAT_GLASS = 3000)
build_path = /obj/item/mecha_parts/mecha_equipment/crisis_drone/rad
/datum/design/item/mecha/medanalyzer
@@ -773,20 +773,20 @@
id = "mech_jetpack"
req_tech = list(TECH_ENGINEERING = 3, TECH_MAGNET = 4) //One less magnet than the actual got-damn teleporter.
build_path = /obj/item/mecha_parts/mecha_equipment/tool/jetpack
- materials = list(DEFAULT_WALL_MATERIAL = 7500, "silver" = 300, "glass" = 600)
+ materials = list(MAT_STEEL = 7500, MAT_SILVER = 300, MAT_GLASS = 600)
/datum/design/item/mecha/phoron_generator
desc = "Phoron Reactor"
id = "mech_phoron_generator"
req_tech = list(TECH_PHORON = 2, TECH_POWER= 2, TECH_ENGINEERING = 2)
build_path = /obj/item/mecha_parts/mecha_equipment/generator
- materials = list(DEFAULT_WALL_MATERIAL = 7500, "silver" = 375, "glass" = 750)
+ materials = list(MAT_STEEL = 7500, MAT_SILVER = 375, MAT_GLASS = 750)
/datum/design/item/mecha/energy_relay
name = "Energy Relay"
id = "mech_energy_relay"
req_tech = list(TECH_MAGNET = 4, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 7500, "gold" = 1500, "silver" = 2250, "glass" = 1500)
+ materials = list(MAT_STEEL = 7500, MAT_GOLD = 1500, MAT_SILVER = 2250, MAT_GLASS = 1500)
build_path = /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay
/datum/design/item/mecha/ccw_armor
@@ -794,7 +794,7 @@
desc = "Exosuit close-combat armor booster."
id = "mech_ccw_armor"
req_tech = list(TECH_MATERIAL = 5, TECH_COMBAT = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 11250, "silver" = 3750)
+ materials = list(MAT_STEEL = 11250, MAT_SILVER = 3750)
build_path = /obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster
/datum/design/item/mecha/proj_armor
@@ -802,7 +802,7 @@
desc = "Exosuit projectile armor booster."
id = "mech_proj_armor"
req_tech = list(TECH_MATERIAL = 5, TECH_COMBAT = 5, TECH_ENGINEERING = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 15000, "gold" = 3750)
+ materials = list(MAT_STEEL = 15000, MAT_GOLD = 3750)
build_path = /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster
/datum/design/item/mecha/diamond_drill
@@ -810,7 +810,7 @@
desc = "A diamond version of the exosuit drill. It's harder, better, faster, stronger."
id = "mech_diamond_drill"
req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 7500, "diamond" = 4875)
+ materials = list(MAT_STEEL = 7500, MAT_DIAMOND = 4875)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill
/datum/design/item/mecha/ground_drill
@@ -818,7 +818,7 @@
desc = "A heavy duty bore. Bigger, better, stronger than the core sampler, but not quite as good as a large drill."
id = "mech_ground_drill"
req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 2, TECH_PHORON = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "silver" = 3000, "phoron" = 2000)
+ materials = list(MAT_STEEL = 7000, MAT_SILVER = 3000, MAT_PHORON = 2000)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/drill/bore
/datum/design/item/mecha/orescanner
@@ -826,7 +826,7 @@
desc = "A hefty device used to scan for subterranean veins of ore."
id = "mech_ore_scanner"
req_tech = list(TECH_MATERIAL = 2, TECH_MAGNET = 2, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 1000)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 1000)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/orescanner
/datum/design/item/mecha/advorescanner
@@ -834,7 +834,7 @@
desc = "A hefty device used to scan for the exact volumes of subterranean veins of ore."
id = "mech_ore_scanner_adv"
req_tech = list(TECH_MATERIAL = 5, TECH_MAGNET = 4, TECH_POWER = 4, TECH_BLUESPACE = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "osmium" = 3000, "silver" = 1000)
+ materials = list(MAT_STEEL = 5000, MAT_OSMIUM = 3000, MAT_SILVER = 1000)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/orescanner/advanced
/datum/design/item/mecha/powerwrench
@@ -842,7 +842,7 @@
desc = "A large, hydraulic wrench."
id = "mech_wrench"
req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "plastic" = 2000, "glass" = 1250)
+ materials = list(MAT_STEEL = 5000, MAT_PLASTIC = 2000, MAT_GLASS = 1250)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/powertool
/datum/design/item/mecha/powercrowbar
@@ -850,7 +850,7 @@
desc = "A large, hydraulic prybar."
id = "mech_crowbar"
req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000, "osmium" = 3000, "glass" = 1000)
+ materials = list(MAT_STEEL = 4000, MAT_OSMIUM = 3000, MAT_GLASS = 1000)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/powertool/prybar
/datum/design/item/mecha/generator_nuclear
@@ -858,7 +858,7 @@
desc = "Exosuit-held nuclear reactor. Converts uranium and everyone's health to energy."
id = "mech_generator_nuclear"
req_tech = list(TECH_POWER= 3, TECH_ENGINEERING = 3, TECH_MATERIAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 7500, "silver" = 375, "glass" = 750)
+ materials = list(MAT_STEEL = 7500, MAT_SILVER = 375, MAT_GLASS = 750)
build_path = /obj/item/mecha_parts/mecha_equipment/generator/nuclear
/datum/design/item/mecha/speedboost_ripley
@@ -866,7 +866,7 @@
desc = "System enhancements and overdrives to make a mech's legs move faster."
id = "mech_speedboost_ripley"
req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4, TECH_ENGINEERING = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "silver" = 1000, "gold" = 1000)
+ materials = list(MAT_STEEL = 10000, MAT_SILVER = 1000, MAT_GOLD = 1000)
build_path = /obj/item/mecha_parts/mecha_equipment/speedboost
/datum/design/item/synthetic_flash
@@ -874,7 +874,7 @@
id = "sflash"
req_tech = list(TECH_MAGNET = 3, TECH_COMBAT = 2)
build_type = MECHFAB
- materials = list(DEFAULT_WALL_MATERIAL = 562, "glass" = 562)
+ materials = list(MAT_STEEL = 562, MAT_GLASS = 562)
build_path = /obj/item/flash/synthetic
category = list("Misc")
@@ -887,7 +887,7 @@
id = "mactuator"
req_tech = list(TECH_ENGINEERING = 3, TECH_MATERIAL = 2)
build_type = MECHFAB
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 2500)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 2500)
build_path = /obj/item/mecha_parts/component/actuator
category = list("Components")
@@ -895,84 +895,84 @@
name = "Mecha Actuator - High Speed"
id = "mactuatorhigh"
req_tech = list(TECH_ENGINEERING = 5, TECH_MATERIAL = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 4000, "gold" = 10000)
+ materials = list(MAT_STEEL = 7000, MAT_GLASS = 4000, MAT_GOLD = 10000)
build_path = /obj/item/mecha_parts/component/actuator/hispeed
/datum/design/item/mecha_component/armor
name = "Mecha Plating"
id = "marmor"
req_tech = list(TECH_ENGINEERING = 3, TECH_MATERIAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 2000)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 2000)
build_path = /obj/item/mecha_parts/component/armor
/datum/design/item/mecha_component/armor/blast
name = "Mecha Plating - Blast Resistant"
id = "marmorblast"
req_tech = list(TECH_ENGINEERING = 5, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 500, "plasteel" = 2000)
+ materials = list(MAT_STEEL = 15000, MAT_GLASS = 500, MAT_PLASTEEL = 2000)
build_path = /obj/item/mecha_parts/component/armor/mining
/datum/design/item/mecha_component/armor/lightweight
name = "Mecha Plating - Lightweight"
id = "marmorlight"
req_tech = list(TECH_ENGINEERING = 5, TECH_MATERIAL = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "plastic" = 5000, "gold" = 2000)
+ materials = list(MAT_STEEL = 7000, MAT_PLASTIC = 5000, MAT_GOLD = 2000)
build_path = /obj/item/mecha_parts/component/armor/lightweight
/datum/design/item/mecha_component/armor/reinforced
name = "Mecha Plating - Reinforced"
id = "marmorreinf"
req_tech = list(TECH_ENGINEERING = 5, TECH_MATERIAL = 6, TECH_COMBAT = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 15000, "plasteel" = 5000, "uranium" = 5000)
+ materials = list(MAT_STEEL = 15000, MAT_PLASTEEL = 5000, MAT_URANIUM = 5000)
build_path = /obj/item/mecha_parts/component/armor/reinforced
/datum/design/item/mecha_component/electrical
name = "Mecha Electrical Harness"
id = "melectrical"
req_tech = list(TECH_ENGINEERING = 3, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 2000, "plastic" = 1000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 2000, MAT_PLASTIC = 1000)
build_path = /obj/item/mecha_parts/component/electrical
/datum/design/item/mecha_component/electrical/high_current
name = "Mecha Electrical Harness - High Current"
id = "melectricalhigh"
req_tech = list(TECH_ENGINEERING = 5, TECH_POWER = 5, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 4000, "plastic" = 5000, "gold" = 5000)
+ materials = list(MAT_STEEL = 3000, MAT_GLASS = 4000, MAT_PLASTIC = 5000, MAT_GOLD = 5000)
build_path = /obj/item/mecha_parts/component/electrical
/datum/design/item/mecha_component/hull
name = "Mecha Hull"
id = "mhull"
req_tech = list(TECH_ENGINEERING = 3, TECH_MATERIAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 500)
+ materials = list(MAT_STEEL = 7000, MAT_GLASS = 500)
build_path = /obj/item/mecha_parts/component/hull
/datum/design/item/mecha_component/hull/durable
name = "Mecha Hull - Durable"
id = "mhulldura"
req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 500, "plasteel" = 10000)
+ materials = list(MAT_STEEL = 7000, MAT_GLASS = 500, MAT_PLASTEEL = 10000)
build_path = /obj/item/mecha_parts/component/hull/durable
/datum/design/item/mecha_component/hull/lightweight
name = "Mecha Hull - Lightweight"
id = "mhulllight"
req_tech = list(TECH_ENGINEERING = 5, TECH_MATERIAL = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 500, "plastic" = 3000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 500, MAT_PLASTIC = 3000)
build_path = /obj/item/mecha_parts/component/hull/lightweight
/datum/design/item/mecha_component/gas
name = "Mecha Life-Support"
id = "mgas"
req_tech = list(TECH_ENGINEERING = 3, TECH_MATERIAL = 2, TECH_BIO = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 3000)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 3000)
build_path = /obj/item/mecha_parts/component/gas
/datum/design/item/mecha_component/gas/reinforced
name = "Mecha Life-Support - Reinforced"
id = "mgasreinf"
req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 3, TECH_BIO = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 3000, "silver" = 4000)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 3000, MAT_SILVER = 4000)
build_path = /obj/item/mecha_parts/component/gas/reinforced
/*
@@ -989,7 +989,7 @@
desc = "A space-bike's un-assembled frame."
id = "vehicle_chassis_spacebike"
req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 6, TECH_BLUESPACE = 3, TECH_PHORON = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 12000, "silver" = 3000, "phoron" = 3000, "osmium" = 1000)
+ materials = list(MAT_STEEL = 12000, MAT_SILVER = 3000, MAT_PHORON = 3000, MAT_OSMIUM = 1000)
build_path = /obj/item/vehicle_assembly/spacebike
/datum/design/item/mechfab/vehicle/quadbike_chassis
@@ -997,7 +997,7 @@
desc = "A space-bike's un-assembled frame."
id = "vehicle_chassis_quadbike"
req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 6, TECH_MAGNET = 3, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 15000, "silver" = 3000, "plastic" = 3000, "osmium" = 1000)
+ materials = list(MAT_STEEL = 15000, MAT_SILVER = 3000, MAT_PLASTIC = 3000, MAT_OSMIUM = 1000)
build_path = /obj/item/vehicle_assembly/quadbike
/*
@@ -1007,5 +1007,5 @@
build_path = /obj/item/uav
time = 20
req_tech = list(TECH_MATERIAL = 6, TECH_ENGINEERING = 5, TECH_PHORON = 3, TECH_MAGNET = 4, TECH_POWER = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 6000, "silver" = 4000)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 6000, MAT_SILVER = 4000)
*/
diff --git a/code/modules/research/prosfab_designs.dm b/code/modules/research/prosfab_designs.dm
index e4c573cfdee..80ae2db4013 100644
--- a/code/modules/research/prosfab_designs.dm
+++ b/code/modules/research/prosfab_designs.dm
@@ -25,7 +25,7 @@
else
O.species = GLOB.all_species[prosfab.species]
else
- O.species = GLOB.all_species["Human"]
+ O.species = GLOB.all_species[SPECIES_HUMAN]
O.robotize(prosfab.manufacturer)
O.dna = new/datum/dna() //Uuughhhh... why do I have to do this?
O.dna.ResetUI()
@@ -39,7 +39,7 @@
/datum/design/item/prosfab/pros/torso/Fabricate(var/newloc, var/fabricator)
if(istype(fabricator, /obj/machinery/mecha_part_fabricator/pros))
var/obj/machinery/mecha_part_fabricator/pros/prosfab = fabricator
- var/newspecies = "Human"
+ var/newspecies = SPECIES_HUMAN
var/datum/robolimb/manf = all_robolimbs[prosfab.manufacturer]
@@ -92,7 +92,7 @@
//////////////////// Prosthetics ////////////////////
/datum/design/item/prosfab/pros/torso
time = 35
- materials = list(DEFAULT_WALL_MATERIAL = 30000, "glass" = 7500)
+ materials = list(MAT_STEEL = 30000, MAT_GLASS = 7500)
// req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 3, TECH_DATA = 3) //Saving the values just in case
var/gender = MALE
@@ -115,7 +115,7 @@
id = "pros_head"
build_path = /obj/item/organ/external/head
time = 30
- materials = list(DEFAULT_WALL_MATERIAL = 18750, "glass" = 3750)
+ materials = list(MAT_STEEL = 18750, MAT_GLASS = 3750)
// req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 3, TECH_DATA = 3) //Saving the values just in case
/datum/design/item/prosfab/pros/l_arm
@@ -123,56 +123,56 @@
id = "pros_l_arm"
build_path = /obj/item/organ/external/arm
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 10125)
+ materials = list(MAT_STEEL = 10125)
/datum/design/item/prosfab/pros/l_hand
name = "Prosthetic Left Hand"
id = "pros_l_hand"
build_path = /obj/item/organ/external/hand
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 3375)
+ materials = list(MAT_STEEL = 3375)
/datum/design/item/prosfab/pros/r_arm
name = "Prosthetic Right Arm"
id = "pros_r_arm"
build_path = /obj/item/organ/external/arm/right
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 10125)
+ materials = list(MAT_STEEL = 10125)
/datum/design/item/prosfab/pros/r_hand
name = "Prosthetic Right Hand"
id = "pros_r_hand"
build_path = /obj/item/organ/external/hand/right
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 3375)
+ materials = list(MAT_STEEL = 3375)
/datum/design/item/prosfab/pros/l_leg
name = "Prosthetic Left Leg"
id = "pros_l_leg"
build_path = /obj/item/organ/external/leg
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 8437)
+ materials = list(MAT_STEEL = 8437)
/datum/design/item/prosfab/pros/l_foot
name = "Prosthetic Left Foot"
id = "pros_l_foot"
build_path = /obj/item/organ/external/foot
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 2813)
+ materials = list(MAT_STEEL = 2813)
/datum/design/item/prosfab/pros/r_leg
name = "Prosthetic Right Leg"
id = "pros_r_leg"
build_path = /obj/item/organ/external/leg/right
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 8437)
+ materials = list(MAT_STEEL = 8437)
/datum/design/item/prosfab/pros/r_foot
name = "Prosthetic Right Foot"
id = "pros_r_foot"
build_path = /obj/item/organ/external/foot/right
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 2813)
+ materials = list(MAT_STEEL = 2813)
/datum/design/item/prosfab/pros/internal
category = list("Prosthetics, Internal")
@@ -182,7 +182,7 @@
id = "pros_cell"
build_path = /obj/item/organ/internal/cell
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 7500, "glass" = 3000)
+ materials = list(MAT_STEEL = 7500, MAT_GLASS = 3000)
// req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2)
/datum/design/item/prosfab/pros/internal/eyes
@@ -190,7 +190,7 @@
id = "pros_eyes"
build_path = /obj/item/organ/internal/eyes/robot
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 5625, "glass" = 5625)
+ materials = list(MAT_STEEL = 5625, MAT_GLASS = 5625)
// req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2)
/datum/design/item/prosfab/pros/internal/hydraulic
@@ -198,35 +198,35 @@
id = "pros_hydraulic"
build_path = /obj/item/organ/internal/heart/machine
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 7500, MAT_PLASTIC = 3000)
+ materials = list(MAT_STEEL = 7500, MAT_PLASTIC = 3000)
/datum/design/item/prosfab/pros/internal/reagcycler
name = "Reagent Cycler"
id = "pros_reagcycler"
build_path = /obj/item/organ/internal/stomach/machine
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 7500, MAT_PLASTIC = 3000)
+ materials = list(MAT_STEEL = 7500, MAT_PLASTIC = 3000)
/datum/design/item/prosfab/pros/internal/heatsink
name = "Heatsink"
id = "pros_heatsink"
build_path = /obj/item/organ/internal/robotic/heatsink
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 7500, MAT_PLASTIC = 3000)
+ materials = list(MAT_STEEL = 7500, MAT_PLASTIC = 3000)
/datum/design/item/prosfab/pros/internal/diagnostic
name = "Diagnostic Controller"
id = "pros_diagnostic"
build_path = /obj/item/organ/internal/robotic/diagnostic
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 7500, MAT_PLASTIC = 3000)
+ materials = list(MAT_STEEL = 7500, MAT_PLASTIC = 3000)
/datum/design/item/prosfab/pros/internal/heart
name = "Prosthetic Heart"
id = "pros_heart"
build_path = /obj/item/organ/internal/heart
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 5625, "glass" = 1000)
+ materials = list(MAT_STEEL = 5625, MAT_GLASS = 1000)
// req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2)
/datum/design/item/prosfab/pros/internal/lungs
@@ -234,7 +234,7 @@
id = "pros_lung"
build_path = /obj/item/organ/internal/lungs
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 5625, "glass" = 1000)
+ materials = list(MAT_STEEL = 5625, MAT_GLASS = 1000)
// req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2)
/datum/design/item/prosfab/pros/internal/liver
@@ -242,7 +242,7 @@
id = "pros_liver"
build_path = /obj/item/organ/internal/liver
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 5625, "glass" = 1000)
+ materials = list(MAT_STEEL = 5625, MAT_GLASS = 1000)
// req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2)
/datum/design/item/prosfab/pros/internal/kidneys
@@ -250,7 +250,7 @@
id = "pros_kidney"
build_path = /obj/item/organ/internal/kidneys
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 5625, "glass" = 1000)
+ materials = list(MAT_STEEL = 5625, MAT_GLASS = 1000)
// req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2)
/datum/design/item/prosfab/pros/internal/spleen
@@ -258,7 +258,7 @@
id = "pros_spleen"
build_path = /obj/item/organ/internal/spleen
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 3000, MAT_GLASS = 750)
+ materials = list(MAT_STEEL = 3000, MAT_GLASS = 750)
// req_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2)
/datum/design/item/prosfab/pros/internal/larynx
@@ -266,138 +266,138 @@
id = "pros_larynx"
build_path = /obj/item/organ/internal/voicebox
time = 15
- materials = list(DEFAULT_WALL_MATERIAL = 2000, MAT_GLASS = 750, MAT_PLASTIC = 500)
+ materials = list(MAT_STEEL = 2000, MAT_GLASS = 750, MAT_PLASTIC = 500)
/datum/design/item/prosfab/pros/internal/backup_battery
name = "Synthetic Back-Up Battery"
id = "synth_backup_battery"
build_path = /obj/item/fbp_backup_cell
time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1500)
+ materials = list(MAT_STEEL = 5000, MAT_GLASS = 1500)
//////////////// Cybernetic Augments //////////////////
/datum/design/item/prosfab/augment
category = list("Augments")
build_type = PROSFAB
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 3750, "glass" = 1750)
+ materials = list(MAT_STEEL = 3750, MAT_GLASS = 1750)
/datum/design/item/prosfab/augment/hand
name = "resonant analyzer"
id = "aug_hand"
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500, "plastic" = 500)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 500, MAT_PLASTIC = 500)
build_path = /obj/item/organ/internal/augment/armmounted/hand
/datum/design/item/prosfab/augment/shoulder
name = "rotary toolkit"
id = "aug_shoulder"
req_tech = list(TECH_BIO = 3, TECH_MATERIAL = 4, TECH_ENGINEERING = 4, TECH_DATA = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 1500, "glass" = 500, "plastic" = 1000)
+ materials = list(MAT_STEEL = 1500, MAT_GLASS = 500, MAT_PLASTIC = 1000)
build_path = /obj/item/organ/internal/augment/armmounted/shoulder/multiple
/datum/design/item/prosfab/augment/arm
name = "implanted taser"
id = "aug_arm"
req_tech = list(TECH_BIO = 4, TECH_COMBAT = 4, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 1500, "glass" = 500, "plastic" = 2000)
+ materials = list(MAT_STEEL = 1500, MAT_GLASS = 500, MAT_PLASTIC = 2000)
build_path = /obj/item/organ/internal/augment/armmounted/taser
/datum/design/item/prosfab/augment/shoulder_med
name = "rotary medical kit"
id = "aug_shouldermed"
req_tech = list(TECH_BIO = 5, TECH_MATERIAL = 4, TECH_DATA = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 1500, "glass" = 1000, "plastic" = 1000)
+ materials = list(MAT_STEEL = 1500, MAT_GLASS = 1000, MAT_PLASTIC = 1000)
build_path = /obj/item/organ/internal/augment/armmounted/shoulder/multiple/medical
/datum/design/item/prosfab/augment/shoulder_combat
name = "muscular overclocker"
id = "aug_shouldercombat"
req_tech = list(TECH_BIO = 5, TECH_COMBAT = 5, TECH_MATERIAL = 4, TECH_ENGINEERING = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "plastic" = 3000, "silver" = 1000, "gold" = 500)
+ materials = list(MAT_STEEL = 2000, MAT_PLASTIC = 3000, MAT_SILVER = 1000, MAT_GOLD = 500)
build_path = /obj/item/organ/internal/augment/armmounted/shoulder/surge
/datum/design/item/prosfab/augment/pelvis
name = "locomotive optimizer"
id = "aug_pelvis"
req_tech = list(TECH_BIO = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 1500, "plastic" = 2000, "silver" = 500, "gold" = 1000)
+ materials = list(MAT_STEEL = 1500, MAT_PLASTIC = 2000, MAT_SILVER = 500, MAT_GOLD = 1000)
build_path = /obj/item/organ/internal/augment/bioaugment/sprint_enhance
/datum/design/item/prosfab/augment/arm_laser
name = "implanted laser rifle"
id = "aug_armlaser"
req_tech = list(TECH_BIO = 5, TECH_COMBAT = 5, TECH_MATERIAL = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 1000, "plastic" = 2000, "gold" = 2000)
+ materials = list(MAT_STEEL = 3000, MAT_GLASS = 1000, MAT_PLASTIC = 2000, MAT_GOLD = 2000)
build_path = /obj/item/organ/internal/augment/armmounted
/datum/design/item/prosfab/augment/eyes
name = "thermolensing sunglasses"
id = "aug_eyes"
req_tech = list(TECH_BIO = 6, TECH_ILLEGAL = 4, TECH_MATERIAL = 4, TECH_DATA = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 1000, "plastic" = 1500, "gold" = 1000, "diamond" = 2000)
+ materials = list(MAT_STEEL = 500, MAT_GLASS = 1000, MAT_PLASTIC = 1500, MAT_GOLD = 1000, MAT_DIAMOND = 2000)
build_path = /obj/item/organ/internal/augment/bioaugment/thermalshades
/datum/design/item/prosfab/augment/hand_sword
name = "implanted energy blade"
id = "aug_handsword"
req_tech = list(TECH_BIO = 6, TECH_COMBAT = 6, TECH_ILLEGAL = 4, TECH_MATERIAL = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 1500, "glass" = 500, "plastic" = 2000, "gold" = 2000, "uranium" = 1500, "diamond" = 2500)
+ materials = list(MAT_STEEL = 1500, MAT_GLASS = 500, MAT_PLASTIC = 2000, MAT_GOLD = 2000, MAT_URANIUM = 1500, MAT_DIAMOND = 2500)
build_path = /obj/item/organ/internal/augment/armmounted/hand/sword
//////////////////// Cyborg Parts ////////////////////
/datum/design/item/prosfab/cyborg
category = list("Cyborg Parts")
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 3750)
+ materials = list(MAT_STEEL = 3750)
/datum/design/item/prosfab/cyborg/exoskeleton
name = "Robot Exoskeleton"
id = "robot_exoskeleton"
build_path = /obj/item/robot_parts/robot_suit
time = 50
- materials = list(DEFAULT_WALL_MATERIAL = 37500)
+ materials = list(MAT_STEEL = 37500)
/datum/design/item/prosfab/cyborg/torso
name = "Robot Torso"
id = "robot_torso"
build_path = /obj/item/robot_parts/chest
time = 35
- materials = list(DEFAULT_WALL_MATERIAL = 30000)
+ materials = list(MAT_STEEL = 30000)
/datum/design/item/prosfab/cyborg/head
name = "Robot Head"
id = "robot_head"
build_path = /obj/item/robot_parts/head
time = 35
- materials = list(DEFAULT_WALL_MATERIAL = 18750)
+ materials = list(MAT_STEEL = 18750)
/datum/design/item/prosfab/cyborg/l_arm
name = "Robot Left Arm"
id = "robot_l_arm"
build_path = /obj/item/robot_parts/l_arm
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 13500)
+ materials = list(MAT_STEEL = 13500)
/datum/design/item/prosfab/cyborg/r_arm
name = "Robot Right Arm"
id = "robot_r_arm"
build_path = /obj/item/robot_parts/r_arm
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 13500)
+ materials = list(MAT_STEEL = 13500)
/datum/design/item/prosfab/cyborg/l_leg
name = "Robot Left Leg"
id = "robot_l_leg"
build_path = /obj/item/robot_parts/l_leg
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 11250)
+ materials = list(MAT_STEEL = 11250)
/datum/design/item/prosfab/cyborg/r_leg
name = "Robot Right Leg"
id = "robot_r_leg"
build_path = /obj/item/robot_parts/r_leg
time = 20
- materials = list(DEFAULT_WALL_MATERIAL = 11250)
+ materials = list(MAT_STEEL = 11250)
//////////////////// Cyborg Internals ////////////////////
@@ -405,7 +405,7 @@
category = list("Cyborg Internals")
build_type = PROSFAB
time = 12
- materials = list(DEFAULT_WALL_MATERIAL = 7500)
+ materials = list(MAT_STEEL = 7500)
/datum/design/item/prosfab/cyborg/component/binary_communication_device
name = "Binary Communication Device"
@@ -452,7 +452,7 @@
category = list("Cyborg Modules")
build_type = PROSFAB
time = 12
- materials = list(DEFAULT_WALL_MATERIAL = 7500)
+ materials = list(MAT_STEEL = 7500)
/datum/design/item/prosfab/robot_upgrade/rename
name = "Rename Module"
@@ -470,35 +470,35 @@
name = "Emergency Restart Module"
desc = "Used to force a restart of a disabled-but-repaired robot, bringing it back online."
id = "borg_restart_module"
- materials = list(DEFAULT_WALL_MATERIAL = 45000, "glass" = 3750)
+ materials = list(MAT_STEEL = 45000, MAT_GLASS = 3750)
build_path = /obj/item/borg/upgrade/restart
/datum/design/item/prosfab/robot_upgrade/vtec
name = "VTEC Module"
desc = "Used to kick in a robot's VTEC systems, increasing their speed."
id = "borg_vtec_module"
- materials = list(DEFAULT_WALL_MATERIAL = 60000, "glass" = 4500, "gold" = 3750)
+ materials = list(MAT_STEEL = 60000, MAT_GLASS = 4500, MAT_GOLD = 3750)
build_path = /obj/item/borg/upgrade/vtec
/datum/design/item/prosfab/robot_upgrade/tasercooler
name = "Rapid Taser Cooling Module"
desc = "Used to cool a mounted taser, increasing the potential current in it and thus its recharge rate."
id = "borg_taser_module"
- materials = list(DEFAULT_WALL_MATERIAL = 60000, "glass" = 4500, "gold" = 1500, "diamond" = 375)
+ materials = list(MAT_STEEL = 60000, MAT_GLASS = 4500, MAT_GOLD = 1500, MAT_DIAMOND = 375)
build_path = /obj/item/borg/upgrade/tasercooler
/datum/design/item/prosfab/robot_upgrade/jetpack
name = "Jetpack Module"
desc = "A carbon dioxide jetpack suitable for low-gravity mining operations."
id = "borg_jetpack_module"
- materials = list(DEFAULT_WALL_MATERIAL = 7500, "phoron" = 11250, "uranium" = 15000)
+ materials = list(MAT_STEEL = 7500, MAT_PHORON = 11250, MAT_URANIUM = 15000)
build_path = /obj/item/borg/upgrade/jetpack
/datum/design/item/prosfab/robot_upgrade/advhealth
name = "Advanced Health Analyzer Module"
desc = "An advanced health analyzer suitable for diagnosing more serious injuries."
id = "borg_advhealth_module"
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 6500, "diamond" = 350)
+ materials = list(MAT_STEEL = 10000, MAT_GLASS = 6500, MAT_DIAMOND = 350)
build_path = /obj/item/borg/upgrade/advhealth
/datum/design/item/prosfab/robot_upgrade/syndicate
@@ -506,7 +506,7 @@
desc = "Allows for the construction of lethal upgrades for cyborgs."
id = "borg_syndicate_module"
req_tech = list(TECH_COMBAT = 4, TECH_ILLEGAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 7500, "glass" = 11250, "diamond" = 7500)
+ materials = list(MAT_STEEL = 7500, MAT_GLASS = 11250, MAT_DIAMOND = 7500)
build_path = /obj/item/borg/upgrade/syndicate
/datum/design/item/prosfab/robot_upgrade/language
@@ -514,7 +514,7 @@
desc = "Used to let cyborgs other than clerical or service speak a variety of languages."
id = "borg_language_module"
req_tech = list(TECH_DATA = 6, TECH_MATERIAL = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 25000, "glass" = 3000, "gold" = 350)
+ materials = list(MAT_STEEL = 25000, MAT_GLASS = 3000, MAT_GOLD = 350)
build_path = /obj/item/borg/upgrade/language
// Synthmorph Bags.
@@ -523,42 +523,42 @@
name = "Synthmorph Storage Bag"
desc = "Used to store or slowly defragment an FBP."
id = "misc_synth_bag"
- materials = list(DEFAULT_WALL_MATERIAL = 250, "glass" = 250, "plastic" = 2000)
+ materials = list(MAT_STEEL = 250, MAT_GLASS = 250, MAT_PLASTIC = 2000)
build_path = /obj/item/bodybag/cryobag/robobag
/datum/design/item/prosfab/badge_nt
name = "NanoTrasen Tag"
desc = "Used to identify an empty NanoTrasen FBP."
id = "misc_synth_bag_tag_nt"
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500, "plastic" = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 500, MAT_PLASTIC = 1000)
build_path = /obj/item/clothing/accessory/badge/corporate_tag
/datum/design/item/prosfab/badge_morph
name = "Morpheus Tag"
desc = "Used to identify an empty Morpheus FBP."
id = "misc_synth_bag_tag_morph"
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500, "plastic" = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 500, MAT_PLASTIC = 1000)
build_path = /obj/item/clothing/accessory/badge/corporate_tag/morpheus
/datum/design/item/prosfab/badge_wardtaka
name = "Ward-Takahashi Tag"
desc = "Used to identify an empty Ward-Takahashi FBP."
id = "misc_synth_bag_tag_wardtaka"
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500, "plastic" = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 500, MAT_PLASTIC = 1000)
build_path = /obj/item/clothing/accessory/badge/corporate_tag/wardtaka
/datum/design/item/prosfab/badge_zenghu
name = "Zeng-Hu Tag"
desc = "Used to identify an empty Zeng-Hu FBP."
id = "misc_synth_bag_tag_zenghu"
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500, "plastic" = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 500, MAT_PLASTIC = 1000)
build_path = /obj/item/clothing/accessory/badge/corporate_tag/zenghu
/datum/design/item/prosfab/badge_gilthari
name = "Gilthari Tag"
desc = "Used to identify an empty Gilthari FBP."
id = "misc_synth_bag_tag_gilthari"
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500, "gold" = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 500, MAT_GOLD = 1000)
build_path = /obj/item/clothing/accessory/badge/corporate_tag/gilthari
req_tech = list(TECH_MATERIAL = 4, TECH_ILLEGAL = 2, TECH_PHORON = 2)
@@ -566,7 +566,7 @@
name = "Vey-Medical Tag"
desc = "Used to identify an empty Vey-Medical FBP."
id = "misc_synth_bag_tag_veymed"
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500, "plastic" = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 500, MAT_PLASTIC = 1000)
build_path = /obj/item/clothing/accessory/badge/corporate_tag/veymed
req_tech = list(TECH_MATERIAL = 3, TECH_ILLEGAL = 1, TECH_BIO = 4)
@@ -574,26 +574,26 @@
name = "Hephaestus Tag"
desc = "Used to identify an empty Hephaestus FBP."
id = "misc_synth_bag_tag_heph"
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500, "plastic" = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 500, MAT_PLASTIC = 1000)
build_path = /obj/item/clothing/accessory/badge/corporate_tag/hephaestus
/datum/design/item/prosfab/badge_grayson
name = "Grayson Tag"
desc = "Used to identify an empty Grayson FBP."
id = "misc_synth_bag_tag_grayson"
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500, "plastic" = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 500, MAT_PLASTIC = 1000)
build_path = /obj/item/clothing/accessory/badge/corporate_tag/grayson
/datum/design/item/prosfab/badge_xion
name = "Xion Tag"
desc = "Used to identify an empty Xion FBP."
id = "misc_synth_bag_tag_xion"
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500, "plastic" = 1000)
+ materials = list(MAT_STEEL = 1000, MAT_GLASS = 500, MAT_PLASTIC = 1000)
build_path = /obj/item/clothing/accessory/badge/corporate_tag/xion
/datum/design/item/prosfab/badge_bishop
name = "Bishop Tag"
desc = "Used to identify an empty Bishop FBP."
id = "misc_synth_bag_tag_bishop"
- materials = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 2000, "plastic" = 500)
+ materials = list(MAT_STEEL = 500, MAT_GLASS = 2000, MAT_PLASTIC = 500)
build_path = /obj/item/clothing/accessory/badge/corporate_tag/bishop
diff --git a/code/modules/research/prosfab_designs_vr.dm b/code/modules/research/prosfab_designs_vr.dm
index 923c785416a..dd93af2ec30 100644
--- a/code/modules/research/prosfab_designs_vr.dm
+++ b/code/modules/research/prosfab_designs_vr.dm
@@ -4,5 +4,5 @@
name = "Size Alteration Module"
id = "borg_sizeshift_module"
req_tech = list(TECH_BLUESPACE = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 4000)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 4000)
build_path = /obj/item/borg/upgrade/sizeshift
diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm
index 3c705f5575d..e411a8853ad 100644
--- a/code/modules/research/protolathe.dm
+++ b/code/modules/research/protolathe.dm
@@ -17,7 +17,7 @@
var/mat_efficiency = 1
var/speed = 1
- materials = list(DEFAULT_WALL_MATERIAL = 0, "glass" = 0, MAT_PLASTEEL = 0, "plastic" = 0, "gold" = 0, "silver" = 0, MAT_COPPER = 0, "osmium" = 0, MAT_LEAD = 0, "phoron" = 0, "uranium" = 0, "diamond" = 0, MAT_DURASTEEL = 0, MAT_VERDANTIUM = 0, MAT_MORPHIUM = 0, MAT_METALHYDROGEN = 0, MAT_SUPERMATTER = 0)
+ materials = list(MAT_STEEL = 0, MAT_GLASS = 0, MAT_PLASTEEL = 0, MAT_PLASTIC = 0, MAT_GOLD = 0, MAT_SILVER = 0, MAT_COPPER = 0, MAT_OSMIUM = 0, MAT_LEAD = 0, MAT_PHORON = 0, MAT_URANIUM = 0, MAT_DIAMOND = 0, MAT_DURASTEEL = 0, MAT_VERDANTIUM = 0, MAT_MORPHIUM = 0, MAT_METALHYDROGEN = 0, MAT_SUPERMATTER = 0)
hidden_materials = list(MAT_PLASTEEL, MAT_DURASTEEL, MAT_VERDANTIUM, MAT_MORPHIUM, MAT_METALHYDROGEN, MAT_SUPERMATTER)
diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm
index 28838795447..fd07fc9a601 100644
--- a/code/modules/research/research.dm
+++ b/code/modules/research/research.dm
@@ -234,7 +234,7 @@ research holder datum.
icon_state = "datadisk2"
item_state = "card-id"
w_class = ITEMSIZE_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 30, "glass" = 10)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 10)
var/datum/tech/stored
/obj/item/disk/tech_disk/Initialize(mapload)
@@ -249,7 +249,7 @@ research holder datum.
icon_state = "datadisk2"
item_state = "card-id"
w_class = ITEMSIZE_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 30, "glass" = 10)
+ matter = list(MAT_STEEL = 30, MAT_GLASS = 10)
var/datum/design/blueprint
/obj/item/disk/design_disk/Initialize(mapload)
diff --git a/code/modules/research/rigs_vr.dm b/code/modules/research/rigs_vr.dm
index 59894868428..e07ff8387df 100644
--- a/code/modules/research/rigs_vr.dm
+++ b/code/modules/research/rigs_vr.dm
@@ -14,7 +14,7 @@
/*
/datum/design/item/rig
req_tech = list(TECH_MATERIAL = 5, TECH_POWER = 5, TECH_MAGNET = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 6000, "silver" = 6000, "uranium" = 4000)
+ materials = list(MAT_STEEL = 6000, MAT_GLASS = 6000, MAT_SILVER = 6000, MAT_URANIUM = 4000)
/datum/design/item/rig/AssembleDesignName()
..()
@@ -47,7 +47,7 @@
/datum/design/item/rig_module
req_tech = list(TECH_MATERIAL = 5, TECH_POWER = 5, TECH_MAGNET = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 6000, "silver" = 4000, "uranium" = 2000)
+ materials = list(MAT_STEEL = 6000, MAT_GLASS = 6000, MAT_SILVER = 4000, MAT_URANIUM = 2000)
/datum/design/item/rig_module/AssembleDesignName()
..()
@@ -105,14 +105,14 @@
name = "laser cannon"
id = "rigmod_lasercannon"
build_path = /obj/item/rig_module/mounted
- materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 6000, "silver" = 4000, "uranium" = 2000, "diamond" = 2000)
+ materials = list(MAT_STEEL = 6000, MAT_GLASS = 6000, MAT_SILVER = 4000, MAT_URANIUM = 2000, MAT_DIAMOND = 2000)
sort_string = "OBADA"
/datum/design/item/rig_module/egun
name = "energy gun"
id = "rigmod_egun"
build_path = /obj/item/rig_module/mounted/egun
- materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 6000, "silver" = 4000, "uranium" = 2000, "diamond" = 1000)
+ materials = list(MAT_STEEL = 6000, MAT_GLASS = 6000, MAT_SILVER = 4000, MAT_URANIUM = 2000, MAT_DIAMOND = 1000)
sort_string = "OBADB"
/datum/design/item/rig_module/taser
@@ -126,11 +126,11 @@
id = "rigmod_armblade"
build_path = /obj/item/rig_module/armblade
sort_string = "OBADD"
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "glass" = 2000, "silver" = 2000, "gold" = 2000)
+ materials = list(MAT_STEEL = 8000, MAT_GLASS = 2000, MAT_SILVER = 2000, MAT_GOLD = 2000)
/datum/design/item/rig_module/rcd
name = "rcd"
id = "rigmod_rcd"
build_path = /obj/item/rig_module/device/rcd
- materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 6000, "silver" = 4000, "uranium" = 2000, "diamond" = 2000)
+ materials = list(MAT_STEEL = 6000, MAT_GLASS = 6000, MAT_SILVER = 4000, MAT_URANIUM = 2000, MAT_DIAMOND = 2000)
sort_string = "OBAEA"
diff --git a/code/modules/research/teleport_vr.dm b/code/modules/research/teleport_vr.dm
index 872b7ea66eb..a4fc70d486b 100644
--- a/code/modules/research/teleport_vr.dm
+++ b/code/modules/research/teleport_vr.dm
@@ -10,7 +10,7 @@
name = "Personal translocator"
id = "translocator"
req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_ILLEGAL = 6)
- materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 2000, "uranium" = 4000, "diamond" = 2000)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 2000, MAT_URANIUM = 4000, MAT_DIAMOND = 2000)
build_path = /obj/item/perfect_tele
sort_string = "PAAAA"
@@ -19,7 +19,7 @@
name = "Artificial Bluespace Crystal"
id = "bluespace_crystal"
req_tech = list(TECH_BLUESPACE = 3, TECH_PHORON = 4)
- materials = list("diamond" = 1500, "phoron" = 1500)
+ materials = list(MAT_DIAMOND = 1500, MAT_PHORON = 1500)
build_path = /obj/item/ore/bluespace_crystal/artificial
sort_string = "PAAAB"
*/
diff --git a/code/modules/resleeving/computers.dm b/code/modules/resleeving/computers.dm
index 280c5ecb6bf..45f68c5f403 100644
--- a/code/modules/resleeving/computers.dm
+++ b/code/modules/resleeving/computers.dm
@@ -166,7 +166,7 @@
var/spods_list_ui[0]
for(var/obj/machinery/transhuman/synthprinter/spod in spods)
- spods_list_ui[++spods_list_ui.len] = list("spod" = spod, "steel" = spod.stored_material[DEFAULT_WALL_MATERIAL], "glass" = spod.stored_material["glass"])
+ spods_list_ui[++spods_list_ui.len] = list("spod" = spod, MAT_STEEL = spod.stored_material[MAT_STEEL], MAT_GLASS = spod.stored_material["glass"])
var/sleevers_list_ui[0]
for(var/obj/machinery/transhuman/resleever/resleever in sleevers)
@@ -308,8 +308,8 @@
temp = "Error: SynthFab is currently busy."
//Not enough steel or glass
- else if(spod.stored_material[DEFAULT_WALL_MATERIAL] < spod.body_cost)
- temp = "Error: Not enough [DEFAULT_WALL_MATERIAL] in SynthFab."
+ else if(spod.stored_material[MAT_STEEL] < spod.body_cost)
+ temp = "Error: Not enough [MAT_STEEL] in SynthFab."
else if(spod.stored_material["glass"] < spod.body_cost)
temp = "Error: Not enough glass in SynthFab."
diff --git a/code/modules/resleeving/implant.dm b/code/modules/resleeving/implant.dm
index e18f361a59a..da71a1459c5 100644
--- a/code/modules/resleeving/implant.dm
+++ b/code/modules/resleeving/implant.dm
@@ -46,7 +46,7 @@
throw_speed = 1
throw_range = 5
w_class = ITEMSIZE_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000)
+ matter = list(MAT_STEEL = 2000, MAT_GLASS = 2000)
var/list/obj/item/implant/backup/imps = list()
var/max_implants = 4 //Iconstates need to exist due to the update proc!
diff --git a/code/modules/resleeving/machines.dm b/code/modules/resleeving/machines.dm
index b5118b56e1b..b35987a06f7 100644
--- a/code/modules/resleeving/machines.dm
+++ b/code/modules/resleeving/machines.dm
@@ -180,7 +180,7 @@
density = 1
anchored = 1
- var/list/stored_material = list(DEFAULT_WALL_MATERIAL = 30000, "glass" = 30000)
+ var/list/stored_material = list(MAT_STEEL = 30000, MAT_GLASS = 30000)
var/connected //What console it's done up with
var/busy = 0 //Busy cloning
var/body_cost = 15000 //Cost of a cloned body (metal and glass ea.)
@@ -241,7 +241,7 @@
if(!istype(BR) || busy)
return 0
- if(stored_material[DEFAULT_WALL_MATERIAL] < body_cost || stored_material["glass"] < body_cost)
+ if(stored_material[MAT_STEEL] < body_cost || stored_material["glass"] < body_cost)
return 0
current_project = BR
@@ -336,7 +336,7 @@
H.loc = get_turf(src)
//Machine specific stuff at the end
- stored_material[DEFAULT_WALL_MATERIAL] -= body_cost
+ stored_material[MAT_STEEL] -= body_cost
stored_material["glass"] -= body_cost
busy = 0
update_icon()
@@ -510,7 +510,7 @@
if(O.buckled)
return FALSE
if(O.has_buckled_mobs())
- to_chat(user, span("warning", "\The [O] has other entities attached to it. Remove them first."))
+ to_chat(user, SPAN_WARNING( "\The [O] has other entities attached to it. Remove them first."))
return
if(put_mob(O))
diff --git a/code/modules/resleeving/mirror.dm b/code/modules/resleeving/mirror.dm
index 6dfa28eb8f9..ed8b4ba9cec 100644
--- a/code/modules/resleeving/mirror.dm
+++ b/code/modules/resleeving/mirror.dm
@@ -98,7 +98,7 @@
w_class = ITEMSIZE_SMALL
throw_speed = 5
throw_range = 10
- matter = list(DEFAULT_WALL_MATERIAL = 200)
+ matter = list(MAT_STEEL = 200)
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
/obj/item/mirrortool
@@ -112,7 +112,7 @@
w_class = ITEMSIZE_SMALL
throw_speed = 5
throw_range = 10
- matter = list(DEFAULT_WALL_MATERIAL = 200)
+ matter = list(MAT_STEEL = 200)
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
var/obj/item/implant/mirror/imp = null
diff --git a/code/modules/resleeving/sleevecard.dm b/code/modules/resleeving/sleevecard.dm
index c292c5337f9..786dedf8395 100644
--- a/code/modules/resleeving/sleevecard.dm
+++ b/code/modules/resleeving/sleevecard.dm
@@ -20,7 +20,7 @@
var/mob/living/silicon/infomorph/infomorph
var/current_emotion = 1
- matter = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 4000)
+ matter = list(MAT_STEEL = 4000, MAT_GLASS = 4000)
/obj/item/sleevecard/relaymove(var/mob/user, var/direction)
if(user.stat || user.stunned)
diff --git a/code/modules/shuttles/shuttles_web.dm b/code/modules/shuttles/shuttles_web.dm
index 1c160f9c5d0..e4da4ef33c6 100644
--- a/code/modules/shuttles/shuttles_web.dm
+++ b/code/modules/shuttles/shuttles_web.dm
@@ -468,7 +468,7 @@
"nitrogen" = "[round(n2_level*100,0.1)]",\
"oxygen" = "[round(o2_level*100,0.1)]",\
"carbon_dioxide" = "[round(co2_level*100,0.1)]",\
- "phoron" = "[round(phoron_level*100,0.01)]",\
+ MAT_PHORON = "[round(phoron_level*100,0.01)]",\
"other" = "[round(unknown_level, 0.01)]",\
"temp" = "[round(environment.temperature-T0C,0.1)]",\
"reading" = TRUE\
diff --git a/code/modules/tables/presets.dm b/code/modules/tables/presets.dm
index 5c4f061b5fa..8d8990cba8c 100644
--- a/code/modules/tables/presets.dm
+++ b/code/modules/tables/presets.dm
@@ -4,7 +4,7 @@
color = "#EEEEEE"
/obj/structure/table/standard/Initialize(mapload)
- material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
+ material = get_material_by_name(MAT_PLASTIC)
return ..()
/obj/structure/table/steel
@@ -12,7 +12,7 @@
color = "#666666"
/obj/structure/table/steel/Initialize(mapload)
- material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ material = get_material_by_name(MAT_STEEL)
return ..()
/obj/structure/table/marble
@@ -28,8 +28,8 @@
color = "#EEEEEE"
/obj/structure/table/reinforced/Initialize(mapload)
- material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
- reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ material = get_material_by_name(MAT_PLASTIC)
+ reinforced = get_material_by_name(MAT_STEEL)
return ..()
/obj/structure/table/steel_reinforced
@@ -37,8 +37,8 @@
color = "#666666"
/obj/structure/table/steel_reinforced/Initialize(mapload)
- material = get_material_by_name(DEFAULT_WALL_MATERIAL)
- reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ material = get_material_by_name(MAT_STEEL)
+ reinforced = get_material_by_name(MAT_STEEL)
return ..()
/obj/structure/table/wooden_reinforced
@@ -47,7 +47,7 @@
/obj/structure/table/wooden_reinforced/Initialize(mapload)
material = get_material_by_name("wood")
- reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ reinforced = get_material_by_name(MAT_STEEL)
return ..()
/obj/structure/table/woodentable
@@ -72,7 +72,7 @@
/obj/structure/table/sifwooden_reinforced/Initialize(mapload)
material = get_material_by_name("alien wood")
- reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ reinforced = get_material_by_name(MAT_STEEL)
return ..()
/obj/structure/table/hardwoodtable
@@ -114,7 +114,7 @@
color = "#EEEEEE"
/obj/structure/table/holotable/Initialize(mapload)
- material = get_material_by_name("holo[DEFAULT_TABLE_MATERIAL]")
+ material = get_material_by_name("holo[MAT_PLASTIC]")
return ..()
/obj/structure/table/woodentable/holotable
@@ -155,7 +155,7 @@
/obj/structure/table/bananium_reinforced/Initialize(mapload)
material = get_material_by_name("bananium")
- reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ reinforced = get_material_by_name(MAT_STEEL)
return ..()
//BENCH PRESETS
@@ -164,7 +164,7 @@
color = "#EEEEEE"
/obj/structure/table/bench/standard/Initialize(mapload)
- material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
+ material = get_material_by_name(MAT_PLASTIC)
return ..()
/obj/structure/table/bench/steel
@@ -172,7 +172,7 @@
color = "#666666"
/obj/structure/table/bench/steel/Initialize(mapload)
- material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ material = get_material_by_name(MAT_STEEL)
return ..()
/obj/structure/table/bench/marble
@@ -189,8 +189,8 @@
color = "#EEEEEE"
/obj/structure/table/bench/reinforced/New()
- material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
- reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ material = get_material_by_name(MAT_PLASTIC)
+ reinforced = get_material_by_name(MAT_STEEL)
..()
/obj/structure/table/bench/steel_reinforced
@@ -198,8 +198,8 @@
color = "#666666"
/obj/structure/table/bench/steel_reinforced/New()
- material = get_material_by_name(DEFAULT_WALL_MATERIAL)
- reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ material = get_material_by_name(MAT_STEEL)
+ reinforced = get_material_by_name(MAT_STEEL)
..()
/obj/structure/table/bench/wooden_reinforced
@@ -208,7 +208,7 @@
/obj/structure/table/bench/wooden_reinforced/New()
material = get_material_by_name("wood")
- reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ reinforced = get_material_by_name(MAT_STEEL)
..()
*/
/obj/structure/table/bench/wooden
@@ -235,7 +235,7 @@
icon_state = "padded_preview"
/obj/structure/table/bench/padded/Initialize(mapload)
- material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ material = get_material_by_name(MAT_STEEL)
carpeted = 1
return ..()
@@ -254,7 +254,7 @@
color = "#EEEEEE"
/obj/structure/table/bench/holotable/New()
- material = get_material_by_name("holo[DEFAULT_TABLE_MATERIAL]")
+ material = get_material_by_name("holo[MAT_PLASTIC]")
..()
/obj/structure/table/bench/wooden/holotable
diff --git a/code/modules/tables/rack_vr.dm b/code/modules/tables/rack_vr.dm
index dc116a39ab6..1f043be380a 100644
--- a/code/modules/tables/rack_vr.dm
+++ b/code/modules/tables/rack_vr.dm
@@ -2,7 +2,7 @@
color = "#666666"
/obj/structure/table/rack/steel/Initialize(mapload)
- material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ material = get_material_by_name(MAT_STEEL)
return ..()
/obj/structure/table/rack/shelf
@@ -15,5 +15,5 @@
color = "#666666"
/obj/structure/table/rack/shelf/steel/Initialize(mapload)
- material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ material = get_material_by_name(MAT_STEEL)
return ..()
diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm
index c58883f90a8..e0832dd4a73 100644
--- a/code/modules/tables/tables.dm
+++ b/code/modules/tables/tables.dm
@@ -334,7 +334,7 @@ var/list/table_icon_cache = list()
if(full_return || prob(20))
new /obj/item/stack/material/steel(src.loc)
else
- var/datum/material/M = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ var/datum/material/M = get_material_by_name(MAT_STEEL)
S = M.place_shard(loc)
if(S) shards += S
qdel(src)
diff --git a/code/modules/telesci/construction.dm b/code/modules/telesci/construction.dm
index cd7a2927216..6cbc27dc3a8 100644
--- a/code/modules/telesci/construction.dm
+++ b/code/modules/telesci/construction.dm
@@ -59,6 +59,6 @@
name = "Artificial Bluespace Crystal"
id = "bluespace_crystal"
req_tech = list(TECH_BLUESPACE = 3, TECH_PHORON = 4)
- materials = list("diamond" = 1500, "phoron" = 1500)
+ materials = list(MAT_DIAMOND = 1500, MAT_PHORON = 1500)
build_path = /obj/item/ore/bluespace_crystal/artificial
sort_string = "HAAED"
diff --git a/code/modules/vore/fluffstuff/custom_clothes.dm b/code/modules/vore/fluffstuff/custom_clothes.dm
index 0e2ba6feed3..37a9170f5f4 100644
--- a/code/modules/vore/fluffstuff/custom_clothes.dm
+++ b/code/modules/vore/fluffstuff/custom_clothes.dm
@@ -1079,7 +1079,7 @@ END OF CITADEL CHANGES */
..()
var/mob/living/carbon/human/H = loc
if(istype(H) && H.wear_suit == src)
- if(H.species.name == "Vox")
+ if(H.species.name == SPECIES_VOX)
icon_override = 'icons/mob/species/vox/suit.dmi'
else
icon_override = 'icons/vore/custom_clothes_vr.dmi'
@@ -1102,7 +1102,7 @@ END OF CITADEL CHANGES */
..()
var/mob/living/carbon/human/H = loc
if(istype(H) && H.w_uniform == src)
- if(H.species.name == "Vox")
+ if(H.species.name == SPECIES_VOX)
icon_override = 'icons/mob/species/vox/uniform.dmi'
else
icon_override = 'icons/vore/custom_clothes_vr.dmi'
@@ -1117,7 +1117,7 @@ END OF CITADEL CHANGES */
..()
var/mob/living/carbon/human/H = loc
if(istype(H) && H.w_uniform == src)
- if(H.species.name == "Vox")
+ if(H.species.name == SPECIES_VOX)
icon_override = 'icons/mob/species/vox/uniform.dmi'
else
icon_override = 'icons/vore/custom_clothes_vr.dmi'
@@ -1132,7 +1132,7 @@ END OF CITADEL CHANGES */
..()
var/mob/living/carbon/human/H = loc
if(istype(H) && H.w_uniform == src)
- if(H.species.name == "Vox")
+ if(H.species.name == SPECIES_VOX)
icon_override = 'icons/mob/species/vox/uniform.dmi'
else
icon_override = 'icons/vore/custom_clothes_vr.dmi'
@@ -1547,7 +1547,7 @@ END OF CITADEL CHANGES */
item_state = "latexmaid_mob"
sprite_sheets = list(
- "Teshari" = 'icons/vore/custom_clothes_tesh_vr.dmi'
+ SPECIES_TESHARI = 'icons/vore/custom_clothes_tesh_vr.dmi'
)
body_parts_covered = UPPER_TORSO|LOWER_TORSO
diff --git a/code/modules/vore/fluffstuff/custom_guns.dm b/code/modules/vore/fluffstuff/custom_guns.dm
index eff6eb51d77..13fcba21af9 100644
--- a/code/modules/vore/fluffstuff/custom_guns.dm
+++ b/code/modules/vore/fluffstuff/custom_guns.dm
@@ -106,7 +106,7 @@
w_class = ITEMSIZE_NORMAL
force = 10
origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 2000)
+ matter = list(MAT_STEEL = 2000)
projectile_type = /obj/item/projectile/beam/imperial
/* CITADEL CHANGE - Removes Virgo Fluff
// jertheace : Jeremiah 'Ace' Acacius
@@ -595,7 +595,7 @@ END OF CITADEL CHANGES */
icon_state = "smg"
origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE
- matter = list(DEFAULT_WALL_MATERIAL = 1800)
+ matter = list(MAT_STEEL = 1800)
caliber = "9mm"
ammo_type = /obj/item/ammo_casing/a9mm
max_ammo = 30
@@ -681,7 +681,7 @@ END OF CITADEL CHANGES */
icon_state = "9x19p"
origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE
- matter = list(DEFAULT_WALL_MATERIAL = 480)
+ matter = list(MAT_STEEL = 480)
caliber = ".380"
ammo_type = /obj/item/ammo_casing/a380
max_ammo = 8
@@ -704,7 +704,7 @@ END OF CITADEL CHANGES */
icon = 'icons/obj/ammo_vr.dmi'
icon_state = "s357"
caliber = ".44"
- matter = list(DEFAULT_WALL_MATERIAL = 1260)
+ matter = list(MAT_STEEL = 1260)
ammo_type = /obj/item/ammo_casing/a44
max_ammo = 6
multiple_sprites = 1
diff --git a/code/modules/vore/fluffstuff/custom_items.dm b/code/modules/vore/fluffstuff/custom_items.dm
index 12c799aaff6..8e3fb0f55c2 100644
--- a/code/modules/vore/fluffstuff/custom_items.dm
+++ b/code/modules/vore/fluffstuff/custom_items.dm
@@ -535,7 +535,7 @@
force = 5.0
throwforce = 7.0
w_class = ITEMSIZE_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 50)
+ matter = list(MAT_STEEL = 50)
attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed")
/obj/item/cane/fluff/tasald
@@ -554,7 +554,7 @@
force = 1.0
throwforce = 2.0
w_class = ITEMSIZE_SMALL
- matter = list(DEFAULT_WALL_MATERIAL = 50)
+ matter = list(MAT_STEEL = 50)
attack_verb = list("sparkled", "whacked", "twinkled", "radiated", "dazzled", "zapped")
hitsound = 'sound/weapons/sparkle.ogg'
var/last_use = 0
diff --git a/code/modules/xenoarcheaology/artifacts/replicator.dm b/code/modules/xenoarcheaology/artifacts/replicator.dm
index f451f1651a3..b9fc7fbd818 100644
--- a/code/modules/xenoarcheaology/artifacts/replicator.dm
+++ b/code/modules/xenoarcheaology/artifacts/replicator.dm
@@ -73,7 +73,7 @@
var/list/icons = list(
"round" = "circle",
"square" = "square",
- "diamond" = "gem",
+ MAT_DIAMOND = "gem",
"heart" = "heart",
"dog" = "dog",
"human" = "user",
diff --git a/code/modules/xenoarcheaology/finds/find_spawning.dm b/code/modules/xenoarcheaology/finds/find_spawning.dm
index 249e4b98058..f95a54390f3 100644
--- a/code/modules/xenoarcheaology/finds/find_spawning.dm
+++ b/code/modules/xenoarcheaology/finds/find_spawning.dm
@@ -23,7 +23,7 @@
if(prob(40))
material_descriptor = pick("rusted ","dusty ","archaic ","fragile ")
- source_material = pick("cordite","quadrinium",DEFAULT_WALL_MATERIAL,"titanium","aluminium","ferritic-alloy","plasteel","duranium")
+ source_material = pick("cordite","quadrinium",MAT_STEEL,"titanium","aluminium","ferritic-alloy","plasteel","duranium")
var/talkative = 0
if(prob(5))
@@ -478,7 +478,7 @@
var/new_boat_mat = pickweight(list(
MAT_WOOD = 100,
MAT_SIFWOOD = 200,
- DEFAULT_WALL_MATERIAL = 60,
+ MAT_STEEL = 60,
MAT_URANIUM = 14,
MAT_MARBLE = 16,
MAT_GOLD = 20,
@@ -526,7 +526,7 @@
if(istype(new_item, /obj/item/material))
var/new_item_mat = pickweight(list(
- DEFAULT_WALL_MATERIAL = 80,
+ MAT_STEEL = 80,
MAT_WOOD = 20,
MAT_SIFWOOD = 40,
MAT_URANIUM = 14,
@@ -555,7 +555,7 @@
var/decorations = ""
if(apply_material_decorations)
- source_material = pick("cordite","quadrinium",DEFAULT_WALL_MATERIAL,"titanium","aluminium","ferritic-alloy","plasteel","duranium")
+ source_material = pick("cordite","quadrinium",MAT_STEEL,"titanium","aluminium","ferritic-alloy","plasteel","duranium")
if(istype(new_item, /obj/item/material))
var/obj/item/material/MW = new_item
source_material = MW.material.display_name
diff --git a/code/modules/xenoarcheaology/tools/tools.dm b/code/modules/xenoarcheaology/tools/tools.dm
index b04b2a8e46c..e146f754764 100644
--- a/code/modules/xenoarcheaology/tools/tools.dm
+++ b/code/modules/xenoarcheaology/tools/tools.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/xenoarchaeology.dmi'
icon_state = "measuring"
origin_tech = list(TECH_MATERIAL = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 100)
+ matter = list(MAT_STEEL = 100)
w_class = ITEMSIZE_SMALL
/obj/item/storage/bag/fossils
@@ -37,7 +37,7 @@
icon_state = "flashgun"
item_state = "lampgreen"
origin_tech = list(TECH_BLUESPACE = 3, TECH_MAGNET = 3, TECH_ARCANE = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 10000,"glass" = 5000)
+ matter = list(MAT_STEEL = 10000, MAT_GLASS = 5000)
w_class = ITEMSIZE_SMALL
slot_flags = SLOT_BELT
@@ -95,7 +95,7 @@
icon_state = "depth_scanner"
item_state = "analyzer"
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2, TECH_BLUESPACE = 2)
- matter = list(DEFAULT_WALL_MATERIAL = 1000,"glass" = 1000)
+ matter = list(MAT_STEEL = 1000, MAT_GLASS = 1000)
w_class = ITEMSIZE_SMALL
slot_flags = SLOT_BELT
var/list/positive_locations = list()
@@ -226,7 +226,7 @@
icon_state = "pinoff" //pinonfar, pinonmedium, pinonclose, pinondirect, pinonnull
item_state = "electronic"
origin_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 2, TECH_BLUESPACE = 3)
- matter = list(DEFAULT_WALL_MATERIAL = 1000,"glass" = 500)
+ matter = list(MAT_STEEL = 1000, MAT_GLASS = 500)
var/frequency = PUB_FREQ
var/scan_ticks = 0
var/obj/item/radio/target_radio
@@ -325,7 +325,7 @@
item_state = "lampgreen"
icon = 'icons/obj/xenoarchaeology.dmi'
origin_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 3, TECH_BLUESPACE = 2, TECH_ARCANE = 1)
- matter = list(DEFAULT_WALL_MATERIAL = 10000,"glass" = 5000)
+ matter = list(MAT_STEEL = 10000, MAT_GLASS = 5000)
w_class = ITEMSIZE_SMALL
slot_flags = SLOT_BELT
var/mode = 1 //Start off scanning. 1 = scanning, 0 = measuring
diff --git a/code/modules/xenobio/items/extracts.dm b/code/modules/xenobio/items/extracts.dm
index 3dfa1d32dff..7a1717535ec 100644
--- a/code/modules/xenobio/items/extracts.dm
+++ b/code/modules/xenobio/items/extracts.dm
@@ -71,7 +71,7 @@
name = "Slime Spawn"
id = "m_spawn"
result = null
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/grey
@@ -127,7 +127,7 @@
/datum/chemical_reaction/slime/metal_metamorphic
name = "Slime Metal"
id = "m_metal"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result = "metamorphic"
result_amount = REAGENTS_PER_SHEET // Makes enough to make one sheet of any metal.
required = /obj/item/slime_extract/metal
@@ -149,42 +149,42 @@
/datum/chemical_reaction/metamorphic/iron
name = "Morph into Iron"
id = "morph_iron"
- required_reagents = list("metamorphic" = REAGENTS_PER_SHEET, "iron" = REAGENTS_PER_SHEET)
+ required_reagents = list("metamorphic" = REAGENTS_PER_SHEET, MAT_IRON = REAGENTS_PER_SHEET)
result = "iron"
/datum/chemical_reaction/metamorphic/silver
name = "Morph into Silver"
id = "morph_silver"
- required_reagents = list("metamorphic" = REAGENTS_PER_SHEET, "silver" = REAGENTS_PER_SHEET)
+ required_reagents = list("metamorphic" = REAGENTS_PER_SHEET, MAT_SILVER = REAGENTS_PER_SHEET)
result = "silver"
/datum/chemical_reaction/metamorphic/gold
name = "Morph into Gold"
id = "morph_gold"
- required_reagents = list("metamorphic" = REAGENTS_PER_SHEET, "gold" = REAGENTS_PER_SHEET)
+ required_reagents = list("metamorphic" = REAGENTS_PER_SHEET, MAT_GOLD = REAGENTS_PER_SHEET)
result = "gold"
/datum/chemical_reaction/metamorphic/platinum
name = "Morph into Platinum"
id = "morph_platinum"
- required_reagents = list("metamorphic" = REAGENTS_PER_SHEET, "platinum" = REAGENTS_PER_SHEET)
+ required_reagents = list("metamorphic" = REAGENTS_PER_SHEET, MAT_PLATINUM = REAGENTS_PER_SHEET)
result = "platinum"
/datum/chemical_reaction/metamorphic/uranium
name = "Morph into Uranium"
id = "morph_uranium"
- required_reagents = list("metamorphic" = REAGENTS_PER_SHEET, "uranium" = REAGENTS_PER_SHEET)
+ required_reagents = list("metamorphic" = REAGENTS_PER_SHEET, MAT_URANIUM = REAGENTS_PER_SHEET)
result = "uranium"
/datum/chemical_reaction/metamorphic/phoron
name = "Morph into Phoron"
id = "morph_phoron"
- required_reagents = list("metamorphic" = REAGENTS_PER_SHEET, "phoron" = REAGENTS_PER_SHEET)
+ required_reagents = list("metamorphic" = REAGENTS_PER_SHEET, MAT_PHORON = REAGENTS_PER_SHEET)
result = "phoron"
@@ -220,7 +220,7 @@
name = "Bind into Steel"
id = "bind_steel"
result = "steel"
- required_reagents = list("binding" = REAGENTS_PER_SHEET, "iron" = REAGENTS_PER_SHEET, "carbon" = REAGENTS_PER_SHEET)
+ required_reagents = list("binding" = REAGENTS_PER_SHEET, MAT_IRON = REAGENTS_PER_SHEET, MAT_CARBON = REAGENTS_PER_SHEET)
result_amount = REAGENTS_PER_SHEET
/datum/reagent/steel
@@ -235,7 +235,7 @@
/datum/chemical_reaction/binding/plasteel // Two parts 'steel', one part platnium matches the smelter alloy recipe.
name = "Bind into Plasteel"
id = "bind_plasteel"
- required_reagents = list("binding" = REAGENTS_PER_SHEET, "steel" = REAGENTS_PER_SHEET * 2, "platinum" = REAGENTS_PER_SHEET)
+ required_reagents = list("binding" = REAGENTS_PER_SHEET, MAT_STEEL = REAGENTS_PER_SHEET * 2, MAT_PLATINUM = REAGENTS_PER_SHEET)
result = "plasteel"
/datum/reagent/plasteel
@@ -263,7 +263,7 @@
name = "Slime Frost Oil"
id = "m_frostoil"
result = "frostoil"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 20
required = /obj/item/slime_extract/blue
@@ -295,7 +295,7 @@
/datum/chemical_reaction/slime/purple_steroid
name = "Slime Steroid"
id = "m_steroid"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/purple
@@ -317,7 +317,7 @@
/datum/chemical_reaction/slime/orange_fire
name = "Slime Fire"
id = "m_fire"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/orange
@@ -372,7 +372,7 @@
/datum/chemical_reaction/slime/yellow_battery
name = "Slime Cell"
id = "m_cell"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/yellow
@@ -406,7 +406,7 @@
name = "Slime Gold"
id = "m_gold"
result = "gold"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 5
required = /obj/item/slime_extract/gold
@@ -425,7 +425,7 @@
name = "Slime Silver"
id = "m_silver"
result = "silver"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 5
required = /obj/item/slime_extract/silver
@@ -466,7 +466,7 @@
/datum/chemical_reaction/slime/dark_blue_cold_snap
name = "Slime Cold Snap"
id = "m_cold_snap"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/dark_blue
@@ -584,7 +584,7 @@
/datum/chemical_reaction/slime/red_mutation
name = "Slime Mutation"
id = "m_mutation"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/red
@@ -605,7 +605,7 @@
name = "Slime Uranium"
id = "m_uranium"
result = "uranium"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 5
required = /obj/item/slime_extract/green
@@ -634,7 +634,7 @@
name = "Slime Bone Med"
id = "m_bone_fixer"
result = "slime_bone_fixer"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 30
required = /obj/item/slime_extract/pink
@@ -734,7 +734,7 @@
/datum/chemical_reaction/slime/bluespace_greater
name = "Slime Greater Tele"
id = "m_tele_lesser"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/bluespace
@@ -767,7 +767,7 @@
/datum/chemical_reaction/slime/cerulean_enhancer
name = "Slime Enhancer"
id = "m_enhancer"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/cerulean
@@ -789,7 +789,7 @@
/datum/chemical_reaction/slime/amber_slimefood
name = "Slime Feeding"
id = "m_slime_food"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/amber
@@ -824,7 +824,7 @@
/datum/chemical_reaction/slime/sapphire_promethean
name = "Slime Promethean"
id = "m_promethean"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/sapphire
@@ -845,7 +845,7 @@
/datum/chemical_reaction/slime/ruby_swole
name = "Slime Strength"
id = "m_strength"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/ruby
@@ -894,7 +894,7 @@
/datum/chemical_reaction/slime/emerald_fast
name = "Slime Agility"
id = "m_agility"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/emerald
@@ -943,7 +943,7 @@
/datum/chemical_reaction/slime/light_pink_friendship
name = "Slime Friendship"
id = "m_friendship"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/light_pink
@@ -967,7 +967,7 @@
/datum/chemical_reaction/slime/rainbow_random_slime
name = "Slime Random Slime"
id = "m_rng_slime"
- required_reagents = list("phoron" = 5)
+ required_reagents = list(MAT_PHORON = 5)
result_amount = 1
required = /obj/item/slime_extract/rainbow
diff --git a/code/modules/xenobio/items/slime_objects.dm b/code/modules/xenobio/items/slime_objects.dm
index 21ad6cb268d..824f00cdefe 100644
--- a/code/modules/xenobio/items/slime_objects.dm
+++ b/code/modules/xenobio/items/slime_objects.dm
@@ -53,8 +53,8 @@
var/mob/living/carbon/human/S = new(get_turf(src))
S.client = candidate.client
to_chat(S, "You are a promethean, brought into existence on [station_name()].")
- S.mind.assigned_role = "Promethean"
- S.set_species("Promethean")
+ S.mind.assigned_role = SPECIES_PROMETHEAN
+ S.set_species(SPECIES_PROMETHEAN)
S.shapeshifter_set_colour("#2398FF")
visible_message("The monkey cube suddenly takes the shape of a humanoid!")
var/newname = sanitize(input(S, "You are a Promethean. Would you like to change your name to something else?", "Name change") as null|text, MAX_NAME_LEN)
diff --git a/code/modules/xenobio/items/slimepotions.dm b/code/modules/xenobio/items/slimepotions.dm
index 944853bec78..858e474ed31 100644
--- a/code/modules/xenobio/items/slimepotions.dm
+++ b/code/modules/xenobio/items/slimepotions.dm
@@ -77,7 +77,7 @@
to_chat(user, "\The [M] is dead!")
return ..()
if(!M.has_AI())
- to_chat(user, span("warning", "\The [M] is too strongly willed for this to affect them.")) // Most likely player controlled.
+ to_chat(user, SPAN_WARNING( "\The [M] is too strongly willed for this to affect them.")) // Most likely player controlled.
return
var/datum/ai_holder/AI = M.ai_holder
@@ -194,7 +194,7 @@
to_chat(user, "\The [M] is already loyal to your species!")
return ..()
if(!M.has_AI())
- to_chat(user, span("warning", "\The [M] is too strong-willed for this to affect them."))
+ to_chat(user, SPAN_WARNING( "\The [M] is too strong-willed for this to affect them."))
return ..()
var/datum/ai_holder/AI = M.ai_holder
@@ -229,7 +229,7 @@
to_chat(user, "\The [M] is already loyal to you!")
return ..()
if(!M.has_AI())
- to_chat(user, span("warning", "\The [M] is too strong-willed for this to affect them."))
+ to_chat(user, SPAN_WARNING( "\The [M] is too strong-willed for this to affect them."))
return ..()
var/datum/ai_holder/AI = M.ai_holder
diff --git a/code/modules/xenobio2/mob/slime/slime.dm b/code/modules/xenobio2/mob/slime/slime.dm
index 168d0bede4a..718151ae21c 100644
--- a/code/modules/xenobio2/mob/slime/slime.dm
+++ b/code/modules/xenobio2/mob/slime/slime.dm
@@ -68,14 +68,14 @@ Slime definitions, Life and New live here.
"fuel" = list("toxic" = 0.4),
"toxin" = list("toxic" = 0.5),
"carpotoxin" = list("toxic" = 1, "mut" = 1.5),
- "phoron" = list("toxic" = 1.5, "mut" = 0.03),
+ MAT_PHORON = list("toxic" = 1.5, "mut" = 0.03),
"virusfood" = list("nutr" = 1.5, "mut" = 0.32),
"cyanide" = list("toxic" = 3.5),
"slimejelly" = list("nutr" = 0.5),
"amutationtoxin" = list("toxic" = 0.1, "heal" = 1.5, "mut" = 3),
"mutationtoxin" = list("toxic" = 0.1, "heal" = 1, "mut" = 1.5),
- "gold" = list("heal" = 0.3, "nutr" = 0.7, "mut" = 0.3),
- "uranium" = list("heal" = 0.3, "toxic" = 0.7, "mut" = 1.2),
+ MAT_GOLD = list("heal" = 0.3, "nutr" = 0.7, "mut" = 0.3),
+ MAT_URANIUM = list("heal" = 0.3, "toxic" = 0.7, "mut" = 1.2),
"glycerol" = list("nutr" = 0.6),
"woodpulp" = list("heal" = 0.1, "nutr" = 0.7),
"docilitytoxin" = list("nutr" = 0.3) )
diff --git a/code/modules/xenobio2/mob/slime/slime_monkey.dm b/code/modules/xenobio2/mob/slime/slime_monkey.dm
index 39660b17280..1e898b3e005 100644
--- a/code/modules/xenobio2/mob/slime/slime_monkey.dm
+++ b/code/modules/xenobio2/mob/slime/slime_monkey.dm
@@ -39,8 +39,8 @@ Slime cube lives here.
var/mob/living/carbon/human/S = new(get_turf(src))
S.client = candidate.client
to_chat(S., "You are a promethean, brought into existence on [station_name()].")
- S.mind.assigned_role = "Promethean"
- S.set_species("Promethean")
+ S.mind.assigned_role = SPECIES_PROMETHEAN
+ S.set_species(SPECIES_PROMETHEAN)
S.shapeshifter_set_colour("#05FF9B")
for(var/mob/M in viewers(get_turf_or_move(loc)))
M.show_message("The monkey cube suddenly takes the shape of a humanoid!")
diff --git a/maps/nsv_triumph/triumph_turfs.dm b/maps/nsv_triumph/triumph_turfs.dm
index 11b547bdf65..4ca2e42d368 100644
--- a/maps/nsv_triumph/triumph_turfs.dm
+++ b/maps/nsv_triumph/triumph_turfs.dm
@@ -42,30 +42,30 @@
outdoors = TRUE
if(rare_ore)
mineral_name = pickweight(list(
- "marble" = 3,
- "uranium" = 10,
- "platinum" = 10,
- "hematite" = 20,
- "carbon" = 20,
- "diamond" = 1,
- "gold" = 8,
- "silver" = 8,
- "copper" = 10,
- "phoron" = 18,
- "lead" = 2,
- "verdantium" = 1))
+ MAT_CARBON = 20,
+ MAT_COPPER = 10,
+ MAT_DIAMOND = 1,
+ MAT_GOLD = 8,
+ MAT_HEMATITE = 20,
+ MAT_LEAD = 2,
+ MAT_MARBLE = 3,
+ MAT_PHORON = 18,
+ MAT_PLATINUM = 10,
+ MAT_SILVER = 8,
+ MAT_URANIUM = 10,
+ MAT_VERDANTIUM = 1))
else
mineral_name = pickweight(list(
- "marble" = 2,
- "uranium" = 5,
- "platinum" = 5,
- "hematite" = 35,
- "carbon" = 35,
- "gold" = 3,
- "silver" = 3,
- "copper" = 5,
- "phoron" = 25,
- "lead" = 1))
+ MAT_CARBON = 35,
+ MAT_COPPER = 5,
+ MAT_GOLD = 3,
+ MAT_HEMATITE = 35,
+ MAT_LEAD = 1,
+ MAT_MARBLE = 2,
+ MAT_PHORON = 25,
+ MAT_PLATINUM = 5,
+ MAT_SILVER = 3,
+ MAT_URANIUM = 5))
if(mineral_name && (mineral_name in GLOB.ore_data))
mineral = GLOB.ore_data[mineral_name]
if(flags & INITIALIZED)
@@ -77,30 +77,30 @@
var/mineral_name
if(rare_ore)
mineral_name = pickweight(list(
- "marble" = 7,
- "uranium" = 10,
- "platinum" = 10,
- "hematite" = 10,
- "carbon" = 10,
- "diamond" = 4,
- "gold" = 15,
- "silver" = 15,
- "copper" = 10,
- "lead" = 5,
- "verdantium" = 2))
+ MAT_CARBON = 10,
+ MAT_COPPER = 10,
+ MAT_DIAMOND = 4,
+ MAT_GOLD = 15,
+ MAT_HEMATITE = 10,
+ MAT_LEAD = 5,
+ MAT_MARBLE = 7,
+ MAT_PLATINUM = 10,
+ MAT_SILVER = 15,
+ MAT_URANIUM = 10,
+ MAT_VERDANTIUM = 2))
else
mineral_name = pickweight(list(
- "marble" = 5,
- "uranium" = 7,
- "platinum" = 7,
- "hematite" = 28,
- "carbon" = 28,
- "diamond" = 2,
- "gold" = 7,
- "silver" = 7,
- "copper" = 7,
- "lead" = 4,
- "verdantium" = 1))
+ MAT_CARBON = 28,
+ MAT_COPPER = 7,
+ MAT_DIAMOND = 2,
+ MAT_GOLD = 7,
+ MAT_HEMATITE = 28,
+ MAT_LEAD = 4,
+ MAT_MARBLE = 5,
+ MAT_PLATINUM = 7,
+ MAT_SILVER = 7,
+ MAT_URANIUM = 7,
+ MAT_VERDANTIUM = 1))
if(mineral_name && (mineral_name in GLOB.ore_data))
mineral = GLOB.ore_data[mineral_name]
if(flags & INITIALIZED)
diff --git a/maps/nsv_triumph/triumph_virgo3b.dm b/maps/nsv_triumph/triumph_virgo3b.dm
index 607ae5a1c1c..b806cea6d86 100644
--- a/maps/nsv_triumph/triumph_virgo3b.dm
+++ b/maps/nsv_triumph/triumph_virgo3b.dm
@@ -106,25 +106,25 @@ var/datum/planet/virgo3b/planet_virgo3b = null
/datum/weather_holder/virgo3b
temperature = T0C
allowed_weather_types = list(
- WEATHER_CLEAR = new /datum/weather/virgo3b/clear(),
- WEATHER_OVERCAST = new /datum/weather/virgo3b/overcast(),
- WEATHER_LIGHT_SNOW = new /datum/weather/virgo3b/light_snow(),
- WEATHER_SNOW = new /datum/weather/virgo3b/snow(),
WEATHER_BLIZZARD = new /datum/weather/virgo3b/blizzard(),
- WEATHER_RAIN = new /datum/weather/virgo3b/rain(),
- WEATHER_STORM = new /datum/weather/virgo3b/storm(),
+ WEATHER_BLOOD_MOON = new /datum/weather/virgo3b/blood_moon(),
+ WEATHER_CLEAR = new /datum/weather/virgo3b/clear(),
WEATHER_HAIL = new /datum/weather/virgo3b/hail(),
- WEATHER_BLOOD_MOON = new /datum/weather/virgo3b/blood_moon()
+ WEATHER_LIGHT_SNOW = new /datum/weather/virgo3b/light_snow(),
+ WEATHER_OVERCAST = new /datum/weather/virgo3b/overcast(),
+ WEATHER_RAIN = new /datum/weather/virgo3b/rain(),
+ WEATHER_SNOW = new /datum/weather/virgo3b/snow(),
+ WEATHER_STORM = new /datum/weather/virgo3b/storm()
)
roundstart_weather_chances = list(
- WEATHER_CLEAR = 30,
- WEATHER_OVERCAST = 30,
- WEATHER_LIGHT_SNOW = 20,
- WEATHER_SNOW = 5,
WEATHER_BLIZZARD = 5,
+ WEATHER_CLEAR = 30,
+ WEATHER_HAIL = 2.5,
+ WEATHER_LIGHT_SNOW = 20,
+ WEATHER_OVERCAST = 30,
WEATHER_RAIN = 5,
- WEATHER_STORM = 2.5,
- WEATHER_HAIL = 2.5
+ WEATHER_SNOW = 5,
+ WEATHER_STORM = 2.5
)
/datum/weather/virgo3b
@@ -151,11 +151,11 @@ var/datum/planet/virgo3b/planet_virgo3b = null
light_modifier = 0.8
transition_chances = list(
WEATHER_CLEAR = 25,
- WEATHER_OVERCAST = 50,
+ WEATHER_HAIL = 5,
WEATHER_LIGHT_SNOW = 10,
- WEATHER_SNOW = 5,
+ WEATHER_OVERCAST = 50,
WEATHER_RAIN = 5,
- WEATHER_HAIL = 5
+ WEATHER_SNOW = 5
)
observed_message = "It is overcast, all you can see are clouds."
transition_messages = list(
@@ -171,10 +171,10 @@ var/datum/planet/virgo3b/planet_virgo3b = null
temp_low = 225
light_modifier = 0.7
transition_chances = list(
- WEATHER_OVERCAST = 20,
+ WEATHER_HAIL = 5,
WEATHER_LIGHT_SNOW = 50,
- WEATHER_SNOW = 25,
- WEATHER_HAIL = 5
+ WEATHER_OVERCAST = 20,
+ WEATHER_SNOW = 25
)
observed_message = "It is snowing lightly."
effect_message = list(
@@ -207,11 +207,11 @@ var/datum/planet/virgo3b/planet_virgo3b = null
light_modifier = 0.5
flight_failure_modifier = 5
transition_chances = list(
- WEATHER_LIGHT_SNOW = 20,
- WEATHER_SNOW = 50,
WEATHER_BLIZZARD = 20,
WEATHER_HAIL = 5,
- WEATHER_OVERCAST = 5
+ WEATHER_LIGHT_SNOW = 20,
+ WEATHER_OVERCAST = 5,
+ WEATHER_SNOW = 50
)
observed_message = "It is snowing."
effect_message = list(
@@ -252,10 +252,10 @@ var/datum/planet/virgo3b/planet_virgo3b = null
light_modifier = 0.3
flight_failure_modifier = 10
transition_chances = list(
- WEATHER_SNOW = 45,
WEATHER_BLIZZARD = 40,
WEATHER_HAIL = 10,
- WEATHER_OVERCAST = 5
+ WEATHER_OVERCAST = 5,
+ WEATHER_SNOW = 45
)
observed_message = "A blizzard blows snow everywhere."
effect_message = list(
@@ -298,11 +298,11 @@ var/datum/planet/virgo3b/planet_virgo3b = null
)
transition_chances = list(
- WEATHER_OVERCAST = 25,
+ WEATHER_HAIL = 5,
WEATHER_LIGHT_SNOW = 10,
+ WEATHER_OVERCAST = 25,
WEATHER_RAIN = 50,
- WEATHER_STORM = 10,
- WEATHER_HAIL = 5
+ WEATHER_STORM = 10
)
observed_message = "It is raining."
transition_messages = list(
@@ -359,10 +359,10 @@ var/datum/planet/virgo3b/planet_virgo3b = null
transition_chances = list(
- WEATHER_RAIN = 45,
- WEATHER_STORM = 40,
WEATHER_HAIL = 10,
- WEATHER_OVERCAST = 5
+ WEATHER_OVERCAST = 5,
+ WEATHER_RAIN = 45,
+ WEATHER_STORM = 40
)
/datum/weather/virgo3b/storm/process_effects()
@@ -434,10 +434,10 @@ var/datum/planet/virgo3b/planet_virgo3b = null
)
transition_chances = list(
- WEATHER_RAIN = 45,
- WEATHER_STORM = 40,
WEATHER_HAIL = 10,
- WEATHER_OVERCAST = 5
+ WEATHER_OVERCAST = 5,
+ WEATHER_RAIN = 45,
+ WEATHER_STORM = 40
)
observed_message = "Ice is falling from the sky."
transition_messages = list(
diff --git a/maps/tether/tether_turfs.dm b/maps/tether/tether_turfs.dm
index 50502fedf8d..6938c4e06a2 100644
--- a/maps/tether/tether_turfs.dm
+++ b/maps/tether/tether_turfs.dm
@@ -78,28 +78,28 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
outdoors = TRUE
if(rare_ore)
mineral_name = pickweight(list(
- "marble" = 3,
- "uranium" = 10,
- "platinum" = 10,
- "hematite" = 20,
- "carbon" = 20,
- "diamond" = 1,
- "gold" = 8,
- "silver" = 8,
- "phoron" = 18,
- "lead" = 2,
- "verdantium" = 1))
+ MAT_MARBLE = 3,
+ MAT_URANIUM = 10,
+ MAT_PLATINUM = 10,
+ MAT_HEMATITE = 20,
+ MAT_CARBON = 20,
+ MAT_DIAMOND = 1,
+ MAT_GOLD = 8,
+ MAT_SILVER = 8,
+ MAT_PHORON = 18,
+ MAT_LEAD = 2,
+ MAT_VERDANTIUM = 1))
else
mineral_name = pickweight(list(
- "marble" = 2,
- "uranium" = 5,
- "platinum" = 5,
- "hematite" = 35,
- "carbon" = 35,
- "gold" = 3,
- "silver" = 3,
- "phoron" = 25,
- "lead" = 1))
+ MAT_MARBLE = 2,
+ MAT_URANIUM = 5,
+ MAT_PLATINUM = 5,
+ MAT_HEMATITE = 35,
+ MAT_CARBON = 35,
+ MAT_GOLD = 3,
+ MAT_SILVER = 3,
+ MAT_PHORON = 25,
+ MAT_LEAD = 1))
if(mineral_name && (mineral_name in GLOB.ore_data))
mineral = GLOB.ore_data[mineral_name]
if(flags & INITIALIZED)
@@ -111,28 +111,28 @@ turf/simulated/mineral/rich/make_ore(var/rare_ore)
var/mineral_name
if(rare_ore)
mineral_name = pickweight(list(
- "marble" = 7,
- "uranium" = 10,
- "platinum" = 10,
- "hematite" = 10,
- "carbon" = 10,
- "diamond" = 4,
- "gold" = 15,
- "silver" = 15,
- "lead" = 5,
- "verdantium" = 2))
+ MAT_MARBLE = 7,
+ MAT_URANIUM = 10,
+ MAT_PLATINUM = 10,
+ MAT_HEMATITE = 10,
+ MAT_CARBON = 10,
+ MAT_DIAMOND = 4,
+ MAT_GOLD = 15,
+ MAT_SILVER = 15,
+ MAT_LEAD = 5,
+ MAT_VERDANTIUM = 2))
else
mineral_name = pickweight(list(
- "marble" = 5,
- "uranium" = 7,
- "platinum" = 7,
- "hematite" = 28,
- "carbon" = 28,
- "diamond" = 2,
- "gold" = 7,
- "silver" = 7,
- "lead" = 4,
- "verdantium" = 1))
+ MAT_MARBLE = 5,
+ MAT_URANIUM = 7,
+ MAT_PLATINUM = 7,
+ MAT_HEMATITE = 28,
+ MAT_CARBON = 28,
+ MAT_DIAMOND = 2,
+ MAT_GOLD = 7,
+ MAT_SILVER = 7,
+ MAT_LEAD = 4,
+ MAT_VERDANTIUM = 1))
if(mineral_name && (mineral_name in GLOB.ore_data))
mineral = GLOB.ore_data[mineral_name]
if(flags & INITIALIZED)
@@ -152,28 +152,28 @@ turf/simulated/mineral/rich/make_ore(var/rare_ore)
var/mineral_name
if(rare_ore)
mineral_name = pickweight(list(
- "marble" = 7,
- "uranium" = 10,
- "platinum" = 10,
- "hematite" = 10,
- "carbon" = 10,
- "diamond" = 4,
- "gold" = 15,
- "silver" = 15,
- "lead" = 5,
- "verdantium" = 2))
+ MAT_MARBLE = 7,
+ MAT_URANIUM = 10,
+ MAT_PLATINUM = 10,
+ MAT_HEMATITE = 10,
+ MAT_CARBON = 10,
+ MAT_DIAMOND = 4,
+ MAT_GOLD = 15,
+ MAT_SILVER = 15,
+ MAT_LEAD = 5,
+ MAT_VERDANTIUM = 2))
else
mineral_name = pickweight(list(
- "marble" = 5,
- "uranium" = 7,
- "platinum" = 7,
- "hematite" = 28,
- "carbon" = 28,
- "diamond" = 2,
- "gold" = 7,
- "silver" = 7,
- "lead" = 4,
- "verdantium" = 1))
+ MAT_MARBLE = 5,
+ MAT_URANIUM = 7,
+ MAT_PLATINUM = 7,
+ MAT_HEMATITE = 28,
+ MAT_CARBON = 28,
+ MAT_DIAMOND = 2,
+ MAT_GOLD = 7,
+ MAT_SILVER = 7,
+ MAT_LEAD = 4,
+ MAT_VERDANTIUM = 1))
if(mineral_name && (mineral_name in GLOB.ore_data))
mineral = GLOB.ore_data[mineral_name]
if(flags & INITIALIZED)
diff --git a/tgui/public/tgui-panel.bundle.css b/tgui/public/tgui-panel.bundle.css
index 75000968e2d..e5db8d8038d 100644
--- a/tgui/public/tgui-panel.bundle.css
+++ b/tgui/public/tgui-panel.bundle.css
@@ -1,2 +1,2 @@
-html,body{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,*:before,*:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:6px 0;padding:.5rem 0}h1{font-size:18px;font-size:1.5rem}h2{font-size:16px;font-size:1.333rem}h3{font-size:14px;font-size:1.167rem}h4{font-size:12px;font-size:1rem}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.color-black{color:#1a1a1a !important}.color-white{color:#fff !important}.color-red{color:#df3e3e !important}.color-orange{color:#f37f33 !important}.color-yellow{color:#fbda21 !important}.color-olive{color:#cbe41c !important}.color-green{color:#25ca4c !important}.color-teal{color:#00d6cc !important}.color-blue{color:#2e93de !important}.color-violet{color:#7349cf !important}.color-purple{color:#ad45d0 !important}.color-pink{color:#e34da1 !important}.color-brown{color:#b97447 !important}.color-grey{color:#848484 !important}.color-good{color:#68c22d !important}.color-average{color:#f29a29 !important}.color-bad{color:#df3e3e !important}.color-label{color:#8b9bb0 !important}.color-bg-black{background-color:#000 !important}.color-bg-white{background-color:#d9d9d9 !important}.color-bg-red{background-color:#bd2020 !important}.color-bg-orange{background-color:#d95e0c !important}.color-bg-yellow{background-color:#d9b804 !important}.color-bg-olive{background-color:#9aad14 !important}.color-bg-green{background-color:#1b9638 !important}.color-bg-teal{background-color:#009a93 !important}.color-bg-blue{background-color:#1c71b1 !important}.color-bg-violet{background-color:#552dab !important}.color-bg-purple{background-color:#8b2baa !important}.color-bg-pink{background-color:#cf2082 !important}.color-bg-brown{background-color:#8c5836 !important}.color-bg-grey{background-color:#646464 !important}.color-bg-good{background-color:#4d9121 !important}.color-bg-average{background-color:#cd7a0d !important}.color-bg-bad{background-color:#bd2020 !important}.color-bg-label{background-color:#657a94 !important}.debug-layout,.debug-layout *:not(g):not(path){color:rgba(255,255,255,.9) !important;background:transparent !important;outline:1px solid rgba(255,255,255,.5) !important;box-shadow:none !important;filter:none !important}.debug-layout:hover,.debug-layout *:not(g):not(path):hover{outline-color:rgba(255,255,255,.8) !important}.outline-dotted{outline-style:dotted !important}.outline-dashed{outline-style:dashed !important}.outline-solid{outline-style:solid !important}.outline-double{outline-style:double !important}.outline-groove{outline-style:groove !important}.outline-ridge{outline-style:ridge !important}.outline-inset{outline-style:inset !important}.outline-outset{outline-style:outset !important}.outline-color-black{outline:.167rem solid #1a1a1a !important}.outline-color-white{outline:.167rem solid #fff !important}.outline-color-red{outline:.167rem solid #df3e3e !important}.outline-color-orange{outline:.167rem solid #f37f33 !important}.outline-color-yellow{outline:.167rem solid #fbda21 !important}.outline-color-olive{outline:.167rem solid #cbe41c !important}.outline-color-green{outline:.167rem solid #25ca4c !important}.outline-color-teal{outline:.167rem solid #00d6cc !important}.outline-color-blue{outline:.167rem solid #2e93de !important}.outline-color-violet{outline:.167rem solid #7349cf !important}.outline-color-purple{outline:.167rem solid #ad45d0 !important}.outline-color-pink{outline:.167rem solid #e34da1 !important}.outline-color-brown{outline:.167rem solid #b97447 !important}.outline-color-grey{outline:.167rem solid #848484 !important}.outline-color-good{outline:.167rem solid #68c22d !important}.outline-color-average{outline:.167rem solid #f29a29 !important}.outline-color-bad{outline:.167rem solid #df3e3e !important}.outline-color-label{outline:.167rem solid #8b9bb0 !important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:bold}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8b9bb0;border-left:.1666666667em solid #8b9bb0;padding-left:.5em;margin-bottom:.5em}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.Button:last-child{margin-right:0;margin-bottom:0}.Button .fa,.Button .fas,.Button .far{margin-left:-0.25em;margin-right:-0.25em;min-width:1.333em;text-align:center}.Button--hasContent .fa,.Button--hasContent .fas,.Button--hasContent .far{margin-right:.25em}.Button--hasContent.Button--iconPosition--right .fa,.Button--hasContent.Button--iconPosition--right .fas,.Button--hasContent.Button--iconPosition--right .far{margin-right:0px;margin-left:3px}.Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--circular{border-radius:50%}.Button--compact{padding:0 .25em;line-height:1.333em}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color 100ms,background-color 100ms}.Button--color--black:hover,.Button--color--black:focus{background-color:#131313;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color 100ms,background-color 100ms}.Button--color--white:hover,.Button--color--white:focus{background-color:#f8f8f8;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color 100ms,background-color 100ms}.Button--color--red:hover,.Button--color--red:focus{background-color:#dc4848;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color 100ms,background-color 100ms}.Button--color--orange:hover,.Button--color--orange:focus{background-color:#f0853f;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color 100ms,background-color 100ms}.Button--color--yellow:hover,.Button--color--yellow:focus{background-color:#f5d72e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color 100ms,background-color 100ms}.Button--color--olive:hover,.Button--color--olive:focus{background-color:#c4da2b;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color 100ms,background-color 100ms}.Button--color--green:hover,.Button--color--green:focus{background-color:#32c154;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color 100ms,background-color 100ms}.Button--color--teal:hover,.Button--color--teal:focus{background-color:#13c4bc;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color 100ms,background-color 100ms}.Button--color--blue:hover,.Button--color--blue:focus{background-color:#3a95d9;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color 100ms,background-color 100ms}.Button--color--violet:hover,.Button--color--violet:focus{background-color:#7953cc;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color 100ms,background-color 100ms}.Button--color--purple:hover,.Button--color--purple:focus{background-color:#ad4fcd;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color 100ms,background-color 100ms}.Button--color--pink:hover,.Button--color--pink:focus{background-color:#e257a5;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color 100ms,background-color 100ms}.Button--color--brown:hover,.Button--color--brown:focus{background-color:#b47851;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color 100ms,background-color 100ms}.Button--color--grey:hover,.Button--color--grey:focus{background-color:#868686;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color 100ms,background-color 100ms}.Button--color--good:hover,.Button--color--good:focus{background-color:#6cba39;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color 100ms,background-color 100ms}.Button--color--average:hover,.Button--color--average:focus{background-color:#ed9d35;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color 100ms,background-color 100ms}.Button--color--bad:hover,.Button--color--bad:focus{background-color:#dc4848;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color 100ms,background-color 100ms}.Button--color--label:hover,.Button--color--label:focus{background-color:#91a1b3;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color 100ms,background-color 100ms}.Button--color--default:hover,.Button--color--default:focus{background-color:#5c83b0;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color 100ms,background-color 100ms}.Button--color--caution:hover,.Button--color--caution:focus{background-color:#f5d72e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color 100ms,background-color 100ms}.Button--color--danger:hover,.Button--color--danger:focus{background-color:#dc4848;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#202020;color:#fff;background-color:rgba(32,32,32,0);color:rgba(255,255,255,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color 100ms,background-color 100ms}.Button--color--transparent:hover,.Button--color--transparent:focus{background-color:#383838;color:#fff}.Button--disabled{background-color:#999 !important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color 100ms,background-color 100ms}.Button--selected:hover,.Button--selected:focus{background-color:#32c154;color:#fff}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Dropdown{position:relative}.Dropdown__control{position:relative;display:inline-block;font-family:Verdana,sans-serif;font-size:1em;width:8.3333333333em;line-height:1.4166666667em;user-select:none}.Dropdown__arrow-button{float:right;padding-left:.35em;width:1.2em;height:1.8333333333em;border-left:.0833333333em solid #000;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{position:absolute;overflow-y:auto;z-index:5;width:8.3333333333em;max-height:16.6666666667em;overflow-y:scroll;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-noscroll{position:absolute;overflow-y:auto;z-index:5;width:8.3333333333em;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menuentry{padding:.1666666667em .3333333333em;font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em;transition:background-color 100ms ease-out}.Dropdown__menuentry:hover{background-color:rgba(255,255,255,.2);transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.Dropdown__selected-text{display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;height:1.4166666667em;width:calc(100% - 1.2em)}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:table !important;width:105%;border-collapse:collapse;border-spacing:0}.Flex--iefix:after{content:"";display:table-cell;width:5%}.Flex--iefix--column{display:table !important;width:100% !important;height:100% !important;border-collapse:collapse;border-spacing:0}.Flex--iefix--column>.Flex__item--iefix{display:table-row !important}.Flex--iefix--column>.Flex__item--iefix--grow{height:100% !important}.Flex__item--iefix{display:table-cell !important;width:1% !important;min-width:99%}.Flex__item--iefix--grow{width:auto !important}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:transparent}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto;margin-bottom:-0.2em;cursor:n-resize}.Knob:after{content:".";color:transparent;line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%);border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotateZ(135deg)}.Knob__ringTrack{fill:transparent;stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotateZ(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotateZ(270deg)}.Knob__ringFill{fill:transparent;stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.Knob--color--black .Knob__ringFill{stroke:#1a1a1a}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#df3e3e}.Knob--color--orange .Knob__ringFill{stroke:#f37f33}.Knob--color--yellow .Knob__ringFill{stroke:#fbda21}.Knob--color--olive .Knob__ringFill{stroke:#cbe41c}.Knob--color--green .Knob__ringFill{stroke:#25ca4c}.Knob--color--teal .Knob__ringFill{stroke:#00d6cc}.Knob--color--blue .Knob__ringFill{stroke:#2e93de}.Knob--color--violet .Knob__ringFill{stroke:#7349cf}.Knob--color--purple .Knob__ringFill{stroke:#ad45d0}.Knob--color--pink .Knob__ringFill{stroke:#e34da1}.Knob--color--brown .Knob__ringFill{stroke:#b97447}.Knob--color--grey .Knob__ringFill{stroke:#848484}.Knob--color--good .Knob__ringFill{stroke:#68c22d}.Knob--color--average .Knob__ringFill{stroke:#f29a29}.Knob--color--bad .Knob__ringFill{stroke:#df3e3e}.Knob--color--label .Knob__ringFill{stroke:#8b9bb0}.LabeledList{display:table;width:100%;width:calc(100% + 1em);border-collapse:collapse;border-spacing:0;margin:-0.25em -0.5em;margin-bottom:0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:.25em .5em;border:0;text-align:left}.LabeledList__label{width:1%;white-space:nowrap;min-width:5em}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:.0833333333em;padding-bottom:0}.LabeledList__breakContents{word-break:break-all;word-wrap:break-word}.Modal{background-color:#202020;max-width:calc(100% - 1rem);padding:1rem}.NanoMap__container{overflow:hiddden;width:100%;z-index:1}.NanoMap__marker{z-index:10;padding:0px;margin:0px}.NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:bold;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg, transparent, transparent 0.8333333333em, rgba(0, 0, 0, 0.1) 0.8333333333em, rgba(0, 0, 0, 0.1) 1.6666666667em)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:transparent}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.NumberInput{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#88bfff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:.5em}.NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color 900ms ease-out}.ProgressBar__fill{position:absolute;top:-0.5px;left:0px;bottom:-0.5px}.ProgressBar__fill--animated{transition:background-color 900ms ease-out,width 900ms ease-out}.ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.ProgressBar--color--default{border:.0833333333em solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border:.0833333333em solid #000 !important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border:.0833333333em solid #d9d9d9 !important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border:.0833333333em solid #bd2020 !important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border:.0833333333em solid #d95e0c !important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border:.0833333333em solid #d9b804 !important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border:.0833333333em solid #9aad14 !important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border:.0833333333em solid #1b9638 !important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border:.0833333333em solid #009a93 !important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border:.0833333333em solid #1c71b1 !important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--violet{border:.0833333333em solid #552dab !important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border:.0833333333em solid #8b2baa !important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border:.0833333333em solid #cf2082 !important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border:.0833333333em solid #8c5836 !important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border:.0833333333em solid #646464 !important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--good{border:.0833333333em solid #4d9121 !important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border:.0833333333em solid #cd7a0d !important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border:.0833333333em solid #bd2020 !important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border:.0833333333em solid #657a94 !important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.Section{position:relative;margin-bottom:.5em;background-color:#131313;background-color:#131313;box-sizing:border-box}.Section:last-child{margin-bottom:0}.Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.Section__titleText{font-size:1.1666666667em;font-weight:bold;color:#fff}.Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.Section__rest{position:relative}.Section__content{padding:.66em .5em}.Section--fitted>.Section__rest>.Section__content{padding:0}.Section--fill{display:flex;flex-direction:column;height:100%}.Section--fill>.Section__rest{flex-grow:1}.Section--fill>.Section__rest>.Section__content{height:100%}.Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.Section--fill.Section--iefix{display:table !important;width:100% !important;height:100% !important;border-collapse:collapse;border-spacing:0}.Section--fill.Section--iefix>.Section__rest{display:table-row !important;height:100% !important}.Section--scrollable{overflow-x:hidden;overflow-y:hidden}.Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.Section .Section{background-color:transparent;margin-left:-0.5em;margin-right:-0.5em}.Section .Section:first-child{margin-top:-0.5em}.Section .Section .Section__titleText{font-size:1.0833333333em}.Section .Section .Section .Section__titleText{font-size:1em}.Section--flex{display:flex;flex-flow:column}.Section--flex .Section__content{overflow:auto;flex-grow:1}.Section__content--noTopPadding{padding-top:0}.Section__content--stretchContents{height:calc(100% - 3rem)}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none !important}.Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #fff}.Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid transparent;border-right:.4166666667em solid transparent;border-bottom:.4166666667em solid #fff}.Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--fill{height:100%}.Stack--horizontal>.Stack__item{margin-left:.5em}.Stack--horizontal>.Stack__item:first-child{margin-left:0}.Stack--vertical>.Stack__item{margin-top:.5em}.Stack--vertical>.Stack__item:first-child{margin-top:0}.Stack--horizontal>.Stack__divider:not(.Stack__divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--vertical>.Stack__divider:not(.Stack__divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 .25em}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__row--header .Table__cell,.Table__cell--header{font-weight:bold;padding-bottom:.5em}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:#131313}.Tabs--fill{height:100%}.Section .Tabs{background-color:transparent}.Section:not(.Section--fitted) .Tabs{margin:0 -0.5em .5em}.Section:not(.Section--fitted) .Tabs:first-child{margin-top:-0.5em}.Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0 .25em}.Tabs--horizontal:last-child{margin-bottom:0}.Tabs__Tab{flex-grow:0}.Tabs--fluid .Tabs__Tab{flex-grow:1}.Tab{display:flex;align-items:center;justify-content:space-between;background-color:transparent;color:rgba(255,255,255,.5);min-height:2.25em;min-width:4em;transition:background-color 50ms ease-out}.Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075);transition:background-color 0}.Tab--selected{background-color:rgba(255,255,255,.125);color:#dfe7f0}.Tab__text{flex-grow:1;margin:0 .5em}.Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.Tabs--horizontal .Tab{border-top:.1666666667em solid transparent;border-bottom:.1666666667em solid transparent;border-top-left-radius:.25em;border-top-right-radius:.25em}.Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #d4dfec}.Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid transparent;border-right:.1666666667em solid transparent;border-top-left-radius:.25em;border-bottom-left-radius:.25em}.Tabs--vertical .Tab--selected{border-right:.1666666667em solid #d4dfec}.Tab--selected.Tab--color--black{color:#535353}.Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#1a1a1a}.Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#1a1a1a}.Tab--selected.Tab--color--white{color:#fff}.Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#fff}.Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#fff}.Tab--selected.Tab--color--red{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#df3e3e}.Tab--selected.Tab--color--orange{color:#f69f66}.Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#f37f33}.Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#f37f33}.Tab--selected.Tab--color--yellow{color:#fce358}.Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#fbda21}.Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#fbda21}.Tab--selected.Tab--color--olive{color:#d8eb55}.Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#cbe41c}.Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#cbe41c}.Tab--selected.Tab--color--green{color:#53e074}.Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#25ca4c}.Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#25ca4c}.Tab--selected.Tab--color--teal{color:#21fff5}.Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00d6cc}.Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00d6cc}.Tab--selected.Tab--color--blue{color:#62aee6}.Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#2e93de}.Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#2e93de}.Tab--selected.Tab--color--violet{color:#9676db}.Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#7349cf}.Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#7349cf}.Tab--selected.Tab--color--purple{color:#c274db}.Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#ad45d0}.Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#ad45d0}.Tab--selected.Tab--color--pink{color:#ea79b9}.Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#e34da1}.Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#e34da1}.Tab--selected.Tab--color--brown{color:#ca9775}.Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#b97447}.Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#b97447}.Tab--selected.Tab--color--grey{color:#a3a3a3}.Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#848484}.Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#848484}.Tab--selected.Tab--color--good{color:#8cd95a}.Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#68c22d}.Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#68c22d}.Tab--selected.Tab--color--average{color:#f5b35e}.Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#f29a29}.Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#f29a29}.Tab--selected.Tab--color--bad{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#df3e3e}.Tab--selected.Tab--color--label{color:#a8b4c4}.Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#8b9bb0}.Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#8b9bb0}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:transparent}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.TextArea{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;background-color:#0a0a0a;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.TextArea--fluid{display:block;width:auto;height:auto}.TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:transparent;color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity 150ms ease-out;background-color:#000;color:#fff;box-shadow:.1em .1em 1.25em -0.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.Chat{color:#abc6ec}.Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:crimson;border-radius:10px;transition:font-size 200ms ease-out}.Chat__badge:before{content:"x"}.Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.Chat__scrollButton{position:fixed;right:2em;bottom:1em}.Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#131313}.Chat__reconnected:after{content:"";display:block;margin-top:-0.75em;border-bottom:.1666666667em solid #db2828}.Chat__highlight{color:#000}.Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:bold}.ChatMessage{word-wrap:break-word}.ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.Ping{position:relative;padding:.125em .25em;border:.0833333333em solid rgba(140,140,140,.5);border-radius:.25em;width:3.75em;text-align:right}.Ping__indicator{content:"";position:absolute;top:.5em;left:.5em;width:.5em;height:.5em;background-color:#888;border-radius:.25em}.Notifications{position:absolute;bottom:1em;left:1em;right:2em}.Notification{color:#fff;background-color:crimson;padding:.5em;margin:1em 0}.Notification:first-child{margin-top:0}.Notification:last-child{margin-bottom:0}.Layout,.Layout *{scrollbar-base-color:#181818;scrollbar-face-color:#363636;scrollbar-3dlight-color:#202020;scrollbar-highlight-color:#202020;scrollbar-track-color:#181818;scrollbar-arrow-color:#909090;scrollbar-shadow-color:#363636}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.Layout__content--flexRow{display:flex;flex-flow:row}.Layout__content--flexColumn{display:flex;flex-flow:column}.Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#202020;background-image:linear-gradient(to bottom, #202020 0%, #202020 100%)}.Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(56,56,56,.25);pointer-events:none}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}em{font-style:normal;font-weight:bold}img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}a{color:#397ea5}a.visited{color:#7c00e6}a:visited{color:#7c00e6}a.popt{text-decoration:none}.popup{position:fixed;top:50%;left:50%;background:#ddd}.popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.popup .close:hover{background:#999}.popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:bold;border-bottom:2px solid green}.popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.popup input[type=text]:hover,.popup input[type=text]:active,.popup input[type=text]:focus{border-color:green}.popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:bold}.popup input[type=submit]:hover,.popup input[type=submit]:focus,.popup input[type=submit]:active{background:#aaa;cursor:pointer}.changeFont{padding:10px}.changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.changeFont a:hover{background:#ccc}.highlightPopup{padding:10px;text-align:center}.highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.highlightPopup input.highlightColor{background-color:#ff0}.highlightPopup input.highlightTermSubmit{margin-top:5px}.contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.contextMenu a:hover{background-color:#ccc}.filterMessages{padding:5px}.filterMessages div{padding:2px 0}.icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.motd{color:#a4bad6;font-family:Verdana,sans-serif;white-space:normal}.motd h1,.motd h2,.motd h3,.motd h4,.motd h5,.motd h6{color:#a4bad6;text-decoration:underline}.motd a,.motd a:link,.motd a:visited,.motd a:active,.motd a:hover{color:#a4bad6}.bold,.name,.prefix,.ooc,.looc,.adminooc,.admin,.medal,.yell{font-weight:bold}.italic,.italics{font-style:italic}.highlight{background:#ff0}h1,h2,h3,h4,h5,h6{color:#a4bad6;font-family:Georgia,Verdana,sans-serif}h1.alert,h2.alert{color:#a4bad6}em{font-style:normal;font-weight:bold}.ooc{color:#cca300;font-weight:bold}.looc{color:#69c;font-weight:bold}.aooc{color:#b8002e;font-weight:bold}.event_manager{color:#603;font-weight:bold}.adminobserverooc{color:#09c;font-weight:bold}.adminooc{color:#3d5bc3;font-weight:bold}.adminsay{color:#ff4500;font-weight:bold}.adminobserver{color:#960;font-weight:bold}.admin{color:#5975da;font-weight:bold}.log_message{color:#386aff;font-weight:bold}.debug_error{color:red;font-weight:bold}.debug_warning{color:red}.debug_debug{color:blue}.debug_trace{color:#888}.mentorsay{color:#e236d8;font-weight:bold}.mentorsay_admin{color:#8a2be2;font-weight:bold}.mod_channel{color:#735638;font-weight:bold}.name{font-weight:bold}.deadsay{color:#e2c1ff}.binarysay{color:#1e90ff}.binarysay a{color:lime}.binarysay a:active,.binarysay a:visited{color:#8f8}.radio{color:#1ecc43}.sciradio{color:#c68cfa}.comradio{color:#fcdf03}.secradio{color:#dd3535}.medradio{color:#57b8f0}.engradio{color:#f37746}.suppradio{color:#b88646}.servradio{color:#6ca729}.syndradio{color:#8f4a4b}.gangradio{color:#ac2ea1}.centcomradio{color:#2681a5}.aiprivradio{color:#d65d95}.redteamradio{color:#f44}.blueteamradio{color:#3434fd}.greenteamradio{color:#34fd34}.yellowteamradio{color:#fdfd34}.yell{font-weight:bold}.alert{color:#d82020}.userdanger{color:#c51e1e;font-weight:bold;font-size:185%}.danger{color:#c51e1e}.warning{color:#c51e1e;font-style:italic}.alertwarning{color:red;font-weight:bold}.boldwarning{color:#c51e1e;font-style:italic;font-weight:bold}.announce{color:#c51e1e;font-weight:bold}.boldannounce{color:#c51e1e;font-weight:bold}.minorannounce{font-weight:bold;font-size:185%}.greenannounce{color:#059223;font-weight:bold}.rose{color:#ff5050}.info{color:#9ab0ff}.notice{color:#6685f5}.tinynotice{color:#6685f5;font-size:85%}.tinynoticeital{color:#6685f5;font-style:italic;font-size:85%}.smallnotice{color:#6685f5;font-size:90%}.smallnoticeital{color:#6685f5;font-style:italic;font-size:90%}.boldnotice{color:#6685f5;font-weight:bold}.hear{color:#6685f5;font-style:italic}.adminnotice{color:#6685f5}.adminhelp{color:red;font-weight:bold}.unconscious{color:#a4bad6;font-weight:bold}.suicide{color:#ff5050;font-style:italic}.green{color:#059223}.red{color:red}.blue{color:#215cff}.nicegreen{color:#059223}.userlove{color:#ff42a6;font-style:italic;font-weight:bold;text-shadow:0 0 6px #82365e}.love{color:#ff4591;font-style:italic;text-shadow:0 0 6px #994449}.cult{color:#973e3b}.cultitalic{color:#973e3b;font-style:italic}.cultbold{color:#973e3b;font-style:italic;font-weight:bold}.cultboldtalic{color:#973e3b;font-weight:bold;font-size:185%}.cultlarge{color:#973e3b;font-weight:bold;font-size:185%}.narsie{color:#973e3b;font-weight:bold;font-size:925%}.narsiesmall{color:#973e3b;font-weight:bold;font-size:370%}.colossus{color:#7f282a;font-size:310%}.hierophant{color:#b441ee;font-weight:bold;font-style:italic}.hierophant_warning{color:#c56bf1;font-style:italic}.purple{color:#9956d3}.holoparasite{color:#88809c}.revennotice{color:#c099e2}.revenboldnotice{color:#c099e2;font-weight:bold}.revenbignotice{color:#c099e2;font-weight:bold;font-size:185%}.revenminor{color:#823abb}.revenwarning{color:#760fbb;font-style:italic}.revendanger{color:#760fbb;font-weight:bold;font-size:185%}.umbra{color:#5000a0}.umbra_emphasis{color:#5000a0;font-weight:bold;font-style:italic}.umbra_large{color:#5000a0;font-weight:bold;font-style:italic;font-size:3}.deconversion_message{color:#a947ff;font-size:185%;font-style:italic}.brass{color:#be8700}.heavy_brass{color:#be8700;font-weight:bold;font-style:italic}.large_brass{color:#be8700;font-size:185%}.big_brass{color:#be8700;font-size:185%;font-weight:bold;font-style:italic}.ratvar{color:#be8700;font-size:6;font-weight:bold;font-style:italic}.alloy{color:#42474d}.heavy_alloy{color:#42474d;font-weight:bold;font-style:italic}.nezbere_large{color:#42474d;font-size:185%;font-weight:bold;font-style:italic}.nezbere{color:#42474d;font-weight:bold;font-style:italic}.nezbere_small{color:#42474d}.sevtug_large{color:#af0aaf;font-size:185%;font-weight:bold;font-style:italic}.sevtug{color:#af0aaf;font-weight:bold;font-style:italic}.sevtug_small{color:#af0aaf}.inathneq_large{color:#1e8ce1;font-size:185%;font-weight:bold;font-style:italic}.inathneq{color:#1e8ce1;font-weight:bold;font-style:italic}.inathneq_small{color:#1e8ce1}.nzcrentr_large{color:#daaa18;font-size:185%;font-weight:bold;font-style:italic}.nzcrentr{color:#daaa18;font-weight:bold;font-style:italic}.nzcrentr_small{color:#daaa18}.neovgre_large{color:#6e001a;font-size:185%;font-weight:bold;font-style:italic}.neovgre{color:#6e001a;font-weight:bold;font-style:italic}.neovgre_small{color:#6e001a}.ghostalert{color:#60f;font-style:italic;font-weight:bold}.alien{color:#855d85}.noticealien{color:#059223}.alertalien{color:#059223;font-weight:bold}.changeling{color:#059223;font-style:italic}.alertsyndie{color:red;font-size:185%;font-weight:bold}.spider{color:#80f;font-weight:bold;font-size:185%}.interface{color:#750e75}.sans{font-family:"Comic Sans MS",cursive,sans-serif}.papyrus{font-family:"Papyrus",cursive,sans-serif}.robot{font-family:"Courier New",cursive,sans-serif}.tape_recorder{color:red;font-family:"Courier New",cursive,sans-serif}.command_headset{font-weight:bold;font-size:125%}.small{font-size:60%}.big{font-size:185%}.reallybig{font-size:245%}.extremelybig{font-size:310%}.greentext{color:#059223;font-size:185%}.redtext{color:#c51e1e;font-size:185%}.yellowtext{color:#fc0;font-size:185%}.clown{color:#ff70c1;font-size:125%;font-family:"Comic Sans MS",cursive,sans-serif;font-weight:bold}.singing{font-family:"Trebuchet MS",cursive,sans-serif;font-style:italic}.his_grace{color:#15d512;font-family:"Courier New",cursive,sans-serif;font-style:italic}.spooky{color:#ff9100}.hypnophrase{color:#202020;font-weight:bold;animation:hypnocolor 1500ms infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#202020}25%{color:#4b02ac}50%{color:#9f41f1}75%{color:#541c9c}100%{color:#7adbf3}}.velvet{color:#660015;font-weight:bold;animation:velvet 5000ms infinite;animation-direction:alternate}@keyframes velvet{0%{color:#400020}40%{color:red}50%{color:#f88}60%{color:red}100%{color:#400020}}.phobia{color:#d00;font-weight:bold;animation:phobia 750ms infinite}@keyframes phobia{0%{color:#f75a5a}50%{color:#d00}100%{color:#f75a5a}}.icon{height:1em;width:auto}.iconbig{font-size:2.5em}.memo{color:#638500;text-align:center}.memoedit{text-align:center;font-size:125%}.abductor{color:#c204c2;font-style:italic}.mind_control{color:#df3da9;font-size:100%;font-weight:bold;font-style:italic}.slime{color:#00ced1}.drone{color:#848482}.monkey{color:#975032}.swarmer{color:#2c75ff}.resonate{color:#298f85}.monkeyhive{color:#a56408}.monkeylead{color:#af6805;font-size:80%}.connectionClosed,.fatalError{background:red;color:#fff;padding:5px}.connectionClosed.restored{background:green}.internal.boldnshit{color:#3d5bc3;font-weight:bold}.alien{color:#543354}.tajaran{color:#803b56}.tajaran_signlang{color:#941c1c}.akhani{color:#ac398c}.skrell{color:#00b0b3}.skrellfar{color:#70fcff}.soghun{color:#228b22}.solcom{color:#22228b}.changeling{color:purple}.sergal{color:#07f}.birdsongc{color:#c90}.vulpkanin{color:#b97a57}.enochian{color:#848a33;letter-spacing:-1pt;word-spacing:4pt;font-family:"Lucida Sans Unicode","Lucida Grande",sans-serif}.daemon{color:#5e339e;letter-spacing:-1pt;word-spacing:0pt;font-family:"Courier New",Courier,monospace}.bug{color:#9e9e39}.vox{color:#a0a}.zaddat{color:#941c1c}.squeakish{color:#f54298;font-family:Arial}.rough{font-family:"Trebuchet MS",cursive,sans-serif}.say_quote{font-family:Georgia,Verdana,sans-serif}.terminus{font-family:"Times New Roman",Times,serif,sans-serif}.interface{color:#303}.text-normal{font-weight:normal;font-style:normal}.hidden{display:none;visibility:hidden}.ml-1{margin-left:1em}.ml-2{margin-left:2em}.ml-3{margin-left:3em}
-.theme-light .color-black{color:#000 !important}.theme-light .color-white{color:#e6e6e6 !important}.theme-light .color-red{color:#c82121 !important}.theme-light .color-orange{color:#e6630d !important}.theme-light .color-yellow{color:#e5c304 !important}.theme-light .color-olive{color:#a3b816 !important}.theme-light .color-green{color:#1d9f3b !important}.theme-light .color-teal{color:#00a39c !important}.theme-light .color-blue{color:#1e78bb !important}.theme-light .color-violet{color:#5a30b5 !important}.theme-light .color-purple{color:#932eb4 !important}.theme-light .color-pink{color:#db228a !important}.theme-light .color-brown{color:#955d39 !important}.theme-light .color-grey{color:#e6e6e6 !important}.theme-light .color-good{color:#529923 !important}.theme-light .color-average{color:#da810e !important}.theme-light .color-bad{color:#c82121 !important}.theme-light .color-label{color:#353535 !important}.theme-light .color-bg-black{background-color:#000 !important}.theme-light .color-bg-white{background-color:#bfbfbf !important}.theme-light .color-bg-red{background-color:#a61c1c !important}.theme-light .color-bg-orange{background-color:#c0530b !important}.theme-light .color-bg-yellow{background-color:#bfa303 !important}.theme-light .color-bg-olive{background-color:#889912 !important}.theme-light .color-bg-green{background-color:#188532 !important}.theme-light .color-bg-teal{background-color:#008882 !important}.theme-light .color-bg-blue{background-color:#19649c !important}.theme-light .color-bg-violet{background-color:#4b2897 !important}.theme-light .color-bg-purple{background-color:#7a2696 !important}.theme-light .color-bg-pink{background-color:#b61d73 !important}.theme-light .color-bg-brown{background-color:#7c4d2f !important}.theme-light .color-bg-grey{background-color:#bfbfbf !important}.theme-light .color-bg-good{background-color:#44801d !important}.theme-light .color-bg-average{background-color:#b56b0b !important}.theme-light .color-bg-bad{background-color:#a61c1c !important}.theme-light .color-bg-label{background-color:#2c2c2c !important}.theme-light .Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:#fff}.theme-light .Tabs--fill{height:100%}.theme-light .Section .Tabs{background-color:transparent}.theme-light .Section:not(.Section--fitted) .Tabs{margin:0 -0.5em .5em}.theme-light .Section:not(.Section--fitted) .Tabs:first-child{margin-top:-0.5em}.theme-light .Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.theme-light .Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0 .25em}.theme-light .Tabs--horizontal:last-child{margin-bottom:0}.theme-light .Tabs__Tab{flex-grow:0}.theme-light .Tabs--fluid .Tabs__Tab{flex-grow:1}.theme-light .Tab{display:flex;align-items:center;justify-content:space-between;background-color:transparent;color:rgba(0,0,0,.5);min-height:2.25em;min-width:4em;transition:background-color 50ms ease-out}.theme-light .Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075);transition:background-color 0}.theme-light .Tab--selected{background-color:rgba(255,255,255,.125);color:#404040}.theme-light .Tab__text{flex-grow:1;margin:0 .5em}.theme-light .Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.theme-light .Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.theme-light .Tabs--horizontal .Tab{border-top:.1666666667em solid transparent;border-bottom:.1666666667em solid transparent;border-top-left-radius:.25em;border-top-right-radius:.25em}.theme-light .Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #000}.theme-light .Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid transparent;border-right:.1666666667em solid transparent;border-top-left-radius:.25em;border-bottom-left-radius:.25em}.theme-light .Tabs--vertical .Tab--selected{border-right:.1666666667em solid #000}.theme-light .Tab--selected.Tab--color--black{color:#404040}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#000}.theme-light .Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#000}.theme-light .Tab--selected.Tab--color--white{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--red{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--orange{color:#f48942}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#e6630d}.theme-light .Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#e6630d}.theme-light .Tab--selected.Tab--color--yellow{color:#fcdd33}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#e5c304}.theme-light .Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#e5c304}.theme-light .Tab--selected.Tab--color--olive{color:#d0e732}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#a3b816}.theme-light .Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#a3b816}.theme-light .Tab--selected.Tab--color--green{color:#33da5a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#1d9f3b}.theme-light .Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#1d9f3b}.theme-light .Tab--selected.Tab--color--teal{color:#00faef}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00a39c}.theme-light .Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00a39c}.theme-light .Tab--selected.Tab--color--blue{color:#419ce1}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#1e78bb}.theme-light .Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#1e78bb}.theme-light .Tab--selected.Tab--color--violet{color:#7f58d3}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#5a30b5}.theme-light .Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#5a30b5}.theme-light .Tab--selected.Tab--color--purple{color:#b455d4}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#932eb4}.theme-light .Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#932eb4}.theme-light .Tab--selected.Tab--color--pink{color:#e558a7}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#db228a}.theme-light .Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#db228a}.theme-light .Tab--selected.Tab--color--brown{color:#c0825a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#955d39}.theme-light .Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#955d39}.theme-light .Tab--selected.Tab--color--grey{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--good{color:#77d23b}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#529923}.theme-light .Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#529923}.theme-light .Tab--selected.Tab--color--average{color:#f3a23a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#da810e}.theme-light .Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#da810e}.theme-light .Tab--selected.Tab--color--bad{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--label{color:#686868}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#353535}.theme-light .Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#353535}.theme-light .Section{position:relative;margin-bottom:.5em;background-color:#fff;background-color:#fff;box-sizing:border-box}.theme-light .Section:last-child{margin-bottom:0}.theme-light .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #fff}.theme-light .Section__titleText{font-size:1.1666666667em;font-weight:bold;color:#000}.theme-light .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-light .Section__rest{position:relative}.theme-light .Section__content{padding:.66em .5em}.theme-light .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-light .Section--fill{display:flex;flex-direction:column;height:100%}.theme-light .Section--fill>.Section__rest{flex-grow:1}.theme-light .Section--fill>.Section__rest>.Section__content{height:100%}.theme-light .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-light .Section--fill.Section--iefix{display:table !important;width:100% !important;height:100% !important;border-collapse:collapse;border-spacing:0}.theme-light .Section--fill.Section--iefix>.Section__rest{display:table-row !important;height:100% !important}.theme-light .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-light .Section .Section{background-color:transparent;margin-left:-0.5em;margin-right:-0.5em}.theme-light .Section .Section:first-child{margin-top:-0.5em}.theme-light .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-light .Section .Section .Section .Section__titleText{font-size:1em}.theme-light .Section--flex{display:flex;flex-flow:column}.theme-light .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-light .Section__content--noTopPadding{padding-top:0}.theme-light .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-light .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-light .Button:last-child{margin-right:0;margin-bottom:0}.theme-light .Button .fa,.theme-light .Button .fas,.theme-light .Button .far{margin-left:-0.25em;margin-right:-0.25em;min-width:1.333em;text-align:center}.theme-light .Button--hasContent .fa,.theme-light .Button--hasContent .fas,.theme-light .Button--hasContent .far{margin-right:.25em}.theme-light .Button--hasContent.Button--iconPosition--right .fa,.theme-light .Button--hasContent.Button--iconPosition--right .fas,.theme-light .Button--hasContent.Button--iconPosition--right .far{margin-right:0px;margin-left:3px}.theme-light .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-light .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-light .Button--circular{border-radius:50%}.theme-light .Button--compact{padding:0 .25em;line-height:1.333em}.theme-light .Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-light .Button--color--black:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--black:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--black:hover,.theme-light .Button--color--black:focus{background-color:#131313;color:#fff}.theme-light .Button--color--white{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--white:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--white:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--white:hover,.theme-light .Button--color--white:focus{background-color:#efefef;color:#000}.theme-light .Button--color--red{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--red:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--red:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--red:hover,.theme-light .Button--color--red:focus{background-color:#d23333;color:#fff}.theme-light .Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#c0530b;color:#fff}.theme-light .Button--color--orange:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--orange:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--orange:hover,.theme-light .Button--color--orange:focus{background-color:#ea7426;color:#fff}.theme-light .Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#bfa303;color:#fff}.theme-light .Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--yellow:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--yellow:hover,.theme-light .Button--color--yellow:focus{background-color:#efce17;color:#fff}.theme-light .Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#889912;color:#fff}.theme-light .Button--color--olive:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--olive:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--olive:hover,.theme-light .Button--color--olive:focus{background-color:#afc328;color:#fff}.theme-light .Button--color--green{transition:color 50ms,background-color 50ms;background-color:#188532;color:#fff}.theme-light .Button--color--green:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--green:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--green:hover,.theme-light .Button--color--green:focus{background-color:#2fac4c;color:#fff}.theme-light .Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#008882;color:#fff}.theme-light .Button--color--teal:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--teal:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--teal:hover,.theme-light .Button--color--teal:focus{background-color:#13afa9;color:#fff}.theme-light .Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#19649c;color:#fff}.theme-light .Button--color--blue:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--blue:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--blue:hover,.theme-light .Button--color--blue:focus{background-color:#3086c7;color:#fff}.theme-light .Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#4b2897;color:#fff}.theme-light .Button--color--violet:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--violet:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--violet:hover,.theme-light .Button--color--violet:focus{background-color:#6a41c1;color:#fff}.theme-light .Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#7a2696;color:#fff}.theme-light .Button--color--purple:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--purple:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--purple:hover,.theme-light .Button--color--purple:focus{background-color:#a03fc0;color:#fff}.theme-light .Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#b61d73;color:#fff}.theme-light .Button--color--pink:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--pink:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--pink:hover,.theme-light .Button--color--pink:focus{background-color:#da3f96;color:#fff}.theme-light .Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#7c4d2f;color:#fff}.theme-light .Button--color--brown:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--brown:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--brown:hover,.theme-light .Button--color--brown:focus{background-color:#a26c49;color:#fff}.theme-light .Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--grey:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--grey:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--grey:hover,.theme-light .Button--color--grey:focus{background-color:#efefef;color:#000}.theme-light .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#44801d;color:#fff}.theme-light .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--good:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--good:hover,.theme-light .Button--color--good:focus{background-color:#62a635;color:#fff}.theme-light .Button--color--average{transition:color 50ms,background-color 50ms;background-color:#b56b0b;color:#fff}.theme-light .Button--color--average:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--average:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--average:hover,.theme-light .Button--color--average:focus{background-color:#e48f20;color:#fff}.theme-light .Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--bad:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--bad:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--bad:hover,.theme-light .Button--color--bad:focus{background-color:#d23333;color:#fff}.theme-light .Button--color--label{transition:color 50ms,background-color 50ms;background-color:#2c2c2c;color:#fff}.theme-light .Button--color--label:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--label:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--label:hover,.theme-light .Button--color--label:focus{background-color:#464646;color:#fff}.theme-light .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#bbb;color:#000}.theme-light .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--default:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--default:hover,.theme-light .Button--color--default:focus{background-color:#eaeaea;color:#000}.theme-light .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-light .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--caution:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--caution:hover,.theme-light .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-light .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-light .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--danger:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--danger:hover,.theme-light .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-light .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#eee;color:#000;background-color:rgba(238,238,238,0);color:rgba(0,0,0,.5)}.theme-light .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--transparent:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--transparent:hover,.theme-light .Button--color--transparent:focus{background-color:#fcfcfc;color:#000}.theme-light .Button--disabled{background-color:#363636 !important}.theme-light .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0668b8;color:#fff}.theme-light .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--selected:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--selected:hover,.theme-light .Button--selected:focus{background-color:#1a8be7;color:#fff}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:transparent}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:transparent}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#353535;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-light .NumberInput--fluid{display:block}.theme-light .NumberInput__content{margin-left:.5em}.theme-light .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-light .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #353535;background-color:#353535}.theme-light .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#fff;color:#000;text-align:right}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:transparent}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .TextArea{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;background-color:#fff;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.theme-light .TextArea--fluid{display:block;width:auto;height:auto}.theme-light .TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:transparent;color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.theme-light .TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto;margin-bottom:-0.2em;cursor:n-resize}.theme-light .Knob:after{content:".";color:transparent;line-height:2.5em}.theme-light .Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%);border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.theme-light .Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.theme-light .Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.theme-light .Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.theme-light .Knob__ringTrackPivot{transform:rotateZ(135deg)}.theme-light .Knob__ringTrack{fill:transparent;stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.theme-light .Knob__ringFillPivot{transform:rotateZ(135deg)}.theme-light .Knob--bipolar .Knob__ringFillPivot{transform:rotateZ(270deg)}.theme-light .Knob__ringFill{fill:transparent;stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.theme-light .Knob--color--black .Knob__ringFill{stroke:#000}.theme-light .Knob--color--white .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--red .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--orange .Knob__ringFill{stroke:#e6630d}.theme-light .Knob--color--yellow .Knob__ringFill{stroke:#e5c304}.theme-light .Knob--color--olive .Knob__ringFill{stroke:#a3b816}.theme-light .Knob--color--green .Knob__ringFill{stroke:#1d9f3b}.theme-light .Knob--color--teal .Knob__ringFill{stroke:#00a39c}.theme-light .Knob--color--blue .Knob__ringFill{stroke:#1e78bb}.theme-light .Knob--color--violet .Knob__ringFill{stroke:#5a30b5}.theme-light .Knob--color--purple .Knob__ringFill{stroke:#932eb4}.theme-light .Knob--color--pink .Knob__ringFill{stroke:#db228a}.theme-light .Knob--color--brown .Knob__ringFill{stroke:#955d39}.theme-light .Knob--color--grey .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--good .Knob__ringFill{stroke:#529923}.theme-light .Knob--color--average .Knob__ringFill{stroke:#da810e}.theme-light .Knob--color--bad .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--label .Knob__ringFill{stroke:#353535}.theme-light .Slider{cursor:e-resize}.theme-light .Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none !important}.theme-light .Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #000}.theme-light .Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid transparent;border-right:.4166666667em solid transparent;border-bottom:.4166666667em solid #000}.theme-light .Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color 900ms ease-out}.theme-light .ProgressBar__fill{position:absolute;top:-0.5px;left:0px;bottom:-0.5px}.theme-light .ProgressBar__fill--animated{transition:background-color 900ms ease-out,width 900ms ease-out}.theme-light .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-light .ProgressBar--color--default{border:.0833333333em solid #bfbfbf}.theme-light .ProgressBar--color--default .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--black{border:.0833333333em solid #000 !important}.theme-light .ProgressBar--color--black .ProgressBar__fill{background-color:#000}.theme-light .ProgressBar--color--white{border:.0833333333em solid #bfbfbf !important}.theme-light .ProgressBar--color--white .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--red{border:.0833333333em solid #a61c1c !important}.theme-light .ProgressBar--color--red .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--orange{border:.0833333333em solid #c0530b !important}.theme-light .ProgressBar--color--orange .ProgressBar__fill{background-color:#c0530b}.theme-light .ProgressBar--color--yellow{border:.0833333333em solid #bfa303 !important}.theme-light .ProgressBar--color--yellow .ProgressBar__fill{background-color:#bfa303}.theme-light .ProgressBar--color--olive{border:.0833333333em solid #889912 !important}.theme-light .ProgressBar--color--olive .ProgressBar__fill{background-color:#889912}.theme-light .ProgressBar--color--green{border:.0833333333em solid #188532 !important}.theme-light .ProgressBar--color--green .ProgressBar__fill{background-color:#188532}.theme-light .ProgressBar--color--teal{border:.0833333333em solid #008882 !important}.theme-light .ProgressBar--color--teal .ProgressBar__fill{background-color:#008882}.theme-light .ProgressBar--color--blue{border:.0833333333em solid #19649c !important}.theme-light .ProgressBar--color--blue .ProgressBar__fill{background-color:#19649c}.theme-light .ProgressBar--color--violet{border:.0833333333em solid #4b2897 !important}.theme-light .ProgressBar--color--violet .ProgressBar__fill{background-color:#4b2897}.theme-light .ProgressBar--color--purple{border:.0833333333em solid #7a2696 !important}.theme-light .ProgressBar--color--purple .ProgressBar__fill{background-color:#7a2696}.theme-light .ProgressBar--color--pink{border:.0833333333em solid #b61d73 !important}.theme-light .ProgressBar--color--pink .ProgressBar__fill{background-color:#b61d73}.theme-light .ProgressBar--color--brown{border:.0833333333em solid #7c4d2f !important}.theme-light .ProgressBar--color--brown .ProgressBar__fill{background-color:#7c4d2f}.theme-light .ProgressBar--color--grey{border:.0833333333em solid #bfbfbf !important}.theme-light .ProgressBar--color--grey .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--good{border:.0833333333em solid #44801d !important}.theme-light .ProgressBar--color--good .ProgressBar__fill{background-color:#44801d}.theme-light .ProgressBar--color--average{border:.0833333333em solid #b56b0b !important}.theme-light .ProgressBar--color--average .ProgressBar__fill{background-color:#b56b0b}.theme-light .ProgressBar--color--bad{border:.0833333333em solid #a61c1c !important}.theme-light .ProgressBar--color--bad .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--label{border:.0833333333em solid #2c2c2c !important}.theme-light .ProgressBar--color--label .ProgressBar__fill{background-color:#2c2c2c}.theme-light .Chat{color:#000}.theme-light .Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:crimson;border-radius:10px;transition:font-size 200ms ease-out}.theme-light .Chat__badge:before{content:"x"}.theme-light .Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.theme-light .Chat__scrollButton{position:fixed;right:2em;bottom:1em}.theme-light .Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.theme-light .Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#fff}.theme-light .Chat__reconnected:after{content:"";display:block;margin-top:-0.75em;border-bottom:.1666666667em solid #db2828}.theme-light .Chat__highlight{color:#000}.theme-light .Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:bold}.theme-light .ChatMessage{word-wrap:break-word}.theme-light .ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.theme-light .ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.theme-light .Layout,.theme-light .Layout *{scrollbar-base-color:#f2f2f2;scrollbar-face-color:#d6d6d6;scrollbar-3dlight-color:#eee;scrollbar-highlight-color:#eee;scrollbar-track-color:#f2f2f2;scrollbar-arrow-color:#777;scrollbar-shadow-color:#d6d6d6}.theme-light .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-light .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-light .Layout__content--flexRow{display:flex;flex-flow:row}.theme-light .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-light .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#eee;background-image:linear-gradient(to bottom, #eeeeee 0%, #eeeeee 100%)}.theme-light .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-light .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-light .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-light .Window__contentPadding:after{height:0}.theme-light .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-light .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(252,252,252,.25);pointer-events:none}.theme-light .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-light .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-light .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-light .TitleBar{background-color:#eee;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-light .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#eee;transition:color 250ms ease-out,background-color 250ms ease-out}.theme-light .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-light .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(0,0,0,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-light .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-light .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-light .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px !important;line-height:2.6666666667rem !important}.theme-light .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-light .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-light html,.theme-light body{padding:0;margin:0;height:100%;color:#000}.theme-light body{background:#e0e0e0;font-family:Verdana,sans-serif;font-size:13px;line-height:1.2;overflow-x:hidden;overflow-y:scroll;word-wrap:break-word}.theme-light em{font-style:normal;font-weight:bold}.theme-light img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}.theme-light img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}.theme-light a{color:blue}.theme-light a.visited{color:#f0f}.theme-light a:visited{color:#f0f}.theme-light a.popt{text-decoration:none}.theme-light .popup{position:fixed;top:50%;left:50%;background:#ddd}.theme-light .popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.theme-light .popup .close:hover{background:#999}.theme-light .popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:bold;border-bottom:2px solid green}.theme-light .popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.theme-light .popup input[type=text]:hover,.theme-light .popup input[type=text]:active,.theme-light .popup input[type=text]:focus{border-color:green}.theme-light .popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:bold}.theme-light .popup input[type=submit]:hover,.theme-light .popup input[type=submit]:focus,.theme-light .popup input[type=submit]:active{background:#aaa;cursor:pointer}.theme-light .changeFont{padding:10px}.theme-light .changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.theme-light .changeFont a:hover{background:#ccc}.theme-light .highlightPopup{padding:10px;text-align:center}.theme-light .highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.theme-light .highlightPopup input.highlightColor{background-color:#ff0}.theme-light .highlightPopup input.highlightTermSubmit{margin-top:5px}.theme-light .contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.theme-light .contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.theme-light .contextMenu a:hover{background-color:#ccc}.theme-light .filterMessages{padding:5px}.theme-light .filterMessages div{padding:2px 0}.theme-light .icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.theme-light .motd{color:#638500;font-family:Verdana,sans-serif;white-space:normal}.theme-light .motd h1,.theme-light .motd h2,.theme-light .motd h3,.theme-light .motd h4,.theme-light .motd h5,.theme-light .motd h6{color:#638500;text-decoration:underline}.theme-light .motd a,.theme-light .motd a:link,.theme-light .motd a:visited,.theme-light .motd a:active,.theme-light .motd a:hover{color:#638500}.theme-light .bold,.theme-light .name,.theme-light .prefix,.theme-light .ooc,.theme-light .looc,.theme-light .adminooc,.theme-light .admin,.theme-light .medal,.theme-light .yell{font-weight:bold}.theme-light .italic,.theme-light .italics{font-style:italic}.theme-light .highlight{background:#ff0}.theme-light h1,.theme-light h2,.theme-light h3,.theme-light h4,.theme-light h5,.theme-light h6{color:blue;font-family:Georgia,Verdana,sans-serif}.theme-light h1.alert,.theme-light h2.alert{color:#000}.theme-light em{font-style:normal;font-weight:bold}.theme-light .ooc{color:#002eb8;font-weight:bold}.theme-light .looc{color:#69c;font-weight:bold}.theme-light .aooc{color:#b8002e;font-weight:bold}.theme-light .event_manager{color:#603;font-weight:bold}.theme-light .adminobserverooc{color:#09c;font-weight:bold}.theme-light .adminooc{color:#700038;font-weight:bold}.theme-light .adminsay{color:#ff4500;font-weight:bold}.theme-light .adminobserver{color:#960;font-weight:bold}.theme-light .admin{color:#4473ff;font-weight:bold}.theme-light .log_message{color:#386aff;font-weight:bold}.theme-light .debug_error{color:red;font-weight:bold}.theme-light .debug_warning{color:red}.theme-light .debug_debug{color:blue}.theme-light .debug_trace{color:#888}.theme-light .mentorsay{color:#e236d8;font-weight:bold}.theme-light .mentorsay_admin{color:#8a2be2;font-weight:bold}.theme-light .mod_channel{color:#735638;font-weight:bold}.theme-light .name{font-weight:bold}.theme-light .deadsay{color:#5c00e6}.theme-light .binarysay{color:#20c20e;background-color:#000;display:block}.theme-light .binarysay a{color:lime}.theme-light .binarysay a:active,.theme-light .binarysay a:visited{color:#8f8}.theme-light .radio{color:green}.theme-light .sciradio{color:#939}.theme-light .comradio{color:#948f02}.theme-light .secradio{color:#a30000}.theme-light .medradio{color:#337296}.theme-light .engradio{color:#fb5613}.theme-light .suppradio{color:#a8732b}.theme-light .servradio{color:#6eaa2c}.theme-light .expradio{color:#555}.theme-light .syndradio{color:#6d3f40}.theme-light .gangradio{color:#ac2ea1}.theme-light .centcomradio{color:#686868}.theme-light .aiprivradio{color:#f0f}.theme-light .redteamradio{color:red}.theme-light .blueteamradio{color:blue}.theme-light .greenteamradio{color:lime}.theme-light .yellowteamradio{color:#d1ba22}.theme-light .yell{font-weight:bold}.theme-light .alert{color:red}.theme-light h1.alert,.theme-light h2.alert{color:#000}.theme-light .userdanger{color:red;font-weight:bold;font-size:185%}.theme-light .bolddanger{color:red;font-weight:bold}.theme-light .danger{color:red}.theme-light .tinydanger{color:red;font-size:85%}.theme-light .smalldanger{color:red;font-size:90%}.theme-light .warning{color:red;font-style:italic}.theme-light .alertwarning{color:red;font-weight:bold}.theme-light .boldwarning{color:red;font-style:italic;font-weight:bold}.theme-light .announce{color:#228b22;font-weight:bold}.theme-light .boldannounce{color:red;font-weight:bold}.theme-light .minorannounce{font-weight:bold;font-size:185%}.theme-light .greenannounce{color:lime;font-weight:bold}.theme-light .rose{color:#ff5050}.theme-light .info{color:#00c}.theme-light .notice{color:#009}.theme-light .tinynotice{color:#009;font-size:85%}.theme-light .tinynoticeital{color:#009;font-style:italic;font-size:85%}.theme-light .smallnotice{color:#009;font-size:90%}.theme-light .smallnoticeital{color:#009;font-style:italic;font-size:90%}.theme-light .boldnotice{color:#009;font-weight:bold}.theme-light .hear{color:#009;font-style:italic}.theme-light .adminnotice{color:blue}.theme-light .adminhelp{color:red;font-weight:bold}.theme-light .unconscious{color:blue;font-weight:bold}.theme-light .suicide{color:#ff5050;font-style:italic}.theme-light .green{color:#03ff39}.theme-light .red{color:red}.theme-light .blue{color:blue}.theme-light .nicegreen{color:#14a833}.theme-light .userlove{color:#ff1493;font-style:italic;font-weight:bold;text-shadow:0 0 6px #ff6dbc}.theme-light .love{color:#ff006a;font-style:italic;text-shadow:0 0 6px #ff6d6d}.theme-light .cult{color:#973e3b}.theme-light .cultitalic{color:#973e3b;font-style:italic}.theme-light .cultbold{color:#973e3b;font-style:italic;font-weight:bold}.theme-light .cultboldtalic{color:#973e3b;font-weight:bold;font-size:185%}.theme-light .cultlarge{color:#973e3b;font-weight:bold;font-size:185%}.theme-light .narsie{color:#973e3b;font-weight:bold;font-size:925%}.theme-light .narsiesmall{color:#973e3b;font-weight:bold;font-size:370%}.theme-light .colossus{color:#7f282a;font-size:310%}.theme-light .hierophant{color:#609;font-weight:bold;font-style:italic}.theme-light .hierophant_warning{color:#609;font-style:italic}.theme-light .purple{color:#5e2d79}.theme-light .holoparasite{color:#35333a}.theme-light .revennotice{color:#1d2953}.theme-light .revenboldnotice{color:#1d2953;font-weight:bold}.theme-light .revenbignotice{color:#1d2953;font-weight:bold;font-size:185%}.theme-light .revenminor{color:#823abb}.theme-light .revenwarning{color:#760fbb;font-style:italic}.theme-light .revendanger{color:#760fbb;font-weight:bold;font-size:185%}.theme-light .umbra{color:#5000a0}.theme-light .umbra_emphasis{color:#5000a0;font-weight:bold;font-style:italic}.theme-light .umbra_large{color:#5000a0;font-weight:bold;font-style:italic;font-size:3}.theme-light .deconversion_message{color:#5000a0;font-size:185%;font-style:italic}.theme-light .brass{color:#be8700}.theme-light .heavy_brass{color:#be8700;font-weight:bold;font-style:italic}.theme-light .large_brass{color:#be8700;font-size:185%}.theme-light .big_brass{color:#be8700;font-size:185%;font-weight:bold;font-style:italic}.theme-light .ratvar{color:#be8700;font-size:6;font-weight:bold;font-style:italic}.theme-light .alloy{color:#42474d}.theme-light .heavy_alloy{color:#42474d;font-weight:bold;font-style:italic}.theme-light .nezbere_large{color:#42474d;font-size:185%;font-weight:bold;font-style:italic}.theme-light .nezbere{color:#42474d;font-weight:bold;font-style:italic}.theme-light .nezbere_small{color:#42474d}.theme-light .sevtug_large{color:#af0aaf;font-size:185%;font-weight:bold;font-style:italic}.theme-light .sevtug{color:#af0aaf;font-weight:bold;font-style:italic}.theme-light .sevtug_small{color:#af0aaf}.theme-light .inathneq_large{color:#1e8ce1;font-size:185%;font-weight:bold;font-style:italic}.theme-light .inathneq{color:#1e8ce1;font-weight:bold;font-style:italic}.theme-light .inathneq_small{color:#1e8ce1}.theme-light .nzcrentr_large{color:#daaa18;font-size:185%;font-weight:bold;font-style:italic}.theme-light .nzcrentr{color:#daaa18;font-weight:bold;font-style:italic}.theme-light .nzcrentr_small{color:#daaa18}.theme-light .neovgre_large{color:#6e001a;font-size:185%;font-weight:bold;font-style:italic}.theme-light .neovgre{color:#6e001a;font-weight:bold;font-style:italic}.theme-light .neovgre_small{color:#6e001a}.theme-light .ghostalert{color:#5c00e6;font-style:italic;font-weight:bold}.theme-light .alien{color:#543354}.theme-light .noticealien{color:#00c000}.theme-light .alertalien{color:#00c000;font-weight:bold}.theme-light .changeling{color:purple;font-style:italic}.theme-light .alertsyndie{color:red;font-size:185%;font-weight:bold}.theme-light .spider{color:#4d004d;font-weight:bold;font-size:185%}.theme-light .interface{color:#303}.theme-light .sans{font-family:"Comic Sans MS",cursive,sans-serif}.theme-light .papyrus{font-family:"Papyrus",cursive,sans-serif}.theme-light .robot{font-family:"Courier New",cursive,sans-serif}.theme-light .tape_recorder{color:maroon;font-family:"Courier New",cursive,sans-serif}.theme-light .command_headset{font-weight:bold;font-size:125%}.theme-light .small{font-size:60%}.theme-light .big{font-size:185%}.theme-light .reallybig{font-size:245%}.theme-light .extremelybig{font-size:310%}.theme-light .greentext{color:lime;font-size:185%}.theme-light .redtext{color:red;font-size:185%}.theme-light .yellowtext{color:#fc0;font-size:185%}.theme-light .clown{color:#ff69bf;font-size:125%;font-family:"Comic Sans MS",cursive,sans-serif;font-weight:bold}.theme-light .singing{font-family:"Trebuchet MS",cursive,sans-serif;font-style:italic}.theme-light .his_grace{color:#15d512;font-family:"Courier New",cursive,sans-serif;font-style:italic}.theme-light .spooky{color:#ff9100}.theme-light .hypnophrase{color:#0d0d0d;font-weight:bold;animation:hypnocolor 1500ms infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#0d0d0d}25%{color:#410194}50%{color:#7f17d8}75%{color:#410194}100%{color:#3bb5d3}}.theme-light .velvet{color:#660015;font-weight:bold;animation:velvet 5000ms infinite;animation-direction:alternate}@keyframes velvet{0%{color:#400020}40%{color:red}50%{color:#f88}60%{color:red}100%{color:#400020}}.theme-light .phobia{color:#d00;font-weight:bold;animation:phobia 750ms infinite}@keyframes phobia{0%{color:#0d0d0d}50%{color:#d00}100%{color:#0d0d0d}}.theme-light .icon{height:1em;width:auto}.theme-light .iconbig{font-size:2.5em}.theme-light .memo{color:#638500;text-align:center}.theme-light .memoedit{text-align:center;font-size:125%}.theme-light .abductor{color:purple;font-style:italic}.theme-light .mind_control{color:#a00d6f;font-size:100%;font-weight:bold;font-style:italic}.theme-light .slime{color:#00ced1}.theme-light .drone{color:#848482}.theme-light .monkey{color:#975032}.theme-light .swarmer{color:#2c75ff}.theme-light .resonate{color:#298f85}.theme-light .monkeyhive{color:#774704}.theme-light .monkeylead{color:#774704;font-size:80%}.theme-light .connectionClosed,.theme-light .fatalError{background:red;color:#fff;padding:5px}.theme-light .connectionClosed.restored{background:green}.theme-light .internal.boldnshit{color:blue;font-weight:bold}.theme-light .alien{color:#543354}.theme-light .tajaran{color:#803b56}.theme-light .tajaran_signlang{color:#941c1c}.theme-light .akhani{color:#ac398c}.theme-light .skrell{color:#00b0b3}.theme-light .skrellfar{color:#70fcff}.theme-light .soghun{color:#228b22}.theme-light .solcom{color:#22228b}.theme-light .changeling{color:purple}.theme-light .sergal{color:#07f}.theme-light .birdsongc{color:#c90}.theme-light .vulpkanin{color:#b97a57}.theme-light .enochian{color:#848a33;letter-spacing:-1pt;word-spacing:4pt;font-family:"Lucida Sans Unicode","Lucida Grande",sans-serif}.theme-light .daemon{color:#5e339e;letter-spacing:-1pt;word-spacing:0pt;font-family:"Courier New",Courier,monospace}.theme-light .bug{color:#9e9e39}.theme-light .vox{color:#a0a}.theme-light .zaddat{color:#941c1c}.theme-light .squeakish{color:#f54298;font-family:Arial}.theme-light .rough{font-family:"Trebuchet MS",cursive,sans-serif}.theme-light .say_quote{font-family:Georgia,Verdana,sans-serif}.theme-light .terminus{font-family:"Times New Roman",Times,serif,sans-serif}.theme-light .interface{color:#303}.theme-light .text-normal{font-weight:normal;font-style:normal}.theme-light .hidden{display:none;visibility:hidden}.theme-light .ml-1{margin-left:1em}.theme-light .ml-2{margin-left:2em}.theme-light .ml-3{margin-left:3em}
+html,body{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,*:before,*:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:6px 0;padding:.5rem 0}h1{font-size:18px;font-size:1.5rem}h2{font-size:16px;font-size:1.333rem}h3{font-size:14px;font-size:1.167rem}h4{font-size:12px;font-size:1rem}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.color-black{color:#1a1a1a !important}.color-white{color:#fff !important}.color-red{color:#df3e3e !important}.color-orange{color:#f37f33 !important}.color-yellow{color:#fbda21 !important}.color-olive{color:#cbe41c !important}.color-green{color:#25ca4c !important}.color-teal{color:#00d6cc !important}.color-blue{color:#2e93de !important}.color-violet{color:#7349cf !important}.color-purple{color:#ad45d0 !important}.color-pink{color:#e34da1 !important}.color-brown{color:#b97447 !important}.color-grey{color:#848484 !important}.color-good{color:#68c22d !important}.color-average{color:#f29a29 !important}.color-bad{color:#df3e3e !important}.color-label{color:#8b9bb0 !important}.color-bg-black{background-color:#000 !important}.color-bg-white{background-color:#d9d9d9 !important}.color-bg-red{background-color:#bd2020 !important}.color-bg-orange{background-color:#d95e0c !important}.color-bg-yellow{background-color:#d9b804 !important}.color-bg-olive{background-color:#9aad14 !important}.color-bg-green{background-color:#1b9638 !important}.color-bg-teal{background-color:#009a93 !important}.color-bg-blue{background-color:#1c71b1 !important}.color-bg-violet{background-color:#552dab !important}.color-bg-purple{background-color:#8b2baa !important}.color-bg-pink{background-color:#cf2082 !important}.color-bg-brown{background-color:#8c5836 !important}.color-bg-grey{background-color:#646464 !important}.color-bg-good{background-color:#4d9121 !important}.color-bg-average{background-color:#cd7a0d !important}.color-bg-bad{background-color:#bd2020 !important}.color-bg-label{background-color:#657a94 !important}.debug-layout,.debug-layout *:not(g):not(path){color:rgba(255,255,255,.9) !important;background:transparent !important;outline:1px solid rgba(255,255,255,.5) !important;box-shadow:none !important;filter:none !important}.debug-layout:hover,.debug-layout *:not(g):not(path):hover{outline-color:rgba(255,255,255,.8) !important}.outline-dotted{outline-style:dotted !important}.outline-dashed{outline-style:dashed !important}.outline-solid{outline-style:solid !important}.outline-double{outline-style:double !important}.outline-groove{outline-style:groove !important}.outline-ridge{outline-style:ridge !important}.outline-inset{outline-style:inset !important}.outline-outset{outline-style:outset !important}.outline-color-black{outline:.167rem solid #1a1a1a !important}.outline-color-white{outline:.167rem solid #fff !important}.outline-color-red{outline:.167rem solid #df3e3e !important}.outline-color-orange{outline:.167rem solid #f37f33 !important}.outline-color-yellow{outline:.167rem solid #fbda21 !important}.outline-color-olive{outline:.167rem solid #cbe41c !important}.outline-color-green{outline:.167rem solid #25ca4c !important}.outline-color-teal{outline:.167rem solid #00d6cc !important}.outline-color-blue{outline:.167rem solid #2e93de !important}.outline-color-violet{outline:.167rem solid #7349cf !important}.outline-color-purple{outline:.167rem solid #ad45d0 !important}.outline-color-pink{outline:.167rem solid #e34da1 !important}.outline-color-brown{outline:.167rem solid #b97447 !important}.outline-color-grey{outline:.167rem solid #848484 !important}.outline-color-good{outline:.167rem solid #68c22d !important}.outline-color-average{outline:.167rem solid #f29a29 !important}.outline-color-bad{outline:.167rem solid #df3e3e !important}.outline-color-label{outline:.167rem solid #8b9bb0 !important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:bold}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8b9bb0;border-left:.1666666667em solid #8b9bb0;padding-left:.5em;margin-bottom:.5em}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.Button:last-child{margin-right:0;margin-bottom:0}.Button .fa,.Button .fas,.Button .far{margin-left:-0.25em;margin-right:-0.25em;min-width:1.333em;text-align:center}.Button--hasContent .fa,.Button--hasContent .fas,.Button--hasContent .far{margin-right:.25em}.Button--hasContent.Button--iconPosition--right .fa,.Button--hasContent.Button--iconPosition--right .fas,.Button--hasContent.Button--iconPosition--right .far{margin-right:0px;margin-left:3px}.Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--circular{border-radius:50%}.Button--compact{padding:0 .25em;line-height:1.333em}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color 100ms,background-color 100ms}.Button--color--black:hover,.Button--color--black:focus{background-color:#131313;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color 100ms,background-color 100ms}.Button--color--white:hover,.Button--color--white:focus{background-color:#f8f8f8;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color 100ms,background-color 100ms}.Button--color--red:hover,.Button--color--red:focus{background-color:#dc4848;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color 100ms,background-color 100ms}.Button--color--orange:hover,.Button--color--orange:focus{background-color:#f0853f;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color 100ms,background-color 100ms}.Button--color--yellow:hover,.Button--color--yellow:focus{background-color:#f5d72e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color 100ms,background-color 100ms}.Button--color--olive:hover,.Button--color--olive:focus{background-color:#c4da2b;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color 100ms,background-color 100ms}.Button--color--green:hover,.Button--color--green:focus{background-color:#32c154;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color 100ms,background-color 100ms}.Button--color--teal:hover,.Button--color--teal:focus{background-color:#13c4bc;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color 100ms,background-color 100ms}.Button--color--blue:hover,.Button--color--blue:focus{background-color:#3a95d9;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color 100ms,background-color 100ms}.Button--color--violet:hover,.Button--color--violet:focus{background-color:#7953cc;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color 100ms,background-color 100ms}.Button--color--purple:hover,.Button--color--purple:focus{background-color:#ad4fcd;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color 100ms,background-color 100ms}.Button--color--pink:hover,.Button--color--pink:focus{background-color:#e257a5;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color 100ms,background-color 100ms}.Button--color--brown:hover,.Button--color--brown:focus{background-color:#b47851;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color 100ms,background-color 100ms}.Button--color--grey:hover,.Button--color--grey:focus{background-color:#868686;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color 100ms,background-color 100ms}.Button--color--good:hover,.Button--color--good:focus{background-color:#6cba39;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color 100ms,background-color 100ms}.Button--color--average:hover,.Button--color--average:focus{background-color:#ed9d35;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color 100ms,background-color 100ms}.Button--color--bad:hover,.Button--color--bad:focus{background-color:#dc4848;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color 100ms,background-color 100ms}.Button--color--label:hover,.Button--color--label:focus{background-color:#91a1b3;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color 100ms,background-color 100ms}.Button--color--default:hover,.Button--color--default:focus{background-color:#5c83b0;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color 100ms,background-color 100ms}.Button--color--caution:hover,.Button--color--caution:focus{background-color:#f5d72e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color 100ms,background-color 100ms}.Button--color--danger:hover,.Button--color--danger:focus{background-color:#dc4848;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#202020;color:#fff;background-color:rgba(32,32,32,0);color:rgba(255,255,255,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color 100ms,background-color 100ms}.Button--color--transparent:hover,.Button--color--transparent:focus{background-color:#383838;color:#fff}.Button--disabled{background-color:#999 !important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color 100ms,background-color 100ms}.Button--selected:hover,.Button--selected:focus{background-color:#32c154;color:#fff}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Dropdown{position:relative}.Dropdown__control{position:relative;display:inline-block;font-family:Verdana,sans-serif;font-size:1em;width:8.3333333333em;line-height:1.4166666667em;user-select:none}.Dropdown__arrow-button{float:right;padding-left:.35em;width:1.2em;height:1.8333333333em;border-left:.0833333333em solid #000;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{position:absolute;overflow-y:auto;z-index:5;width:8.3333333333em;max-height:16.6666666667em;overflow-y:scroll;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-noscroll{position:absolute;overflow-y:auto;z-index:5;width:8.3333333333em;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menuentry{padding:.1666666667em .3333333333em;font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em;transition:background-color 100ms ease-out}.Dropdown__menuentry:hover{background-color:rgba(255,255,255,.2);transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.Dropdown__selected-text{display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;height:1.4166666667em;width:calc(100% - 1.2em)}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:table !important;width:105%;border-collapse:collapse;border-spacing:0}.Flex--iefix:after{content:"";display:table-cell;width:5%}.Flex--iefix--column{display:table !important;width:100% !important;height:100% !important;border-collapse:collapse;border-spacing:0}.Flex--iefix--column>.Flex__item--iefix{display:table-row !important}.Flex--iefix--column>.Flex__item--iefix--grow{height:100% !important}.Flex__item--iefix{display:table-cell !important;width:1% !important;min-width:99%}.Flex__item--iefix--grow{width:auto !important}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:transparent}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto;margin-bottom:-0.2em;cursor:n-resize}.Knob:after{content:".";color:transparent;line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%);border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotateZ(135deg)}.Knob__ringTrack{fill:transparent;stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotateZ(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotateZ(270deg)}.Knob__ringFill{fill:transparent;stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.Knob--color--black .Knob__ringFill{stroke:#1a1a1a}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#df3e3e}.Knob--color--orange .Knob__ringFill{stroke:#f37f33}.Knob--color--yellow .Knob__ringFill{stroke:#fbda21}.Knob--color--olive .Knob__ringFill{stroke:#cbe41c}.Knob--color--green .Knob__ringFill{stroke:#25ca4c}.Knob--color--teal .Knob__ringFill{stroke:#00d6cc}.Knob--color--blue .Knob__ringFill{stroke:#2e93de}.Knob--color--violet .Knob__ringFill{stroke:#7349cf}.Knob--color--purple .Knob__ringFill{stroke:#ad45d0}.Knob--color--pink .Knob__ringFill{stroke:#e34da1}.Knob--color--brown .Knob__ringFill{stroke:#b97447}.Knob--color--grey .Knob__ringFill{stroke:#848484}.Knob--color--good .Knob__ringFill{stroke:#68c22d}.Knob--color--average .Knob__ringFill{stroke:#f29a29}.Knob--color--bad .Knob__ringFill{stroke:#df3e3e}.Knob--color--label .Knob__ringFill{stroke:#8b9bb0}.LabeledList{display:table;width:100%;width:calc(100% + 1em);border-collapse:collapse;border-spacing:0;margin:-0.25em -0.5em;margin-bottom:0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:.25em .5em;border:0;text-align:left}.LabeledList__label{width:1%;white-space:nowrap;min-width:5em}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:.0833333333em;padding-bottom:0}.LabeledList__breakContents{word-break:break-all;word-wrap:break-word}.Modal{background-color:#202020;max-width:calc(100% - 1rem);padding:1rem}.NanoMap__container{overflow:hiddden;width:100%;z-index:1}.NanoMap__marker{z-index:10;padding:0px;margin:0px}.NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:bold;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg, transparent, transparent 0.8333333333em, rgba(0, 0, 0, 0.1) 0.8333333333em, rgba(0, 0, 0, 0.1) 1.6666666667em)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:transparent}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.NumberInput{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#88bfff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:.5em}.NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color 900ms ease-out}.ProgressBar__fill{position:absolute;top:-0.5px;left:0px;bottom:-0.5px}.ProgressBar__fill--animated{transition:background-color 900ms ease-out,width 900ms ease-out}.ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.ProgressBar--color--default{border:.0833333333em solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border:.0833333333em solid #000 !important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border:.0833333333em solid #d9d9d9 !important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border:.0833333333em solid #bd2020 !important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border:.0833333333em solid #d95e0c !important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border:.0833333333em solid #d9b804 !important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border:.0833333333em solid #9aad14 !important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border:.0833333333em solid #1b9638 !important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border:.0833333333em solid #009a93 !important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border:.0833333333em solid #1c71b1 !important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--violet{border:.0833333333em solid #552dab !important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border:.0833333333em solid #8b2baa !important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border:.0833333333em solid #cf2082 !important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border:.0833333333em solid #8c5836 !important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border:.0833333333em solid #646464 !important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--good{border:.0833333333em solid #4d9121 !important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border:.0833333333em solid #cd7a0d !important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border:.0833333333em solid #bd2020 !important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border:.0833333333em solid #657a94 !important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.Section{position:relative;margin-bottom:.5em;background-color:#131313;background-color:#131313;box-sizing:border-box}.Section:last-child{margin-bottom:0}.Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.Section__titleText{font-size:1.1666666667em;font-weight:bold;color:#fff}.Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.Section__rest{position:relative}.Section__content{padding:.66em .5em}.Section--fitted>.Section__rest>.Section__content{padding:0}.Section--fill{display:flex;flex-direction:column;height:100%}.Section--fill>.Section__rest{flex-grow:1}.Section--fill>.Section__rest>.Section__content{height:100%}.Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.Section--fill.Section--iefix{display:table !important;width:100% !important;height:100% !important;border-collapse:collapse;border-spacing:0}.Section--fill.Section--iefix>.Section__rest{display:table-row !important;height:100% !important}.Section--scrollable{overflow-x:hidden;overflow-y:hidden}.Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.Section .Section{background-color:transparent;margin-left:-0.5em;margin-right:-0.5em}.Section .Section:first-child{margin-top:-0.5em}.Section .Section .Section__titleText{font-size:1.0833333333em}.Section .Section .Section .Section__titleText{font-size:1em}.Section--flex{display:flex;flex-flow:column}.Section--flex .Section__content{overflow:auto;flex-grow:1}.Section__content--noTopPadding{padding-top:0}.Section__content--stretchContents{height:calc(100% - 3rem)}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none !important}.Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #fff}.Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid transparent;border-right:.4166666667em solid transparent;border-bottom:.4166666667em solid #fff}.Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--fill{height:100%}.Stack--horizontal>.Stack__item{margin-left:.5em}.Stack--horizontal>.Stack__item:first-child{margin-left:0}.Stack--vertical>.Stack__item{margin-top:.5em}.Stack--vertical>.Stack__item:first-child{margin-top:0}.Stack--horizontal>.Stack__divider:not(.Stack__divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--vertical>.Stack__divider:not(.Stack__divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 .25em}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__row--header .Table__cell,.Table__cell--header{font-weight:bold;padding-bottom:.5em}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:#131313}.Tabs--fill{height:100%}.Section .Tabs{background-color:transparent}.Section:not(.Section--fitted) .Tabs{margin:0 -0.5em .5em}.Section:not(.Section--fitted) .Tabs:first-child{margin-top:-0.5em}.Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0 .25em}.Tabs--horizontal:last-child{margin-bottom:0}.Tabs__Tab{flex-grow:0}.Tabs--fluid .Tabs__Tab{flex-grow:1}.Tab{display:flex;align-items:center;justify-content:space-between;background-color:transparent;color:rgba(255,255,255,.5);min-height:2.25em;min-width:4em;transition:background-color 50ms ease-out}.Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075);transition:background-color 0}.Tab--selected{background-color:rgba(255,255,255,.125);color:#dfe7f0}.Tab__text{flex-grow:1;margin:0 .5em}.Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.Tabs--horizontal .Tab{border-top:.1666666667em solid transparent;border-bottom:.1666666667em solid transparent;border-top-left-radius:.25em;border-top-right-radius:.25em}.Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #d4dfec}.Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid transparent;border-right:.1666666667em solid transparent;border-top-left-radius:.25em;border-bottom-left-radius:.25em}.Tabs--vertical .Tab--selected{border-right:.1666666667em solid #d4dfec}.Tab--selected.Tab--color--black{color:#535353}.Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#1a1a1a}.Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#1a1a1a}.Tab--selected.Tab--color--white{color:#fff}.Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#fff}.Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#fff}.Tab--selected.Tab--color--red{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#df3e3e}.Tab--selected.Tab--color--orange{color:#f69f66}.Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#f37f33}.Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#f37f33}.Tab--selected.Tab--color--yellow{color:#fce358}.Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#fbda21}.Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#fbda21}.Tab--selected.Tab--color--olive{color:#d8eb55}.Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#cbe41c}.Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#cbe41c}.Tab--selected.Tab--color--green{color:#53e074}.Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#25ca4c}.Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#25ca4c}.Tab--selected.Tab--color--teal{color:#21fff5}.Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00d6cc}.Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00d6cc}.Tab--selected.Tab--color--blue{color:#62aee6}.Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#2e93de}.Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#2e93de}.Tab--selected.Tab--color--violet{color:#9676db}.Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#7349cf}.Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#7349cf}.Tab--selected.Tab--color--purple{color:#c274db}.Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#ad45d0}.Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#ad45d0}.Tab--selected.Tab--color--pink{color:#ea79b9}.Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#e34da1}.Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#e34da1}.Tab--selected.Tab--color--brown{color:#ca9775}.Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#b97447}.Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#b97447}.Tab--selected.Tab--color--grey{color:#a3a3a3}.Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#848484}.Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#848484}.Tab--selected.Tab--color--good{color:#8cd95a}.Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#68c22d}.Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#68c22d}.Tab--selected.Tab--color--average{color:#f5b35e}.Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#f29a29}.Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#f29a29}.Tab--selected.Tab--color--bad{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#df3e3e}.Tab--selected.Tab--color--label{color:#a8b4c4}.Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#8b9bb0}.Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#8b9bb0}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:transparent}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.TextArea{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;background-color:#0a0a0a;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.TextArea--fluid{display:block;width:auto;height:auto}.TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:transparent;color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity 150ms ease-out;background-color:#000;color:#fff;box-shadow:.1em .1em 1.25em -0.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.Chat{color:#abc6ec}.Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:crimson;border-radius:10px;transition:font-size 200ms ease-out}.Chat__badge:before{content:"x"}.Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.Chat__scrollButton{position:fixed;right:2em;bottom:1em}.Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#131313}.Chat__reconnected:after{content:"";display:block;margin-top:-0.75em;border-bottom:.1666666667em solid #db2828}.Chat__highlight{color:#000}.Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:bold}.ChatMessage{word-wrap:break-word}.ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.Ping{position:relative;padding:.125em .25em;border:.0833333333em solid rgba(140,140,140,.5);border-radius:.25em;width:3.75em;text-align:right}.Ping__indicator{content:"";position:absolute;top:.5em;left:.5em;width:.5em;height:.5em;background-color:#888;border-radius:.25em}.Notifications{position:absolute;bottom:1em;left:1em;right:2em}.Notification{color:#fff;background-color:crimson;padding:.5em;margin:1em 0}.Notification:first-child{margin-top:0}.Notification:last-child{margin-bottom:0}.Layout,.Layout *{scrollbar-base-color:#181818;scrollbar-face-color:#363636;scrollbar-3dlight-color:#202020;scrollbar-highlight-color:#202020;scrollbar-track-color:#181818;scrollbar-arrow-color:#909090;scrollbar-shadow-color:#363636}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.Layout__content--flexRow{display:flex;flex-flow:row}.Layout__content--flexColumn{display:flex;flex-flow:column}.Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#202020;background-image:linear-gradient(to bottom, #202020 0%, #202020 100%)}.Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(56,56,56,.25);pointer-events:none}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}em{font-style:normal;font-weight:bold}img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}a{color:#397ea5}a.visited{color:#7c00e6}a:visited{color:#7c00e6}a.popt{text-decoration:none}.popup{position:fixed;top:50%;left:50%;background:#ddd}.popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.popup .close:hover{background:#999}.popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:bold;border-bottom:2px solid green}.popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.popup input[type=text]:hover,.popup input[type=text]:active,.popup input[type=text]:focus{border-color:green}.popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:bold}.popup input[type=submit]:hover,.popup input[type=submit]:focus,.popup input[type=submit]:active{background:#aaa;cursor:pointer}.changeFont{padding:10px}.changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.changeFont a:hover{background:#ccc}.highlightPopup{padding:10px;text-align:center}.highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.highlightPopup input.highlightColor{background-color:#ff0}.highlightPopup input.highlightTermSubmit{margin-top:5px}.contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.contextMenu a:hover{background-color:#ccc}.filterMessages{padding:5px}.filterMessages div{padding:2px 0}.icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.motd{color:#a4bad6;font-family:Verdana,sans-serif;white-space:normal}.motd h1,.motd h2,.motd h3,.motd h4,.motd h5,.motd h6{color:#a4bad6;text-decoration:underline}.motd a,.motd a:link,.motd a:visited,.motd a:active,.motd a:hover{color:#a4bad6}.bold,.name,.prefix,.ooc,.looc,.adminooc,.admin,.medal,.yell{font-weight:bold}.italic,.italics{font-style:italic}.highlight{background:#ff0}h1,h2,h3,h4,h5,h6{color:#a4bad6;font-family:Georgia,Verdana,sans-serif}h1.alert,h2.alert{color:#a4bad6}em{font-style:normal;font-weight:bold}.ooc{color:#cca300;font-weight:bold}.looc{color:#69c;font-weight:bold}.aooc{color:#b8002e;font-weight:bold}.event_manager{color:#603;font-weight:bold}.adminobserverooc{color:#09c;font-weight:bold}.adminooc{color:#3d5bc3;font-weight:bold}.adminsay{color:#ff4500;font-weight:bold}.adminobserver{color:#960;font-weight:bold}.admin{color:#5975da;font-weight:bold}.log_message{color:#386aff;font-weight:bold}.debug_error{color:red;font-weight:bold}.debug_warning{color:red}.debug_debug{color:blue}.debug_trace{color:#888}.mentorsay{color:#e236d8;font-weight:bold}.mentorsay_admin{color:#8a2be2;font-weight:bold}.mod_channel{color:#735638;font-weight:bold}.name{font-weight:bold}.deadsay{color:#e2c1ff}.binarysay{color:#1e90ff}.binarysay a{color:lime}.binarysay a:active,.binarysay a:visited{color:#8f8}.radio{color:#1ecc43}.sciradio{color:#c68cfa}.comradio{color:#fcdf03}.secradio{color:#dd3535}.medradio{color:#57b8f0}.engradio{color:#f37746}.suppradio{color:#b88646}.servradio{color:#6ca729}.syndradio{color:#8f4a4b}.gangradio{color:#ac2ea1}.centcomradio{color:#2681a5}.aiprivradio{color:#d65d95}.redteamradio{color:#f44}.blueteamradio{color:#3434fd}.greenteamradio{color:#34fd34}.yellowteamradio{color:#fdfd34}.yell{font-weight:bold}.alert{color:#d82020}.userdanger{color:#c51e1e;font-weight:bold;font-size:185%}.danger{color:#c51e1e}.warning{color:#c51e1e;font-style:italic}.alertwarning{color:red;font-weight:bold}.boldwarning{color:#c51e1e;font-style:italic;font-weight:bold}.announce{color:#c51e1e;font-weight:bold}.boldannounce{color:#c51e1e;font-weight:bold}.minorannounce{font-weight:bold;font-size:185%}.greenannounce{color:#059223;font-weight:bold}.rose{color:#ff5050}.info{color:#9ab0ff}.notice{color:#6685f5}.tinynotice{color:#6685f5;font-size:85%}.tinynoticeital{color:#6685f5;font-style:italic;font-size:85%}.smallnotice{color:#6685f5;font-size:90%}.smallnoticeital{color:#6685f5;font-style:italic;font-size:90%}.boldnotice{color:#6685f5;font-weight:bold}.hear{color:#6685f5;font-style:italic}.adminnotice{color:#6685f5}.adminhelp{color:red;font-weight:bold}.unconscious{color:#a4bad6;font-weight:bold}.suicide{color:#ff5050;font-style:italic}.green{color:#059223}.red{color:red}.blue{color:#215cff}.nicegreen{color:#059223}.userlove{color:#ff42a6;font-style:italic;font-weight:bold;text-shadow:0 0 6px #82365e}.love{color:#ff4591;font-style:italic;text-shadow:0 0 6px #994449}.cult{color:#973e3b}.cultitalic{color:#973e3b;font-style:italic}.cultbold{color:#973e3b;font-style:italic;font-weight:bold}.cultboldtalic{color:#973e3b;font-weight:bold;font-size:185%}.cultlarge{color:#973e3b;font-weight:bold;font-size:185%}.narsie{color:#973e3b;font-weight:bold;font-size:925%}.narsiesmall{color:#973e3b;font-weight:bold;font-size:370%}.colossus{color:#7f282a;font-size:310%}.hierophant{color:#b441ee;font-weight:bold;font-style:italic}.hierophant_warning{color:#c56bf1;font-style:italic}.purple{color:#9956d3}.holoparasite{color:#88809c}.revennotice{color:#c099e2}.revenboldnotice{color:#c099e2;font-weight:bold}.revenbignotice{color:#c099e2;font-weight:bold;font-size:185%}.revenminor{color:#823abb}.revenwarning{color:#760fbb;font-style:italic}.revendanger{color:#760fbb;font-weight:bold;font-size:185%}.umbra{color:#5000a0}.umbra_emphasis{color:#5000a0;font-weight:bold;font-style:italic}.umbra_large{color:#5000a0;font-weight:bold;font-style:italic;font-size:3}.deconversion_message{color:#a947ff;font-size:185%;font-style:italic}.brass{color:#be8700}.heavy_brass{color:#be8700;font-weight:bold;font-style:italic}.large_brass{color:#be8700;font-size:185%}.big_brass{color:#be8700;font-size:185%;font-weight:bold;font-style:italic}.ratvar{color:#be8700;font-size:6;font-weight:bold;font-style:italic}.alloy{color:#42474d}.heavy_alloy{color:#42474d;font-weight:bold;font-style:italic}.nezbere_large{color:#42474d;font-size:185%;font-weight:bold;font-style:italic}.nezbere{color:#42474d;font-weight:bold;font-style:italic}.nezbere_small{color:#42474d}.sevtug_large{color:#af0aaf;font-size:185%;font-weight:bold;font-style:italic}.sevtug{color:#af0aaf;font-weight:bold;font-style:italic}.sevtug_small{color:#af0aaf}.inathneq_large{color:#1e8ce1;font-size:185%;font-weight:bold;font-style:italic}.inathneq{color:#1e8ce1;font-weight:bold;font-style:italic}.inathneq_small{color:#1e8ce1}.nzcrentr_large{color:#daaa18;font-size:185%;font-weight:bold;font-style:italic}.nzcrentr{color:#daaa18;font-weight:bold;font-style:italic}.nzcrentr_small{color:#daaa18}.neovgre_large{color:#6e001a;font-size:185%;font-weight:bold;font-style:italic}.neovgre{color:#6e001a;font-weight:bold;font-style:italic}.neovgre_small{color:#6e001a}.ghostalert{color:#60f;font-style:italic;font-weight:bold}.alien{color:#855d85}.noticealien{color:#059223}.alertalien{color:#059223;font-weight:bold}.changeling{color:#059223;font-style:italic}.alertsyndie{color:red;font-size:185%;font-weight:bold}.spider{color:#80f;font-weight:bold;font-size:185%}.interface{color:#750e75}.sans{font-family:"Comic Sans MS",cursive,sans-serif}.papyrus{font-family:"Papyrus",cursive,sans-serif}.robot{font-family:"Courier New",cursive,sans-serif}.tape_recorder{color:red;font-family:"Courier New",cursive,sans-serif}.command_headset{font-weight:bold;font-size:125%}.small{font-size:60%}.big{font-size:185%}.reallybig{font-size:245%}.extremelybig{font-size:310%}.greentext{color:#059223;font-size:185%}.redtext{color:#c51e1e;font-size:185%}.yellowtext{color:#fc0;font-size:185%}.clown{color:#ff70c1;font-size:125%;font-family:"Comic Sans MS",cursive,sans-serif;font-weight:bold}.singing{font-family:"Trebuchet MS",cursive,sans-serif;font-style:italic}.his_grace{color:#15d512;font-family:"Courier New",cursive,sans-serif;font-style:italic}.spooky{color:#ff9100}.hypnophrase{color:#202020;font-weight:bold;animation:hypnocolor 1500ms infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#202020}25%{color:#4b02ac}50%{color:#9f41f1}75%{color:#541c9c}100%{color:#7adbf3}}.velvet{color:#660015;font-weight:bold;animation:velvet 5000ms infinite;animation-direction:alternate}@keyframes velvet{0%{color:#400020}40%{color:red}50%{color:#f88}60%{color:red}100%{color:#400020}}.phobia{color:#d00;font-weight:bold;animation:phobia 750ms infinite}@keyframes phobia{0%{color:#f75a5a}50%{color:#d00}100%{color:#f75a5a}}.icon{height:1em;width:auto}.iconbig{font-size:2.5em}.memo{color:#638500;text-align:center}.memoedit{text-align:center;font-size:125%}.abductor{color:#c204c2;font-style:italic}.mind_control{color:#df3da9;font-size:100%;font-weight:bold;font-style:italic}.slime{color:#00ced1}.drone{color:#848482}.monkey{color:#975032}.swarmer{color:#2c75ff}.resonate{color:#298f85}.monkeyhive{color:#a56408}.monkeylead{color:#af6805;font-size:80%}.connectionClosed,.fatalError{background:red;color:#fff;padding:5px}.connectionClosed.restored{background:green}.internal.boldnshit{color:#3d5bc3;font-weight:bold}.alien{color:#543354}.tajaran{color:#803b56}.tajaran_signlang{color:#941c1c}.akhani{color:#ac398c}.skrell{color:#00b0b3}.skrellfar{color:#70fcff}.soghun{color:#228b22}.solcom{color:#22228b}.changeling{color:purple}.sergal{color:#07f}.birdsongc{color:#c90}.vulpkanin{color:#b97a57}.enochian{color:#848a33;letter-spacing:-1pt;word-spacing:4pt;font-family:"Lucida Sans Unicode","Lucida Grande",sans-serif}.daemon{color:#5e339e;letter-spacing:-1pt;word-spacing:0pt;font-family:"Courier New",Courier,monospace}.bug{color:#9e9e39}.vox{color:#a0a}.zaddat{color:#941c1c}.akula{color:#c51e1e}.squeakish{color:#f54298;font-family:Arial}.rough{font-family:"Trebuchet MS",cursive,sans-serif}.say_quote{font-family:Georgia,Verdana,sans-serif}.terminus{font-family:"Times New Roman",Times,serif,sans-serif}.interface{color:#303}.text-normal{font-weight:normal;font-style:normal}.hidden{display:none;visibility:hidden}.ml-1{margin-left:1em}.ml-2{margin-left:2em}.ml-3{margin-left:3em}
+.theme-light .color-black{color:#000 !important}.theme-light .color-white{color:#e6e6e6 !important}.theme-light .color-red{color:#c82121 !important}.theme-light .color-orange{color:#e6630d !important}.theme-light .color-yellow{color:#e5c304 !important}.theme-light .color-olive{color:#a3b816 !important}.theme-light .color-green{color:#1d9f3b !important}.theme-light .color-teal{color:#00a39c !important}.theme-light .color-blue{color:#1e78bb !important}.theme-light .color-violet{color:#5a30b5 !important}.theme-light .color-purple{color:#932eb4 !important}.theme-light .color-pink{color:#db228a !important}.theme-light .color-brown{color:#955d39 !important}.theme-light .color-grey{color:#e6e6e6 !important}.theme-light .color-good{color:#529923 !important}.theme-light .color-average{color:#da810e !important}.theme-light .color-bad{color:#c82121 !important}.theme-light .color-label{color:#353535 !important}.theme-light .color-bg-black{background-color:#000 !important}.theme-light .color-bg-white{background-color:#bfbfbf !important}.theme-light .color-bg-red{background-color:#a61c1c !important}.theme-light .color-bg-orange{background-color:#c0530b !important}.theme-light .color-bg-yellow{background-color:#bfa303 !important}.theme-light .color-bg-olive{background-color:#889912 !important}.theme-light .color-bg-green{background-color:#188532 !important}.theme-light .color-bg-teal{background-color:#008882 !important}.theme-light .color-bg-blue{background-color:#19649c !important}.theme-light .color-bg-violet{background-color:#4b2897 !important}.theme-light .color-bg-purple{background-color:#7a2696 !important}.theme-light .color-bg-pink{background-color:#b61d73 !important}.theme-light .color-bg-brown{background-color:#7c4d2f !important}.theme-light .color-bg-grey{background-color:#bfbfbf !important}.theme-light .color-bg-good{background-color:#44801d !important}.theme-light .color-bg-average{background-color:#b56b0b !important}.theme-light .color-bg-bad{background-color:#a61c1c !important}.theme-light .color-bg-label{background-color:#2c2c2c !important}.theme-light .Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:#fff}.theme-light .Tabs--fill{height:100%}.theme-light .Section .Tabs{background-color:transparent}.theme-light .Section:not(.Section--fitted) .Tabs{margin:0 -0.5em .5em}.theme-light .Section:not(.Section--fitted) .Tabs:first-child{margin-top:-0.5em}.theme-light .Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.theme-light .Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0 .25em}.theme-light .Tabs--horizontal:last-child{margin-bottom:0}.theme-light .Tabs__Tab{flex-grow:0}.theme-light .Tabs--fluid .Tabs__Tab{flex-grow:1}.theme-light .Tab{display:flex;align-items:center;justify-content:space-between;background-color:transparent;color:rgba(0,0,0,.5);min-height:2.25em;min-width:4em;transition:background-color 50ms ease-out}.theme-light .Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075);transition:background-color 0}.theme-light .Tab--selected{background-color:rgba(255,255,255,.125);color:#404040}.theme-light .Tab__text{flex-grow:1;margin:0 .5em}.theme-light .Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.theme-light .Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.theme-light .Tabs--horizontal .Tab{border-top:.1666666667em solid transparent;border-bottom:.1666666667em solid transparent;border-top-left-radius:.25em;border-top-right-radius:.25em}.theme-light .Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #000}.theme-light .Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid transparent;border-right:.1666666667em solid transparent;border-top-left-radius:.25em;border-bottom-left-radius:.25em}.theme-light .Tabs--vertical .Tab--selected{border-right:.1666666667em solid #000}.theme-light .Tab--selected.Tab--color--black{color:#404040}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#000}.theme-light .Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#000}.theme-light .Tab--selected.Tab--color--white{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--red{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--orange{color:#f48942}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#e6630d}.theme-light .Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#e6630d}.theme-light .Tab--selected.Tab--color--yellow{color:#fcdd33}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#e5c304}.theme-light .Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#e5c304}.theme-light .Tab--selected.Tab--color--olive{color:#d0e732}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#a3b816}.theme-light .Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#a3b816}.theme-light .Tab--selected.Tab--color--green{color:#33da5a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#1d9f3b}.theme-light .Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#1d9f3b}.theme-light .Tab--selected.Tab--color--teal{color:#00faef}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00a39c}.theme-light .Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00a39c}.theme-light .Tab--selected.Tab--color--blue{color:#419ce1}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#1e78bb}.theme-light .Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#1e78bb}.theme-light .Tab--selected.Tab--color--violet{color:#7f58d3}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#5a30b5}.theme-light .Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#5a30b5}.theme-light .Tab--selected.Tab--color--purple{color:#b455d4}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#932eb4}.theme-light .Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#932eb4}.theme-light .Tab--selected.Tab--color--pink{color:#e558a7}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#db228a}.theme-light .Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#db228a}.theme-light .Tab--selected.Tab--color--brown{color:#c0825a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#955d39}.theme-light .Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#955d39}.theme-light .Tab--selected.Tab--color--grey{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--good{color:#77d23b}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#529923}.theme-light .Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#529923}.theme-light .Tab--selected.Tab--color--average{color:#f3a23a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#da810e}.theme-light .Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#da810e}.theme-light .Tab--selected.Tab--color--bad{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--label{color:#686868}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#353535}.theme-light .Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#353535}.theme-light .Section{position:relative;margin-bottom:.5em;background-color:#fff;background-color:#fff;box-sizing:border-box}.theme-light .Section:last-child{margin-bottom:0}.theme-light .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #fff}.theme-light .Section__titleText{font-size:1.1666666667em;font-weight:bold;color:#000}.theme-light .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-light .Section__rest{position:relative}.theme-light .Section__content{padding:.66em .5em}.theme-light .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-light .Section--fill{display:flex;flex-direction:column;height:100%}.theme-light .Section--fill>.Section__rest{flex-grow:1}.theme-light .Section--fill>.Section__rest>.Section__content{height:100%}.theme-light .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-light .Section--fill.Section--iefix{display:table !important;width:100% !important;height:100% !important;border-collapse:collapse;border-spacing:0}.theme-light .Section--fill.Section--iefix>.Section__rest{display:table-row !important;height:100% !important}.theme-light .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-light .Section .Section{background-color:transparent;margin-left:-0.5em;margin-right:-0.5em}.theme-light .Section .Section:first-child{margin-top:-0.5em}.theme-light .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-light .Section .Section .Section .Section__titleText{font-size:1em}.theme-light .Section--flex{display:flex;flex-flow:column}.theme-light .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-light .Section__content--noTopPadding{padding-top:0}.theme-light .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-light .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-light .Button:last-child{margin-right:0;margin-bottom:0}.theme-light .Button .fa,.theme-light .Button .fas,.theme-light .Button .far{margin-left:-0.25em;margin-right:-0.25em;min-width:1.333em;text-align:center}.theme-light .Button--hasContent .fa,.theme-light .Button--hasContent .fas,.theme-light .Button--hasContent .far{margin-right:.25em}.theme-light .Button--hasContent.Button--iconPosition--right .fa,.theme-light .Button--hasContent.Button--iconPosition--right .fas,.theme-light .Button--hasContent.Button--iconPosition--right .far{margin-right:0px;margin-left:3px}.theme-light .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-light .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-light .Button--circular{border-radius:50%}.theme-light .Button--compact{padding:0 .25em;line-height:1.333em}.theme-light .Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-light .Button--color--black:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--black:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--black:hover,.theme-light .Button--color--black:focus{background-color:#131313;color:#fff}.theme-light .Button--color--white{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--white:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--white:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--white:hover,.theme-light .Button--color--white:focus{background-color:#efefef;color:#000}.theme-light .Button--color--red{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--red:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--red:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--red:hover,.theme-light .Button--color--red:focus{background-color:#d23333;color:#fff}.theme-light .Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#c0530b;color:#fff}.theme-light .Button--color--orange:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--orange:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--orange:hover,.theme-light .Button--color--orange:focus{background-color:#ea7426;color:#fff}.theme-light .Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#bfa303;color:#fff}.theme-light .Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--yellow:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--yellow:hover,.theme-light .Button--color--yellow:focus{background-color:#efce17;color:#fff}.theme-light .Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#889912;color:#fff}.theme-light .Button--color--olive:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--olive:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--olive:hover,.theme-light .Button--color--olive:focus{background-color:#afc328;color:#fff}.theme-light .Button--color--green{transition:color 50ms,background-color 50ms;background-color:#188532;color:#fff}.theme-light .Button--color--green:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--green:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--green:hover,.theme-light .Button--color--green:focus{background-color:#2fac4c;color:#fff}.theme-light .Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#008882;color:#fff}.theme-light .Button--color--teal:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--teal:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--teal:hover,.theme-light .Button--color--teal:focus{background-color:#13afa9;color:#fff}.theme-light .Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#19649c;color:#fff}.theme-light .Button--color--blue:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--blue:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--blue:hover,.theme-light .Button--color--blue:focus{background-color:#3086c7;color:#fff}.theme-light .Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#4b2897;color:#fff}.theme-light .Button--color--violet:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--violet:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--violet:hover,.theme-light .Button--color--violet:focus{background-color:#6a41c1;color:#fff}.theme-light .Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#7a2696;color:#fff}.theme-light .Button--color--purple:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--purple:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--purple:hover,.theme-light .Button--color--purple:focus{background-color:#a03fc0;color:#fff}.theme-light .Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#b61d73;color:#fff}.theme-light .Button--color--pink:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--pink:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--pink:hover,.theme-light .Button--color--pink:focus{background-color:#da3f96;color:#fff}.theme-light .Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#7c4d2f;color:#fff}.theme-light .Button--color--brown:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--brown:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--brown:hover,.theme-light .Button--color--brown:focus{background-color:#a26c49;color:#fff}.theme-light .Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--grey:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--grey:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--grey:hover,.theme-light .Button--color--grey:focus{background-color:#efefef;color:#000}.theme-light .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#44801d;color:#fff}.theme-light .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--good:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--good:hover,.theme-light .Button--color--good:focus{background-color:#62a635;color:#fff}.theme-light .Button--color--average{transition:color 50ms,background-color 50ms;background-color:#b56b0b;color:#fff}.theme-light .Button--color--average:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--average:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--average:hover,.theme-light .Button--color--average:focus{background-color:#e48f20;color:#fff}.theme-light .Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--bad:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--bad:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--bad:hover,.theme-light .Button--color--bad:focus{background-color:#d23333;color:#fff}.theme-light .Button--color--label{transition:color 50ms,background-color 50ms;background-color:#2c2c2c;color:#fff}.theme-light .Button--color--label:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--label:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--label:hover,.theme-light .Button--color--label:focus{background-color:#464646;color:#fff}.theme-light .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#bbb;color:#000}.theme-light .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--default:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--default:hover,.theme-light .Button--color--default:focus{background-color:#eaeaea;color:#000}.theme-light .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-light .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--caution:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--caution:hover,.theme-light .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-light .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-light .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--danger:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--danger:hover,.theme-light .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-light .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#eee;color:#000;background-color:rgba(238,238,238,0);color:rgba(0,0,0,.5)}.theme-light .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--transparent:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--transparent:hover,.theme-light .Button--color--transparent:focus{background-color:#fcfcfc;color:#000}.theme-light .Button--disabled{background-color:#363636 !important}.theme-light .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0668b8;color:#fff}.theme-light .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--selected:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--selected:hover,.theme-light .Button--selected:focus{background-color:#1a8be7;color:#fff}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:transparent}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:transparent}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#353535;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-light .NumberInput--fluid{display:block}.theme-light .NumberInput__content{margin-left:.5em}.theme-light .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-light .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #353535;background-color:#353535}.theme-light .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#fff;color:#000;text-align:right}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:transparent}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .TextArea{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;background-color:#fff;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.theme-light .TextArea--fluid{display:block;width:auto;height:auto}.theme-light .TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:transparent;color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.theme-light .TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto;margin-bottom:-0.2em;cursor:n-resize}.theme-light .Knob:after{content:".";color:transparent;line-height:2.5em}.theme-light .Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%);border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.theme-light .Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.theme-light .Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.theme-light .Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.theme-light .Knob__ringTrackPivot{transform:rotateZ(135deg)}.theme-light .Knob__ringTrack{fill:transparent;stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.theme-light .Knob__ringFillPivot{transform:rotateZ(135deg)}.theme-light .Knob--bipolar .Knob__ringFillPivot{transform:rotateZ(270deg)}.theme-light .Knob__ringFill{fill:transparent;stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.theme-light .Knob--color--black .Knob__ringFill{stroke:#000}.theme-light .Knob--color--white .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--red .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--orange .Knob__ringFill{stroke:#e6630d}.theme-light .Knob--color--yellow .Knob__ringFill{stroke:#e5c304}.theme-light .Knob--color--olive .Knob__ringFill{stroke:#a3b816}.theme-light .Knob--color--green .Knob__ringFill{stroke:#1d9f3b}.theme-light .Knob--color--teal .Knob__ringFill{stroke:#00a39c}.theme-light .Knob--color--blue .Knob__ringFill{stroke:#1e78bb}.theme-light .Knob--color--violet .Knob__ringFill{stroke:#5a30b5}.theme-light .Knob--color--purple .Knob__ringFill{stroke:#932eb4}.theme-light .Knob--color--pink .Knob__ringFill{stroke:#db228a}.theme-light .Knob--color--brown .Knob__ringFill{stroke:#955d39}.theme-light .Knob--color--grey .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--good .Knob__ringFill{stroke:#529923}.theme-light .Knob--color--average .Knob__ringFill{stroke:#da810e}.theme-light .Knob--color--bad .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--label .Knob__ringFill{stroke:#353535}.theme-light .Slider{cursor:e-resize}.theme-light .Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none !important}.theme-light .Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #000}.theme-light .Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid transparent;border-right:.4166666667em solid transparent;border-bottom:.4166666667em solid #000}.theme-light .Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color 900ms ease-out}.theme-light .ProgressBar__fill{position:absolute;top:-0.5px;left:0px;bottom:-0.5px}.theme-light .ProgressBar__fill--animated{transition:background-color 900ms ease-out,width 900ms ease-out}.theme-light .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-light .ProgressBar--color--default{border:.0833333333em solid #bfbfbf}.theme-light .ProgressBar--color--default .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--black{border:.0833333333em solid #000 !important}.theme-light .ProgressBar--color--black .ProgressBar__fill{background-color:#000}.theme-light .ProgressBar--color--white{border:.0833333333em solid #bfbfbf !important}.theme-light .ProgressBar--color--white .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--red{border:.0833333333em solid #a61c1c !important}.theme-light .ProgressBar--color--red .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--orange{border:.0833333333em solid #c0530b !important}.theme-light .ProgressBar--color--orange .ProgressBar__fill{background-color:#c0530b}.theme-light .ProgressBar--color--yellow{border:.0833333333em solid #bfa303 !important}.theme-light .ProgressBar--color--yellow .ProgressBar__fill{background-color:#bfa303}.theme-light .ProgressBar--color--olive{border:.0833333333em solid #889912 !important}.theme-light .ProgressBar--color--olive .ProgressBar__fill{background-color:#889912}.theme-light .ProgressBar--color--green{border:.0833333333em solid #188532 !important}.theme-light .ProgressBar--color--green .ProgressBar__fill{background-color:#188532}.theme-light .ProgressBar--color--teal{border:.0833333333em solid #008882 !important}.theme-light .ProgressBar--color--teal .ProgressBar__fill{background-color:#008882}.theme-light .ProgressBar--color--blue{border:.0833333333em solid #19649c !important}.theme-light .ProgressBar--color--blue .ProgressBar__fill{background-color:#19649c}.theme-light .ProgressBar--color--violet{border:.0833333333em solid #4b2897 !important}.theme-light .ProgressBar--color--violet .ProgressBar__fill{background-color:#4b2897}.theme-light .ProgressBar--color--purple{border:.0833333333em solid #7a2696 !important}.theme-light .ProgressBar--color--purple .ProgressBar__fill{background-color:#7a2696}.theme-light .ProgressBar--color--pink{border:.0833333333em solid #b61d73 !important}.theme-light .ProgressBar--color--pink .ProgressBar__fill{background-color:#b61d73}.theme-light .ProgressBar--color--brown{border:.0833333333em solid #7c4d2f !important}.theme-light .ProgressBar--color--brown .ProgressBar__fill{background-color:#7c4d2f}.theme-light .ProgressBar--color--grey{border:.0833333333em solid #bfbfbf !important}.theme-light .ProgressBar--color--grey .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--good{border:.0833333333em solid #44801d !important}.theme-light .ProgressBar--color--good .ProgressBar__fill{background-color:#44801d}.theme-light .ProgressBar--color--average{border:.0833333333em solid #b56b0b !important}.theme-light .ProgressBar--color--average .ProgressBar__fill{background-color:#b56b0b}.theme-light .ProgressBar--color--bad{border:.0833333333em solid #a61c1c !important}.theme-light .ProgressBar--color--bad .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--label{border:.0833333333em solid #2c2c2c !important}.theme-light .ProgressBar--color--label .ProgressBar__fill{background-color:#2c2c2c}.theme-light .Chat{color:#000}.theme-light .Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:crimson;border-radius:10px;transition:font-size 200ms ease-out}.theme-light .Chat__badge:before{content:"x"}.theme-light .Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.theme-light .Chat__scrollButton{position:fixed;right:2em;bottom:1em}.theme-light .Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.theme-light .Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#fff}.theme-light .Chat__reconnected:after{content:"";display:block;margin-top:-0.75em;border-bottom:.1666666667em solid #db2828}.theme-light .Chat__highlight{color:#000}.theme-light .Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:bold}.theme-light .ChatMessage{word-wrap:break-word}.theme-light .ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.theme-light .ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.theme-light .Layout,.theme-light .Layout *{scrollbar-base-color:#f2f2f2;scrollbar-face-color:#d6d6d6;scrollbar-3dlight-color:#eee;scrollbar-highlight-color:#eee;scrollbar-track-color:#f2f2f2;scrollbar-arrow-color:#777;scrollbar-shadow-color:#d6d6d6}.theme-light .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-light .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-light .Layout__content--flexRow{display:flex;flex-flow:row}.theme-light .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-light .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#eee;background-image:linear-gradient(to bottom, #eeeeee 0%, #eeeeee 100%)}.theme-light .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-light .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-light .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-light .Window__contentPadding:after{height:0}.theme-light .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-light .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(252,252,252,.25);pointer-events:none}.theme-light .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-light .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-light .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-light .TitleBar{background-color:#eee;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-light .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#eee;transition:color 250ms ease-out,background-color 250ms ease-out}.theme-light .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-light .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(0,0,0,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-light .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-light .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-light .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px !important;line-height:2.6666666667rem !important}.theme-light .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-light .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-light html,.theme-light body{padding:0;margin:0;height:100%;color:#000}.theme-light body{background:#e0e0e0;font-family:Verdana,sans-serif;font-size:13px;line-height:1.2;overflow-x:hidden;overflow-y:scroll;word-wrap:break-word}.theme-light em{font-style:normal;font-weight:bold}.theme-light img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}.theme-light img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}.theme-light a{color:blue}.theme-light a.visited{color:#f0f}.theme-light a:visited{color:#f0f}.theme-light a.popt{text-decoration:none}.theme-light .popup{position:fixed;top:50%;left:50%;background:#ddd}.theme-light .popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.theme-light .popup .close:hover{background:#999}.theme-light .popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:bold;border-bottom:2px solid green}.theme-light .popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.theme-light .popup input[type=text]:hover,.theme-light .popup input[type=text]:active,.theme-light .popup input[type=text]:focus{border-color:green}.theme-light .popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:bold}.theme-light .popup input[type=submit]:hover,.theme-light .popup input[type=submit]:focus,.theme-light .popup input[type=submit]:active{background:#aaa;cursor:pointer}.theme-light .changeFont{padding:10px}.theme-light .changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.theme-light .changeFont a:hover{background:#ccc}.theme-light .highlightPopup{padding:10px;text-align:center}.theme-light .highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.theme-light .highlightPopup input.highlightColor{background-color:#ff0}.theme-light .highlightPopup input.highlightTermSubmit{margin-top:5px}.theme-light .contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.theme-light .contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.theme-light .contextMenu a:hover{background-color:#ccc}.theme-light .filterMessages{padding:5px}.theme-light .filterMessages div{padding:2px 0}.theme-light .icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.theme-light .motd{color:#638500;font-family:Verdana,sans-serif;white-space:normal}.theme-light .motd h1,.theme-light .motd h2,.theme-light .motd h3,.theme-light .motd h4,.theme-light .motd h5,.theme-light .motd h6{color:#638500;text-decoration:underline}.theme-light .motd a,.theme-light .motd a:link,.theme-light .motd a:visited,.theme-light .motd a:active,.theme-light .motd a:hover{color:#638500}.theme-light .bold,.theme-light .name,.theme-light .prefix,.theme-light .ooc,.theme-light .looc,.theme-light .adminooc,.theme-light .admin,.theme-light .medal,.theme-light .yell{font-weight:bold}.theme-light .italic,.theme-light .italics{font-style:italic}.theme-light .highlight{background:#ff0}.theme-light h1,.theme-light h2,.theme-light h3,.theme-light h4,.theme-light h5,.theme-light h6{color:blue;font-family:Georgia,Verdana,sans-serif}.theme-light h1.alert,.theme-light h2.alert{color:#000}.theme-light em{font-style:normal;font-weight:bold}.theme-light .ooc{color:#002eb8;font-weight:bold}.theme-light .looc{color:#69c;font-weight:bold}.theme-light .aooc{color:#b8002e;font-weight:bold}.theme-light .event_manager{color:#603;font-weight:bold}.theme-light .adminobserverooc{color:#09c;font-weight:bold}.theme-light .adminooc{color:#700038;font-weight:bold}.theme-light .adminsay{color:#ff4500;font-weight:bold}.theme-light .adminobserver{color:#960;font-weight:bold}.theme-light .admin{color:#4473ff;font-weight:bold}.theme-light .log_message{color:#386aff;font-weight:bold}.theme-light .debug_error{color:red;font-weight:bold}.theme-light .debug_warning{color:red}.theme-light .debug_debug{color:blue}.theme-light .debug_trace{color:#888}.theme-light .mentorsay{color:#e236d8;font-weight:bold}.theme-light .mentorsay_admin{color:#8a2be2;font-weight:bold}.theme-light .mod_channel{color:#735638;font-weight:bold}.theme-light .name{font-weight:bold}.theme-light .deadsay{color:#5c00e6}.theme-light .binarysay{color:#20c20e;background-color:#000;display:block}.theme-light .binarysay a{color:lime}.theme-light .binarysay a:active,.theme-light .binarysay a:visited{color:#8f8}.theme-light .radio{color:green}.theme-light .sciradio{color:#939}.theme-light .comradio{color:#948f02}.theme-light .secradio{color:#a30000}.theme-light .medradio{color:#337296}.theme-light .engradio{color:#fb5613}.theme-light .suppradio{color:#a8732b}.theme-light .servradio{color:#6eaa2c}.theme-light .expradio{color:#555}.theme-light .syndradio{color:#6d3f40}.theme-light .gangradio{color:#ac2ea1}.theme-light .centcomradio{color:#686868}.theme-light .aiprivradio{color:#f0f}.theme-light .redteamradio{color:red}.theme-light .blueteamradio{color:blue}.theme-light .greenteamradio{color:lime}.theme-light .yellowteamradio{color:#d1ba22}.theme-light .yell{font-weight:bold}.theme-light .alert{color:red}.theme-light h1.alert,.theme-light h2.alert{color:#000}.theme-light .userdanger{color:red;font-weight:bold;font-size:185%}.theme-light .bolddanger{color:red;font-weight:bold}.theme-light .danger{color:red}.theme-light .tinydanger{color:red;font-size:85%}.theme-light .smalldanger{color:red;font-size:90%}.theme-light .warning{color:red;font-style:italic}.theme-light .alertwarning{color:red;font-weight:bold}.theme-light .boldwarning{color:red;font-style:italic;font-weight:bold}.theme-light .announce{color:#228b22;font-weight:bold}.theme-light .boldannounce{color:red;font-weight:bold}.theme-light .minorannounce{font-weight:bold;font-size:185%}.theme-light .greenannounce{color:lime;font-weight:bold}.theme-light .rose{color:#ff5050}.theme-light .info{color:#00c}.theme-light .notice{color:#009}.theme-light .tinynotice{color:#009;font-size:85%}.theme-light .tinynoticeital{color:#009;font-style:italic;font-size:85%}.theme-light .smallnotice{color:#009;font-size:90%}.theme-light .smallnoticeital{color:#009;font-style:italic;font-size:90%}.theme-light .boldnotice{color:#009;font-weight:bold}.theme-light .hear{color:#009;font-style:italic}.theme-light .adminnotice{color:blue}.theme-light .adminhelp{color:red;font-weight:bold}.theme-light .unconscious{color:blue;font-weight:bold}.theme-light .suicide{color:#ff5050;font-style:italic}.theme-light .green{color:#03ff39}.theme-light .red{color:red}.theme-light .blue{color:blue}.theme-light .nicegreen{color:#14a833}.theme-light .userlove{color:#ff1493;font-style:italic;font-weight:bold;text-shadow:0 0 6px #ff6dbc}.theme-light .love{color:#ff006a;font-style:italic;text-shadow:0 0 6px #ff6d6d}.theme-light .cult{color:#973e3b}.theme-light .cultitalic{color:#973e3b;font-style:italic}.theme-light .cultbold{color:#973e3b;font-style:italic;font-weight:bold}.theme-light .cultboldtalic{color:#973e3b;font-weight:bold;font-size:185%}.theme-light .cultlarge{color:#973e3b;font-weight:bold;font-size:185%}.theme-light .narsie{color:#973e3b;font-weight:bold;font-size:925%}.theme-light .narsiesmall{color:#973e3b;font-weight:bold;font-size:370%}.theme-light .colossus{color:#7f282a;font-size:310%}.theme-light .hierophant{color:#609;font-weight:bold;font-style:italic}.theme-light .hierophant_warning{color:#609;font-style:italic}.theme-light .purple{color:#5e2d79}.theme-light .holoparasite{color:#35333a}.theme-light .revennotice{color:#1d2953}.theme-light .revenboldnotice{color:#1d2953;font-weight:bold}.theme-light .revenbignotice{color:#1d2953;font-weight:bold;font-size:185%}.theme-light .revenminor{color:#823abb}.theme-light .revenwarning{color:#760fbb;font-style:italic}.theme-light .revendanger{color:#760fbb;font-weight:bold;font-size:185%}.theme-light .umbra{color:#5000a0}.theme-light .umbra_emphasis{color:#5000a0;font-weight:bold;font-style:italic}.theme-light .umbra_large{color:#5000a0;font-weight:bold;font-style:italic;font-size:3}.theme-light .deconversion_message{color:#5000a0;font-size:185%;font-style:italic}.theme-light .brass{color:#be8700}.theme-light .heavy_brass{color:#be8700;font-weight:bold;font-style:italic}.theme-light .large_brass{color:#be8700;font-size:185%}.theme-light .big_brass{color:#be8700;font-size:185%;font-weight:bold;font-style:italic}.theme-light .ratvar{color:#be8700;font-size:6;font-weight:bold;font-style:italic}.theme-light .alloy{color:#42474d}.theme-light .heavy_alloy{color:#42474d;font-weight:bold;font-style:italic}.theme-light .nezbere_large{color:#42474d;font-size:185%;font-weight:bold;font-style:italic}.theme-light .nezbere{color:#42474d;font-weight:bold;font-style:italic}.theme-light .nezbere_small{color:#42474d}.theme-light .sevtug_large{color:#af0aaf;font-size:185%;font-weight:bold;font-style:italic}.theme-light .sevtug{color:#af0aaf;font-weight:bold;font-style:italic}.theme-light .sevtug_small{color:#af0aaf}.theme-light .inathneq_large{color:#1e8ce1;font-size:185%;font-weight:bold;font-style:italic}.theme-light .inathneq{color:#1e8ce1;font-weight:bold;font-style:italic}.theme-light .inathneq_small{color:#1e8ce1}.theme-light .nzcrentr_large{color:#daaa18;font-size:185%;font-weight:bold;font-style:italic}.theme-light .nzcrentr{color:#daaa18;font-weight:bold;font-style:italic}.theme-light .nzcrentr_small{color:#daaa18}.theme-light .neovgre_large{color:#6e001a;font-size:185%;font-weight:bold;font-style:italic}.theme-light .neovgre{color:#6e001a;font-weight:bold;font-style:italic}.theme-light .neovgre_small{color:#6e001a}.theme-light .ghostalert{color:#5c00e6;font-style:italic;font-weight:bold}.theme-light .alien{color:#543354}.theme-light .noticealien{color:#00c000}.theme-light .alertalien{color:#00c000;font-weight:bold}.theme-light .changeling{color:purple;font-style:italic}.theme-light .alertsyndie{color:red;font-size:185%;font-weight:bold}.theme-light .spider{color:#4d004d;font-weight:bold;font-size:185%}.theme-light .interface{color:#303}.theme-light .sans{font-family:"Comic Sans MS",cursive,sans-serif}.theme-light .papyrus{font-family:"Papyrus",cursive,sans-serif}.theme-light .robot{font-family:"Courier New",cursive,sans-serif}.theme-light .tape_recorder{color:maroon;font-family:"Courier New",cursive,sans-serif}.theme-light .command_headset{font-weight:bold;font-size:125%}.theme-light .small{font-size:60%}.theme-light .big{font-size:185%}.theme-light .reallybig{font-size:245%}.theme-light .extremelybig{font-size:310%}.theme-light .greentext{color:lime;font-size:185%}.theme-light .redtext{color:red;font-size:185%}.theme-light .yellowtext{color:#fc0;font-size:185%}.theme-light .clown{color:#ff69bf;font-size:125%;font-family:"Comic Sans MS",cursive,sans-serif;font-weight:bold}.theme-light .singing{font-family:"Trebuchet MS",cursive,sans-serif;font-style:italic}.theme-light .his_grace{color:#15d512;font-family:"Courier New",cursive,sans-serif;font-style:italic}.theme-light .spooky{color:#ff9100}.theme-light .hypnophrase{color:#0d0d0d;font-weight:bold;animation:hypnocolor 1500ms infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#0d0d0d}25%{color:#410194}50%{color:#7f17d8}75%{color:#410194}100%{color:#3bb5d3}}.theme-light .velvet{color:#660015;font-weight:bold;animation:velvet 5000ms infinite;animation-direction:alternate}@keyframes velvet{0%{color:#400020}40%{color:red}50%{color:#f88}60%{color:red}100%{color:#400020}}.theme-light .phobia{color:#d00;font-weight:bold;animation:phobia 750ms infinite}@keyframes phobia{0%{color:#0d0d0d}50%{color:#d00}100%{color:#0d0d0d}}.theme-light .icon{height:1em;width:auto}.theme-light .iconbig{font-size:2.5em}.theme-light .memo{color:#638500;text-align:center}.theme-light .memoedit{text-align:center;font-size:125%}.theme-light .abductor{color:purple;font-style:italic}.theme-light .mind_control{color:#a00d6f;font-size:100%;font-weight:bold;font-style:italic}.theme-light .slime{color:#00ced1}.theme-light .drone{color:#848482}.theme-light .monkey{color:#975032}.theme-light .swarmer{color:#2c75ff}.theme-light .resonate{color:#298f85}.theme-light .monkeyhive{color:#774704}.theme-light .monkeylead{color:#774704;font-size:80%}.theme-light .connectionClosed,.theme-light .fatalError{background:red;color:#fff;padding:5px}.theme-light .connectionClosed.restored{background:green}.theme-light .internal.boldnshit{color:blue;font-weight:bold}.theme-light .alien{color:#543354}.theme-light .tajaran{color:#803b56}.theme-light .tajaran_signlang{color:#941c1c}.theme-light .akhani{color:#ac398c}.theme-light .skrell{color:#00b0b3}.theme-light .skrellfar{color:#70fcff}.theme-light .soghun{color:#228b22}.theme-light .solcom{color:#22228b}.theme-light .changeling{color:purple}.theme-light .sergal{color:#07f}.theme-light .birdsongc{color:#c90}.theme-light .vulpkanin{color:#b97a57}.theme-light .enochian{color:#848a33;letter-spacing:-1pt;word-spacing:4pt;font-family:"Lucida Sans Unicode","Lucida Grande",sans-serif}.theme-light .daemon{color:#5e339e;letter-spacing:-1pt;word-spacing:0pt;font-family:"Courier New",Courier,monospace}.theme-light .bug{color:#9e9e39}.theme-light .vox{color:#a0a}.theme-light .zaddat{color:#941c1c}.theme-light .akula{color:red}.theme-light .squeakish{color:#f54298;font-family:Arial}.theme-light .rough{font-family:"Trebuchet MS",cursive,sans-serif}.theme-light .say_quote{font-family:Georgia,Verdana,sans-serif}.theme-light .terminus{font-family:"Times New Roman",Times,serif,sans-serif}.theme-light .interface{color:#303}.theme-light .text-normal{font-weight:normal;font-style:normal}.theme-light .hidden{display:none;visibility:hidden}.theme-light .ml-1{margin-left:1em}.theme-light .ml-2{margin-left:2em}.theme-light .ml-3{margin-left:3em}
diff --git a/vorestation.dme b/vorestation.dme
index ad4cd71a9ac..f7047005230 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -108,6 +108,7 @@
#include "code\__DEFINES\atmospherics\helpers.dm"
#include "code\__DEFINES\atmospherics\pipes.dm"
#include "code\__DEFINES\carbon\languages.dm"
+#include "code\__DEFINES\carbon\organs.dm"
#include "code\__DEFINES\carbon\species.dm"
#include "code\__DEFINES\color\color.dm"
#include "code\__DEFINES\color\colour_priority.dm"
@@ -2506,6 +2507,7 @@
#include "code\modules\mob\language\station.dm"
#include "code\modules\mob\language\synthetic.dm"
#include "code\modules\mob\living\autohiss.dm"
+#include "code\modules\mob\living\butchering.dm"
#include "code\modules\mob\living\damage_procs.dm"
#include "code\modules\mob\living\death.dm"
#include "code\modules\mob\living\default_language.dm"
@@ -2520,6 +2522,7 @@
#include "code\modules\mob\living\living_vr.dm"
#include "code\modules\mob\living\login.dm"
#include "code\modules\mob\living\logout.dm"
+#include "code\modules\mob\living\organs.dm"
#include "code\modules\mob\living\say.dm"
#include "code\modules\mob\living\status_indicators.dm"
#include "code\modules\mob\living\bot\assembly.dm"
@@ -2751,6 +2754,7 @@
#include "code\modules\mob\living\simple_mob\corpse.dm"
#include "code\modules\mob\living\simple_mob\defense.dm"
#include "code\modules\mob\living\simple_mob\hands.dm"
+#include "code\modules\mob\living\simple_mob\harvesting.dm"
#include "code\modules\mob\living\simple_mob\life.dm"
#include "code\modules\mob\living\simple_mob\on_click.dm"
#include "code\modules\mob\living\simple_mob\simple_hud.dm"