From ed39df47f7cf0e76c0f9592f1a3bedd0aa8adf9f Mon Sep 17 00:00:00 2001 From: phil235 Date: Sun, 23 Aug 2015 17:29:57 +0200 Subject: [PATCH] Fixes two runtimes in reagent reaction code (caused by my recent changes) Fixes timer device not showing its countdown overlay when not attached (sprite was removed by accident probably). Fixes timer/infrared beam/proximity sensor not being usable when freshly spawned because they weren't being processed. Fixes infrared beam runtime (when the device is deleted the beam itself isn't, causing runtimes when crossing it). --- code/modules/assembly/assembly.dm | 6 ----- code/modules/assembly/infrared.dm | 21 +++++++++++++---- code/modules/assembly/proximity.dm | 22 ++++++++++-------- code/modules/assembly/timer.dm | 22 +++++++++--------- code/modules/reagents/Chemistry-Reagents.dm | 2 +- .../Chemistry-Reagents/Toxin-Reagents.dm | 3 ++- icons/obj/assemblies/new_assemblies.dmi | Bin 10835 -> 10882 bytes 7 files changed, 42 insertions(+), 34 deletions(-) diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 3a70880a7ec..0efdcf412ba 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -103,12 +103,6 @@ user << "\The [src] can now be attached!" return ..() - return - - -/obj/item/device/assembly/process() - SSobj.processing.Remove(src) - return /obj/item/device/assembly/examine(mob/user) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index e470324cdf3..ca37fbcb036 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -10,6 +10,16 @@ var/obj/effect/beam/i_beam/first = null var/obj/effect/beam/i_beam/last = null + +/obj/item/device/assembly/infra/New() + ..() + SSobj.processing |= src + +/obj/item/device/assembly/infra/Destroy() + if(first) + qdel(first) + return ..() + /obj/item/device/assembly/infra/describe() return "The infrared trigger is [on?"on":"off"]." @@ -25,7 +35,8 @@ SSobj.processing |= src else on = 0 - if(first) qdel(first) + if(first) + qdel(first) SSobj.processing.Remove(src) update_icon() return secured @@ -45,7 +56,7 @@ if(!on) if(first) qdel(first) - return + return if(!secured) return if(first && last) @@ -96,7 +107,7 @@ /obj/item/device/assembly/infra/interact(mob/user)//TODO: change this this to the wire control panel if(is_secured(user)) user.set_machine(src) - var/dat = text("Infrared Laser\nStatus: []
\nVisibility: []
\n
", (on ? text("On", src) : text("Off", src)), (src.visible ? text("Visible", src) : text("Invisible", src))) + var/dat = "Infrared Laser\nStatus: [on ? "On" : "Off"]
\nVisibility: [visible ? "Visible" : "Invisible"]
\n
" dat += "

Refresh" dat += "

Close" user << browse(dat, "window=infra") @@ -105,7 +116,7 @@ /obj/item/device/assembly/infra/Topic(href, href_list) ..() - if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) + if(usr.incapacitated() || !in_range(loc, usr)) usr << browse(null, "window=infra") onclose(usr, "infra") return @@ -127,7 +138,7 @@ set category = "Object" set src in usr - if(usr.stat || !usr.canmove || usr.restrained()) + if(usr.incapacitated()) return dir = turn(dir, 90) diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index 656e927716e..53990197caa 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -15,6 +15,11 @@ /obj/item/device/assembly/prox_sensor/proc/sense() + +/obj/item/device/assembly/prox_sensor/New() + ..() + SSobj.processing |= src + /obj/item/device/assembly/prox_sensor/describe() if(timing) return "The proximity sensor is arming." @@ -24,7 +29,7 @@ if(!..()) return 0//Cooldown check timing = !timing update_icon() - return 0 + return 1 /obj/item/device/assembly/prox_sensor/toggle_secure() @@ -55,13 +60,12 @@ /obj/item/device/assembly/prox_sensor/process() - if(timing && (time >= 0)) + if(timing) time-- - if(timing && time <= 0) - timing = 0 - toggle_scan() - time = 10 - return + if(time <= 0) + timing = 0 + toggle_scan() + time = initial(time) /obj/item/device/assembly/prox_sensor/dropped() @@ -113,7 +117,7 @@ /obj/item/device/assembly/prox_sensor/Topic(href, href_list) ..() - if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) + if(usr.incapacitated() || !in_range(loc, usr)) usr << browse(null, "window=prox") onclose(usr, "prox") return @@ -137,5 +141,3 @@ if(usr) attack_self(usr) - - return diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 7760900ac56..4e1e0e213ac 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -10,6 +10,10 @@ var/time = 5 +/obj/item/device/assembly/timer/New() + ..() + SSobj.processing |= src + /obj/item/device/assembly/timer/describe() if(timing) return "The timer is counting down from [time]!" @@ -20,7 +24,7 @@ if(!..()) return 0//Cooldown check timing = !timing update_icon() - return 0 + return 1 /obj/item/device/assembly/timer/toggle_secure() @@ -42,17 +46,16 @@ cooldown = 2 spawn(10) process_cooldown() - return + update_icon() /obj/item/device/assembly/timer/process() - if(timing && (time > 0)) + if(timing) time-- - if(timing && time <= 0) - timing = 0 - timer_end() - time = initial(time) - return + if(time <= 0) + timing = 0 + timer_end() + time = initial(time) /obj/item/device/assembly/timer/update_icon() @@ -63,7 +66,6 @@ attached_overlays += "timer_timing" if(holder) holder.update_icon() - return /obj/item/device/assembly/timer/interact(mob/user)//TODO: Have this use the wires @@ -76,7 +78,6 @@ var/datum/browser/popup = new(user, "timer", name) popup.set_content(dat) popup.open() - return /obj/item/device/assembly/timer/Topic(href, href_list) @@ -107,4 +108,3 @@ if(usr) attack_self(usr) - return diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 7a58c099077..dad745e7936 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -43,7 +43,7 @@ if(method == VAPOR) //smoke, foam, spray if(M.reagents) var/modifier = Clamp((1 - touch_protection), 0, 1) - var/amount = round(volume*modifier, 0.1) + var/amount = round(reac_volume*modifier, 0.1) if(amount >= 1) M.reagents.add_reagent(self.id, amount) return 1 diff --git a/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm index e13de807739..319b0e4a944 100644 --- a/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm @@ -639,10 +639,11 @@ /datum/reagent/toxin/acid/reaction_turf(turf/T, reac_volume) if (!istype(T)) return + var/datum/reagent/toxin/acid/self = src src = null reac_volume = round(reac_volume,0.1) for(var/obj/O in T) - O.acid_act(acidpwr, reac_volume) + O.acid_act(self.acidpwr, reac_volume) /datum/reagent/toxin/acid/fluacid name = "Fluorosulfuric acid" diff --git a/icons/obj/assemblies/new_assemblies.dmi b/icons/obj/assemblies/new_assemblies.dmi index ae869fa90940c5c06bcef835a65a19a1bd4a1f58..660a99c185bae7cf64e11ed56a5a470eebe4657d 100644 GIT binary patch literal 10882 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 G2mKpGnCIjG literal 10835 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