This commit is contained in:
BurgerLua
2019-05-26 00:34:37 -07:00
parent 851072ff23
commit e3aaff68b7
2 changed files with 26 additions and 11 deletions
+20 -5
View File
@@ -103,7 +103,9 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
if(data_by_z["[z]"] && last_update["[z]"] && world.time <= last_update["[z]"] + SENSORS_UPDATE_PERIOD)
return data_by_z["[z]"]
var/list/results = list()
var/list/results_damaged = list()
var/list/results_undamaged = list()
var/obj/item/clothing/under/U
var/obj/item/card/id/I
var/turf/pos
@@ -114,6 +116,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
var/toxdam
var/burndam
var/brutedam
var/totaldam
var/area
var/pos_x
var/pos_y
@@ -157,11 +160,13 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
toxdam = round(H.getToxLoss(),1)
burndam = round(H.getFireLoss(),1)
brutedam = round(H.getBruteLoss(),1)
totaldam = oxydam + toxdam + burndam + brutedam
else
oxydam = null
toxdam = null
burndam = null
brutedam = null
totaldam = 0
if (nanite_sensors || U.sensor_mode >= SENSOR_COORDS)
if (!pos)
@@ -174,16 +179,26 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
pos_x = null
pos_y = null
results[++results.len] = list("name" = name, "assignment" = assignment, "ijob" = ijob, "life_status" = life_status, "oxydam" = oxydam, "toxdam" = toxdam, "burndam" = burndam, "brutedam" = brutedam, "area" = area, "pos_x" = pos_x, "pos_y" = pos_y, "can_track" = H.can_track(null))
var/total_list = list("name" = name, "assignment" = assignment, "ijob" = ijob, "life_status" = life_status, "oxydam" = oxydam, "toxdam" = toxdam, "burndam" = burndam, "brutedam" = brutedam, "totaldam" = totaldam, "area" = area, "pos_x" = pos_x, "pos_y" = pos_y, "can_track" = H.can_track(null))
data_by_z["[z]"] = sortTim(results,/proc/sensor_compare)
if(totaldam)
results_damaged[++results_damaged.len] = total_list
else
results_undamaged[++results_undamaged.len] = total_list
var/list/returning = sortTim(results_damaged,/proc/damage_compare) + sortTim(results_undamaged,/proc/ijob_compare)
data_by_z["[z]"] = returning
last_update["[z]"] = world.time
return results
return returning
/proc/sensor_compare(list/a,list/b)
/proc/ijob_compare(list/a,list/b)
return a["ijob"] - b["ijob"]
/proc/damage_compare(list/a,list/b)
return b["totaldam"] - a["totaldam"]
/datum/crewmonitor/ui_act(action,params)
var/mob/living/silicon/ai/AI = usr
if(!istype(AI))