diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm
index d57940852f6..f1aa5bea66b 100644
--- a/code/modules/mob/living/carbon/metroid/life.dm
+++ b/code/modules/mob/living/carbon/metroid/life.dm
@@ -182,7 +182,12 @@
/mob/living/carbon/slime/proc/handle_chemicals_in_body()
if(reagents) reagents.metabolize(src)
-
+ if (reagents.get_reagent_amount("plasma")>=5)
+ mutation_chance = min(mutation_chance + 5,50) //Prevents mutation chance going >50%
+ reagents.remove_reagent("plasma", 5)
+ if (reagents.get_reagent_amount("inaprovaline")>=5)
+ mutation_chance = max(mutation_chance - 5,0) //Prevents muation chance going <0%
+ reagents.remove_reagent("inaprovaline", 5)
src.updatehealth()
return //TODO: DEFERRED
diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm
index b7146e208a4..cb5be464681 100644
--- a/code/modules/mob/living/carbon/metroid/metroid.dm
+++ b/code/modules/mob/living/carbon/metroid/metroid.dm
@@ -534,14 +534,23 @@
return
/mob/living/carbon/slime/attackby(obj/item/W, mob/user)
- if(W.force > 0)
+ if(istype(W,/obj/item/stack/sheet/mineral/plasma)) //Lets you feed slimes plasma.
+ if (user in Friends)
+ ++Friends[user]
+ else
+ Friends[user] = 1
+ user << "You feed the slime the plasma. It chirps happily."
+ var/obj/item/stack/sheet/mineral/plasma/S = W
+ S.use(1)
+ return
+ else if(W.force > 0)
attacked += 10
if(prob(25))
user << "[W] passes right through [src]!"
return
if(Discipline && prob(50)) // wow, buddy, why am I getting attacked??
Discipline = 0
- if(W.force >= 3)
+ else if(W.force >= 3)
if(is_adult)
if(prob(5 + round(W.force/2)))
if(Victim || Target)
@@ -613,7 +622,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
Target = null
++Discipline
return
-
+
/mob/living/carbon/slime/can_use_vents()
if(Victim)
return "You cannot ventcrawl while feeding."
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index 6a38b825a35..500703563e8 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -1032,6 +1032,18 @@ datum
S.loc = get_turf_loc(holder.my_atom)
+ slimeinaprov
+ name = "Slime Inaprovaline"
+ id = "m_inaprov"
+ result = "inaprovaline"
+ required_reagents = list("water" = 5)
+ result_amount = 3
+ required_other = 1
+ required_container = /obj/item/slime_extract/grey
+ on_reaction(var/datum/reagents/holder)
+ feedback_add_details("slime_cores_used","[replacetext(name," ","_")]")
+
+
slimemonkey
name = "Slime Monkey"
id = "m_monkey"
@@ -1119,6 +1131,59 @@ datum
// for(var/mob/O in viewers(get_turf_loc(holder.my_atom), null))
// O.show_message(text("\red The slime core fizzles disappointingly,"), 1)
+
+ slimecritlesser
+ name = "Slime Crit Lesser"
+ id = "m_tele3"
+ result = null
+ required_reagents = list("blood" = 1)
+ result_amount = 1
+ required_container = /obj/item/slime_extract/gold
+ required_other = 1
+ on_reaction(var/datum/reagents/holder)
+ feedback_add_details("slime_cores_used","[replacetext(name," ","_")]")
+ for(var/mob/O in viewers(get_turf(holder.my_atom), null))
+ O.show_message(text("The slime extract begins to vibrate violently !"), 1)
+ spawn(50)
+
+ if(holder && holder.my_atom)
+
+ var/blocked = list(/mob/living/simple_animal/hostile,
+ /mob/living/simple_animal/hostile/pirate,
+ /mob/living/simple_animal/hostile/pirate/ranged,
+ /mob/living/simple_animal/hostile/russian,
+ /mob/living/simple_animal/hostile/russian/ranged,
+ /mob/living/simple_animal/hostile/syndicate,
+ /mob/living/simple_animal/hostile/syndicate/melee,
+ /mob/living/simple_animal/hostile/syndicate/melee/space,
+ /mob/living/simple_animal/hostile/syndicate/ranged,
+ /mob/living/simple_animal/hostile/syndicate/ranged/space,
+ /mob/living/simple_animal/hostile/alien/queen/large,
+ /mob/living/simple_animal/hostile/retaliate,
+ /mob/living/simple_animal/hostile/retaliate/clown,
+ /mob/living/simple_animal/hostile/mushroom,
+ /mob/living/simple_animal/hostile/asteroid,
+ /mob/living/simple_animal/hostile/asteroid/basilisk,
+ /mob/living/simple_animal/hostile/asteroid/goldgrub,
+ /mob/living/simple_animal/hostile/asteroid/goliath,
+ /mob/living/simple_animal/hostile/asteroid/hivelord,
+ /mob/living/simple_animal/hostile/asteroid/hivelordbrood,
+ /mob/living/simple_animal/hostile/carp/holocarp,
+ /mob/living/simple_animal/hostile/mining_drone
+ )//exclusion list for things you don't want the reaction to create.
+ var/list/critters = typesof(/mob/living/simple_animal/hostile) - blocked // list of possible hostile mobs
+
+ playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1)
+
+ for(var/mob/living/carbon/human/M in viewers(get_turf(holder.my_atom), null))
+ if(M:eyecheck() <= 0)
+ flick("e_flash", M.flash)
+
+ var/chosen = pick(critters)
+ var/mob/living/simple_animal/hostile/C = new chosen
+ C.faction |= "neutral"
+ C.loc = get_turf(holder.my_atom)
+
//Silver
slimebork
name = "Slime Bork"