diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index f0ea47e98e3..54510858f14 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -1,5 +1,9 @@ // Foam // Similar to smoke, but slower and mobs absorb its reagent through their exposed skin. +#define ALUMINUM_FOAM 1 +#define IRON_FOAM 2 +#define RESIN_FOAM 3 + /obj/effect/particle_effect/foam name = "foam" @@ -22,16 +26,16 @@ /obj/effect/particle_effect/foam/metal name = "aluminium foam" - metal = 1 + metal = ALUMINUM_FOAM icon_state = "mfoam" /obj/effect/particle_effect/foam/metal/iron name = "iron foam" - metal = 2 + metal = IRON_FOAM /obj/effect/particle_effect/foam/metal/resin name = "resin foam" - metal = 3 + metal = RESIN_FOAM /obj/effect/particle_effect/foam/New(loc) @@ -48,12 +52,12 @@ /obj/effect/particle_effect/foam/proc/kill_foam() STOP_PROCESSING(SSfastprocess, src) switch(metal) - if(1) - new /obj/structure/foamedmetal(src.loc) - if(2) - new /obj/structure/foamedmetal/iron(src.loc) - if(3) - new /obj/structure/foamedmetal/resin(src.loc) + if(ALUMINUM_FOAM) + new /obj/structure/foamedmetal(get_turf(src)) + if(IRON_FOAM) + new /obj/structure/foamedmetal/iron(get_turf(src)) + if(RESIN_FOAM) + new /obj/structure/foamedmetal/resin(get_turf(src)) flick("[icon_state]-disolve", src) QDEL_IN(src, 5) @@ -240,13 +244,15 @@ /obj/structure/foamedmetal/resin name = "ATMOS Resin" desc = "A lightweight, transparent resin used to suffocate fires, scrub the air of toxins, and restore the air to a safe temperature" - opacity = 0 + opacity = FALSE icon_state = "atmos_resin" alpha = 120 obj_integrity = 10 max_integrity = 10 + layer = EDGED_TURF_LAYER -/obj/structure/foamedmetal/resin/New() +/obj/structure/foamedmetal/resin/Initialize() + . = ..() if(isopenturf(loc)) var/turf/open/O = loc if(O.air) @@ -256,17 +262,21 @@ qdel(H) var/list/G_gases = G.gases for(var/I in G_gases) - if(I != "o2") + if(I != "o2" && I != "n2") G.gases[I][MOLES] = 0 G.garbage_collect() O.air_update_turf() for(var/obj/machinery/atmospherics/components/unary/U in O) - if(!isnull(U.welded) && !U.welded) //must be an unwelded vent pump or vent scrubber. - U.welded = 1 + if(!U.welded) + U.welded = TRUE U.update_icon() U.visible_message("[U] sealed shut!") for(var/mob/living/L in O) L.ExtinguishMob() for(var/obj/item/Item in O) Item.extinguish() - ..() + + +#undef ALUMINUM_FOAM +#undef IRON_FOAM +#undef RESIN_FOAM diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm index 5c4a73a6d39..7431d4ff850 100644 --- a/code/game/objects/items/weapons/tanks/watertank.dm +++ b/code/game/objects/items/weapons/tanks/watertank.dm @@ -212,6 +212,7 @@ safety = 0 max_water = 200 power = 8 + force = 10 precision = 1 cooling_power = 5 w_class = WEIGHT_CLASS_HUGE @@ -278,10 +279,10 @@ if(resin_cooldown) to_chat(user, "Resin launcher is still recharging...") return - resin_cooldown = 1 + resin_cooldown = TRUE R.remove_any(100) - var/obj/effect/resin_container/A = new /obj/effect/resin_container(get_turf(src)) - log_game("[user.ckey] ([user.name]) used Resin Launcher at [get_area(user)] ([user.x], [user.y], [user.z]).") + var/obj/effect/resin_container/A = new (get_turf(src)) + log_game("[key_name_admin(user)] used Resin Launcher at [get_area(user)] [COORD(user)].") playsound(src,'sound/items/syringeproj.ogg',40,1) for(var/a=0, a<5, a++) step_towards(A, target) @@ -289,13 +290,13 @@ A.Smoke() spawn(100) if(src) - resin_cooldown = 0 + resin_cooldown = FALSE return if(nozzle_mode == RESIN_FOAM) if(!Adj|| !isturf(target)) return if(metal_synthesis_cooldown < 5) - var/obj/effect/particle_effect/foam/metal/F = new /obj/effect/particle_effect/foam/metal/resin(get_turf(target)) + var/obj/effect/particle_effect/foam/metal/resin/F = new (get_turf(target)) F.amount = 0 metal_synthesis_cooldown++ spawn(100) @@ -319,7 +320,7 @@ qdel(src) #undef EXTINGUISHER -#undef resin +#undef RESIN_LAUNCHER #undef RESIN_FOAM /obj/item/weapon/reagent_containers/chemtank diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index fe76a59db96..841ce45b7b5 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -66,22 +66,24 @@ icon_state = "holosign_engi" /obj/structure/holosign/barrier/atmos - name = "holo atmospheric fan" - desc = "A holographic fan that acts as a barrier for atmospheric changes." - icon_state = "holo_fan" + name = "holo firelock" + desc = "A holographic barrier resembling a firelock. Though it does not prevent solid objects from passing through, gas is kept out." + icon_state = "holo_firelock" density = FALSE - anchored = 1 + layer = ABOVE_MOB_LAYER + anchored = TRUE CanAtmosPass = ATMOS_PASS_NO - layer = ABOVE_NORMAL_TURF_LAYER + layer = ABOVE_MOB_LAYER + alpha = 150 -/obj/structure/holosign/barrier/atmos/New() - ..() - air_update_turf(1) +/obj/structure/holosign/barrier/atmos/Initialize() + . = ..() + air_update_turf(TRUE) /obj/structure/holosign/barrier/atmos/Destroy() - CanAtmosPass = ATMOS_PASS_YES - air_update_turf(1) - return ..() + var/turf/T = get_turf(src) + . = ..() + T.air_update_turf(TRUE) /obj/structure/holosign/barrier/cyborg name = "Energy Field" diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 3f2e98e1a58..885ad621311 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ