From ee93a203066a1e51755d859473eea99ae8be730a Mon Sep 17 00:00:00 2001 From: psq95 Date: Sun, 7 May 2023 15:44:09 +0100 Subject: [PATCH] Add status to crew manifest Allow new players to see how many existing players are actually active --- code/datums/datacore.dm | 28 +++++++++++++++++--------- code/modules/mob/living/carbon/life.dm | 2 ++ 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index d93f3e25..ac510331 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -15,6 +15,7 @@ /datum/data/record name = "record" var/list/fields = list() + var/status = FALSE // GS13 /datum/data/record/Destroy() if(src in GLOB.data_core.medical) @@ -89,7 +90,13 @@ if(foundrecord) foundrecord.fields["rank"] = assignment +/datum/datacore/proc/manifest_modify_status(name, status) + var/datum/data/record/foundrecord = find_record("name", name, GLOB.data_core.general) + if(foundrecord) + foundrecord.status = status + /datum/datacore/proc/get_manifest(monochrome, OOC) + var/list/status = list() var/list/heads = list() var/list/sec = list() var/list/eng = list() @@ -109,7 +116,7 @@ .manifest tr.alt td {[monochrome?"border-top-width: 2px":"background-color: #DEF"]} - + "} var/even = 0 // sort mobs @@ -117,6 +124,7 @@ var/name = t.fields["name"] var/rank = t.fields["rank"] var/department = 0 + status[name] = t.status if(rank in GLOB.command_positions) heads[name] = rank department = 1 @@ -146,49 +154,49 @@ if(heads.len > 0) dat += "" for(var/name in heads) - dat += "" + dat += "" even = !even if(sec.len > 0) dat += "" for(var/name in sec) - dat += "" + dat += "" even = !even if(eng.len > 0) dat += "" for(var/name in eng) - dat += "" + dat += "" even = !even if(med.len > 0) dat += "" for(var/name in med) - dat += "" + dat += "" even = !even if(sci.len > 0) dat += "" for(var/name in sci) - dat += "" + dat += "" even = !even if(sup.len > 0) dat += "" for(var/name in sup) - dat += "" + dat += "" even = !even if(civ.len > 0) dat += "" for(var/name in civ) - dat += "" + dat += "" even = !even // in case somebody is insane and added them to the manifest, why not if(bot.len > 0) dat += "" for(var/name in bot) - dat += "" + dat += "" even = !even // misc guys if(misc.len > 0) dat += "" for(var/name in misc) - dat += "" + dat += "" even = !even dat += "
NameRank
NameRankStatus
Heads
[name][heads[name]]
[name][heads[name]][status[name] ? "Inactive" : "Active"]
Security
[name][sec[name]]
[name][sec[name]][status[name] ? "Inactive" : "Active"]
Engineering
[name][eng[name]]
[name][eng[name]][status[name] ? "Inactive" : "Active"]
Medical
[name][med[name]]
[name][med[name]][status[name] ? "Inactive" : "Active"]
Science
[name][sci[name]]
[name][sci[name]][status[name] ? "Inactive" : "Active"]
Supply
[name][sup[name]]
[name][sup[name]][status[name] ? "Inactive" : "Active"]
Civilian
[name][civ[name]]
[name][civ[name]][status[name] ? "Inactive" : "Active"]
Silicon
[name][bot[name]]
[name][bot[name]][status[name] ? "Inactive" : "Active"]
Miscellaneous
[name][misc[name]]
[name][misc[name]][status[name] ? "Inactive" : "Active"]
" diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 048fb2a4..70309880 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -562,10 +562,12 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put if(ckey) if(!client && !(stat == DEAD)) + GLOB.data_core.manifest_modify_status(real_name, TRUE) add_status_indicator("ssd") SSD = TRUE else if(SSD) + GLOB.data_core.manifest_modify_status(real_name, FALSE) remove_status_indicator("ssd") SSD = FALSE