mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
remove the sub-area system
Removes area/list/related and area/master. They were only used by the old lighting subarea system. Signed-off-by: Mloc <colmohici@gmail.com>
This commit is contained in:
@@ -67,8 +67,6 @@
|
|||||||
|
|
||||||
icon = null
|
icon = null
|
||||||
initial_loc = get_area(loc)
|
initial_loc = get_area(loc)
|
||||||
if (initial_loc.master)
|
|
||||||
initial_loc = initial_loc.master
|
|
||||||
area_uid = initial_loc.uid
|
area_uid = initial_loc.uid
|
||||||
if (!id_tag)
|
if (!id_tag)
|
||||||
assign_uid()
|
assign_uid()
|
||||||
|
|||||||
@@ -36,8 +36,6 @@
|
|||||||
|
|
||||||
icon = null
|
icon = null
|
||||||
initial_loc = get_area(loc)
|
initial_loc = get_area(loc)
|
||||||
if (initial_loc.master)
|
|
||||||
initial_loc = initial_loc.master
|
|
||||||
area_uid = initial_loc.uid
|
area_uid = initial_loc.uid
|
||||||
if (!id_tag)
|
if (!id_tag)
|
||||||
assign_uid()
|
assign_uid()
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
var/turf/loc = get_turf(O)
|
var/turf/loc = get_turf(O)
|
||||||
if(loc)
|
if(loc)
|
||||||
var/area/res = loc.loc
|
var/area/res = loc.loc
|
||||||
.= res.master
|
.= res
|
||||||
|
|
||||||
/proc/get_area_name(N) //get area by its name
|
/proc/get_area_name(N) //get area by its name
|
||||||
for(var/area/A in world)
|
for(var/area/A in world)
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
/proc/get_area_master(const/O)
|
/proc/get_area_master(const/O)
|
||||||
var/area/A = get_area(O)
|
var/area/A = get_area(O)
|
||||||
if (isarea(A))
|
if (isarea(A))
|
||||||
return A.master
|
return A
|
||||||
|
|
||||||
/proc/in_range(source, user)
|
/proc/in_range(source, user)
|
||||||
if(get_dist(source, user) <= 1)
|
if(get_dist(source, user) <= 1)
|
||||||
|
|||||||
@@ -48,9 +48,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
|||||||
var/has_gravity = 1
|
var/has_gravity = 1
|
||||||
var/list/apc = list()
|
var/list/apc = list()
|
||||||
var/no_air = null
|
var/no_air = null
|
||||||
var/area/master // master area used for power calcluations
|
|
||||||
// (original area before splitting due to sd_DAL)
|
|
||||||
var/list/related // the other areas of the same type as this
|
|
||||||
// var/list/lights // list of all lights on this area
|
// var/list/lights // list of all lights on this area
|
||||||
var/list/all_doors = list() //Added by Strumpetplaya - Alarm Change - Contains a list of doors adjacent to this area
|
var/list/all_doors = list() //Added by Strumpetplaya - Alarm Change - Contains a list of doors adjacent to this area
|
||||||
var/air_doors_activated = 0
|
var/air_doors_activated = 0
|
||||||
|
|||||||
@@ -10,9 +10,7 @@
|
|||||||
/area/New()
|
/area/New()
|
||||||
icon_state = ""
|
icon_state = ""
|
||||||
layer = 10
|
layer = 10
|
||||||
master = src //moved outside the spawn(1) to avoid runtimes in lighting.dm when it references loc.loc.master ~Carn
|
|
||||||
uid = ++global_uid
|
uid = ++global_uid
|
||||||
related = list(src)
|
|
||||||
all_areas += src
|
all_areas += src
|
||||||
|
|
||||||
if(requires_power)
|
if(requires_power)
|
||||||
@@ -31,29 +29,24 @@
|
|||||||
InitializeLighting()
|
InitializeLighting()
|
||||||
|
|
||||||
/area/proc/get_contents()
|
/area/proc/get_contents()
|
||||||
var/list/concat_contents = list()
|
return contents
|
||||||
for (var/area/RA in related)
|
|
||||||
concat_contents |= RA.contents
|
|
||||||
return concat_contents
|
|
||||||
|
|
||||||
/area/proc/get_cameras()
|
/area/proc/get_cameras()
|
||||||
var/list/cameras = list()
|
var/list/cameras = list()
|
||||||
for (var/area/RA in related)
|
for (var/obj/machinery/camera/C in src)
|
||||||
for (var/obj/machinery/camera/C in RA)
|
cameras += C
|
||||||
cameras += C
|
|
||||||
return cameras
|
return cameras
|
||||||
|
|
||||||
/area/proc/atmosalert(danger_level, var/alarm_source)
|
/area/proc/atmosalert(danger_level, var/alarm_source)
|
||||||
if (danger_level == 0)
|
if (danger_level == 0)
|
||||||
atmosphere_alarm.clearAlarm(master, alarm_source)
|
atmosphere_alarm.clearAlarm(src, alarm_source)
|
||||||
else
|
else
|
||||||
atmosphere_alarm.triggerAlarm(master, alarm_source, severity = danger_level)
|
atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level)
|
||||||
|
|
||||||
//Check all the alarms before lowering atmosalm. Raising is perfectly fine.
|
//Check all the alarms before lowering atmosalm. Raising is perfectly fine.
|
||||||
for (var/area/RA in related)
|
for (var/obj/machinery/alarm/AA in src)
|
||||||
for (var/obj/machinery/alarm/AA in RA)
|
if (!(AA.stat & (NOPOWER|BROKEN)) && !AA.shorted && AA.report_danger_level)
|
||||||
if (!(AA.stat & (NOPOWER|BROKEN)) && !AA.shorted && AA.report_danger_level)
|
danger_level = max(danger_level, AA.danger_level)
|
||||||
danger_level = max(danger_level, AA.danger_level)
|
|
||||||
|
|
||||||
if(danger_level != atmosalm)
|
if(danger_level != atmosalm)
|
||||||
if (danger_level < 1 && atmosalm >= 1)
|
if (danger_level < 1 && atmosalm >= 1)
|
||||||
@@ -63,17 +56,16 @@
|
|||||||
air_doors_close()
|
air_doors_close()
|
||||||
|
|
||||||
atmosalm = danger_level
|
atmosalm = danger_level
|
||||||
for(var/area/RA in related)
|
for (var/obj/machinery/alarm/AA in src)
|
||||||
for (var/obj/machinery/alarm/AA in RA)
|
AA.update_icon()
|
||||||
AA.update_icon()
|
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
/area/proc/air_doors_close()
|
/area/proc/air_doors_close()
|
||||||
if(!src.master.air_doors_activated)
|
if(!air_doors_activated)
|
||||||
src.master.air_doors_activated = 1
|
air_doors_activated = 1
|
||||||
for(var/obj/machinery/door/firedoor/E in src.master.all_doors)
|
for(var/obj/machinery/door/firedoor/E in all_doors)
|
||||||
if(!E.blocked)
|
if(!E.blocked)
|
||||||
if(E.operating)
|
if(E.operating)
|
||||||
E.nextstate = CLOSED
|
E.nextstate = CLOSED
|
||||||
@@ -82,9 +74,9 @@
|
|||||||
E.close()
|
E.close()
|
||||||
|
|
||||||
/area/proc/air_doors_open()
|
/area/proc/air_doors_open()
|
||||||
if(src.master.air_doors_activated)
|
if(air_doors_activated)
|
||||||
src.master.air_doors_activated = 0
|
air_doors_activated = 0
|
||||||
for(var/obj/machinery/door/firedoor/E in src.master.all_doors)
|
for(var/obj/machinery/door/firedoor/E in all_doors)
|
||||||
if(!E.blocked)
|
if(!E.blocked)
|
||||||
if(E.operating)
|
if(E.operating)
|
||||||
E.nextstate = OPEN
|
E.nextstate = OPEN
|
||||||
@@ -95,11 +87,8 @@
|
|||||||
|
|
||||||
/area/proc/fire_alert()
|
/area/proc/fire_alert()
|
||||||
if(!fire)
|
if(!fire)
|
||||||
master.fire = 1 //used for firedoor checks
|
fire = 1 //used for firedoor checks
|
||||||
master.updateicon()
|
updateicon()
|
||||||
for(var/area/A in related)
|
|
||||||
A.fire = 1
|
|
||||||
A.updateicon()
|
|
||||||
mouse_opacity = 0
|
mouse_opacity = 0
|
||||||
for(var/obj/machinery/door/firedoor/D in all_doors)
|
for(var/obj/machinery/door/firedoor/D in all_doors)
|
||||||
if(!D.blocked)
|
if(!D.blocked)
|
||||||
@@ -111,11 +100,8 @@
|
|||||||
|
|
||||||
/area/proc/fire_reset()
|
/area/proc/fire_reset()
|
||||||
if (fire)
|
if (fire)
|
||||||
master.fire = 0 //used for firedoor checks
|
fire = 0 //used for firedoor checks
|
||||||
master.updateicon()
|
updateicon()
|
||||||
for(var/area/A in related)
|
|
||||||
A.fire = 0
|
|
||||||
A.updateicon()
|
|
||||||
mouse_opacity = 0
|
mouse_opacity = 0
|
||||||
for(var/obj/machinery/door/firedoor/D in all_doors)
|
for(var/obj/machinery/door/firedoor/D in all_doors)
|
||||||
if(!D.blocked)
|
if(!D.blocked)
|
||||||
@@ -183,56 +169,55 @@
|
|||||||
|
|
||||||
/area/proc/powered(var/chan) // return true if the area has power to given channel
|
/area/proc/powered(var/chan) // return true if the area has power to given channel
|
||||||
|
|
||||||
if(!master.requires_power)
|
if(!requires_power)
|
||||||
return 1
|
return 1
|
||||||
if(master.always_unpowered)
|
if(always_unpowered)
|
||||||
return 0
|
return 0
|
||||||
if(src.lighting_space)
|
if(src.lighting_space)
|
||||||
return 0 // Nope sorry
|
return 0 // Nope sorry
|
||||||
switch(chan)
|
switch(chan)
|
||||||
if(EQUIP)
|
if(EQUIP)
|
||||||
return master.power_equip
|
return power_equip
|
||||||
if(LIGHT)
|
if(LIGHT)
|
||||||
return master.power_light
|
return power_light
|
||||||
if(ENVIRON)
|
if(ENVIRON)
|
||||||
return master.power_environ
|
return power_environ
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
// called when power status changes
|
// called when power status changes
|
||||||
/area/proc/power_change()
|
/area/proc/power_change()
|
||||||
for(var/area/RA in related)
|
for(var/obj/machinery/M in src) // for each machine in the area
|
||||||
for(var/obj/machinery/M in RA) // for each machine in the area
|
M.power_change() // reverify power status (to update icons etc.)
|
||||||
M.power_change() // reverify power status (to update icons etc.)
|
if (fire || eject || party)
|
||||||
if (fire || eject || party)
|
updateicon()
|
||||||
RA.updateicon()
|
|
||||||
|
|
||||||
/area/proc/usage(var/chan)
|
/area/proc/usage(var/chan)
|
||||||
var/used = 0
|
var/used = 0
|
||||||
switch(chan)
|
switch(chan)
|
||||||
if(LIGHT)
|
if(LIGHT)
|
||||||
used += master.used_light
|
used += used_light
|
||||||
if(EQUIP)
|
if(EQUIP)
|
||||||
used += master.used_equip
|
used += used_equip
|
||||||
if(ENVIRON)
|
if(ENVIRON)
|
||||||
used += master.used_environ
|
used += used_environ
|
||||||
if(TOTAL)
|
if(TOTAL)
|
||||||
used += master.used_light + master.used_equip + master.used_environ
|
used += used_light + used_equip + used_environ
|
||||||
return used
|
return used
|
||||||
|
|
||||||
/area/proc/clear_usage()
|
/area/proc/clear_usage()
|
||||||
master.used_equip = 0
|
used_equip = 0
|
||||||
master.used_light = 0
|
used_light = 0
|
||||||
master.used_environ = 0
|
used_environ = 0
|
||||||
|
|
||||||
/area/proc/use_power(var/amount, var/chan)
|
/area/proc/use_power(var/amount, var/chan)
|
||||||
switch(chan)
|
switch(chan)
|
||||||
if(EQUIP)
|
if(EQUIP)
|
||||||
master.used_equip += amount
|
used_equip += amount
|
||||||
if(LIGHT)
|
if(LIGHT)
|
||||||
master.used_light += amount
|
used_light += amount
|
||||||
if(ENVIRON)
|
if(ENVIRON)
|
||||||
master.used_environ += amount
|
used_environ += amount
|
||||||
|
|
||||||
|
|
||||||
var/list/mob/living/forced_ambiance_list = new
|
var/list/mob/living/forced_ambiance_list = new
|
||||||
@@ -280,27 +265,23 @@ var/list/mob/living/forced_ambiance_list = new
|
|||||||
L.client.played = world.time
|
L.client.played = world.time
|
||||||
|
|
||||||
/area/proc/gravitychange(var/gravitystate = 0, var/area/A)
|
/area/proc/gravitychange(var/gravitystate = 0, var/area/A)
|
||||||
|
|
||||||
A.has_gravity = gravitystate
|
A.has_gravity = gravitystate
|
||||||
|
|
||||||
for(var/area/SubA in A.related)
|
if(gravitystate)
|
||||||
SubA.has_gravity = gravitystate
|
for(var/mob/living/carbon/human/M in A)
|
||||||
|
thunk(M)
|
||||||
if(gravitystate)
|
for(var/mob/M1 in A)
|
||||||
for(var/mob/living/carbon/human/M in SubA)
|
M1.make_floating(0)
|
||||||
thunk(M)
|
else
|
||||||
for(var/mob/M1 in SubA)
|
for(var/mob/M in A)
|
||||||
M1.make_floating(0)
|
if(M.Check_Dense_Object() && istype(src,/mob/living/carbon/human/))
|
||||||
else
|
var/mob/living/carbon/human/H = src
|
||||||
for(var/mob/M in SubA)
|
if(istype(H.shoes, /obj/item/clothing/shoes/magboots) && (H.shoes.flags & NOSLIP)) //magboots + dense_object = no floaty effect
|
||||||
if(M.Check_Dense_Object() && istype(src,/mob/living/carbon/human/))
|
H.make_floating(0)
|
||||||
var/mob/living/carbon/human/H = src
|
|
||||||
if(istype(H.shoes, /obj/item/clothing/shoes/magboots) && (H.shoes.flags & NOSLIP)) //magboots + dense_object = no floaty effect
|
|
||||||
H.make_floating(0)
|
|
||||||
else
|
|
||||||
H.make_floating(1)
|
|
||||||
else
|
else
|
||||||
M.make_floating(1)
|
H.make_floating(1)
|
||||||
|
else
|
||||||
|
M.make_floating(1)
|
||||||
|
|
||||||
/area/proc/thunk(mob)
|
/area/proc/thunk(mob)
|
||||||
if(istype(get_turf(mob), /turf/space)) // Can't fall onto nothing.
|
if(istype(get_turf(mob), /turf/space)) // Can't fall onto nothing.
|
||||||
|
|||||||
@@ -54,9 +54,8 @@ In short:
|
|||||||
runedec += 9000 //basically removing the rune cap
|
runedec += 9000 //basically removing the rune cap
|
||||||
|
|
||||||
/datum/universal_state/hell/proc/AreaSet()
|
/datum/universal_state/hell/proc/AreaSet()
|
||||||
for(var/area/ca in world)
|
for(var/area/A in world)
|
||||||
var/area/A = ca.master
|
if(A.name=="Space")
|
||||||
if(!istype(A,/area) || A.name=="Space")
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
// Reset all alarms.
|
// Reset all alarms.
|
||||||
|
|||||||
@@ -83,11 +83,10 @@ AUTOMATED ALERT: Link to [command_name()] lost."}
|
|||||||
return
|
return
|
||||||
|
|
||||||
/datum/universal_state/supermatter_cascade/proc/AreaSet()
|
/datum/universal_state/supermatter_cascade/proc/AreaSet()
|
||||||
for(var/area/ca in world)
|
for(var/area/A in world)
|
||||||
var/area/A=ca.master
|
|
||||||
if(A.z in config.admin_levels)
|
if(A.z in config.admin_levels)
|
||||||
continue
|
continue
|
||||||
if(!istype(A,/area) || istype(A,/area/space))
|
if(istype(A,/area/space))
|
||||||
continue
|
continue
|
||||||
|
|
||||||
// Reset all alarms.
|
// Reset all alarms.
|
||||||
|
|||||||
@@ -124,8 +124,6 @@
|
|||||||
|
|
||||||
/obj/machinery/alarm/proc/first_run()
|
/obj/machinery/alarm/proc/first_run()
|
||||||
alarm_area = get_area(src)
|
alarm_area = get_area(src)
|
||||||
if (alarm_area.master)
|
|
||||||
alarm_area = alarm_area.master
|
|
||||||
area_uid = alarm_area.uid
|
area_uid = alarm_area.uid
|
||||||
if (name == "alarm")
|
if (name == "alarm")
|
||||||
name = "[alarm_area.name] Air Alarm"
|
name = "[alarm_area.name] Air Alarm"
|
||||||
@@ -286,11 +284,10 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/machinery/alarm/proc/elect_master()
|
/obj/machinery/alarm/proc/elect_master()
|
||||||
for (var/area/A in alarm_area.related)
|
for (var/obj/machinery/alarm/AA in alarm_area)
|
||||||
for (var/obj/machinery/alarm/AA in A)
|
if (!(AA.stat & (NOPOWER|BROKEN)))
|
||||||
if (!(AA.stat & (NOPOWER|BROKEN)))
|
alarm_area.master_air_alarm = AA
|
||||||
alarm_area.master_air_alarm = AA
|
return 1
|
||||||
return 1
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
/obj/machinery/alarm/proc/get_danger_level(var/current_value, var/list/danger_levels)
|
/obj/machinery/alarm/proc/get_danger_level(var/current_value, var/list/danger_levels)
|
||||||
@@ -397,9 +394,8 @@
|
|||||||
/obj/machinery/alarm/proc/apply_mode()
|
/obj/machinery/alarm/proc/apply_mode()
|
||||||
//propagate mode to other air alarms in the area
|
//propagate mode to other air alarms in the area
|
||||||
//TODO: make it so that players can choose between applying the new mode to the room they are in (related area) vs the entire alarm area
|
//TODO: make it so that players can choose between applying the new mode to the room they are in (related area) vs the entire alarm area
|
||||||
for (var/area/RA in alarm_area.related)
|
for (var/obj/machinery/alarm/AA in alarm_area)
|
||||||
for (var/obj/machinery/alarm/AA in RA)
|
AA.mode = mode
|
||||||
AA.mode = mode
|
|
||||||
|
|
||||||
switch(mode)
|
switch(mode)
|
||||||
if(AALARM_MODE_SCRUBBING)
|
if(AALARM_MODE_SCRUBBING)
|
||||||
@@ -1070,7 +1066,6 @@ FIRE ALARM
|
|||||||
var/d2
|
var/d2
|
||||||
if (istype(user, /mob/living/carbon/human) || istype(user, /mob/living/silicon))
|
if (istype(user, /mob/living/carbon/human) || istype(user, /mob/living/silicon))
|
||||||
A = A.loc
|
A = A.loc
|
||||||
A = A.master
|
|
||||||
|
|
||||||
if (A.fire)
|
if (A.fire)
|
||||||
d1 = text("<A href='?src=\ref[];reset=1'>Reset - Lockdown</A>", src)
|
d1 = text("<A href='?src=\ref[];reset=1'>Reset - Lockdown</A>", src)
|
||||||
@@ -1137,9 +1132,8 @@ FIRE ALARM
|
|||||||
if (!( src.working ))
|
if (!( src.working ))
|
||||||
return
|
return
|
||||||
var/area/area = get_area(src)
|
var/area/area = get_area(src)
|
||||||
for(var/area/A in area.related)
|
for(var/obj/machinery/firealarm/FA in area)
|
||||||
for(var/obj/machinery/firealarm/FA in A)
|
fire_alarm.clearAlarm(loc, FA)
|
||||||
fire_alarm.clearAlarm(loc, FA)
|
|
||||||
update_icon()
|
update_icon()
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -1147,9 +1141,8 @@ FIRE ALARM
|
|||||||
if (!( src.working))
|
if (!( src.working))
|
||||||
return
|
return
|
||||||
var/area/area = get_area(src)
|
var/area/area = get_area(src)
|
||||||
for(var/area/A in area.related)
|
for(var/obj/machinery/firealarm/FA in area)
|
||||||
for(var/obj/machinery/firealarm/FA in A)
|
fire_alarm.triggerAlarm(loc, FA, duration)
|
||||||
fire_alarm.triggerAlarm(loc, FA, duration)
|
|
||||||
update_icon()
|
update_icon()
|
||||||
//playsound(src.loc, 'sound/ambience/signal.ogg', 75, 0)
|
//playsound(src.loc, 'sound/ambience/signal.ogg', 75, 0)
|
||||||
return
|
return
|
||||||
@@ -1260,8 +1253,6 @@ Code shamelessly copied from apc_frame
|
|||||||
user.machine = src
|
user.machine = src
|
||||||
var/area/A = get_area(src)
|
var/area/A = get_area(src)
|
||||||
ASSERT(isarea(A))
|
ASSERT(isarea(A))
|
||||||
if(A.master)
|
|
||||||
A = A.master
|
|
||||||
var/d1
|
var/d1
|
||||||
var/d2
|
var/d2
|
||||||
if (istype(user, /mob/living/carbon/human) || istype(user, /mob/living/silicon/ai))
|
if (istype(user, /mob/living/carbon/human) || istype(user, /mob/living/silicon/ai))
|
||||||
@@ -1300,8 +1291,6 @@ Code shamelessly copied from apc_frame
|
|||||||
return
|
return
|
||||||
var/area/A = get_area(src)
|
var/area/A = get_area(src)
|
||||||
ASSERT(isarea(A))
|
ASSERT(isarea(A))
|
||||||
if(A.master)
|
|
||||||
A = A.master
|
|
||||||
A.partyreset()
|
A.partyreset()
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -1310,8 +1299,6 @@ Code shamelessly copied from apc_frame
|
|||||||
return
|
return
|
||||||
var/area/A = get_area(src)
|
var/area/A = get_area(src)
|
||||||
ASSERT(isarea(A))
|
ASSERT(isarea(A))
|
||||||
if(A.master)
|
|
||||||
A = A.master
|
|
||||||
A.partyalert()
|
A.partyalert()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -147,14 +147,10 @@
|
|||||||
var/turf/T_src = get_turf(src)
|
var/turf/T_src = get_turf(src)
|
||||||
if(!T_src.loc) return 0
|
if(!T_src.loc) return 0
|
||||||
var/area/A_src = T_src.loc
|
var/area/A_src = T_src.loc
|
||||||
if (A_src.master)
|
|
||||||
A_src = A_src.master
|
|
||||||
|
|
||||||
var/turf/T_scrub = get_turf(scrubber)
|
var/turf/T_scrub = get_turf(scrubber)
|
||||||
if(!T_scrub.loc) return 0
|
if(!T_scrub.loc) return 0
|
||||||
var/area/A_scrub = T_scrub.loc
|
var/area/A_scrub = T_scrub.loc
|
||||||
if (A_scrub.master)
|
|
||||||
A_scrub = A_scrub.master
|
|
||||||
|
|
||||||
if(A_scrub != A_src)
|
if(A_scrub != A_src)
|
||||||
return 0
|
return 0
|
||||||
@@ -169,13 +165,11 @@
|
|||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
if(!T.loc) return
|
if(!T.loc) return
|
||||||
var/area/A = T.loc
|
var/area/A = T.loc
|
||||||
if (A.master)
|
|
||||||
A = A.master
|
|
||||||
for(var/obj/machinery/portable_atmospherics/powered/scrubber/huge/scrubber in world )
|
for(var/obj/machinery/portable_atmospherics/powered/scrubber/huge/scrubber in world )
|
||||||
var/turf/T2 = get_turf(scrubber)
|
var/turf/T2 = get_turf(scrubber)
|
||||||
if(T2 && T2.loc)
|
if(T2 && T2.loc)
|
||||||
var/area/A2 = T2.loc
|
var/area/A2 = T2.loc
|
||||||
if(istype(A2) && A2.master && A2.master == A )
|
if(istype(A2) && A2 == A)
|
||||||
connectedscrubbers += scrubber
|
connectedscrubbers += scrubber
|
||||||
found = 1
|
found = 1
|
||||||
|
|
||||||
@@ -183,4 +177,4 @@
|
|||||||
if(!found)
|
if(!found)
|
||||||
status = "ERROR: No scrubber found!"
|
status = "ERROR: No scrubber found!"
|
||||||
|
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
|
|||||||
@@ -278,8 +278,8 @@
|
|||||||
chan = power_channel
|
chan = power_channel
|
||||||
|
|
||||||
var/area/A = get_area(loc)
|
var/area/A = get_area(loc)
|
||||||
if(istype(A) && A.master && A.master.powered(chan))
|
if(istype(A) && A.powered(chan))
|
||||||
A.master.use_power(amount, chan)
|
A.use_power(amount, chan)
|
||||||
else if(battery && battery.charge > 0)
|
else if(battery && battery.charge > 0)
|
||||||
battery.use(amount)
|
battery.use(amount)
|
||||||
|
|
||||||
|
|||||||
@@ -143,10 +143,9 @@
|
|||||||
if(typekey == null)
|
if(typekey == null)
|
||||||
typekey = /obj/machinery
|
typekey = /obj/machinery
|
||||||
var/list/machines = list()
|
var/list/machines = list()
|
||||||
for(var/area/area in A.related)
|
for(var/obj/O in A.contents)
|
||||||
for(var/obj/O in area.contents)
|
if(istype(O,typekey))
|
||||||
if(istype(O,typekey))
|
machines |= O
|
||||||
machines |= O
|
|
||||||
return machines
|
return machines
|
||||||
verify_machine(var/obj/previous)
|
verify_machine(var/obj/previous)
|
||||||
if(!previous) return 0
|
if(!previous) return 0
|
||||||
|
|||||||
@@ -34,8 +34,6 @@
|
|||||||
var/alert = signal.data["alert"]
|
var/alert = signal.data["alert"]
|
||||||
|
|
||||||
var/area/our_area = get_area(src)
|
var/area/our_area = get_area(src)
|
||||||
if (our_area.master)
|
|
||||||
our_area = our_area.master
|
|
||||||
|
|
||||||
if(alarm_area == our_area.name)
|
if(alarm_area == our_area.name)
|
||||||
switch(alert)
|
switch(alert)
|
||||||
@@ -44,4 +42,4 @@
|
|||||||
close()
|
close()
|
||||||
if("minor", "clear")
|
if("minor", "clear")
|
||||||
autoclose = 0
|
autoclose = 0
|
||||||
open()
|
open()
|
||||||
|
|||||||
@@ -152,8 +152,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
|
|||||||
if(HOLOPAD_MODE == AREA_BASED)
|
if(HOLOPAD_MODE == AREA_BASED)
|
||||||
var/area/holo_area = get_area(src)
|
var/area/holo_area = get_area(src)
|
||||||
var/area/eye_area = get_area(master.eyeobj)
|
var/area/eye_area = get_area(master.eyeobj)
|
||||||
|
if(eye_area != holo_area)
|
||||||
if(!(eye_area in holo_area.master.related))
|
|
||||||
clear_holo(master)
|
clear_holo(master)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|||||||
@@ -188,11 +188,10 @@ datum/track/New(var/title_name, var/audio)
|
|||||||
/obj/machinery/media/jukebox/proc/StopPlaying()
|
/obj/machinery/media/jukebox/proc/StopPlaying()
|
||||||
var/area/main_area = get_area(src)
|
var/area/main_area = get_area(src)
|
||||||
// Always kill the current sound
|
// Always kill the current sound
|
||||||
for(var/area/related_area in main_area.related)
|
for(var/mob/living/M in mobs_in_area(main_area))
|
||||||
for(var/mob/living/M in mobs_in_area(related_area))
|
M << sound(null, channel = 1)
|
||||||
M << sound(null, channel = 1)
|
|
||||||
|
|
||||||
related_area.forced_ambience = null
|
main_area.forced_ambience = null
|
||||||
playing = 0
|
playing = 0
|
||||||
update_use_power(1)
|
update_use_power(1)
|
||||||
update_icon()
|
update_icon()
|
||||||
@@ -204,12 +203,10 @@ datum/track/New(var/title_name, var/audio)
|
|||||||
return
|
return
|
||||||
|
|
||||||
var/area/main_area = get_area(src)
|
var/area/main_area = get_area(src)
|
||||||
for(var/area/related_area in main_area.related)
|
main_area.forced_ambience = list(current_track.sound)
|
||||||
related_area.forced_ambience = list(current_track.sound)
|
for(var/mob/living/M in mobs_in_area(main_area))
|
||||||
|
if(M.mind)
|
||||||
for(var/mob/living/M in mobs_in_area(related_area))
|
main_area.play_ambience(M)
|
||||||
if(M.mind)
|
|
||||||
related_area.play_ambience(M)
|
|
||||||
|
|
||||||
playing = 1
|
playing = 1
|
||||||
update_use_power(2)
|
update_use_power(2)
|
||||||
|
|||||||
@@ -42,15 +42,14 @@
|
|||||||
|
|
||||||
on = !on
|
on = !on
|
||||||
|
|
||||||
for(var/area/A in area.master.related)
|
area.lightswitch = on
|
||||||
A.lightswitch = on
|
area.updateicon()
|
||||||
A.updateicon()
|
|
||||||
|
|
||||||
for(var/obj/machinery/light_switch/L in A)
|
for(var/obj/machinery/light_switch/L in area)
|
||||||
L.on = on
|
L.on = on
|
||||||
L.updateicon()
|
L.updateicon()
|
||||||
|
|
||||||
area.master.power_change()
|
area.power_change()
|
||||||
|
|
||||||
/obj/machinery/light_switch/power_change()
|
/obj/machinery/light_switch/power_change()
|
||||||
|
|
||||||
|
|||||||
@@ -264,8 +264,8 @@ Class Procs:
|
|||||||
s.start()
|
s.start()
|
||||||
if (electrocute_mob(user, get_area(src), src, 0.7))
|
if (electrocute_mob(user, get_area(src), src, 0.7))
|
||||||
var/area/temp_area = get_area(src)
|
var/area/temp_area = get_area(src)
|
||||||
if(temp_area && temp_area.master)
|
if(temp_area)
|
||||||
var/obj/machinery/power/apc/temp_apc = temp_area.master.get_apc()
|
var/obj/machinery/power/apc/temp_apc = temp_area.get_apc()
|
||||||
|
|
||||||
if(temp_apc && temp_apc.terminal && temp_apc.terminal.powernet)
|
if(temp_apc && temp_apc.terminal && temp_apc.terminal.powernet)
|
||||||
temp_apc.terminal.powernet.trigger_warning()
|
temp_apc.terminal.powernet.trigger_warning()
|
||||||
|
|||||||
@@ -46,12 +46,11 @@
|
|||||||
|
|
||||||
/obj/machinery/turretid/initialize()
|
/obj/machinery/turretid/initialize()
|
||||||
if(!control_area)
|
if(!control_area)
|
||||||
var/area/CA = get_area(src)
|
control_area = get_area(src)
|
||||||
control_area = CA.master
|
|
||||||
else if(istext(control_area))
|
else if(istext(control_area))
|
||||||
for(var/area/A in world)
|
for(var/area/A in world)
|
||||||
if(A.name && A.name==control_area)
|
if(A.name && A.name==control_area)
|
||||||
control_area = A.master
|
control_area = A
|
||||||
break
|
break
|
||||||
|
|
||||||
if(control_area)
|
if(control_area)
|
||||||
@@ -178,9 +177,8 @@
|
|||||||
TC.ailock = ailock
|
TC.ailock = ailock
|
||||||
|
|
||||||
if(istype(control_area))
|
if(istype(control_area))
|
||||||
for(var/area/sub_area in control_area.related)
|
for (var/obj/machinery/porta_turret/aTurret in control_area)
|
||||||
for (var/obj/machinery/porta_turret/aTurret in sub_area)
|
aTurret.setState(TC)
|
||||||
aTurret.setState(TC)
|
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
|
|||||||
@@ -13,9 +13,6 @@
|
|||||||
|
|
||||||
/area/turret_protected/Entered(O)
|
/area/turret_protected/Entered(O)
|
||||||
..()
|
..()
|
||||||
if( master && master != src )
|
|
||||||
return master.Entered(O)
|
|
||||||
|
|
||||||
if( iscarbon(O) )
|
if( iscarbon(O) )
|
||||||
turretTargets |= O
|
turretTargets |= O
|
||||||
else if( istype(O, /obj/mecha) )
|
else if( istype(O, /obj/mecha) )
|
||||||
@@ -27,9 +24,6 @@
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
/area/turret_protected/Exited(O)
|
/area/turret_protected/Exited(O)
|
||||||
if( master && master != src )
|
|
||||||
return master.Exited(O)
|
|
||||||
|
|
||||||
if( ismob(O) && !issilicon(O) )
|
if( ismob(O) && !issilicon(O) )
|
||||||
turretTargets -= O
|
turretTargets -= O
|
||||||
else if( istype(O, /obj/mecha) )
|
else if( istype(O, /obj/mecha) )
|
||||||
@@ -148,8 +142,6 @@
|
|||||||
/obj/machinery/turret/proc/get_protected_area()
|
/obj/machinery/turret/proc/get_protected_area()
|
||||||
var/area/turret_protected/TP = get_area(src)
|
var/area/turret_protected/TP = get_area(src)
|
||||||
if(istype(TP))
|
if(istype(TP))
|
||||||
if(TP.master && TP.master != TP)
|
|
||||||
TP = TP.master
|
|
||||||
return TP
|
return TP
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -772,7 +772,7 @@
|
|||||||
var/pow_chan
|
var/pow_chan
|
||||||
if(A)
|
if(A)
|
||||||
for(var/c in use_channels)
|
for(var/c in use_channels)
|
||||||
if(A.master && A.master.powered(c))
|
if(A.powered(c))
|
||||||
pow_chan = c
|
pow_chan = c
|
||||||
break
|
break
|
||||||
return pow_chan
|
return pow_chan
|
||||||
@@ -819,13 +819,13 @@
|
|||||||
if(A)
|
if(A)
|
||||||
var/pow_chan
|
var/pow_chan
|
||||||
for(var/c in list(EQUIP,ENVIRON,LIGHT))
|
for(var/c in list(EQUIP,ENVIRON,LIGHT))
|
||||||
if(A.master.powered(c))
|
if(A.powered(c))
|
||||||
pow_chan = c
|
pow_chan = c
|
||||||
break
|
break
|
||||||
if(pow_chan)
|
if(pow_chan)
|
||||||
var/delta = min(12, ER.chassis.cell.maxcharge-cur_charge)
|
var/delta = min(12, ER.chassis.cell.maxcharge-cur_charge)
|
||||||
ER.chassis.give_power(delta)
|
ER.chassis.give_power(delta)
|
||||||
A.master.use_power(delta*ER.coeff, pow_chan)
|
A.use_power(delta*ER.coeff, pow_chan)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -76,7 +76,6 @@ move an amendment</a> to the drawing.</p>
|
|||||||
/obj/item/blueprints/proc/get_area()
|
/obj/item/blueprints/proc/get_area()
|
||||||
var/turf/T = get_turf(usr)
|
var/turf/T = get_turf(usr)
|
||||||
var/area/A = T.loc
|
var/area/A = T.loc
|
||||||
A = A.master
|
|
||||||
return A
|
return A
|
||||||
|
|
||||||
/obj/item/blueprints/proc/get_area_type(var/area/A = get_area())
|
/obj/item/blueprints/proc/get_area_type(var/area/A = get_area())
|
||||||
@@ -161,8 +160,7 @@ move an amendment</a> to the drawing.</p>
|
|||||||
usr << "\red Text too long."
|
usr << "\red Text too long."
|
||||||
return
|
return
|
||||||
set_area_machinery_title(A,str,prevname)
|
set_area_machinery_title(A,str,prevname)
|
||||||
for(var/area/RA in A.related)
|
A.name = str
|
||||||
RA.name = str
|
|
||||||
usr << "\blue You set the area '[prevname]' title to '[str]'."
|
usr << "\blue You set the area '[prevname]' title to '[str]'."
|
||||||
interact()
|
interact()
|
||||||
return
|
return
|
||||||
@@ -172,17 +170,17 @@ move an amendment</a> to the drawing.</p>
|
|||||||
/obj/item/blueprints/proc/set_area_machinery_title(var/area/A,var/title,var/oldtitle)
|
/obj/item/blueprints/proc/set_area_machinery_title(var/area/A,var/title,var/oldtitle)
|
||||||
if (!oldtitle) // or replacetext goes to infinite loop
|
if (!oldtitle) // or replacetext goes to infinite loop
|
||||||
return
|
return
|
||||||
for(var/area/RA in A.related)
|
|
||||||
for(var/obj/machinery/alarm/M in RA)
|
for(var/obj/machinery/alarm/M in A)
|
||||||
M.name = replacetext(M.name,oldtitle,title)
|
M.name = replacetext(M.name,oldtitle,title)
|
||||||
for(var/obj/machinery/power/apc/M in RA)
|
for(var/obj/machinery/power/apc/M in A)
|
||||||
M.name = replacetext(M.name,oldtitle,title)
|
M.name = replacetext(M.name,oldtitle,title)
|
||||||
for(var/obj/machinery/atmospherics/unary/vent_scrubber/M in RA)
|
for(var/obj/machinery/atmospherics/unary/vent_scrubber/M in A)
|
||||||
M.name = replacetext(M.name,oldtitle,title)
|
M.name = replacetext(M.name,oldtitle,title)
|
||||||
for(var/obj/machinery/atmospherics/unary/vent_pump/M in RA)
|
for(var/obj/machinery/atmospherics/unary/vent_pump/M in A)
|
||||||
M.name = replacetext(M.name,oldtitle,title)
|
M.name = replacetext(M.name,oldtitle,title)
|
||||||
for(var/obj/machinery/door/M in RA)
|
for(var/obj/machinery/door/M in A)
|
||||||
M.name = replacetext(M.name,oldtitle,title)
|
M.name = replacetext(M.name,oldtitle,title)
|
||||||
//TODO: much much more. Unnamed airlocks, cameras, etc.
|
//TODO: much much more. Unnamed airlocks, cameras, etc.
|
||||||
|
|
||||||
/obj/item/blueprints/proc/check_tile_is_border(var/turf/T2,var/dir)
|
/obj/item/blueprints/proc/check_tile_is_border(var/turf/T2,var/dir)
|
||||||
@@ -247,4 +245,4 @@ move an amendment</a> to the drawing.</p>
|
|||||||
if(BORDER_SPACE)
|
if(BORDER_SPACE)
|
||||||
return ROOM_ERR_SPACE
|
return ROOM_ERR_SPACE
|
||||||
found+=T
|
found+=T
|
||||||
return found
|
return found
|
||||||
|
|||||||
@@ -58,10 +58,10 @@
|
|||||||
on = 0
|
on = 0
|
||||||
else
|
else
|
||||||
var/area/A = src.loc.loc
|
var/area/A = src.loc.loc
|
||||||
if(!A || !isarea(A) || !A.master)
|
if(!A || !isarea(A))
|
||||||
on = 0
|
on = 0
|
||||||
else
|
else
|
||||||
on = A.master.powered(EQUIP) // set "on" to the power status
|
on = A.powered(EQUIP) // set "on" to the power status
|
||||||
|
|
||||||
if(!on)
|
if(!on)
|
||||||
icon_state = "intercom-p"
|
icon_state = "intercom-p"
|
||||||
|
|||||||
@@ -96,18 +96,17 @@
|
|||||||
* Assisting procs *
|
* Assisting procs *
|
||||||
******************/
|
******************/
|
||||||
/atom/proc/get_alarm_area()
|
/atom/proc/get_alarm_area()
|
||||||
var/area/A = get_area(src)
|
return get_area(src)
|
||||||
return A.master
|
|
||||||
|
|
||||||
/area/get_alarm_area()
|
/area/get_alarm_area()
|
||||||
return src.master
|
return src
|
||||||
|
|
||||||
/atom/proc/get_alarm_name()
|
/atom/proc/get_alarm_name()
|
||||||
var/area/A = get_area(src)
|
var/area/A = get_area(src)
|
||||||
return A.master.name
|
return A.name
|
||||||
|
|
||||||
/area/get_alarm_name()
|
/area/get_alarm_name()
|
||||||
return master.name
|
return name
|
||||||
|
|
||||||
/mob/get_alarm_name()
|
/mob/get_alarm_name()
|
||||||
return name
|
return name
|
||||||
|
|||||||
@@ -84,8 +84,7 @@
|
|||||||
return src
|
return src
|
||||||
|
|
||||||
/turf/get_alarm_origin()
|
/turf/get_alarm_origin()
|
||||||
var/area/area = get_area(src)
|
return get_area(src)
|
||||||
return area.master // Very important to get area.master, as dynamic lightning can and will split areas.
|
|
||||||
|
|
||||||
/datum/alarm_handler/proc/register(var/object, var/procName)
|
/datum/alarm_handler/proc/register(var/object, var/procName)
|
||||||
listeners[object] = procName
|
listeners[object] = procName
|
||||||
|
|||||||
@@ -63,11 +63,10 @@
|
|||||||
//world << " checking [areapath]"
|
//world << " checking [areapath]"
|
||||||
var/area/A = locate(areapath)
|
var/area/A = locate(areapath)
|
||||||
//world << " A: [A], contents.len: [A.contents.len]"
|
//world << " A: [A], contents.len: [A.contents.len]"
|
||||||
for(var/area/B in A.related)
|
|
||||||
//world << " B: [B], contents.len: [B.contents.len]"
|
//world << " B: [B], contents.len: [B.contents.len]"
|
||||||
for(var/turf/simulated/floor/F in B.contents)
|
for(var/turf/simulated/floor/F in A.contents)
|
||||||
if(!F.contents.len)
|
if(!F.contents.len)
|
||||||
turfs += F
|
turfs += F
|
||||||
|
|
||||||
var/list/spawn_types = list()
|
var/list/spawn_types = list()
|
||||||
var/max_number
|
var/max_number
|
||||||
@@ -116,4 +115,4 @@
|
|||||||
|
|
||||||
#undef VERM_MICE
|
#undef VERM_MICE
|
||||||
#undef VERM_LIZARDS
|
#undef VERM_LIZARDS
|
||||||
#undef VERM_SPIDERS
|
#undef VERM_SPIDERS
|
||||||
|
|||||||
@@ -6,10 +6,9 @@
|
|||||||
var/list/turf/simulated/floor/turfs = list() //list of all the empty floor turfs in the hallway areas
|
var/list/turf/simulated/floor/turfs = list() //list of all the empty floor turfs in the hallway areas
|
||||||
for(var/areapath in typesof(/area/hallway))
|
for(var/areapath in typesof(/area/hallway))
|
||||||
var/area/A = locate(areapath)
|
var/area/A = locate(areapath)
|
||||||
for(var/area/B in A.related)
|
for(var/turf/simulated/floor/F in A.contents)
|
||||||
for(var/turf/simulated/floor/F in B.contents)
|
if(!F.contents.len)
|
||||||
if(!F.contents.len)
|
turfs += F
|
||||||
turfs += F
|
|
||||||
|
|
||||||
if(turfs.len) //Pick a turf to spawn at if we can
|
if(turfs.len) //Pick a turf to spawn at if we can
|
||||||
var/turf/simulated/floor/T = pick(turfs)
|
var/turf/simulated/floor/T = pick(turfs)
|
||||||
@@ -256,4 +255,4 @@
|
|||||||
die_off()
|
die_off()
|
||||||
|
|
||||||
/obj/effect/plant/proc/is_mature()
|
/obj/effect/plant/proc/is_mature()
|
||||||
return (health >= (max_health/3))
|
return (health >= (max_health/3))
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
loc = T.loc
|
loc = T.loc
|
||||||
if (istype(loc, /area))
|
if (istype(loc, /area))
|
||||||
//stage = 4
|
//stage = 4
|
||||||
if (!loc.master.power_equip && !istype(src.loc,/obj/item))
|
if (!loc.power_equip && !istype(src.loc,/obj/item))
|
||||||
//stage = 5
|
//stage = 5
|
||||||
blind = 1
|
blind = 1
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
spawn(20)
|
spawn(20)
|
||||||
src << "Backup battery online. Scanners, camera, and radio interface offline. Beginning fault-detection."
|
src << "Backup battery online. Scanners, camera, and radio interface offline. Beginning fault-detection."
|
||||||
sleep(50)
|
sleep(50)
|
||||||
if (loc.master.power_equip)
|
if (loc.power_equip)
|
||||||
if (!istype(T, /turf/space))
|
if (!istype(T, /turf/space))
|
||||||
src << "Alert cancelled. Power has been restored without our assistance."
|
src << "Alert cancelled. Power has been restored without our assistance."
|
||||||
src:aiRestorePowerRoutine = 0
|
src:aiRestorePowerRoutine = 0
|
||||||
@@ -135,18 +135,17 @@
|
|||||||
|
|
||||||
var/PRP
|
var/PRP
|
||||||
for (PRP=1, PRP<=4, PRP++)
|
for (PRP=1, PRP<=4, PRP++)
|
||||||
for(var/area/A in current_area.master.related)
|
for (var/obj/machinery/power/apc/APC in current_area)
|
||||||
for (var/obj/machinery/power/apc/APC in A)
|
if (!(APC.stat & BROKEN))
|
||||||
if (!(APC.stat & BROKEN))
|
theAPC = APC
|
||||||
theAPC = APC
|
break
|
||||||
break
|
|
||||||
if (!theAPC)
|
if (!theAPC)
|
||||||
switch(PRP)
|
switch(PRP)
|
||||||
if (1) src << "Unable to locate APC!"
|
if (1) src << "Unable to locate APC!"
|
||||||
else src << "Lost connection with the APC!"
|
else src << "Lost connection with the APC!"
|
||||||
src:aiRestorePowerRoutine = 2
|
src:aiRestorePowerRoutine = 2
|
||||||
return
|
return
|
||||||
if (loc.master.power_equip)
|
if (loc.power_equip)
|
||||||
if (!istype(T, /turf/space))
|
if (!istype(T, /turf/space))
|
||||||
src << "Alert cancelled. Power has been restored without our assistance."
|
src << "Alert cancelled. Power has been restored without our assistance."
|
||||||
src:aiRestorePowerRoutine = 0
|
src:aiRestorePowerRoutine = 0
|
||||||
@@ -181,7 +180,7 @@
|
|||||||
/mob/living/silicon/ai/proc/lacks_power()
|
/mob/living/silicon/ai/proc/lacks_power()
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
var/area/A = get_area(src)
|
var/area/A = get_area(src)
|
||||||
return ((!A.master.power_equip) && A.requires_power == 1 || istype(T, /turf/space)) && !istype(src.loc,/obj/item)
|
return ((!A.power_equip) && A.requires_power == 1 || istype(T, /turf/space)) && !istype(src.loc,/obj/item)
|
||||||
|
|
||||||
/mob/living/silicon/ai/updatehealth()
|
/mob/living/silicon/ai/updatehealth()
|
||||||
if(status_flags & GODMODE)
|
if(status_flags & GODMODE)
|
||||||
@@ -195,4 +194,4 @@
|
|||||||
|
|
||||||
/mob/living/silicon/ai/rejuvenate()
|
/mob/living/silicon/ai/rejuvenate()
|
||||||
..()
|
..()
|
||||||
add_ai_verbs(src)
|
add_ai_verbs(src)
|
||||||
|
|||||||
@@ -1253,11 +1253,10 @@ obj/machinery/power/apc/proc/autoset(var/val, var/on)
|
|||||||
if( cell && cell.charge>=20)
|
if( cell && cell.charge>=20)
|
||||||
cell.use(20);
|
cell.use(20);
|
||||||
spawn(0)
|
spawn(0)
|
||||||
for(var/area/A in area.related)
|
for(var/obj/machinery/light/L in area)
|
||||||
for(var/obj/machinery/light/L in A)
|
L.on = 1
|
||||||
L.on = 1
|
L.broken()
|
||||||
L.broken()
|
sleep(1)
|
||||||
sleep(1)
|
|
||||||
|
|
||||||
/obj/machinery/power/apc/proc/setsubsystem(val)
|
/obj/machinery/power/apc/proc/setsubsystem(val)
|
||||||
if(cell && cell.charge > 0)
|
if(cell && cell.charge > 0)
|
||||||
|
|||||||
@@ -50,8 +50,8 @@
|
|||||||
for(var/area/A in range(src,effectiverange))
|
for(var/area/A in range(src,effectiverange))
|
||||||
if(A.name == "Space")
|
if(A.name == "Space")
|
||||||
continue // No (de)gravitizing space.
|
continue // No (de)gravitizing space.
|
||||||
if(A.master && !( A.master in localareas) )
|
if(!(A in localareas))
|
||||||
localareas += A.master
|
localareas += A
|
||||||
|
|
||||||
/obj/machinery/computer/gravity_control_computer/proc/findgenerator()
|
/obj/machinery/computer/gravity_control_computer/proc/findgenerator()
|
||||||
var/obj/machinery/gravity_generator/foundgenerator = null
|
var/obj/machinery/gravity_generator/foundgenerator = null
|
||||||
@@ -125,7 +125,7 @@
|
|||||||
for(var/area/A in gravity_generator:localareas)
|
for(var/area/A in gravity_generator:localareas)
|
||||||
var/obj/machinery/gravity_generator/G
|
var/obj/machinery/gravity_generator/G
|
||||||
for(G in machines)
|
for(G in machines)
|
||||||
if((A.master in G.localareas) && (G.on))
|
if((A in G.localareas) && (G.on))
|
||||||
break
|
break
|
||||||
if(!G)
|
if(!G)
|
||||||
A.gravitychange(0,A)
|
A.gravitychange(0,A)
|
||||||
@@ -137,4 +137,4 @@
|
|||||||
A.gravitychange(1,A)
|
A.gravitychange(1,A)
|
||||||
|
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -441,7 +441,7 @@
|
|||||||
// true if area has power and lightswitch is on
|
// true if area has power and lightswitch is on
|
||||||
/obj/machinery/light/proc/has_power()
|
/obj/machinery/light/proc/has_power()
|
||||||
var/area/A = src.loc.loc
|
var/area/A = src.loc.loc
|
||||||
return A.master.lightswitch && A.master.power_light
|
return A.lightswitch && A.power_light
|
||||||
|
|
||||||
/obj/machinery/light/proc/flicker(var/amount = rand(10, 20))
|
/obj/machinery/light/proc/flicker(var/amount = rand(10, 20))
|
||||||
if(flickering) return
|
if(flickering) return
|
||||||
@@ -613,7 +613,6 @@
|
|||||||
/obj/machinery/light/power_change()
|
/obj/machinery/light/power_change()
|
||||||
spawn(10)
|
spawn(10)
|
||||||
var/area/A = src.loc.loc
|
var/area/A = src.loc.loc
|
||||||
A = A.master
|
|
||||||
seton(A.lightswitch && A.power_light)
|
seton(A.lightswitch && A.power_light)
|
||||||
|
|
||||||
// called when on fire
|
// called when on fire
|
||||||
|
|||||||
@@ -69,20 +69,20 @@
|
|||||||
// return 1
|
// return 1
|
||||||
|
|
||||||
var/area/A = src.loc.loc // make sure it's in an area
|
var/area/A = src.loc.loc // make sure it's in an area
|
||||||
if(!A || !isarea(A) || !A.master)
|
if(!A || !isarea(A))
|
||||||
return 0 // if not, then not powered
|
return 0 // if not, then not powered
|
||||||
if(chan == -1)
|
if(chan == -1)
|
||||||
chan = power_channel
|
chan = power_channel
|
||||||
return A.master.powered(chan) // return power status of the area
|
return A.powered(chan) // return power status of the area
|
||||||
|
|
||||||
// increment the power usage stats for an area
|
// increment the power usage stats for an area
|
||||||
/obj/machinery/proc/use_power(var/amount, var/chan = -1) // defaults to power_channel
|
/obj/machinery/proc/use_power(var/amount, var/chan = -1) // defaults to power_channel
|
||||||
var/area/A = get_area(src) // make sure it's in an area
|
var/area/A = get_area(src) // make sure it's in an area
|
||||||
if(!A || !isarea(A) || !A.master)
|
if(!A || !isarea(A))
|
||||||
return
|
return
|
||||||
if(chan == -1)
|
if(chan == -1)
|
||||||
chan = power_channel
|
chan = power_channel
|
||||||
A.master.use_power(amount, chan)
|
A.use_power(amount, chan)
|
||||||
|
|
||||||
/obj/machinery/proc/power_change() // called whenever the power settings of the containing area change
|
/obj/machinery/proc/power_change() // called whenever the power settings of the containing area change
|
||||||
// by default, check equipment channel & set flag
|
// by default, check equipment channel & set flag
|
||||||
|
|||||||
@@ -150,7 +150,6 @@
|
|||||||
return null
|
return null
|
||||||
|
|
||||||
/area/proc/get_apc()
|
/area/proc/get_apc()
|
||||||
for(var/area/RA in src.related)
|
var/obj/machinery/power/apc/FINDME = locate() in src
|
||||||
var/obj/machinery/power/apc/FINDME = locate() in RA
|
if (FINDME)
|
||||||
if (FINDME)
|
return FINDME
|
||||||
return FINDME
|
|
||||||
|
|||||||
Reference in New Issue
Block a user