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) ("") -#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"