diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index 463e260c395..a8267acdd80 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -370,6 +370,24 @@
beakers += B1
beakers += B2
+/obj/item/weapon/grenade/chem_grenade/colorful
+ name = "colorful grenade"
+ desc = "Used for wide scale painting projects."
+ stage = READY
+
+/obj/item/weapon/grenade/chem_grenade/colorful/New()
+ ..()
+ var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
+ var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
+
+ B1.reagents.add_reagent("colorful_reagent", 25)
+ B1.reagents.add_reagent("potassium", 25)
+ B2.reagents.add_reagent("phosphorus", 25)
+ B2.reagents.add_reagent("sugar", 25)
+
+ beakers += B1
+ beakers += B2
+
#undef EMPTY
#undef WIRED
#undef READY
diff --git a/code/modules/reagents/Chemistry-Goon-Medicine.dm b/code/modules/reagents/Chemistry-Goon-Medicine.dm
index 21c4d5ac061..9ccbf1fd622 100644
--- a/code/modules/reagents/Chemistry-Goon-Medicine.dm
+++ b/code/modules/reagents/Chemistry-Goon-Medicine.dm
@@ -599,25 +599,15 @@ datum/reagent/epinephrine/overdose_process(var/mob/living/M as mob)
datum/reagent/strange_reagent
name = "Strange Reagent"
id = "strange_reagent"
- description = "A chemical used in creation of other chemicals."
+ description = "A miracle medical chem, this little beauty can bring the dead back to life!"
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
-/*
-
---Commented out for now due to balance issues, defibs were kind of worthless.
datum/reagent/strange_reagent/reaction_mob(var/mob/living/carbon/human/M as mob, var/method=TOUCH, var/volume)
if(M.stat == DEAD)
- if(M.getBruteLoss() >= 80 || M.getFireLoss() >= 80)
- if(ishuman(M) || ismonkey(M))
- var/mob/living/carbon/C_target = M
- var/obj/item/organ/brain/B = C_target.getorgan(/obj/item/organ/brain)
- if(B)
- B.loc = get_turf(C_target)
- B.transfer_identity(C_target)
- C_target.internal_organs -= B
- M.gib(M)
- return
+ if(M.getBruteLoss() >= 100 || M.getFireLoss() >= 100)
+ M.visible_message("[M]'s body convulses a bit, and then falls still once more.")
+ return
var/mob/dead/observer/ghost = M.get_ghost()
M.visible_message("[M]'s body convulses a bit.")
if(!M.suiciding && !ghost && !(NOCLONE in M.mutations))
@@ -631,7 +621,6 @@ datum/reagent/strange_reagent/reaction_mob(var/mob/living/carbon/human/M as mob,
hardset_dna(M, null, null, null, null, /datum/species/zombie)
..()
return
-*/
datum/reagent/strange_reagent/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(prob(rand(1,100)))
diff --git a/code/modules/reagents/Chemistry-Goon-Other.dm b/code/modules/reagents/Chemistry-Goon-Other.dm
index 0b5c4820a8e..fffe6a82063 100644
--- a/code/modules/reagents/Chemistry-Goon-Other.dm
+++ b/code/modules/reagents/Chemistry-Goon-Other.dm
@@ -1,9 +1,10 @@
#define SOLID 1
#define LIQUID 2
#define GAS 3
-
#define REM REAGENTS_EFFECT_MULTIPLIER
+var/list/random_color_list = list("#00aedb","#a200ff","#f47835","#d41243","#d11141","#00b159","#00aedb","#f37735","#ffc425","#008744","#0057e7","#d62d20","#ffa700")
+
datum/reagent/oil
name = "Oil"
id = "oil"
@@ -40,7 +41,9 @@ datum/reagent/carpet
color = "#C8A5DC" // rgb: 200, 165, 220
/datum/reagent/carpet/reaction_turf(var/turf/simulated/T, var/volume)
- if(istype(T, /turf/simulated/floor/) && !istype(T, /turf/simulated/floor/fancy/carpet))
+ if(istype(T, /turf/simulated/floor/fancy/carpet))
+ return
+ if(istype(T, /turf/simulated/floor/plating) || istype(T, /turf/simulated/floor/plasteel))
var/turf/simulated/floor/F = T
F.visible_message("[T] gets a layer of carpeting applied!")
F.ChangeTurf(/turf/simulated/floor/fancy/carpet)
@@ -118,7 +121,6 @@ datum/reagent/colorful_reagent
description = "A solution."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
- var/list/potential_colors = list("#00aedb","#a200ff","#f47835","#d41243","#d11141","#00b159","#00aedb","#f37735","#ffc425","#008744","#0057e7","#d62d20","#ffa700")
/datum/chemical_reaction/colorful_reagent
name = "colorful_reagent"
@@ -129,23 +131,23 @@ datum/reagent/colorful_reagent
datum/reagent/colorful_reagent/on_mob_life(var/mob/living/M as mob)
if(M && isliving(M))
- M.color = pick(potential_colors)
+ M.color = pick(random_color_list)
..()
return
datum/reagent/colorful_reagent/reaction_mob(var/mob/living/M, var/volume)
if(M && isliving(M))
- M.color = pick(potential_colors)
+ M.color = pick(random_color_list)
..()
return
datum/reagent/colorful_reagent/reaction_obj(var/obj/O, var/volume)
if(O)
- O.color = pick(potential_colors)
+ O.color = pick(random_color_list)
..()
return
datum/reagent/colorful_reagent/reaction_turf(var/turf/T, var/volume)
if(T)
- T.color = pick(potential_colors)
+ T.color = pick(random_color_list)
..()
return
@@ -229,15 +231,6 @@ datum/reagent/hair_dye
required_reagents = list("colorful_reagent" = 1, "radium" = 1, "space_drugs" = 1)
result_amount = 5
-datum/reagent/hair_dye/on_mob_life(var/mob/living/M as mob)
- if(M && ishuman(M))
- var/mob/living/carbon/human/H = M
- H.hair_color = pick(potential_colors)
- H.facial_hair_color = pick(potential_colors)
- H.update_hair()
- ..()
- return
-
datum/reagent/hair_dye/reaction_mob(var/mob/living/M, var/volume)
if(M && ishuman(M))
var/mob/living/carbon/human/H = M
diff --git a/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm b/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm
index 8998cf6bd24..e5f9186b144 100644
--- a/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm
+++ b/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm
@@ -22,7 +22,7 @@
/datum/reagent/clf3/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.adjust_fire_stacks(20)
+ M.adjust_fire_stacks(5)
M.IgniteMob()
M.adjustFireLoss(5*REM)
..()
@@ -54,7 +54,7 @@
/datum/reagent/clf3/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
if(method == TOUCH && ishuman(M))
- M.adjust_fire_stacks(20)
+ M.adjust_fire_stacks(5)
M.IgniteMob()
new /obj/effect/hotspot(M.loc)
return