Should be up to date now.

This commit is contained in:
CosmicScientist
2015-04-11 14:39:37 +01:00
323 changed files with 7045 additions and 4000 deletions
@@ -176,6 +176,14 @@
/datum/chemical_reaction/blackpowder_explosion/on_reaction(var/datum/reagents/holder, var/created_volume)
sleep(rand(50,100))
blackpowder_detonate(holder, created_volume)
return
/datum/reagent/blackpowder/on_ex_act()
blackpowder_detonate(holder, volume)
return
/proc/blackpowder_detonate(var/datum/reagents/holder, var/created_volume)
var/turf/simulated/T = get_turf(holder.my_atom)
var/ex_severe = round(created_volume / 100)
var/ex_heavy = round(created_volume / 42)
@@ -183,7 +191,6 @@
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"
@@ -428,10 +435,19 @@ datum/reagent/cryostylane
datum/reagent/cryostylane/on_mob_life(var/mob/living/M as mob) //TODO: code freezing into an ice cube
if(M.reagents.has_reagent("oxygen"))
M.reagents.remove_reagent("oxygen", 1)
M.bodytemperature -= 30 * TEMPERATURE_DAMAGE_COEFFICIENT
M.bodytemperature -= 30
..()
return
datum/reagent/cryostylane/on_tick()
if(holder.has_reagent("oxygen"))
holder.remove_reagent("oxygen", 1)
holder.chem_temp -= 10
holder.handle_reactions()
..()
return
datum/reagent/cryostylane/reaction_turf(var/turf/simulated/T, var/volume)
if(volume >= 5)
for(var/mob/living/simple_animal/slime/M in T)
@@ -457,6 +473,14 @@ datum/reagent/pyrosium
datum/reagent/pyrosium/on_mob_life(var/mob/living/M as mob)
if(M.reagents.has_reagent("oxygen"))
M.reagents.remove_reagent("oxygen", 1)
M.bodytemperature += 30 * TEMPERATURE_DAMAGE_COEFFICIENT
M.bodytemperature += 30
..()
return
datum/reagent/pyrosium/on_tick()
if(holder.has_reagent("oxygen"))
holder.remove_reagent("oxygen", 1)
holder.chem_temp += 10
holder.handle_reactions()
..()
return
+7 -1
View File
@@ -17,7 +17,7 @@ datum/reagents
datum/reagents/New(maximum=100)
maximum_volume = maximum
SSobj.processing |= src
//I dislike having these here but map-objects are initialised before world/New() is called. >_>
if(!chemical_reagents_list)
//Chemical Reagents - Initialises all /datum/reagent into a list indexed by reagent id
@@ -53,6 +53,7 @@ datum/reagents/New(maximum=100)
datum/reagents/Destroy()
..()
SSobj.processing.Remove(src)
for(var/datum/reagent/R in reagent_list)
qdel(R)
reagent_list.Cut()
@@ -260,6 +261,11 @@ datum/reagents/proc/metabolize(var/mob/M)
last_tick++
update_total()
datum/reagents/process()
for(var/datum/reagent/R in reagent_list)
R.on_tick()
return
datum/reagents/proc/conditional_update_move(var/atom/A, var/Running = 0)
for(var/datum/reagent/R in reagent_list)
R.on_move (A, Running)
+7 -4
View File
@@ -580,7 +580,7 @@
/obj/machinery/chem_master/constructable
name = "ChemMaster 2999"
desc = "Used to seperate chemicals and distribute them in a variety of forms."
/obj/machinery/chem_master/constructable/New()
..()
component_parts = list()
@@ -589,7 +589,7 @@
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(null)
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(null)
/obj/machinery/chem_master/constructable/attackby(var/obj/item/B as obj, var/mob/user as mob, params)
if(default_deconstruction_screwdriver(user, "mixer0_nopower", "mixer0_", B))
@@ -601,10 +601,10 @@
loaded_pill_bottle.loc = src.loc
loaded_pill_bottle = null
return
if(exchange_parts(user, B))
return
if(panel_open)
if(istype(B, /obj/item/weapon/crowbar))
default_deconstruction_crowbar(B)
@@ -983,6 +983,7 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime)
/obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = -5),
/obj/item/weapon/reagent_containers/food/snacks/grown/oat = list("flour" = -5),
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries = list("bluecherryjelly" = 0),
/obj/item/weapon/reagent_containers/food/snacks/egg = list("eggyolk" = -5),
//Grinder stuff, but only if dry
@@ -1013,6 +1014,8 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime)
/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon = list("watermelonjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/watermelonslice = list("watermelonjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/berries/poison = list("poisonberryjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = list("pumpkinjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin = list("blumpkinjuice" = 0),
)
var/list/dried_items = list(
@@ -102,6 +102,14 @@ datum/reagent/proc/on_merge(var/data)
datum/reagent/proc/on_update(var/atom/A)
return
// Called every time reagent containers process.
datum/reagent/proc/on_tick(var/data)
return
// Called when the reagent container is hit by an explosion
datum/reagent/proc/on_ex_act(var/severity)
return
// Called if the reagent has passed the overdose threshold and is set to be triggering overdose effects
datum/reagent/proc/overdose_process(var/mob/living/M as mob)
return
@@ -576,8 +584,8 @@ datum/reagent/radium/reaction_turf(var/turf/T, var/volume)
src = null
if(volume >= 3)
if(!istype(T, /turf/space))
new /obj/effect/decal/cleanable/greenglow(T)
return
var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/greenglow(T)
reagentdecal.reagents.add_reagent("uranium", volume)
datum/reagent/thermite
name = "Thermite"
@@ -647,7 +655,8 @@ datum/reagent/uranium/reaction_turf(var/turf/T, var/volume)
src = null
if(volume >= 3)
if(!istype(T, /turf/space))
new /obj/effect/decal/cleanable/greenglow(T)
var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/greenglow(T)
reagentdecal.reagents.add_reagent("uranium", volume)
datum/reagent/aluminium
name = "Aluminium"
@@ -617,3 +617,10 @@ datum/reagent/consumable/ethanol/silencer/on_mob_life(var/mob/living/M as mob)
M.heal_organ_damage(1,1)
..()
return
datum/reagent/consumable/ethanol/drunkenblumpkin
name = "Drunken Blumpkin"
id = "drunkenblumpkin"
description = "A weird mix of whiskey and blumpkin juice."
color = "#1EA0FF" // rgb: 102, 67, 0
boozepwr = 35
@@ -400,6 +400,60 @@ datum/reagent/consumable/doctor_delight
description = "A gulp a day keeps the MediBot away. That's probably for the best."
color = "#FF8CFF" // rgb: 255, 140, 255
datum/reagent/consumable/chocolatepudding
name = "Chocolate Pudding"
id = "chocolatepudding"
description = "A great dessert for chocolate lovers."
color = "#800000"
nutriment_factor = 4 * REAGENTS_METABOLISM
datum/reagent/consumable/vanillapudding
name = "Vanilla Pudding"
id = "vanillapudding"
description = "A great dessert for vanilla lovers."
color = "#FAFAD2"
nutriment_factor = 4 * REAGENTS_METABOLISM
datum/reagent/consumable/cherryshake
name = "Cherry Shake"
id = "cherryshake"
description = "A cherry flavored milkshake."
color = "#FFB6C1"
nutriment_factor = 4 * REAGENTS_METABOLISM
datum/reagent/consumable/bluecherryshake
name = "Blue Cherry Shake"
id = "bluecherryshake"
description = "An exotic milkshake."
color = "#00F1FF"
nutriment_factor = 4 * REAGENTS_METABOLISM
datum/reagent/consumable/pumpkin_latte
name = "Pumpkin Latte"
id = "pumpkin_latte"
description = "A mix of pumpkin juice and coffee."
color = "#F4A460"
nutriment_factor = 3 * REAGENTS_METABOLISM
datum/reagent/consumable/gibbfloats
name = "Gibb Floats"
id = "gibbfloats"
description = "Icecream on top of a Dr. Gibb glass."
color = "#B22222"
nutriment_factor = 3 * REAGENTS_METABOLISM
datum/reagent/consumable/pumpkinjuice
name = "Pumpkin Juice"
id = "pumpkinjuice"
description = "Juiced from real pumpkin."
color = "#FFA500"
datum/reagent/consumable/blumpkinjuice
name = "Blumpkin Juice"
id = "blumpkinjuice"
description = "Juiced from real blumpkin."
color = "#00BFFF"
//////////////////////////////////////////////The ten friggen million reagents that get you drunk//////////////////////////////////////////////
@@ -374,7 +374,8 @@ datum/reagent/consumable/flour
datum/reagent/consumable/flour/reaction_turf(var/turf/T, var/volume)
src = null
if(!istype(T, /turf/space))
new /obj/effect/decal/cleanable/flour(T)
var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/flour(T)
reagentdecal.reagents.add_reagent("flour", volume)
datum/reagent/consumable/cherryjelly
name = "Cherry Jelly"
@@ -382,6 +383,12 @@ datum/reagent/consumable/cherryjelly
description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
color = "#801E28" // rgb: 128, 30, 40
datum/reagent/consumable/bluecherryjelly
name = "Blue Cherry Jelly"
id = "bluecherryjelly"
description = "Blue and tastier kind of cherry jelly."
color = "#00F0FF"
datum/reagent/consumable/rice
name = "Rice"
id = "rice"
@@ -77,3 +77,14 @@
return 0
return 1
/obj/item/weapon/reagent_containers/ex_act()
if(reagents)
for(var/datum/reagent/R in reagents.reagent_list)
R.on_ex_act()
..()
/obj/item/weapon/reagent_containers/fire_act()
reagents.chem_temp += 30
reagents.handle_reactions()
..()
@@ -84,10 +84,18 @@
else if(istype(target, /obj/item/clothing/suit/space/space_ninja))
return
else if(istype(target, /obj/effect/decal/cleanable)) //stops splashing while scooping up fluids
return
else if(reagents.total_volume)
user << "<span class='notice'>You splash the solution onto [target].</span>"
reagents.reaction(target, TOUCH)
reagents.clear_reagents()
if(istype(target, /turf/simulated/floor))
var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/chem_pile(target)
reagents.trans_to(reagentdecal, volume)
reagentdecal.color = mix_color_from_reagents(reagentdecal.reagents.reagent_list)
else
reagents.clear_reagents()
/obj/item/weapon/reagent_containers/glass/attackby(var/obj/item/I, mob/user as mob, params)
if(istype(I, /obj/item/clothing/mask/cigarette)) //ciggies are weird