diff --git a/code/__DEFINES/research.dm b/code/__DEFINES/research.dm index e06aa3ab576..85314155c58 100644 --- a/code/__DEFINES/research.dm +++ b/code/__DEFINES/research.dm @@ -75,3 +75,13 @@ ) #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 + +#define SLIME_RESEARCH_TIER_0 100 +#define SLIME_RESEARCH_TIER_1 500 +#define SLIME_RESEARCH_TIER_2 1000 +#define SLIME_RESEARCH_TIER_3 1500 +#define SLIME_RESEARCH_TIER_4 2000 +#define SLIME_RESEARCH_TIER_5 2500 +#define SLIME_RESEARCH_TIER_RAINBOW 5000 diff --git a/code/controllers/subsystem/research.dm b/code/controllers/subsystem/research.dm index b71daaa0d28..c7688e01686 100644 --- a/code/controllers/subsystem/research.dm +++ b/code/controllers/subsystem/research.dm @@ -30,6 +30,7 @@ SUBSYSTEM_DEF(research) ) var/list/errored_datums = list() var/list/point_types = list() //typecache style type = TRUE list + var/list/slime_already_researched = list() //Slime cores that have already been researched //---------------------------------------------- var/list/single_server_income = list(TECHWEB_POINT_TYPE_GENERIC = 52.3) var/multiserver_calculation = FALSE diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 036578f718c..e893c7cc8b5 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -169,6 +169,28 @@ current_potion = O to_chat(user, "You load [O] in the console's potion slot[replaced ? ", replacing the one that was there before" : ""].") return + else if(istype(O, /obj/item/slime_extract)) + var/obj/item/slime_extract/E = O + if(!SSresearch.slime_already_researched[E.type]) + if(!E.research) + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 3, -1) + visible_message("[src] buzzes and displays a message: Invalid extract! (You shouldn't be seeing this. If you are, tell someone.)") + return + if(E.Uses <= 0) + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 3, -1) + visible_message("[src] buzzes and displays a message: Extract consumed - no research available.") + return + else + playsound(src, 'sound/machines/ping.ogg', 50, 3, -1) + visible_message("You insert [E] into a slot on the [src]. It pings and prints out some research notes worth [E.research] points!") + new /obj/item/research_notes(drop_location(), E.research, "xenobiology") + SSresearch.slime_already_researched[E.type] = TRUE + qdel(O) + return + else + visible_message("[src] buzzes and displays a message: Slime extract already researched!") + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 3, -1) + return ..() /obj/machinery/computer/camera_advanced/xenobio/multitool_act(mob/living/user, obj/item/multitool/I) diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index f7440816b32..2c265031e13 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -16,6 +16,7 @@ var/effectmod var/list/activate_reagents = list() //Reagents required for activation var/recurring = FALSE + var/research //Research point value /obj/item/slime_extract/examine(mob/user) . = ..() @@ -79,6 +80,7 @@ icon_state = "grey slime extract" effectmod = "reproductive" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water) + research = SLIME_RESEARCH_TIER_0 /obj/item/slime_extract/grey/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -104,6 +106,7 @@ icon_state = "gold slime extract" effectmod = "symbiont" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water) + research = SLIME_RESEARCH_TIER_4 /obj/item/slime_extract/gold/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -133,6 +136,7 @@ icon_state = "silver slime extract" effectmod = "consuming" activate_reagents = list(/datum/reagent/toxin/plasma,/datum/reagent/water) + research = SLIME_RESEARCH_TIER_2 /obj/item/slime_extract/silver/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -158,6 +162,7 @@ icon_state = "metal slime extract" effectmod = "industrial" activate_reagents = list(/datum/reagent/toxin/plasma,/datum/reagent/water) + research = SLIME_RESEARCH_TIER_1 /obj/item/slime_extract/metal/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -182,6 +187,7 @@ icon_state = "purple slime extract" effectmod = "regenerative" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma) + research = SLIME_RESEARCH_TIER_1 /obj/item/slime_extract/purple/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -201,6 +207,7 @@ icon_state = "dark purple slime extract" effectmod = "self-sustaining" activate_reagents = list(/datum/reagent/toxin/plasma) + research = SLIME_RESEARCH_TIER_2 /obj/item/slime_extract/darkpurple/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -224,6 +231,7 @@ icon_state = "orange slime extract" effectmod = "burning" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water) + research = SLIME_RESEARCH_TIER_1 /obj/item/slime_extract/orange/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -244,6 +252,7 @@ icon_state = "yellow slime extract" effectmod = "charged" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water) + research = SLIME_RESEARCH_TIER_2 /obj/item/slime_extract/yellow/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -267,6 +276,7 @@ icon_state = "red slime extract" effectmod = "sanguine" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water) + research = SLIME_RESEARCH_TIER_4 /obj/item/slime_extract/red/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -287,6 +297,7 @@ icon_state = "blue slime extract" effectmod = "stabilized" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water) + research = SLIME_RESEARCH_TIER_1 /obj/item/slime_extract/blue/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -307,6 +318,7 @@ icon_state = "dark blue slime extract" effectmod = "chilling" activate_reagents = list(/datum/reagent/toxin/plasma,/datum/reagent/water) + research = SLIME_RESEARCH_TIER_2 /obj/item/slime_extract/darkblue/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -330,6 +342,7 @@ icon_state = "pink slime extract" effectmod = "gentle" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma) + research = SLIME_RESEARCH_TIER_4 /obj/item/slime_extract/pink/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -358,6 +371,7 @@ icon_state = "green slime extract" effectmod = "mutative" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/uranium/radium) + research = SLIME_RESEARCH_TIER_4 /obj/item/slime_extract/green/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -382,6 +396,7 @@ icon_state = "light pink slime extract" effectmod = "loyal" activate_reagents = list(/datum/reagent/toxin/plasma) + research = SLIME_RESEARCH_TIER_5 /obj/item/slime_extract/lightpink/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -406,6 +421,7 @@ icon_state = "black slime extract" effectmod = "transformative" activate_reagents = list(/datum/reagent/toxin/plasma) + research = SLIME_RESEARCH_TIER_5 /obj/item/slime_extract/black/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -427,6 +443,7 @@ icon_state = "oil slime extract" effectmod = "detonating" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma) + research = SLIME_RESEARCH_TIER_5 /obj/item/slime_extract/oil/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -450,6 +467,7 @@ icon_state = "adamantine slime extract" effectmod = "crystalline" activate_reagents = list(/datum/reagent/toxin/plasma) + research = SLIME_RESEARCH_TIER_5 /obj/item/slime_extract/adamantine/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -483,6 +501,7 @@ var/teleport_x = 0 var/teleport_y = 0 var/teleport_z = 0 + research = SLIME_RESEARCH_TIER_3 /obj/item/slime_extract/bluespace/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -515,6 +534,7 @@ icon_state = "pyrite slime extract" effectmod = "prismatic" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma) + research = SLIME_RESEARCH_TIER_3 /obj/item/slime_extract/pyrite/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -542,6 +562,7 @@ icon_state = "cerulean slime extract" effectmod = "recurring" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma) + research = SLIME_RESEARCH_TIER_3 /obj/item/slime_extract/cerulean/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -562,6 +583,7 @@ icon_state = "sepia slime extract" effectmod = "lengthened" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water) + research = SLIME_RESEARCH_TIER_3 /obj/item/slime_extract/sepia/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -584,6 +606,7 @@ icon_state = "rainbow slime extract" effectmod = "hyperchromatic" activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,"lesser plasma",/datum/reagent/toxin/slimejelly,"holy water and uranium") //Curse this snowflake reagent list. + research = SLIME_RESEARCH_TIER_RAINBOW /obj/item/slime_extract/rainbow/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type)