[Goonchem] Reagent Decals

This commit is contained in:
Fox-McCloud
2015-04-17 18:27:49 -04:00
parent 4c05402288
commit 33233941d5
18 changed files with 192 additions and 103 deletions
+2 -2
View File
@@ -264,8 +264,8 @@
/obj/mecha/proc/mech_toxin_damage(mob/living/target)
playsound(src, 'sound/effects/spray2.ogg', 50, 1)
if(target.reagents)
if(target.reagents.get_reagent_amount("cryptobiolin") + force < force*2)
target.reagents.add_reagent("cryptobiolin", force/2)
if(target.reagents.get_reagent_amount("atropine") + force < force*2)
target.reagents.add_reagent("atropine", force/2)
if(target.reagents.get_reagent_amount("toxin") + force < force*2)
target.reagents.add_reagent("toxin", force/2.5)
@@ -16,6 +16,10 @@
icon_state = "ash"
anchored = 1
/obj/effect/decal/cleanable/ash/New()
..()
reagents.add_reagent("ash", 10)
/obj/effect/decal/cleanable/dirt
name = "dirt"
desc = "Someone should clean that up."
@@ -27,6 +31,16 @@
icon_state = "dirt"
mouse_opacity = 0
/obj/effect/decal/cleanable/dirt/blackpowder
name = "black powder"
icon_state = "flour"
color = "#323232"
mouse_opacity = 1
noscoop = 1
/obj/effect/decal/cleanable/dirt/blackpowder/New()
..()
reagents.add_reagent("blackpowder", 40) //size 2 explosion when activated
/obj/effect/decal/cleanable/flour
name = "flour"
@@ -103,6 +117,11 @@
icon_state = "vomit_1"
random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4")
var/list/datum/disease2/disease/virus2 = list()
noclear = 1
/obj/effect/decal/cleanable/vomit/New()
..()
reagents.add_reagent("vomit", 5)
/obj/effect/decal/cleanable/vomit/green
@@ -111,6 +130,11 @@
icon_state = "gvomit_1"
random_icon_states = list("gvomit_1", "gvomit_2", "gvomit_3", "gvomit_4")
/obj/effect/decal/cleanable/vomit/green/New()
..()
reagents.remove_reagent("vomit", 5)
reagents.add_reagent("green_vomit", 5)
/obj/effect/decal/cleanable/poop
name = "poop"
desc = "Gosh, how unpleasant."
@@ -148,3 +172,17 @@
layer = 2
icon = 'icons/effects/tomatodecal.dmi'
random_icon_states = list("smashed_pie")
/obj/effect/decal/cleanable/fungus
name = "space fungus"
desc = "A fungal growth. Looks pretty nasty."
density = 0
anchored = 1
layer = 2
icon = 'icons/effects/effects.dmi'
icon_state = "flour"
color = "#D5820B"
/obj/effect/decal/cleanable/fungus/New()
..()
reagents.add_reagent("fungus", 10)
@@ -1,7 +1,43 @@
/obj/effect/decal/cleanable
var/list/random_icon_states = list()
var/targeted_by = null // Used so cleanbots can't claim a mess.
var/noscoop = 0 //if it has this, don't let it be scooped up
var/noclear = 0 //if it has this, don't delete it when its' scooped up
/obj/effect/decal/cleanable/New()
if (random_icon_states && length(src.random_icon_states) > 0)
src.icon_state = pick(src.random_icon_states)
create_reagents(100)
..()
/obj/effect/decal/cleanable/attackby(obj/item/weapon/W as obj, mob/user as mob,)
if(istype(W, /obj/item/weapon/reagent_containers/glass) || istype(W, /obj/item/weapon/reagent_containers/food/drinks))
if(src.reagents && W.reagents && !noscoop)
if(!src.reagents.total_volume)
user << "<span class='notice'>There isn't enough [src] to scoop up!</span>"
return
if(W.reagents.total_volume >= W.reagents.maximum_volume)
user << "<span class='notice'>[W] is full!</span>"
return
user << "<span class='notice'>You scoop the [src] into [W]!</span>"
reagents.trans_to(W, reagents.total_volume)
if(!reagents.total_volume && !noclear) //scooped up all of it
qdel(src)
return
if(is_hot(W)) //todo: make heating a reagent holder proc
if(istype(W, /obj/item/clothing/mask/cigarette)) return
else
src.reagents.chem_temp += 15
src.reagents.handle_reactions()
user << "<span class='notice'>You heat [src] with [W]!</span>"
/obj/effect/decal/cleanable/ex_act()
if(reagents)
for(var/datum/reagent/R in reagents.reagent_list)
R.on_ex_act()
..()
/obj/effect/decal/cleanable/fire_act()
reagents.chem_temp += 30
reagents.handle_reactions()
..()
+3 -3
View File
@@ -40,9 +40,9 @@
name = pick("lunar","vorpal","hardcore","willow", "void","loopy","electro", "cyber","heavy", "ninja", "hydro", "blue", "red", "green", "purple", "strong", "divine","carp" ,"deadly","dead","vicious" ,"wild" ,"demon", "chill", "solid", "liquid", "crazy", "super", "hyper", "space", "wizard", "rainbow", "star", "turbo", "prism", "sticky") + " " + pick("jack","zero","null","beat","nip","bubbles" ,"ice","medicine","venom","shock","solar" ,"spice" ,"shredder", "heart" , "heat", "pill","hopper","scum","fruit", "bolt", "deck", "butter", "runoff", "grease", "flair", "sweat", "zone", "blast")
reagents.add_reagent(pick("pancuronium","neurotoxin","frostoil", "toxin","morphine", "carpotoxin", "hippiesdelight","methamphetamine","haloperidol" ,"cryptobiolin", "hydrocodone", "psilocybin", "mindbreaker", "capsaicin", "space_drugs" , "epinephrine", "serotrotium"), pick(5,7,10,13,15))
reagents.add_reagent(pick("pancuronium","neurotoxin","frostoil", "toxin","morphine", "carpotoxin", "hippiesdelight","methamphetamine","haloperidol" ,"cryptobiolin", "hydrocodone", "psilocybin", "mindbreaker", "capsaicin", "space_drugs" , "epinephrine", "serotrotium"), pick(5,7,10,13,15))
reagents.add_reagent(pick("pancuronium","neurotoxin","frostoil", "toxin","morphine", "carpotoxin", "hippiesdelight","methamphetamine","haloperidol" ,"cryptobiolin", "hydrocodone", "psilocybin", "mindbreaker", "capsaicin", "space_drugs" , "epinephrine", "serotrotium"), pick(5,7,10,13,15))
reagents.add_reagent(pick("pancuronium","neurotoxin","frostoil", "toxin","morphine", "carpotoxin", "hippiesdelight","methamphetamine","haloperidol" , "hydrocodone", "psilocybin", "lsd", "capsaicin", "space_drugs" , "epinephrine", "serotrotium"), pick(5,7,10,13,15))
reagents.add_reagent(pick("pancuronium","neurotoxin","frostoil", "toxin","morphine", "carpotoxin", "hippiesdelight","methamphetamine","haloperidol" ,"hydrocodone", "psilocybin", "lsd", "capsaicin", "space_drugs" , "epinephrine", "serotrotium"), pick(5,7,10,13,15))
reagents.add_reagent(pick("pancuronium","neurotoxin","frostoil", "toxin","morphine", "carpotoxin", "hippiesdelight","methamphetamine","haloperidol" , "hydrocodone", "psilocybin", "lsd", "capsaicin", "space_drugs" , "epinephrine", "serotrotium"), pick(5,7,10,13,15))
+2 -2
View File
@@ -61,7 +61,7 @@
// identify_probability = 0
New()
..()
var/global/list/chems_only = list("slimejelly","blood","water","lube","charcoal","toxin","cyanide","morphine","epinephrine","space_drugs","serotrotium","oxygen","copper","nitrogen","hydrogen","potassium","mercury","sulfur","carbon","chlorine","fluorine","sodium","phosphorus","lithium","sugar","sacid","facid","glycerol","radium","mutadone","thermite","mutagen","virusfood","iron","gold","silver","uranium","aluminum","silicon","fuel","cleaner","atrazine","plasma","teporone","cryptobiolin","lexorin","silver_sulfadiazine","salbutamol","perfluorodecalin","omnizine","synaptizine","haloperidol","potass_iodide","pen_acid","mannitol","oculine","styptic_powder","methamphetamine","cryoxadone","clonexadone","spaceacillin","carpotoxin","mindbreaker","fluorosurfactant","fluorosurfactant","ethanol","ammonia","diethylamine","antihol","pancuronium","lipolicide","condensedcapsaicin","frostoil","amanitin","psilocybin","enzyme","nothing","salglu_solution","antifreeze","neurotoxin")
var/global/list/chems_only = list("slimejelly","blood","water","lube","charcoal","toxin","cyanide","morphine","epinephrine","space_drugs","serotrotium","oxygen","copper","nitrogen","hydrogen","potassium","mercury","sulfur","carbon","chlorine","fluorine","sodium","phosphorus","lithium","sugar","sacid","facid","glycerol","radium","mutadone","thermite","mutagen","virusfood","iron","gold","silver","uranium","aluminum","silicon","fuel","cleaner","atrazine","plasma","teporone","lexorin","silver_sulfadiazine","salbutamol","perfluorodecalin","omnizine","synaptizine","haloperidol","potass_iodide","pen_acid","mannitol","oculine","styptic_powder","methamphetamine","cryoxadone","clonexadone","spaceacillin","carpotoxin","mindbreaker","fluorosurfactant","fluorosurfactant","ethanol","ammonia","diethylamine","antihol","pancuronium","lipolicide","condensedcapsaicin","frostoil","amanitin","psilocybin","enzyme","nothing","salglu_solution","antifreeze","neurotoxin")
var/global/list/rare_chems = list("minttoxin","nanites","xenomicrobes","adminordrazine")
var/datum/reagent/R = pick(chems_only + rare_chems)
@@ -123,7 +123,7 @@
New()
..()
var/global/list/meds_only = list("charcoal","toxin","cyanide","morphine","epinephrine","space_drugs","serotrotium","mutadone","mutagen","teporone","cryptobiolin","lexorin","silver_sulfadiazine","salbutamol","perfluorodecalin","omnizine","synaptizine","haloperidol","potass_iodide","pen_acid","mannitol","oculine","styptic_powder","methamphetamine","spaceacillin","carpotoxin","mindbreaker","ethanol","ammonia","diethylamine","antihol","pancuronium","lipolicide","condensedcapsaicin","frostoil","amanitin","psilocybin","nothing","salglu_solution","neurotoxin")
var/global/list/meds_only = list("charcoal","toxin","cyanide","morphine","epinephrine","space_drugs","serotrotium","mutadone","mutagen","teporone","lexorin","silver_sulfadiazine","salbutamol","perfluorodecalin","omnizine","synaptizine","haloperidol","potass_iodide","pen_acid","mannitol","oculine","styptic_powder","methamphetamine","spaceacillin","carpotoxin","mindbreaker","ethanol","ammonia","diethylamine","antihol","pancuronium","lipolicide","condensedcapsaicin","frostoil","amanitin","psilocybin","nothing","salglu_solution","neurotoxin")
var/global/list/rare_meds = list("nanites","xenomicrobes","minttoxin","adminordrazine","blood")
var/i = 1
+1 -1
View File
@@ -59,7 +59,7 @@
var/obj/item/weapon/reagent_containers/glass/beaker/large/B2 = new(src)
B1.reagents.add_reagent("space_drugs", 25)
B1.reagents.add_reagent("mindbreaker", 25)
B1.reagents.add_reagent("lsd", 25)
B1.reagents.add_reagent("potassium", 25)
B2.reagents.add_reagent("phosphorus", 25)
B2.reagents.add_reagent("sugar", 25)
+2 -2
View File
@@ -22,8 +22,8 @@
var/list/gunk = list("water","carbon","flour","radium","toxin","cleaner","nutriment","condensedcapsaicin","psilocybin","lube",
"atrazine","banana","charcoal","space_drugs","methamphetamine","holywater","ethanol","hot_coco","facid",
"blood","morphine","fluorine","mutadone","mutagen","hydrocodone","fuel","cryptobiolin",
"haloperidol","mindbreaker","nanites","lipolicide","frostoil","salglu_solution","beepskysmash",
"blood","morphine","fluorine","mutadone","mutagen","hydrocodone","fuel",
"haloperidol","lsd","nanites","lipolicide","frostoil","salglu_solution","beepskysmash",
"omnizine", "amanitin", "adminordrazine", "neurotoxin", "synaptizine")
var/datum/reagents/R = new/datum/reagents(50)
R.my_atom = vent
+1 -1
View File
@@ -58,7 +58,7 @@
//*******************************//
var/list/fruit_icon_states = list("badrecipe","kudzupod","reishi","lime","grapes","boiledrorocore","chocolateegg")
var/list/reagent_effects = list("toxin","charcoal","morphine","space_drugs","mindbreaker","haloperidol")
var/list/reagent_effects = list("toxin","charcoal","morphine","space_drugs","lsd","haloperidol")
var/jungle_plants_init = 0
/proc/init_jungle_plants()
+1 -1
View File
@@ -147,7 +147,7 @@
owner.adjustToxLoss(0.1 * PROCESS_ACCURACY)
// Can't cope with toxins at all
for(var/toxin in list("toxin", "plasma", "sacid", "facid", "cyanide", "amanitin", "carpotoxin", "mindbreaker"))
for(var/toxin in list("toxin", "plasma", "sacid", "facid", "cyanide", "amanitin", "carpotoxin"))
if(owner.reagents.has_reagent(toxin))
owner.adjustToxLoss(0.3 * PROCESS_ACCURACY)
+7 -24
View File
@@ -1124,23 +1124,6 @@ datum
M.adjust_fire_stacks(volume / 5)
..()
return
cryptobiolin
name = "Cryptobiolin"
id = "cryptobiolin"
description = "Cryptobiolin causes confusion and dizzyness."
reagent_state = LIQUID
color = "#FFD1DC" // rgb: 255, 209, 220
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.Dizzy(1)
if(!M.confused) M.confused = 1
M.confused = max(M.confused, 20)
holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
..()
return
lexorin
name = "Lexorin"
id = "lexorin"
@@ -1322,9 +1305,9 @@ datum
spaceacillin
name = "Spaceacillin"
id = "spaceacillin"
description = "An all-purpose antiviral agent."
description = "An all-purpose antibiotic agent extracted from space fungus."
reagent_state = LIQUID
color = "#228B22" // rgb: 34, 139, 34
color = "#0AB478"
on_mob_life(var/mob/living/M as mob)
..()
@@ -1356,12 +1339,12 @@ datum
data = max(data - 1, 3)
..()
mindbreaker
name = "Mindbreaker Toxin"
id = "mindbreaker"
description = "A powerful hallucinogen. Not a thing to be messed with."
lsd
name = "Lysergic acid diethylamide"
id = "lsd"
description = "A highly potent hallucinogenic substance. Far out, maaaan."
reagent_state = LIQUID
color = "#B31008" // rgb: 139, 166, 233
color = "#0000D8"
on_mob_life(var/mob/living/M)
if(!M) M = holder.my_atom
+10 -15
View File
@@ -120,13 +120,6 @@ datum
result_amount = 3
mix_message = "The water somehow seems purified. Or maybe defiled."
cryptobiolin
name = "Cryptobiolin"
id = "cryptobiolin"
result = "cryptobiolin"
required_reagents = list("potassium" = 1, "oxygen" = 1, "sugar" = 1)
result_amount = 3
cryoxadone
name = "Cryoxadone"
id = "cryoxadone"
@@ -147,8 +140,9 @@ datum
name = "Spaceacillin"
id = "spaceacillin"
result = "spaceacillin"
required_reagents = list("cryptobiolin" = 1, "epinephrine" = 1)
required_reagents = list("fungus" = 1, "ethanol" = 1)
result_amount = 2
mix_message = "The solvent extracts an antibiotic compound from the fungus."
Audioline
name = "Audioline"
@@ -190,15 +184,16 @@ datum
name = "Rezadone"
id = "rezadone"
result = "rezadone"
required_reagents = list("carpotoxin" = 1, "cryptobiolin" = 1, "copper" = 1)
required_reagents = list("carpotoxin" = 1, "spaceacillin" = 1, "copper" = 1)
result_amount = 3
mindbreaker
name = "Mindbreaker Toxin"
id = "mindbreaker"
result = "mindbreaker"
required_reagents = list("silicon" = 1, "hydrogen" = 1, "charcoal" = 1)
result_amount = 5
lsd
name = "Lysergic acid diethylamide"
id = "lsd"
result = "lsd"
required_reagents = list("diethylamine" = 1, "fungus" = 1)
result_amount = 3
mix_message = "The mixture turns a rather unassuming color and settles."
plastication
name = "Plastic"
+9 -9
View File
@@ -883,15 +883,15 @@ datum/reagent/haloperidol
datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.reagents.remove_reagent("crank",5)
M.reagents.remove_reagent("methamphetamine",5)
M.reagents.remove_reagent("space_drugs",5)
M.reagents.remove_reagent("psilocybin",5)
M.reagents.remove_reagent("ephedrine",5)
M.reagents.remove_reagent("epinephrine",5)
M.reagents.remove_reagent("stimulants",5)
M.reagents.remove_reagent("bath_salts",5)
M.reagents.remove_reagent("mindbreaker",5)
M.reagents.remove_reagent("crank", 5)
M.reagents.remove_reagent("methamphetamine", 5)
M.reagents.remove_reagent("space_drugs", 5)
M.reagents.remove_reagent("psilocybin", 5)
M.reagents.remove_reagent("ephedrine", 5)
M.reagents.remove_reagent("epinephrine", 5)
M.reagents.remove_reagent("stimulants", 5)
M.reagents.remove_reagent("bath_salts", 5)
M.reagents.remove_reagent("lsd", 5)
M.druggy -= 5
M.hallucination -= 5
M.jitteriness -= 5
+1 -1
View File
@@ -73,7 +73,7 @@ datum/reagent/acetone
name = "carpet"
id = "carpet"
result = "carpet"
required_reagents = list("space_drugs" = 1, "blood" = 1)
required_reagents = list("fungus" = 1, "blood" = 1)
result_amount = 2
mix_message = "The substance turns thick and stiff, yet soft."
+9 -2
View File
@@ -175,12 +175,18 @@
required_temp = 474
mix_message = "sparks start flying about."
datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit
src = null
if(volume >= 5)
new /obj/effect/decal/cleanable/dirt/blackpowder(T)
return
/datum/chemical_reaction/blackpowder_explosion/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(2, 1, location)
s.start()
sleep(rand(30,50))
sleep(rand(20,30))
blackpowder_detonate(holder, created_volume)
return
@@ -192,10 +198,11 @@
var/turf/simulated/T = get_turf(holder.my_atom)
var/ex_severe = round(created_volume / 100)
var/ex_heavy = round(created_volume / 42)
var/ex_light = round(created_volume / 21)
var/ex_light = round(created_volume / 20)
var/ex_flash = round(created_volume / 8)
explosion(T,ex_severe,ex_heavy,ex_light,ex_flash, 1)
return
/datum/reagent/flash_powder
name = "Flash Powder"
id = "flash_powder"
+1 -1
View File
@@ -206,7 +206,7 @@ datum/reagent/itching_powder/on_mob_life(var/mob/living/M as mob)
name = "Itching Powder"
id = "itching_powder"
result = "itching_powder"
required_reagents = list("fuel" = 1, "ammonia" = 1, "charcoal" = 1)
required_reagents = list("fuel" = 1, "ammonia" = 1, "fungus" = 1)
result_amount = 3
mix_message = "The mixture congeals and dries up, leaving behind an abrasive powder."
@@ -2597,7 +2597,7 @@
New()
..()
reagents.add_reagent("mercury", 5)
reagents.add_reagent("mindbreaker", 5)
reagents.add_reagent("lsd", 5)
reagents.add_reagent("ethanol", 5)
reagents.add_reagent("weird_cheese", 5)
@@ -148,6 +148,9 @@
else if(istype(target, /obj/machinery/radiocarbon_spectrometer))
return
else if(istype(target, /obj/effect/decal/cleanable)) //stops splashing while scooping up fluids
return
else if(reagents.total_volume)
user << "\blue You splash the solution onto [target]."
src.reagents.reaction(target, TOUCH)