[Goonchem] Reagent Temperature

This commit is contained in:
Fox McCloud
2019-03-18 20:06:15 -04:00
parent 8ef3483119
commit 277722508a
69 changed files with 182 additions and 166 deletions
@@ -90,7 +90,8 @@
icon_state = "cobweb1"
burntime = 1
/obj/effect/decal/cleanable/cobweb/fire_act()
/obj/effect/decal/cleanable/cobweb/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
..()
qdel(src)
/obj/effect/decal/cleanable/molten_object
+1 -14
View File
@@ -35,22 +35,9 @@
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()
to_chat(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()
if(reagents)
reagents.chem_temp += 30
reagents.handle_reactions()
..()
..()
@@ -84,7 +84,10 @@
// foam disolves when heated
// except metal foams
/obj/effect/particle_effect/foam/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/effect/particle_effect/foam/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE) //Don't heat the reagents inside
return
/obj/effect/particle_effect/foam/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) // overriden to prevent weird behaviors with heating reagents inside
if(!metal && prob(max(0, exposed_temperature - 475)))
flick("[icon_state]-disolve", src)
-3
View File
@@ -12,8 +12,5 @@
/obj/effect/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
return
/obj/effect/fire_act()
return
/obj/effect/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
return FALSE
+1
View File
@@ -180,6 +180,7 @@
qdel(src)
/obj/structure/glowshroom/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 300)
endurance -= 5
CheckEndurance()
+4 -2
View File
@@ -113,7 +113,8 @@
else
return ..()
/obj/effect/snow/fire_act()
/obj/effect/snow/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
..()
qdel(src)
/obj/effect/snow/ex_act(severity)
@@ -133,7 +134,8 @@
..()
qdel(src)
/obj/item/snowball/fire_act()
/obj/item/snowball/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
..()
qdel(src)
/obj/item/snowball/ex_act(severity)
+1
View File
@@ -69,6 +69,7 @@
qdel(src)
/obj/structure/spider/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 300)
health -= 5
healthcheck()
+2 -1
View File
@@ -51,7 +51,8 @@
light("<span class='notice'>[user] tilts [C] and lights [src] with it.</span>")
/obj/item/candle/fire_act()
/obj/item/candle/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
..()
if(!lit)
light() //honk
@@ -47,7 +47,7 @@
update_icon()
/obj/item/taperecorder/fire_act()
/obj/item/taperecorder/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
mytape.ruin() //Fires destroy the tape
return ..()
@@ -262,7 +262,8 @@
var/list/timestamp = list()
var/ruined = 0
/obj/item/tape/fire_act()
/obj/item/tape/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
..()
ruin()
/obj/item/tape/attack_self(mob/user)
+1 -1
View File
@@ -21,7 +21,7 @@
user.visible_message("<span class='notice'>[user] [rolled ? "rolls up" : "unfurls"] [src].</span>", "<span class='notice'>You [rolled ? "roll up" : "unfurl"] [src].</span>", "<span class='warning'>You hear fabric rustling.</span>")
update_icon()
/obj/item/flag/fire_act(global_overlay = FALSE)
/obj/item/flag/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = FALSE)
..()
update_icon()
+1 -1
View File
@@ -50,9 +50,9 @@
burst()
/obj/item/latexballon/temperature_expose(datum/gas_mixture/air, temperature, volume)
..()
if(temperature > T0C+100)
burst()
return
/obj/item/latexballon/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/tank))
@@ -179,7 +179,8 @@ var/global/list/datum/stack_recipe/adamantine_recipes = list(
else
return ..()
/obj/item/stack/sheet/mineral/plasma/fire_act()
/obj/item/stack/sheet/mineral/plasma/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
..()
atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, amount*10)
qdel(src)
+3 -2
View File
@@ -275,7 +275,8 @@
playsound(src, 'sound/effects/snap.ogg', 50, 1)
qdel(src)
/obj/item/toy/snappop/fire_act()
/obj/item/toy/snappop/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
..()
pop_burst()
/obj/item/toy/snappop/throw_impact(atom/hit_atom)
@@ -1689,5 +1690,5 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/restraints/handcuffs/toy
desc = "Toy handcuffs. Plastic and extremely cheaply made."
throwforce = 0
breakouttime = 0
breakouttime = 0
ignoresClumsy = TRUE
+2 -1
View File
@@ -61,7 +61,8 @@ LIGHTERS ARE IN LIGHTERS.DM
return ..()
/obj/item/clothing/mask/cigarette/fire_act()
/obj/item/clothing/mask/cigarette/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
..()
light()
/obj/item/clothing/mask/cigarette/attackby(obj/item/W as obj, mob/user as mob, params)
+2 -1
View File
@@ -166,7 +166,8 @@
location.hotspot_expose(700, 5)
return
/obj/item/match/fire_act()
/obj/item/match/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
..()
matchignite()
/obj/item/match/proc/matchignite()
+4 -3
View File
@@ -93,7 +93,7 @@
/obj/move_crushed(atom/movable/pusher, force = MOVE_FORCE_DEFAULT, direction)
collision_damage(pusher, force, direction)
return TRUE
/obj/proc/collision_damage(atom/movable/pusher, force = MOVE_FORCE_DEFAULT, direction)
var/amt = max(0, ((force - (move_resist * MOVE_FORCE_CRUSH_RATIO)) / (move_resist * MOVE_FORCE_CRUSH_RATIO)) * 10)
take_damage(amt, BRUTE)
@@ -163,14 +163,15 @@
//// FIRE
/obj/fire_act(global_overlay=1)
/obj/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
..()
if(!burn_state)
burn_state = ON_FIRE
SSfires.processing[src] = src
burn_world_time = world.time + burntime*rand(10,20)
if(global_overlay)
overlays += fire_overlay
return 1
return TRUE
/obj/proc/burn()
empty_object_contents(1, loc)
+2
View File
@@ -157,6 +157,7 @@
new /obj/structure/alien/weeds(T, linked_node)
/obj/structure/alien/weeds/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 300)
take_damage(5, BURN, 0, 0)
@@ -294,6 +295,7 @@
Burst(kill = TRUE)
/obj/structure/alien/egg/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 500)
take_damage(5, BURN, 0, 0)
+1 -1
View File
@@ -245,7 +245,7 @@ LINEN BINS
else icon_state = "linenbin-full"
/obj/structure/bedsheetbin/fire_act()
/obj/structure/bedsheetbin/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
if(!amount)
return
..()
@@ -249,6 +249,7 @@
qdel(src)
/obj/structure/falsewall/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 300)
burnbabyburn()
+1
View File
@@ -48,6 +48,7 @@
qdel(src)
/obj/structure/girder/temperature_expose(datum/gas_mixture/air, exposed_temperature)
..()
var/temp_check = exposed_temperature
if(temp_check >= GIRDER_MELTING_TEMP)
take_damage(10)
+1 -1
View File
@@ -261,10 +261,10 @@
return 0
/obj/structure/grille/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(!broken)
if(exposed_temperature > T0C + 1500)
take_damage(1, BURN, 0, 0)
..()
/obj/structure/grille/hitby(atom/movable/AM)
if(istype(AM, /obj))
@@ -229,6 +229,7 @@
return ..()
/obj/structure/mineral_door/transparent/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 300)
TemperatureAct(exposed_temperature)
+3 -1
View File
@@ -169,6 +169,7 @@
icon_state = "xeno"
/obj/structure/statue/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > 300)
PlasmaBurn(exposed_temperature)
@@ -359,7 +360,8 @@
else
return ..()
/obj/structure/snowman/built/fire_act()
/obj/structure/snowman/built/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
..()
qdel(src)
+1 -1
View File
@@ -461,9 +461,9 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
overlays += crack_overlay
/obj/structure/window/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > (T0C + heat_resistance))
take_damage(round(exposed_volume / 100), BURN, 0, 0)
..()
/obj/structure/window/GetExplosionBlock()
return reinf && fulltile ? real_explosion_block : 0