Updated ZAS and Atmo

This commit is contained in:
ZomgPonies
2013-10-12 14:41:43 -04:00
parent 771de60525
commit 37e732d8db
22 changed files with 1529 additions and 571 deletions
+2
View File
@@ -268,6 +268,7 @@ obj/machinery/atmospherics/tvalve
icon = 'icons/obj/atmospherics/digital_valve.dmi'
attack_ai(mob/user as mob)
src.add_hiddenprint(user)
return src.attack_hand(user)
attack_hand(mob/user as mob)
@@ -387,6 +388,7 @@ obj/machinery/atmospherics/tvalve/mirrored
icon = 'icons/obj/atmospherics/digital_valve.dmi'
attack_ai(mob/user as mob)
src.add_hiddenprint(user)
return src.attack_hand(user)
attack_hand(mob/user as mob)
@@ -1,6 +1,6 @@
/obj/machinery/atmospherics/unary/cold_sink
icon = 'icons/obj/atmospherics/cold_sink.dmi'
icon_state = "intact_off"
icon_state = "on_cool"
density = 1
use_power = 1
@@ -6,17 +6,18 @@
//Transfers heat between a pipe system and environment, based on which has a greater thermal energy concentration
icon = 'icons/obj/atmospherics/cold_sink.dmi'
icon_state = "intact_off"
icon_state = "off"
level = 1
name = "Thermal Transfer Plate"
desc = "Transfers heat to and from an area"
update_icon()
if(node)
icon_state = "intact_off"
else
icon_state = "exposed"
return
var/prefix=""
//var/suffix="_idle" // Also available: _heat, _cool
if(level == 1 && istype(loc, /turf/simulated))
prefix="h"
icon_state = "[prefix]off"
process()
..()
@@ -59,6 +60,37 @@
return 1
hide(var/i) //to make the little pipe section invisible, the icon changes.
var/prefix=""
//var/suffix="_idle" // Also available: _heat, _cool
if(i == 1 && istype(loc, /turf/simulated))
prefix="h"
icon_state = "[prefix]off"
return
attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
var/turf/T = src.loc
if (level==1 && isturf(T) && T.intact)
user << "\red You must remove the plating first."
return 1
var/datum/gas_mixture/int_air = return_air()
var/datum/gas_mixture/env_air = loc.return_air()
if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE)
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
add_fingerprint(user)
return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src]..."
if (do_after(user, 40))
user.visible_message( \
"[user] unfastens \the [src].", \
"\blue You have unfastened \the [src].", \
"You hear ratchet.")
new /obj/item/pipe(loc, make_from=src)
del(src)
proc/radiate()
var/internal_transfer_moles = 0.25 * air_contents.total_moles()
@@ -40,13 +40,19 @@
..()
update_icon()
var/hidden=""
if(level == 1 && istype(loc, /turf/simulated))
hidden="h"
var/suffix=""
if(scrub_O2)
suffix="1"
if(node && on && !(stat & (NOPOWER|BROKEN)))
if(scrubbing)
icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]on"
icon_state = "[hidden]on[suffix]"
else
icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]in"
icon_state = "[hidden]in"
else
icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]off"
icon_state = "[hidden]off"
return
proc
@@ -106,7 +112,12 @@
var/datum/gas_mixture/environment = loc.return_air()
if(scrubbing)
if((environment.toxins>0) || (environment.carbon_dioxide>0) || (environment.trace_gases.len>0))
// Are we scrubbing gasses that are present?
if(\
(scrub_Toxins && environment.toxins > 0) ||\
(scrub_CO2 && environment.carbon_dioxide > 0) ||\
(scrub_N2O && environment.trace_gases.len > 0) ||\
(scrub_O2 && environment.oxygen > 0))
var/transfer_moles = min(1, volume_rate/environment.volume)*environment.total_moles()
//Take a gas sample
@@ -117,12 +128,15 @@
//Filter it
var/datum/gas_mixture/filtered_out = new
filtered_out.temperature = removed.temperature
if(scrub_Toxins)
filtered_out.toxins = removed.toxins
removed.toxins = 0
if(scrub_CO2)
filtered_out.carbon_dioxide = removed.carbon_dioxide
removed.carbon_dioxide = 0
if(scrub_O2)
filtered_out.oxygen = removed.oxygen
removed.oxygen = 0
@@ -184,7 +198,7 @@
on = !on
if(signal.data["panic_siphon"]) //must be before if("scrubbing" thing
panic = text2num(signal.data["panic_siphon"] != null)
panic = text2num(signal.data["panic_siphon"]) // We send 0 for false in the alarm.
if(panic)
on = 1
scrubbing = 0
+3 -2
View File
@@ -266,6 +266,7 @@ obj/machinery/atmospherics/valve
icon = 'icons/obj/atmospherics/digital_valve.dmi'
attack_ai(mob/user as mob)
src.add_hiddenprint(user)
return src.attack_hand(user)
attack_hand(mob/user as mob)
@@ -314,8 +315,8 @@ obj/machinery/atmospherics/valve
attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
if (istype(src, /obj/machinery/atmospherics/valve/digital))
user << "\red You cannot unwrench this [src], it's too complicated."
if (istype(src,/obj/machinery/atmospherics/valve/digital) && src:frequency)
user << "\red You cannot unwrench this [src], it's digitally connected to another device."
return 1
var/turf/T = src.loc
if (level==1 && isturf(T) && T.intact)