mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
Batch 2.
This commit is contained in:
@@ -6,7 +6,6 @@
|
||||
desc = "Has a valve and pump attached to it"
|
||||
use_power = 1
|
||||
|
||||
var/area/initial_loc
|
||||
level = 1
|
||||
var/area_uid
|
||||
var/id_tag = null
|
||||
@@ -44,17 +43,14 @@
|
||||
icon_state = "in"
|
||||
|
||||
New()
|
||||
initial_loc = get_area(loc)
|
||||
if (initial_loc.master)
|
||||
initial_loc = initial_loc.master
|
||||
area_uid = initial_loc.uid
|
||||
..()
|
||||
area_uid = areaMaster.uid
|
||||
if (!id_tag)
|
||||
assign_uid()
|
||||
id_tag = num2text(uid)
|
||||
if(ticker && ticker.current_state == 3)//if the game is running
|
||||
src.initialize()
|
||||
src.broadcast_status()
|
||||
..()
|
||||
|
||||
high_volume
|
||||
name = "Large Air Vent"
|
||||
@@ -168,11 +164,11 @@
|
||||
"sigtype" = "status"
|
||||
)
|
||||
|
||||
if(!initial_loc.air_vent_names[id_tag])
|
||||
var/new_name = "[initial_loc.name] Vent Pump #[initial_loc.air_vent_names.len+1]"
|
||||
initial_loc.air_vent_names[id_tag] = new_name
|
||||
src.name = new_name
|
||||
initial_loc.air_vent_info[id_tag] = signal.data
|
||||
if(!areaMaster.air_vent_names[id_tag])
|
||||
var/new_name = "[areaMaster.name] Vent Pump #[areaMaster.air_vent_names.len+1]"
|
||||
areaMaster.air_vent_names[id_tag] = new_name
|
||||
name = new_name
|
||||
areaMaster.air_vent_info[id_tag] = signal.data
|
||||
|
||||
radio_connection.post_signal(src, signal, radio_filter_out)
|
||||
|
||||
@@ -362,11 +358,9 @@
|
||||
del(src)
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_pump/Destroy()
|
||||
if(initial_loc)
|
||||
initial_loc.air_vent_info -= id_tag
|
||||
initial_loc.air_vent_names -= id_tag
|
||||
areaMaster.air_vent_info.Remove(id_tag)
|
||||
areaMaster.air_vent_names.Remove(id_tag)
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_pump/Topic(href, href_list)
|
||||
if(..())
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
level = 1
|
||||
|
||||
var/area/initial_loc
|
||||
var/id_tag = null
|
||||
var/frequency = 1439
|
||||
var/datum/radio_frequency/radio_connection
|
||||
@@ -28,17 +27,14 @@
|
||||
var/radio_filter_out
|
||||
var/radio_filter_in
|
||||
New()
|
||||
initial_loc = get_area(loc)
|
||||
if (initial_loc.master)
|
||||
initial_loc = initial_loc.master
|
||||
area_uid = initial_loc.uid
|
||||
..()
|
||||
area_uid = areaMaster.uid
|
||||
if (!id_tag)
|
||||
assign_uid()
|
||||
id_tag = num2text(uid)
|
||||
if(ticker && ticker.current_state == 3)//if the game is running
|
||||
src.initialize()
|
||||
src.broadcast_status()
|
||||
..()
|
||||
|
||||
update_icon()
|
||||
var/hidden=""
|
||||
@@ -84,11 +80,11 @@
|
||||
"filter_n2" = scrub_N2,
|
||||
"sigtype" = "status"
|
||||
)
|
||||
if(!initial_loc.air_scrub_names[id_tag])
|
||||
var/new_name = "[initial_loc.name] Air Scrubber #[initial_loc.air_scrub_names.len+1]"
|
||||
initial_loc.air_scrub_names[id_tag] = new_name
|
||||
if(!areaMaster.air_scrub_names[id_tag])
|
||||
var/new_name = "[areaMaster.name] Air Scrubber #[areaMaster.air_scrub_names.len+1]"
|
||||
areaMaster.air_scrub_names[id_tag] = new_name
|
||||
src.name = new_name
|
||||
initial_loc.air_scrub_info[id_tag] = signal.data
|
||||
areaMaster.air_scrub_info[id_tag] = signal.data
|
||||
radio_connection.post_signal(src, signal, radio_filter_out)
|
||||
|
||||
return 1
|
||||
@@ -348,8 +344,6 @@
|
||||
update_multitool_menu(usr)
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/Destroy()
|
||||
if(initial_loc)
|
||||
initial_loc.air_scrub_info -= id_tag
|
||||
initial_loc.air_scrub_names -= id_tag
|
||||
areaMaster.air_scrub_info.Remove(id_tag)
|
||||
areaMaster.air_scrub_names.Remove(id_tag)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -89,12 +89,12 @@
|
||||
|
||||
var/list/alarms=list()
|
||||
for(var/obj/machinery/alarm/alarm in (machines)) // removing sortAtom because nano updates it just enough for the lag to happen
|
||||
if(!is_in_filter(alarm.alarm_area.type))
|
||||
if(!is_in_filter(alarm.areaMaster.type))
|
||||
continue // NO ACCESS 4 U
|
||||
|
||||
var/list/alarm_data=list()
|
||||
alarm_data["ID"]="\ref[alarm]"
|
||||
alarm_data["danger"] = max(alarm.local_danger_level, alarm.alarm_area.atmosalm-1)
|
||||
alarm_data["danger"] = max(alarm.local_danger_level, alarm.areaMaster.atmosalm-1)
|
||||
alarm_data["name"] = "[alarm]"
|
||||
alarms+=list(alarm_data)
|
||||
data["alarms"]=alarms
|
||||
@@ -235,14 +235,14 @@
|
||||
|
||||
if(href_list["atmos_alarm"])
|
||||
current.alarmActivated=1
|
||||
current.alarm_area.updateDangerLevel()
|
||||
current.areaMaster.updateDangerLevel()
|
||||
spawn(1)
|
||||
src.updateUsrDialog()
|
||||
current.update_icon()
|
||||
return
|
||||
if(href_list["atmos_reset"])
|
||||
current.alarmActivated=0
|
||||
current.alarm_area.updateDangerLevel()
|
||||
current.areaMaster.updateDangerLevel()
|
||||
spawn(1)
|
||||
src.updateUsrDialog()
|
||||
current.update_icon()
|
||||
|
||||
@@ -23,11 +23,11 @@
|
||||
if (0)
|
||||
return
|
||||
|
||||
/proc/get_area_master(O)
|
||||
/proc/get_area_master(const/O)
|
||||
var/area/A = get_area(O)
|
||||
if(A && A.master)
|
||||
A = A.master
|
||||
return A
|
||||
|
||||
if (isarea(A))
|
||||
return A.master
|
||||
|
||||
/proc/get_area_name(N) //get area by its name
|
||||
for(var/area/A in world)
|
||||
|
||||
@@ -138,7 +138,7 @@ atom/movable/New()
|
||||
trueLuminosity = luminosity * luminosity
|
||||
light = new(src)
|
||||
|
||||
area = get_area(src)
|
||||
areaMaster = get_area(src)
|
||||
|
||||
//Objects with opacity will trigger nearby lights to update at next lighting process.
|
||||
atom/movable/Destroy()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
var/moved_recently = 0
|
||||
var/mob/pulledby = null
|
||||
|
||||
var/area/area
|
||||
var/area/areaMaster
|
||||
|
||||
/atom/movable/Move()
|
||||
var/atom/A = src.loc
|
||||
|
||||
@@ -40,7 +40,6 @@
|
||||
var/list/air_scrub_info = list()
|
||||
|
||||
/obj/machinery/alarm
|
||||
name = "alarm"
|
||||
icon = 'icons/obj/monitors.dmi'
|
||||
icon_state = "alarm0"
|
||||
anchored = 1
|
||||
@@ -70,7 +69,6 @@
|
||||
var/preset = AALARM_PRESET_HUMAN
|
||||
var/screen = AALARM_SCREEN_MAIN
|
||||
var/area_uid
|
||||
var/area/alarm_area
|
||||
var/local_danger_level = 0
|
||||
var/alarmActivated = 0 // Manually activated (independent from danger level)
|
||||
var/danger_averted_confidence=0
|
||||
@@ -99,7 +97,7 @@
|
||||
|
||||
/obj/machinery/alarm/proc/apply_preset(var/no_cycle_after=0)
|
||||
// Propogate settings.
|
||||
for (var/area/A in alarm_area.related)
|
||||
for (var/area/A in areaMaster.related)
|
||||
for (var/obj/machinery/alarm/AA in A)
|
||||
if ( !(AA.stat & (NOPOWER|BROKEN)) && !AA.shorted && AA.preset != src.preset)
|
||||
AA.preset=preset
|
||||
@@ -154,12 +152,8 @@
|
||||
|
||||
|
||||
/obj/machinery/alarm/proc/first_run()
|
||||
alarm_area = get_area(src)
|
||||
if (alarm_area.master)
|
||||
alarm_area = alarm_area.master
|
||||
area_uid = alarm_area.uid
|
||||
if (name == "alarm")
|
||||
name = "[alarm_area.name] Air Alarm"
|
||||
area_uid = areaMaster.uid
|
||||
name = "[areaMaster.name] Air Alarm"
|
||||
|
||||
// breathable air according to human/Life()
|
||||
/*
|
||||
@@ -291,14 +285,14 @@
|
||||
)
|
||||
|
||||
/obj/machinery/alarm/proc/master_is_operating()
|
||||
return alarm_area.master_air_alarm && !(alarm_area.master_air_alarm.stat & (NOPOWER|BROKEN))
|
||||
return areaMaster.master_air_alarm && !(areaMaster.master_air_alarm.stat & (NOPOWER|BROKEN))
|
||||
|
||||
|
||||
/obj/machinery/alarm/proc/elect_master()
|
||||
for (var/area/A in alarm_area.related)
|
||||
for (var/area/A in areaMaster.related)
|
||||
for (var/obj/machinery/alarm/AA in A)
|
||||
if (!(AA.stat & (NOPOWER|BROKEN)))
|
||||
alarm_area.master_air_alarm = AA
|
||||
areaMaster.master_air_alarm = AA
|
||||
return 1
|
||||
return 0
|
||||
|
||||
@@ -317,7 +311,7 @@
|
||||
icon_state = "alarmp"
|
||||
return
|
||||
|
||||
switch(max(local_danger_level, alarm_area.atmosalm-1))
|
||||
switch(max(local_danger_level, areaMaster.atmosalm-1))
|
||||
if (0)
|
||||
icon_state = "alarm0"
|
||||
if (1)
|
||||
@@ -326,13 +320,13 @@
|
||||
icon_state = "alarm1"
|
||||
|
||||
/obj/machinery/alarm/receive_signal(datum/signal/signal)
|
||||
if(stat & (NOPOWER|BROKEN) || !alarm_area)
|
||||
if(stat & (NOPOWER|BROKEN) || !areaMaster)
|
||||
return
|
||||
if (alarm_area.master_air_alarm != src)
|
||||
if (areaMaster.master_air_alarm != src)
|
||||
if (master_is_operating())
|
||||
return
|
||||
elect_master()
|
||||
if (alarm_area.master_air_alarm != src)
|
||||
if (areaMaster.master_air_alarm != src)
|
||||
return
|
||||
if(!signal || signal.encryption)
|
||||
return
|
||||
@@ -345,14 +339,14 @@
|
||||
return
|
||||
|
||||
var/dev_type = signal.data["device"]
|
||||
if(!(id_tag in alarm_area.air_scrub_names) && !(id_tag in alarm_area.air_vent_names))
|
||||
if(!(id_tag in areaMaster.air_scrub_names) && !(id_tag in areaMaster.air_vent_names))
|
||||
register_env_machine(id_tag, dev_type)
|
||||
var/got_update=0
|
||||
if(dev_type == "AScr")
|
||||
alarm_area.air_scrub_info[id_tag] = signal.data
|
||||
areaMaster.air_scrub_info[id_tag] = signal.data
|
||||
got_update=1
|
||||
else if(dev_type == "AVP")
|
||||
alarm_area.air_vent_info[id_tag] = signal.data
|
||||
areaMaster.air_vent_info[id_tag] = signal.data
|
||||
got_update=1
|
||||
if(got_update && waiting_on_device==id_tag)
|
||||
updateUsrDialog()
|
||||
@@ -361,24 +355,24 @@
|
||||
/obj/machinery/alarm/proc/register_env_machine(var/m_id, var/device_type)
|
||||
var/new_name
|
||||
if (device_type=="AVP")
|
||||
new_name = "[alarm_area.name] Vent Pump #[alarm_area.air_vent_names.len+1]"
|
||||
alarm_area.air_vent_names[m_id] = new_name
|
||||
new_name = "[areaMaster.name] Vent Pump #[areaMaster.air_vent_names.len+1]"
|
||||
areaMaster.air_vent_names[m_id] = new_name
|
||||
else if (device_type=="AScr")
|
||||
new_name = "[alarm_area.name] Air Scrubber #[alarm_area.air_scrub_names.len+1]"
|
||||
alarm_area.air_scrub_names[m_id] = new_name
|
||||
new_name = "[areaMaster.name] Air Scrubber #[areaMaster.air_scrub_names.len+1]"
|
||||
areaMaster.air_scrub_names[m_id] = new_name
|
||||
else
|
||||
return
|
||||
spawn (10)
|
||||
send_signal(m_id, list("init" = new_name) )
|
||||
|
||||
/obj/machinery/alarm/proc/refresh_all()
|
||||
for(var/id_tag in alarm_area.air_vent_names)
|
||||
var/list/I = alarm_area.air_vent_info[id_tag]
|
||||
for(var/id_tag in areaMaster.air_vent_names)
|
||||
var/list/I = areaMaster.air_vent_info[id_tag]
|
||||
if (I && I["timestamp"]+AALARM_REPORT_TIMEOUT/2 > world.time)
|
||||
continue
|
||||
send_signal(id_tag, list("status") )
|
||||
for(var/id_tag in alarm_area.air_scrub_names)
|
||||
var/list/I = alarm_area.air_scrub_info[id_tag]
|
||||
for(var/id_tag in areaMaster.air_scrub_names)
|
||||
var/list/I = areaMaster.air_scrub_info[id_tag]
|
||||
if (I && I["timestamp"]+AALARM_REPORT_TIMEOUT/2 > world.time)
|
||||
continue
|
||||
send_signal(id_tag, list("status") )
|
||||
@@ -410,33 +404,33 @@
|
||||
var/target_pressure = (current_pressures[2] + current_pressures[3])/2
|
||||
switch(mode)
|
||||
if(AALARM_MODE_SCRUBBING)
|
||||
for(var/device_id in alarm_area.air_scrub_names)
|
||||
for(var/device_id in areaMaster.air_scrub_names)
|
||||
send_signal(device_id, list("power"= 1, "co2_scrub"= 1, "o2_scrub"=(preset==AALARM_PRESET_VOX), "n2_scrub"=0, "scrubbing"= 1, "panic_siphon"= 0) )
|
||||
for(var/device_id in alarm_area.air_vent_names)
|
||||
for(var/device_id in areaMaster.air_vent_names)
|
||||
send_signal(device_id, list("power"= 1, "checks"= 1, "set_external_pressure"= target_pressure) )
|
||||
|
||||
if(AALARM_MODE_PANIC, AALARM_MODE_CYCLE)
|
||||
for(var/device_id in alarm_area.air_scrub_names)
|
||||
for(var/device_id in areaMaster.air_scrub_names)
|
||||
send_signal(device_id, list("power"= 1, "panic_siphon"= 1) )
|
||||
for(var/device_id in alarm_area.air_vent_names)
|
||||
for(var/device_id in areaMaster.air_vent_names)
|
||||
send_signal(device_id, list("power"= 0) )
|
||||
|
||||
if(AALARM_MODE_REPLACEMENT)
|
||||
for(var/device_id in alarm_area.air_scrub_names)
|
||||
for(var/device_id in areaMaster.air_scrub_names)
|
||||
send_signal(device_id, list("power"= 1, "panic_siphon"= 1) )
|
||||
for(var/device_id in alarm_area.air_vent_names)
|
||||
for(var/device_id in areaMaster.air_vent_names)
|
||||
send_signal(device_id, list("power"= 1, "checks"= 1, "set_external_pressure"= target_pressure) )
|
||||
|
||||
if(AALARM_MODE_FILL)
|
||||
for(var/device_id in alarm_area.air_scrub_names)
|
||||
for(var/device_id in areaMaster.air_scrub_names)
|
||||
send_signal(device_id, list("power"= 0) )
|
||||
for(var/device_id in alarm_area.air_vent_names)
|
||||
for(var/device_id in areaMaster.air_vent_names)
|
||||
send_signal(device_id, list("power"= 1, "checks"= 1, "set_external_pressure"= target_pressure) )
|
||||
|
||||
if(AALARM_MODE_OFF)
|
||||
for(var/device_id in alarm_area.air_scrub_names)
|
||||
for(var/device_id in areaMaster.air_scrub_names)
|
||||
send_signal(device_id, list("power"= 0) )
|
||||
for(var/device_id in alarm_area.air_vent_names)
|
||||
for(var/device_id in areaMaster.air_vent_names)
|
||||
send_signal(device_id, list("power"= 0) )
|
||||
|
||||
// This sets our danger level, and, if it's changed, forces a new election of danger levels.
|
||||
@@ -444,7 +438,7 @@
|
||||
if(local_danger_level==new_danger_level)
|
||||
return
|
||||
local_danger_level=new_danger_level
|
||||
if(alarm_area.updateDangerLevel())
|
||||
if(areaMaster.updateDangerLevel())
|
||||
post_alert(new_danger_level)
|
||||
|
||||
/obj/machinery/alarm/proc/post_alert(alert_level)
|
||||
@@ -455,7 +449,7 @@
|
||||
var/datum/signal/alert_signal = new
|
||||
alert_signal.source = src
|
||||
alert_signal.transmission_method = 1
|
||||
alert_signal.data["zone"] = alarm_area.name
|
||||
alert_signal.data["zone"] = areaMaster.name
|
||||
alert_signal.data["type"] = "Atmospheric"
|
||||
|
||||
if(alert_level==2)
|
||||
@@ -588,7 +582,7 @@
|
||||
|
||||
data["rcon"]=rcon_setting
|
||||
data["target_temp"] = target_temperature - T0C
|
||||
data["atmos_alarm"] = alarm_area.atmosalm
|
||||
data["atmos_alarm"] = areaMaster.atmosalm
|
||||
data["modes"] = list(
|
||||
AALARM_MODE_SCRUBBING = list("name"="Filtering", "desc"="Scrubs out contaminants"),\
|
||||
AALARM_MODE_REPLACEMENT = list("name"="Replace Air", "desc"="Siphons out air while replacing"),\
|
||||
@@ -605,11 +599,11 @@
|
||||
data["screen"]=screen
|
||||
|
||||
var/list/vents=list()
|
||||
if(alarm_area.air_vent_names.len)
|
||||
for(var/id_tag in alarm_area.air_vent_names)
|
||||
if(areaMaster.air_vent_names.len)
|
||||
for(var/id_tag in areaMaster.air_vent_names)
|
||||
var/vent_info[0]
|
||||
var/long_name = alarm_area.air_vent_names[id_tag]
|
||||
var/list/vent_data = alarm_area.air_vent_info[id_tag]
|
||||
var/long_name = areaMaster.air_vent_names[id_tag]
|
||||
var/list/vent_data = areaMaster.air_vent_info[id_tag]
|
||||
if(!vent_data)
|
||||
continue
|
||||
vent_info["id_tag"]=id_tag
|
||||
@@ -619,10 +613,10 @@
|
||||
data["vents"]=vents
|
||||
|
||||
var/list/scrubbers=list()
|
||||
if(alarm_area.air_scrub_names.len)
|
||||
for(var/id_tag in alarm_area.air_scrub_names)
|
||||
var/long_name = alarm_area.air_scrub_names[id_tag]
|
||||
var/list/scrubber_data = alarm_area.air_scrub_info[id_tag]
|
||||
if(areaMaster.air_scrub_names.len)
|
||||
for(var/id_tag in areaMaster.air_scrub_names)
|
||||
var/long_name = areaMaster.air_scrub_names[id_tag]
|
||||
var/list/scrubber_data = areaMaster.air_scrub_info[id_tag]
|
||||
if(!scrubber_data)
|
||||
continue
|
||||
scrubber_data["id_tag"]=id_tag
|
||||
@@ -791,14 +785,14 @@
|
||||
|
||||
if(href_list["atmos_alarm"])
|
||||
alarmActivated=1
|
||||
alarm_area.updateDangerLevel()
|
||||
areaMaster.updateDangerLevel()
|
||||
update_icon()
|
||||
ui_interact(usr)
|
||||
return 1
|
||||
|
||||
if(href_list["atmos_reset"])
|
||||
alarmActivated=0
|
||||
alarm_area.updateDangerLevel()
|
||||
areaMaster.updateDangerLevel()
|
||||
update_icon()
|
||||
ui_interact(usr)
|
||||
return 1
|
||||
@@ -995,14 +989,6 @@ FIRE ALARM
|
||||
var/wiresexposed = 0
|
||||
var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone
|
||||
|
||||
var/area/master_area
|
||||
|
||||
/obj/machinery/firealarm/New()
|
||||
var/area/A = get_area_master(src)
|
||||
if (!( istype(A, /area) ))
|
||||
return
|
||||
master_area=A
|
||||
|
||||
/obj/machinery/firealarm/update_icon()
|
||||
|
||||
if(wiresexposed)
|
||||
@@ -1151,7 +1137,7 @@ FIRE ALARM
|
||||
var/d2
|
||||
if (istype(user, /mob/living/carbon/human) || istype(user, /mob/living/silicon))
|
||||
|
||||
if (master_area.fire)
|
||||
if (areaMaster.fire)
|
||||
d1 = text("<A href='?src=\ref[];reset=1'>Reset - Lockdown</A>", src)
|
||||
else
|
||||
d1 = text("<A href='?src=\ref[];alarm=1'>Alarm - Lockdown</A>", src)
|
||||
@@ -1165,7 +1151,7 @@ FIRE ALARM
|
||||
user << browse(dat, "window=firealarm")
|
||||
onclose(user, "firealarm")
|
||||
else
|
||||
if (master_area.fire)
|
||||
if (areaMaster.fire)
|
||||
d1 = text("<A href='?src=\ref[];reset=1'>[]</A>", src, stars("Reset - Lockdown"))
|
||||
else
|
||||
d1 = text("<A href='?src=\ref[];alarm=1'>[]</A>", src, stars("Alarm - Lockdown"))
|
||||
@@ -1214,21 +1200,21 @@ FIRE ALARM
|
||||
/obj/machinery/firealarm/proc/reset()
|
||||
if (!( src.working ))
|
||||
return
|
||||
master_area.firereset()
|
||||
areaMaster.firereset()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/machinery/firealarm/proc/alarm()
|
||||
if (!( src.working ))
|
||||
return
|
||||
master_area.firealert()
|
||||
areaMaster.firealert()
|
||||
update_icon()
|
||||
//playsound(get_turf(src), 'sound/ambience/signal.ogg', 75, 0)
|
||||
return
|
||||
|
||||
/obj/machinery/firealarm/New(loc, dir, building)
|
||||
..()
|
||||
|
||||
name = "[areaMaster.name] fire alarm"
|
||||
if(loc)
|
||||
src.loc = loc
|
||||
|
||||
@@ -1249,7 +1235,6 @@ FIRE ALARM
|
||||
|
||||
update_icon()
|
||||
|
||||
|
||||
/*
|
||||
FIRE ALARM ITEM
|
||||
Handheld fire alarm frame, for placing on walls
|
||||
@@ -1312,13 +1297,9 @@ Code shamelessly copied from apc_frame
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 6
|
||||
|
||||
var/area/master_area
|
||||
|
||||
/obj/machinery/partyalarm/New()
|
||||
var/area/A = get_area_master(src)
|
||||
if (!( istype(A, /area) ))
|
||||
return
|
||||
master_area=A
|
||||
..()
|
||||
name = "[areaMaster.name] party alarm"
|
||||
|
||||
/obj/machinery/partyalarm/attack_paw(mob/user as mob)
|
||||
return attack_hand(user)
|
||||
@@ -1331,7 +1312,7 @@ Code shamelessly copied from apc_frame
|
||||
var/d1
|
||||
var/d2
|
||||
if (istype(user, /mob/living/carbon/human) || istype(user, /mob/living/silicon/ai))
|
||||
if (master_area.party)
|
||||
if (areaMaster.party)
|
||||
d1 = text("<A href='?src=\ref[];reset=1'>No Party :(</A>", src)
|
||||
else
|
||||
d1 = text("<A href='?src=\ref[];alarm=1'>PARTY!!!</A>", src)
|
||||
@@ -1345,7 +1326,7 @@ Code shamelessly copied from apc_frame
|
||||
user << browse(dat, "window=partyalarm")
|
||||
onclose(user, "partyalarm")
|
||||
else
|
||||
if (master_area.fire)
|
||||
if (areaMaster.fire)
|
||||
d1 = text("<A href='?src=\ref[];reset=1'>[]</A>", src, stars("No Party :("))
|
||||
else
|
||||
d1 = text("<A href='?src=\ref[];alarm=1'>[]</A>", src, stars("PARTY!!!"))
|
||||
@@ -1363,13 +1344,13 @@ Code shamelessly copied from apc_frame
|
||||
/obj/machinery/partyalarm/proc/reset()
|
||||
if (!( working ))
|
||||
return
|
||||
master_area.partyreset()
|
||||
areaMaster.partyreset()
|
||||
return
|
||||
|
||||
/obj/machinery/partyalarm/proc/alarm()
|
||||
if (!( working ))
|
||||
return
|
||||
master_area.partyalert()
|
||||
areaMaster.partyalert()
|
||||
return
|
||||
|
||||
/obj/machinery/partyalarm/Topic(href, href_list)
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
|
||||
for(var/obj/machinery/power/apc/A in L)
|
||||
|
||||
t += copytext(add_tspace("\The [A.area]", 30), 1, 30)
|
||||
t += copytext(add_tspace("\The [A.areaMaster]", 30), 1, 30)
|
||||
t += " [S[A.equipment+1]] [S[A.lighting+1]] [S[A.environ+1]] [add_lspace(A.lastused_total, 6)] [A.cell ? "[add_lspace(round(A.cell.percent()), 3)]% [chg[A.charging+1]]" : " N/C"]<BR>"
|
||||
|
||||
t += "</FONT></PRE></TT>"
|
||||
|
||||
@@ -2,39 +2,24 @@
|
||||
// can have multiple per area
|
||||
// can also operate on non-loc area through "otherarea" var
|
||||
/obj/machinery/light_switch
|
||||
name = "light switch"
|
||||
desc = "It turns lights on and off. What are you, simple?"
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon_state = "light1"
|
||||
anchored = 1.0
|
||||
var/on = 1
|
||||
var/otherarea = null
|
||||
var/on
|
||||
// luminosity = 1
|
||||
|
||||
/obj/machinery/light_switch/New()
|
||||
..()
|
||||
spawn(5)
|
||||
src.area = src.loc.loc
|
||||
|
||||
if(otherarea)
|
||||
src.area = locate(text2path("/area/[otherarea]"))
|
||||
|
||||
if(!name)
|
||||
name = "light switch ([area.name])"
|
||||
|
||||
src.on = src.area.lightswitch
|
||||
updateicon()
|
||||
|
||||
|
||||
name = "[areaMaster.name] light switch"
|
||||
on = areaMaster.lightswitch
|
||||
updateicon()
|
||||
|
||||
/obj/machinery/light_switch/proc/updateicon()
|
||||
if(stat & NOPOWER)
|
||||
if (stat & NOPOWER)
|
||||
icon_state = "light-p"
|
||||
else
|
||||
if(on)
|
||||
icon_state = "light1"
|
||||
else
|
||||
icon_state = "light0"
|
||||
icon_state = on ? "light1" : "light0"
|
||||
|
||||
/obj/machinery/light_switch/examine()
|
||||
set src in oview(1)
|
||||
@@ -55,7 +40,7 @@
|
||||
|
||||
on = !on
|
||||
|
||||
for(var/area/A in area.master.related)
|
||||
for(var/area/A in areaMaster.related)
|
||||
A.lightswitch = on
|
||||
A.updateicon()
|
||||
|
||||
@@ -63,17 +48,15 @@
|
||||
L.on = on
|
||||
L.updateicon()
|
||||
|
||||
area.master.power_change()
|
||||
areaMaster.power_change()
|
||||
|
||||
/obj/machinery/light_switch/power_change()
|
||||
if(powered(LIGHT))
|
||||
stat &= ~NOPOWER
|
||||
else
|
||||
stat |= NOPOWER
|
||||
|
||||
if(!otherarea)
|
||||
if(powered(LIGHT))
|
||||
stat &= ~NOPOWER
|
||||
else
|
||||
stat |= NOPOWER
|
||||
|
||||
updateicon()
|
||||
updateicon()
|
||||
|
||||
/obj/machinery/light_switch/emp_act(severity)
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
|
||||
@@ -114,10 +114,8 @@ Class Procs:
|
||||
var/panel_open = 0
|
||||
|
||||
var/inMachineList = 1 // For debugging.
|
||||
var/area/mchArea
|
||||
|
||||
/obj/machinery/New()
|
||||
mchArea = get_area(src)
|
||||
machines.Add(src)
|
||||
return ..()
|
||||
|
||||
@@ -125,8 +123,6 @@ Class Procs:
|
||||
if (src in machines)
|
||||
machines.Remove(src)
|
||||
|
||||
mchArea = null
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/machinery/process() // If you dont use process or power why are you here
|
||||
|
||||
@@ -70,7 +70,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
|
||||
|
||||
/obj/machinery/requests_console/New()
|
||||
name = "[department] Requests Console"
|
||||
allConsoles += src
|
||||
allConsoles.Add(src)
|
||||
//req_console_departments += department
|
||||
switch(departmentType)
|
||||
if(1)
|
||||
@@ -105,6 +105,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
|
||||
if(!("[department]" in req_console_information))
|
||||
req_console_information += department
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/machinery/requests_console/attack_hand(user as mob)
|
||||
if(..(user))
|
||||
|
||||
@@ -359,7 +359,7 @@ Code:
|
||||
var/list/chg = list("N","C","F")
|
||||
|
||||
for(var/obj/machinery/power/apc/A in L)
|
||||
menu += copytext(add_tspace(A.area.name, 30), 1, 30)
|
||||
menu += copytext(add_tspace(A.areaMaster.name, 30), 1, 30)
|
||||
menu += " [S[A.equipment+1]] [S[A.lighting+1]] [S[A.environ+1]] [add_lspace(A.lastused_total, 6)] [A.cell ? "[add_lspace(round(A.cell.percent()), 3)]% [chg[A.charging+1]]" : " N/C"]<BR>"
|
||||
|
||||
menu += "</FONT></PRE>"
|
||||
|
||||
@@ -144,17 +144,9 @@
|
||||
if(((world.timeofday - last_tick) > 30) || ((world.timeofday - last_tick) < 0))
|
||||
last_tick = world.timeofday
|
||||
|
||||
if(!src.loc)
|
||||
on = 0
|
||||
else
|
||||
var/area/A = src.loc.loc
|
||||
if(!A || !isarea(A) || !A.master)
|
||||
on = 0
|
||||
else
|
||||
on = A.master.powered(EQUIP) // set "on" to the power status
|
||||
on = areaMaster.powered(EQUIP) // set "on" to the power status
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/weapon/intercom_electronics
|
||||
name = "intercom electronics"
|
||||
icon = 'icons/obj/doors/door_assembly.dmi'
|
||||
|
||||
@@ -18,9 +18,11 @@
|
||||
var/list/reagents_to_log=list()
|
||||
|
||||
/obj/Destroy()
|
||||
machines -= src
|
||||
processing_objects -= src
|
||||
if (src in processing_objects)
|
||||
processing_objects.Remove(src)
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/proc/is_used_on(obj/O, mob/user)
|
||||
|
||||
/obj/recycle(var/datum/materials/rec)
|
||||
@@ -32,7 +34,6 @@
|
||||
|
||||
/obj/proc/process()
|
||||
processing_objects.Remove(src)
|
||||
return 0
|
||||
|
||||
/obj/assume_air(datum/gas_mixture/giver)
|
||||
if(loc)
|
||||
|
||||
@@ -170,9 +170,7 @@ var/const/POS_HEADER = {"<html>
|
||||
Paying to: [linked_account.owner_name]<br />
|
||||
Cashier: [logged_in]<br />"}
|
||||
|
||||
if (mchArea)
|
||||
receipt += mchArea.name
|
||||
|
||||
receipt += areaMaster.name
|
||||
receipt += "</div>"
|
||||
receipt += {"<br />
|
||||
<div>[worldtime2text()], [current_date_string]</div>
|
||||
@@ -222,9 +220,7 @@ var/const/POS_HEADER = {"<html>
|
||||
Paying to: [linked_account.owner_name]<br />
|
||||
Cashier: [logged_in]<br />"}
|
||||
|
||||
if (mchArea)
|
||||
receipt += mchArea.name
|
||||
|
||||
receipt += areaMaster.name
|
||||
receipt += "</fieldset>"
|
||||
receipt += {"<fieldset><legend>Order Data</legend>
|
||||
<form action="?src=\ref[src]" method="get">
|
||||
|
||||
@@ -297,7 +297,7 @@ var/global/loopModeNames=list(
|
||||
visible_message("\red The machine buzzes, and flashes \"NOT ENOUGH FUNDS\" on the screen.","You hear a buzz.")
|
||||
return
|
||||
visible_message("\blue The machine beeps happily.","You hear a beep.")
|
||||
acct.charge(credits_needed,linked_account,"Song selection at [mchArea.name]'s [name].")
|
||||
acct.charge(credits_needed,linked_account,"Song selection at [areaMaster.name]'s [name].")
|
||||
credits_needed = 0
|
||||
|
||||
successful_purchase()
|
||||
|
||||
@@ -44,15 +44,12 @@
|
||||
|
||||
|
||||
/obj/machinery/power/apc
|
||||
name = "area power controller"
|
||||
desc = "A control terminal for the area electrical systems."
|
||||
|
||||
icon_state = "apc0"
|
||||
anchored = 1
|
||||
use_power = 0
|
||||
req_access = list(access_engine_equip)
|
||||
var/spooky=0
|
||||
var/areastring = null
|
||||
var/obj/item/weapon/cell/cell
|
||||
var/start_charge = 90 // initial cell charge %
|
||||
var/cell_type = 2500 // 0=no cell, 1=regular, 2=high-cap (x5) <- old, now it's just 0=no cell, otherwise dictate cellcapacity by changing this value. 1 used to be 1000, 2 was 2500
|
||||
@@ -118,16 +115,15 @@
|
||||
pixel_x = (src.tdir == 4 ? 24 : -24)
|
||||
pixel_y = 0
|
||||
|
||||
switch (isnull(area))
|
||||
if (1)
|
||||
log_admin("APC tried to spawn in a location without an area. [formatJumpTo(get_turf(src))]")
|
||||
switch (isnull(areaMaster))
|
||||
if (0)
|
||||
name = "[area.name] APC"
|
||||
name = "[areaMaster.name] APC"
|
||||
if (1) // Mapping issue.
|
||||
log_admin("APC tried to spawn in a location without an area. [formatJumpTo(get_turf(src))]")
|
||||
|
||||
if (building==0)
|
||||
init()
|
||||
else
|
||||
area = src.loc.loc:master
|
||||
opened = 1
|
||||
operating = 0
|
||||
stat |= MAINT
|
||||
@@ -150,14 +146,7 @@
|
||||
cell.maxcharge = cell_type // cell_type is maximum charge (old default was 1000 or 2500 (values one and two respectively)
|
||||
cell.charge = start_charge * cell.maxcharge / 100.0 // (convert percentage to actual value)
|
||||
|
||||
var/area/A = src.loc.loc
|
||||
|
||||
//if area isn't specified use current
|
||||
if(isarea(A) && src.areastring == null)
|
||||
src.area = A
|
||||
else
|
||||
src.area = get_area_name(areastring)
|
||||
name = "\improper [area.name] APC"
|
||||
name = "[areaMaster.name] APC"
|
||||
update_icon()
|
||||
|
||||
make_terminal()
|
||||
@@ -741,7 +730,7 @@
|
||||
if (!ui)
|
||||
// the ui does not exist, so we'll create a new one
|
||||
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
|
||||
ui = new(user, src, ui_key, "apc.tmpl", "[area.name] - APC", 520, data["siliconUser"] ? 465 : 440)
|
||||
ui = new(user, src, ui_key, "apc.tmpl", "[areaMaster.name] - APC", 520, data["siliconUser"] ? 465 : 440)
|
||||
// when the ui is first opened this is the data it will use
|
||||
ui.set_initial_data(data)
|
||||
// open the new ui window
|
||||
@@ -750,23 +739,23 @@
|
||||
ui.set_auto_update(1)
|
||||
|
||||
/obj/machinery/power/apc/proc/report()
|
||||
return "[area.name] : [equipment]/[lighting]/[environ] ([lastused_equip+lastused_light+lastused_environ]) : [cell? cell.percent() : "N/C"] ([charging])"
|
||||
return "[areaMaster.name] : [equipment]/[lighting]/[environ] ([lastused_equip+lastused_light+lastused_environ]) : [cell? cell.percent() : "N/C"] ([charging])"
|
||||
|
||||
/obj/machinery/power/apc/proc/update()
|
||||
if(operating && !shorted)
|
||||
area.power_light = (lighting > 1)
|
||||
area.power_equip = (equipment > 1)
|
||||
area.power_environ = (environ > 1)
|
||||
areaMaster.power_light = (lighting > 1)
|
||||
areaMaster.power_equip = (equipment > 1)
|
||||
areaMaster.power_environ = (environ > 1)
|
||||
// if (area.name == "AI Chamber")
|
||||
// spawn(10)
|
||||
// world << " [area.name] [area.power_equip]"
|
||||
else
|
||||
area.power_light = 0
|
||||
area.power_equip = 0
|
||||
area.power_environ = 0
|
||||
areaMaster.power_light = 0
|
||||
areaMaster.power_equip = 0
|
||||
areaMaster.power_environ = 0
|
||||
// if (area.name == "AI Chamber")
|
||||
// world << "[area.power_equip]"
|
||||
area.power_change()
|
||||
areaMaster.power_change()
|
||||
|
||||
/obj/machinery/power/apc/proc/isWireCut(var/wireIndex)
|
||||
return wires.IsIndexCut(wireIndex)
|
||||
@@ -1024,7 +1013,7 @@
|
||||
|
||||
if(stat & (BROKEN|MAINT))
|
||||
return
|
||||
if(!area.requires_power)
|
||||
if(!areaMaster.requires_power)
|
||||
return
|
||||
|
||||
/*
|
||||
@@ -1037,10 +1026,10 @@
|
||||
|
||||
area.calc_lighting() */
|
||||
|
||||
lastused_light = area.usage(LIGHT)
|
||||
lastused_equip = area.usage(EQUIP)
|
||||
lastused_environ = area.usage(ENVIRON)
|
||||
area.clear_usage()
|
||||
lastused_light = areaMaster.usage(LIGHT)
|
||||
lastused_equip = areaMaster.usage(EQUIP)
|
||||
lastused_environ = areaMaster.usage(ENVIRON)
|
||||
areaMaster.clear_usage()
|
||||
|
||||
lastused_total = lastused_light + lastused_equip + lastused_environ
|
||||
|
||||
@@ -1108,24 +1097,24 @@
|
||||
equipment = autoset(equipment, 0)
|
||||
lighting = autoset(lighting, 0)
|
||||
environ = autoset(environ, 0)
|
||||
area.poweralert(0, src)
|
||||
areaMaster.poweralert(0, src)
|
||||
else if(cell.percent() < 15 && longtermpower < 0) // <15%, turn off lighting & equipment
|
||||
equipment = autoset(equipment, 2)
|
||||
lighting = autoset(lighting, 2)
|
||||
environ = autoset(environ, 1)
|
||||
area.poweralert(0, src)
|
||||
areaMaster.poweralert(0, src)
|
||||
else if(cell.percent() < 30 && longtermpower < 0) // <30%, turn off equipment
|
||||
equipment = autoset(equipment, 2)
|
||||
lighting = autoset(lighting, 1)
|
||||
environ = autoset(environ, 1)
|
||||
area.poweralert(0, src)
|
||||
areaMaster.poweralert(0, src)
|
||||
else // otherwise all can be on
|
||||
equipment = autoset(equipment, 1)
|
||||
lighting = autoset(lighting, 1)
|
||||
environ = autoset(environ, 1)
|
||||
area.poweralert(1, src)
|
||||
areaMaster.poweralert(1, src)
|
||||
if(cell.percent() > 75)
|
||||
area.poweralert(1, src)
|
||||
areaMaster.poweralert(1, src)
|
||||
|
||||
// now trickle-charge the cell
|
||||
|
||||
@@ -1172,7 +1161,7 @@
|
||||
equipment = autoset(equipment, 0)
|
||||
lighting = autoset(lighting, 0)
|
||||
environ = autoset(environ, 0)
|
||||
area.poweralert(0, src)
|
||||
areaMaster.poweralert(0, src)
|
||||
|
||||
// update icon & area power if anything changed
|
||||
if(last_lt != lighting || last_eq != equipment || last_en != environ)
|
||||
@@ -1268,7 +1257,7 @@ obj/machinery/power/apc/proc/autoset(var/val, var/on)
|
||||
if( cell && cell.charge>=20)
|
||||
cell.use(20);
|
||||
spawn(0)
|
||||
for(var/area/A in area.related)
|
||||
for(var/area/A in areaMaster.related)
|
||||
for(var/obj/machinery/light/L in A)
|
||||
L.on = 1
|
||||
L.broken()
|
||||
@@ -1279,10 +1268,10 @@ obj/machinery/power/apc/proc/autoset(var/val, var/on)
|
||||
if (ticker.mode.config_tag == "malfunction")
|
||||
if (src.z == 1) //if (is_type_in_list(get_area(src), the_station_areas))
|
||||
ticker.mode:apcs--
|
||||
area.power_light = 0
|
||||
area.power_equip = 0
|
||||
area.power_environ = 0
|
||||
area.power_change()
|
||||
areaMaster.power_light = 0
|
||||
areaMaster.power_equip = 0
|
||||
areaMaster.power_environ = 0
|
||||
areaMaster.power_change()
|
||||
if(occupant)
|
||||
malfvacate(1)
|
||||
..()
|
||||
|
||||
@@ -51,20 +51,23 @@
|
||||
if (!use_power)
|
||||
return 1
|
||||
|
||||
if (isnull(area) || isnull(area.master))
|
||||
if (isnull(areaMaster))
|
||||
return 0 // If not, then not powered.
|
||||
|
||||
return area.master.powered(chan) // Return power status of the area.
|
||||
return areaMaster.powered(chan) // Return power status of the area.
|
||||
|
||||
/*
|
||||
* Increment the power usage stats for an area.
|
||||
* Defaults to power_channel.
|
||||
*/
|
||||
/obj/machinery/proc/use_power(const/amount, chan = power_channel)
|
||||
if (isnull(area) || isnull(area.master))
|
||||
if (!src.loc)
|
||||
return 0
|
||||
|
||||
if (isnull(areaMaster))
|
||||
return
|
||||
|
||||
area.master.use_power(amount, chan)
|
||||
areaMaster.use_power(amount, chan)
|
||||
|
||||
/*
|
||||
* Called whenever the power settings of the containing area change.
|
||||
|
||||
Reference in New Issue
Block a user