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 ae869fa9094..660a99c185b 100644
Binary files a/icons/obj/assemblies/new_assemblies.dmi and b/icons/obj/assemblies/new_assemblies.dmi differ