diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 6e4cab7b728..31c9b79f44e 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -33,12 +33,14 @@ obj/structure W:use(2) user << "\blue You create a false wall! Push on it to open or close the passage." new /obj/structure/falsewall (src.loc) + add_hiddenprint(usr) del(src) else if(istype(W, /obj/item/stack/sheet/plasteel) && istype(src,/obj/structure/girder/displaced)) W:use(2) user << "\blue You create a false r wall! Push on it to open or close the passage." new /obj/structure/falserwall (src.loc) + add_hiddenprint(usr) del(src) else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced)) @@ -80,6 +82,8 @@ obj/structure Tsrc.ReplaceWithWall() for(var/obj/machinery/atmospherics/pipe/P in Tsrc) P.layer = 1 + for(var/turf/simulated/wall/X in Tsrc.loc) + if(X) X.add_hiddenprint(usr) if (W) W:use(2) del(src) return @@ -93,6 +97,8 @@ obj/structure Tsrc.ReplaceWithRWall() for(var/obj/machinery/atmospherics/pipe/P in Tsrc) P.layer = 1 + for(var/turf/simulated/wall/r_wall/X in Tsrc.loc) + if(X) X.add_hiddenprint(usr) if (W) W:use(1) del(src) diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm index 8fba59a1160..bdc681748f9 100644 --- a/code/modules/chemical/Chemistry-Tools.dm +++ b/code/modules/chemical/Chemistry-Tools.dm @@ -1075,17 +1075,46 @@ update_icon() var/rounded_vol = round(reagents.total_volume,5) + overlays = null if(ismob(loc)) - var/mode_t + var/injoverlay switch(mode) if (SYRINGE_DRAW) - mode_t = "d" + injoverlay = "draw" if (SYRINGE_INJECT) - mode_t = "i" - icon_state = "[mode_t][rounded_vol]" - else - icon_state = "[rounded_vol]" + injoverlay = "inject" + overlays += injoverlay + icon_state = "[rounded_vol]" item_state = "syringe_[rounded_vol]" + if(reagents.total_volume) + var/obj/effect/overlay = new/obj + overlay.icon = 'syringefilling.dmi' + switch(rounded_vol) + if(5) overlay.icon_state = "5" + if(10) overlay.icon_state = "10" + if(15) overlay.icon_state = "15" + + var/list/rgbcolor = list(0,0,0) + var/finalcolor + for(var/datum/reagent/re in reagents.reagent_list) // natural color mixing bullshit/algorithm + if(!finalcolor) + rgbcolor = GetColors(re.color) + finalcolor = re.color + else + var/newcolor[3] + var/prergbcolor[3] + prergbcolor = rgbcolor + newcolor = GetColors(re.color) + + rgbcolor[1] = (prergbcolor[1]+newcolor[1])/2 + rgbcolor[2] = (prergbcolor[2]+newcolor[2])/2 + rgbcolor[3] = (prergbcolor[3]+newcolor[3])/2 + + finalcolor = rgb(rgbcolor[1], rgbcolor[2], rgbcolor[3]) + + overlay.icon += finalcolor + if(!istype(src.loc, /turf)) overlay.layer = 30 + overlays += overlay /obj/item/weapon/reagent_containers/ld50_syringe diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 43c2374d350..a6f39841e9e 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -18,7 +18,7 @@ flags = FPRINT | TABLEPASS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS slowdown = 1.0 - allowed = list(/obj/item/weapon/tank/emergency_oxygen) + allowed = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) diff --git a/icons/obj/syringe.dmi b/icons/obj/syringe.dmi index 08d86cb7e5d..7dcc0e479e8 100644 Binary files a/icons/obj/syringe.dmi and b/icons/obj/syringe.dmi differ diff --git a/icons/obj/syringefilling.dmi b/icons/obj/syringefilling.dmi new file mode 100644 index 00000000000..5fbf001d265 Binary files /dev/null and b/icons/obj/syringefilling.dmi differ