diff --git a/code/__DEFINES/research.dm b/code/__DEFINES/research.dm index 85314155c58..8e4fc4ca1d8 100644 --- a/code/__DEFINES/research.dm +++ b/code/__DEFINES/research.dm @@ -1,9 +1,8 @@ - +///Defines for the R&D console, see: [/modules/research/rdconsole][rdconsole] #define RDCONSOLE_UI_MODE_NORMAL 1 #define RDCONSOLE_UI_MODE_EXPERT 2 #define RDCONSOLE_UI_MODE_LIST 3 -//RDSCREEN screens #define RDSCREEN_MENU 0 #define RDSCREEN_TECHDISK 1 #define RDSCREEN_DESIGNDISK 20 @@ -27,6 +26,7 @@ #define RDSCREEN_NOBREAK "" +///Sanity check defines for when these devices aren't connected or no disk is inserted #define RDSCREEN_TEXT_NO_PROTOLATHE "

No Protolathe Linked!


" #define RDSCREEN_TEXT_NO_IMPRINTER "

No Circuit Imprinter Linked!


" #define RDSCREEN_TEXT_NO_DECONSTRUCT "

No Destructive Analyzer Linked!


" @@ -43,12 +43,14 @@ #define RDSCREEN_UI_SNODE_CHECK if(!selected_node) { return RDSCREEN_TEXT_NO_SNODE } #define RDSCREEN_UI_SDESIGN_CHECK if(!selected_design) { return RDSCREEN_TEXT_NO_SDESIGN } +///Defines for the Protolathe screens, see: [/modules/research/machinery/protolathe][Protolathe] #define RESEARCH_FABRICATOR_SCREEN_MAIN 1 #define RESEARCH_FABRICATOR_SCREEN_CHEMICALS 2 #define RESEARCH_FABRICATOR_SCREEN_MATERIALS 3 #define RESEARCH_FABRICATOR_SCREEN_SEARCH 4 #define RESEARCH_FABRICATOR_SCREEN_CATEGORYVIEW 5 +///Department flags for techwebs. Defines which department can print what from each protolathe so Cargo can't print guns, etc. #define DEPARTMENTAL_FLAG_SECURITY (1<<0) #define DEPARTMENTAL_FLAG_MEDICAL (1<<1) #define DEPARTMENTAL_FLAG_CARGO (1<<2) @@ -56,28 +58,28 @@ #define DEPARTMENTAL_FLAG_ENGINEERING (1<<4) #define DEPARTMENTAL_FLAG_SERVICE (1<<5) #define DEPARTMENTAL_FLAG_ALL (1<<6) //NO THIS DOESN'T ALLOW YOU TO PRINT EVERYTHING, IT'S FOR ALL DEPARTMENTS! -//#define DEPARTMENTAL_FLAG_MINING (1<<7) +//#define DEPARTMENTAL_FLAG_MINING (1<<7) //I swear I'm actually going to use this eventually leave it here -#define DESIGN_ID_IGNORE "IGNORE_THIS_DESIGN" +#define DESIGN_ID_IGNORE "IGNORE_THIS_DESIGN" ///For instances where we don't want a design showing up due to it being for debug/sanity purposes #define RESEARCH_MATERIAL_RECLAMATION_ID "__materials" -//When adding new types, update the list below! +///Techweb names for new point types. Can be used to define specific point values for specific types of research (science, security, engineering, etc.) #define TECHWEB_POINT_TYPE_GENERIC "General Research" #define TECHWEB_POINT_TYPE_NANITES "Nanite Research" #define TECHWEB_POINT_TYPE_DEFAULT TECHWEB_POINT_TYPE_GENERIC -//defined here so people don't forget to change this! +///Associative names for techweb point values, see: [/modules/research/techweb/all_nodes][all_nodes] #define TECHWEB_POINT_TYPE_LIST_ASSOCIATIVE_NAMES list(\ TECHWEB_POINT_TYPE_GENERIC = "General Research",\ TECHWEB_POINT_TYPE_NANITES = "Nanite Research"\ ) -#define TECHWEB_BOMB_POINTCAP 50000 //Adjust as needed; Stops toxins from nullifying RND progression mechanics. Current Value Cap Radius: 100 - -//research point values for slime extracts +///R&D point value for a maxcap bomb. Can be adjusted if need be. Current Value Cap Radius: 100 +#define TECHWEB_BOMB_POINTCAP 50000 +///Research point values for slime extracts, see: [/modules/research/xenobiology/xenobio_camera][xenobio_camera] #define SLIME_RESEARCH_TIER_0 100 #define SLIME_RESEARCH_TIER_1 500 #define SLIME_RESEARCH_TIER_2 1000 diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index cc8c020152f..3853f076cdb 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -11,12 +11,12 @@ throw_speed = 3 throw_range = 6 grind_results = list() - var/Uses = 1 // uses before it goes inert - var/qdel_timer = null // deletion timer, for delayed reactions - var/effectmod - var/list/activate_reagents = list() //Reagents required for activation + var/Uses = 1 ///uses before it goes inert + var/qdel_timer = null ///deletion timer, for delayed reactions + var/effectmod ///Which type of crossbred + var/list/activate_reagents = list() ///Reagents required for activation var/recurring = FALSE - var/research //Research point value + var/research ///Research point value for slime cores. These are defines stored in [/__DEFINES/research] - the actual values are updated there. /obj/item/slime_extract/examine(mob/user) . = ..() @@ -45,12 +45,24 @@ if(Uses) grind_results[/datum/reagent/toxin/slimejelly] = 20 -//Effect when activated by a Luminescent. Separated into a minor and major effect. Returns cooldown in deciseconds. +/** +* Effect when activated by a Luminescent. +* +* This proc is called whenever a Luminescent consumes a slime extract. Each one is separated into major and minor effects depending on the extract. Cooldown is measured in deciseconds. +* +* * arg1 - The mob absorbing the slime extract. +* * arg2 - The valid species for the absorbtion. Should always be a Luminescent unless something very major has changed. +* * arg3 - Whether or not the activation is major or minor. Major activations have large, complex effects, minor are simple. +*/ /obj/item/slime_extract/proc/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) to_chat(user, "Nothing happened... This slime extract cannot be activated this way.") return 0 -//Core-crossing: Feeding adult slimes extracts to obtain a much more powerful, single extract. +/** +* Core-crossing: Feeding adult slimes extracts to obtain a much more powerful, single extract. +* +* By using a valid core on a living adult slime, then feeding it nine more of the same type, you can mutate it into more useful items. Not every slime type has an implemented core cross. +*/ /obj/item/slime_extract/attack(mob/living/simple_animal/slime/M, mob/user) if(!isslime(M)) return ..() @@ -628,6 +640,16 @@ ////Slime-derived potions/// +/** +* #Slime potions +* +* Feed slimes potions either by hand or using the slime console. +* +* Slime potions either augment the slime's behavior, its extract output, or its intelligence. These all come either from extract effects or cross cores. +* A few of the more powerful ones can modify someone's equipment or gender. +* New ones should probably be accessible only through cross cores as all the normal core types already have uses. Rule of thumb is 'stronger effects go in cross cores'. +*/ + /obj/item/slimepotion name = "slime potion" desc = "A hard yet gelatinous capsule excreted by a slime, containing mysterious substances." @@ -1001,6 +1023,8 @@ imp.implant(M, user) qdel(src) +///Definitions for slime products that don't have anywhere else to go (Floor tiles, blueprints). + /obj/item/stack/tile/bluespace name = "bluespace floor tile" singular_name = "floor tile"