From 0efdc071911f41b06a4a3fea89d22df106b61fd6 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Fri, 3 Apr 2015 01:25:42 -0400 Subject: [PATCH 1/2] [Goonchem] Few Recipes Tweaks --- code/game/objects/items/random_items.dm | 2 +- .../items/weapons/grenades/chem_grenade.dm | 4 ++-- code/modules/projectiles/projectile/bullets.dm | 4 ++-- code/modules/reagents/Chemistry-Reagents.dm | 17 +++++------------ code/modules/reagents/Chemistry-Recipes.dm | 17 +++++------------ 5 files changed, 15 insertions(+), 29 deletions(-) diff --git a/code/game/objects/items/random_items.dm b/code/game/objects/items/random_items.dm index 62f84eff0dd..f49643c865b 100644 --- a/code/game/objects/items/random_items.dm +++ b/code/game/objects/items/random_items.dm @@ -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","foaming_agent","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","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/rare_chems = list("minttoxin","nanites","xenomicrobes","adminordrazine") var/datum/reagent/R = pick(chems_only + rare_chems) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 9ff23eaba99..e7ae024a12f 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -390,8 +390,8 @@ var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) B1.reagents.add_reagent("aluminum", 30) - B2.reagents.add_reagent("foaming_agent", 10) - B2.reagents.add_reagent("facid", 10) + B2.reagents.add_reagent("fluorosurfactant", 10) + B2.reagents.add_reagent("sacid", 10) beakers += B1 beakers += B2 diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 94be3133b84..e532af0e6c0 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -173,8 +173,8 @@ New() ..() reagents.add_reagent("aluminum", 15) - reagents.add_reagent("foaming_agent", 5) - reagents.add_reagent("facid", 5) + reagents.add_reagent("fluorosurfactant", 5) + reagents.add_reagent("sacid", 5) //This one is for future syringe guns update /obj/item/projectile/bullet/dart/syringe diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 3d880331e83..5cbc5514f24 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -288,7 +288,7 @@ datum id = "lube" description = "Lubricant is a substance introduced between two moving surfaces to reduce the friction and wear between them. giggity." reagent_state = LIQUID - color = "#009CA8" // rgb: 0, 156, 168 + color = "#1BB1AB" reaction_turf(var/turf/simulated/T, var/volume) if (!istype(T)) return @@ -994,7 +994,7 @@ datum fuel name = "Welding fuel" id = "fuel" - description = "Required for welders. Flamable." + description = "A highly flammable blend of basic hydrocarbons, mostly Acetylene. Useful for both welding and organic chemistry, and can be fortified into a heavier oil." reagent_state = LIQUID color = "#060606" @@ -1144,7 +1144,7 @@ datum id = "lexorin" description = "Lexorin temporarily stops respiration. Causes tissue damage." reagent_state = LIQUID - color = "#32127A" // rgb: 50, 18, 122 + color = "#52685D" metabolization_rate = 0.2 on_mob_life(var/mob/living/M as mob) @@ -1280,7 +1280,7 @@ datum id = "clonexadone" description = "A liquid compound similar to that used in the cloning process. Can be used to 'finish' clones that get ejected early when used in conjunction with a cryo tube." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#0000C8" // rgb: 200, 165, 220 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -1423,7 +1423,7 @@ datum return -//foam precursor +//foam fluorosurfactant name = "Fluorosurfactant" @@ -1435,13 +1435,6 @@ datum // metal foaming agent // this is lithium hydride. Add other recipies (e.g. LiH + H2O -> LiOH + H2) eventually - foaming_agent - name = "Foaming agent" - id = "foaming_agent" - description = "A agent that yields metallic foam when mixed with light metal and a strong acid." - reagent_state = SOLID - color = "#664B63" // rgb: 102, 75, 99 - ammonia name = "Ammonia" id = "ammonia" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 8e22df9a014..85905a0f24a 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -102,7 +102,8 @@ datum id = "lube" result = "lube" required_reagents = list("water" = 1, "silicon" = 1, "oxygen" = 1) - result_amount = 4 + result_amount = 3 + mix_message = "The substance turns a striking cyan and becomes oily." mitocholide name = "mitocholide" @@ -273,6 +274,7 @@ datum result = "fluorosurfactant" required_reagents = list("fluorine" = 2, "carbon" = 2, "sacid" = 1) result_amount = 5 + mix_message = "A head of foam results from the mixture's constant fizzing." foam @@ -308,7 +310,7 @@ datum name = "Metal Foam" id = "metalfoam" result = null - required_reagents = list("aluminum" = 3, "foaming_agent" = 1, "facid" = 1) + required_reagents = list("aluminum" = 3, "fluorosurfactant" = 1, "sacid" = 1) result_amount = 5 on_reaction(var/datum/reagents/holder, var/created_volume) @@ -328,7 +330,7 @@ datum name = "Iron Foam" id = "ironlfoam" result = null - required_reagents = list("iron" = 3, "foaming_agent" = 1, "facid" = 1) + required_reagents = list("iron" = 3, "fluorosurfactant" = 1, "sacid" = 1) result_amount = 5 on_reaction(var/datum/reagents/holder, var/created_volume) @@ -344,15 +346,6 @@ datum s.start() return - - - foaming_agent - name = "Foaming Agent" - id = "foaming_agent" - result = "foaming_agent" - required_reagents = list("lithium" = 1, "hydrogen" = 1) - result_amount = 1 - // Synthesizing these three chemicals is pretty complex in real life, but fuck it, it's just a game! ammonia name = "Ammonia" From ff5ec1df540553bceaf3316fbcd8eb3a1b502291 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Fri, 3 Apr 2015 05:32:53 -0400 Subject: [PATCH 2/2] meh --- .../objects/effects/decals/Cleanable/misc.dm | 22 ++++-- code/game/objects/effects/effect_system.dm | 4 +- code/modules/reagents/newchem/pyro.dm | 71 ++++++++++++++++++- 3 files changed, 86 insertions(+), 11 deletions(-) diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm index b05ad70d3b5..49deee27731 100644 --- a/code/game/objects/effects/decals/Cleanable/misc.dm +++ b/code/game/objects/effects/decals/Cleanable/misc.dm @@ -16,13 +16,6 @@ icon_state = "ash" anchored = 1 -/obj/effect/decal/cleanable/greenglow - - New() - ..() - spawn(1200)// 2 minutes - qdel(src) - /obj/effect/decal/cleanable/dirt name = "dirt" desc = "Someone should clean that up." @@ -45,6 +38,16 @@ icon = 'icons/effects/effects.dmi' icon_state = "flour" +/obj/effect/decal/cleanable/flour/foam + name = "Fire fighting foam" + desc = "It's foam." + color = "#EBEBEB" + + New() + ..() + spawn(150)// 15 seconds + qdel(src) + /obj/effect/decal/cleanable/greenglow name = "glowing goo" desc = "Jeez. I hope that's not for lunch." @@ -56,6 +59,11 @@ icon = 'icons/effects/effects.dmi' icon_state = "greenglow" + New() + ..() + spawn(1200)// 2 minutes + qdel(src) + /obj/effect/decal/cleanable/cobweb name = "cobweb" desc = "Somebody should remove that." diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index 73ccbd3aab3..42d917cb405 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -11,7 +11,7 @@ would spawn and follow the beaker, even if it is carried or thrown. icon = 'icons/effects/effects.dmi' mouse_opacity = 0 unacidable = 1//So effect are not targeted by alien acid. - + /datum/effect/effect/proc/fadeOut(var/atom/A, var/frames = 16) if(A.alpha == 0) //Handle already transparent case return @@ -426,7 +426,7 @@ steam.start() -- spawns the effect /obj/effect/effect/chem_smoke/Move() ..() for(var/atom/A in view(2, src)) - if(reagents.has_reagent("radium")||reagents.has_reagent("uranium")||reagents.has_reagent("carbon")||reagents.has_reagent("thermite"))//Prevents unholy radium spam by reducing the number of 'greenglows' down to something reasonable -Sieve + if(reagents.has_reagent("radium")||reagents.has_reagent("uranium")||reagents.has_reagent("carbon")||reagents.has_reagent("thermite")||reagents.has_reagent("synthflesh")||reagents.has_reagent("firefighting_foam")||reagents.has_reagent("honey"))//Prevents unholy radium spam by reducing the number of 'greenglows' down to something reasonable -Sieve if(prob(5)) reagents.reaction(A) else diff --git a/code/modules/reagents/newchem/pyro.dm b/code/modules/reagents/newchem/pyro.dm index 14a10f6ef59..7739795bae6 100644 --- a/code/modules/reagents/newchem/pyro.dm +++ b/code/modules/reagents/newchem/pyro.dm @@ -22,7 +22,7 @@ /datum/reagent/clf3 name = "Chlorine Trifluoride" id = "clf3" - description = "Makes a temporary 3x3 fireball when it comes into existence, so be careful when mixing. ClF3 applied to a surface burns things that wouldn't otherwise burn, sometimes through the very floors of the station and exposing it to the vacuum of space." + description = "An extremely volatile substance, handle with the utmost care." reagent_state = LIQUID color = "#FF0000" metabolization_rate = 4 @@ -511,4 +511,71 @@ datum/reagent/pyrosium/on_tick() /datum/chemical_reaction/azide/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) explosion(location,0,1,3) - return \ No newline at end of file + return + +datum/reagent/firefighting_foam + name = "Firefighting foam" + id = "firefighting_foam" + description = "Carbon Tetrachloride is a foam used for fire suppression." + reagent_state = LIQUID + color = "#A0A090" + var/cooling_temperature = 3 // more effective than water + +/datum/chemical_reaction/firefighting_foam + name = "firefighting_foam" + id = "firefighting_foam" + result = "firefighting_foam" + required_reagents = list("carbon" = 1, "chlorine" = 1, "sulfur" = 1) + result_amount = 3 + mix_message = "The mixture bubbles gently." + +datum/reagent/firefighting_foam/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) + if(!istype(M, /mob/living)) + return + +// Put out fire + if(method == TOUCH) + M.adjust_fire_stacks(-(volume / 5)) // more effective than water + if(M.fire_stacks <= 0) + M.ExtinguishMob() + return + +datum/reagent/firefighting_foam/reaction_turf(var/turf/simulated/T, var/volume) + if (!istype(T)) return + var/CT = cooling_temperature + src = null + if(!istype(T, /turf/space)) + new /obj/effect/decal/cleanable/flour/foam(T) //foam mess; clears up quickly. + var/hotspot = (locate(/obj/fire) in T) + if(hotspot && !istype(T, /turf/space)) + var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() ) + lowertemp.temperature = max( min(lowertemp.temperature-(CT*1000),lowertemp.temperature / CT) ,0) + lowertemp.react() + T.assume_air(lowertemp) + qdel(hotspot) + return + +datum/reagent/firefighting_foam/reaction_obj(var/obj/O, var/volume) + src = null + var/turf/T = get_turf(O) + var/hotspot = (locate(/obj/fire) in T) + if(hotspot && !istype(T, /turf/space)) + var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() ) + lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0) + lowertemp.react() + T.assume_air(lowertemp) + del(hotspot) + return + +/datum/chemical_reaction/clf3_firefighting + name = "clf3_firefighting" + id = "clf3_firefighting" + result = null + required_reagents = list("firefighting_foam" = 1, "clf3" = 1) + result_amount = 1 + mix_message = "The substance violently detonates!" + +/datum/chemical_reaction/clf3_firefighting/on_reaction(var/datum/reagents/holder, var/created_volume) + var/location = get_turf(holder.my_atom) + explosion(location,0,0,3) + return