mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-21 21:17:44 +01:00
Should be up to date now.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
+7
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user