From adc09ffe41f909d2a5aa2f2076046e0ab4c5ee4b Mon Sep 17 00:00:00 2001 From: paprka Date: Wed, 17 Dec 2014 23:42:09 -0800 Subject: [PATCH 1/2] initial commit for bay ports --- code/datums/datacore.dm | 100 +++++++++++++++++++++ code/modules/mob/dead/observer/observer.dm | 10 +++ code/modules/mob/new_player/new_player.dm | 21 ++++- 3 files changed, 128 insertions(+), 3 deletions(-) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index e98fec043ed..b74a13a36c9 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -79,6 +79,106 @@ if(foundrecord) foundrecord.fields["rank"] = assignment +/obj/effect/datacore/proc/get_manifest(monochrome, OOC) + var/list/heads = new() + var/list/sec = new() + var/list/eng = new() + var/list/med = new() + var/list/sci = new() + var/list/civ = new() + var/list/bot = new() + var/list/misc = new() + var/dat = {" + + + + "} + var/even = 0 + // sort mobs + for(var/datum/data/record/t in data_core.general) + var/name = t.fields["name"] + var/rank = t.fields["rank"] + var/real_rank = t.fields["real_rank"] + var/department = 0 + if(real_rank in command_positions) + heads[name] = rank + department = 1 + if(real_rank in security_positions) + sec[name] = rank + department = 1 + if(real_rank in engineering_positions) + eng[name] = rank + department = 1 + if(real_rank in medical_positions) + med[name] = rank + department = 1 + if(real_rank in science_positions) + sci[name] = rank + department = 1 + if(real_rank in civilian_positions) + civ[name] = rank + department = 1 + if(real_rank in nonhuman_positions) + bot[name] = rank + department = 1 + if(!department && !(name in heads)) + misc[name] = rank + if(heads.len > 0) + dat += "" + for(name in heads) + dat += "" + even = !even + if(sec.len > 0) + dat += "" + for(name in sec) + dat += "" + even = !even + if(eng.len > 0) + dat += "" + for(name in eng) + dat += "" + even = !even + if(med.len > 0) + dat += "" + for(name in med) + dat += "" + even = !even + if(sci.len > 0) + dat += "" + for(name in sci) + dat += "" + even = !even + if(civ.len > 0) + dat += "" + for(name in civ) + dat += "" + even = !even + // in case somebody is insane and added them to the manifest, why not + if(bot.len > 0) + dat += "" + for(name in bot) + dat += "" + even = !even + // misc guys + if(misc.len > 0) + dat += "" + for(name in misc) + dat += "" + even = !even + + dat += "
NameRank
Heads
[name][heads[name]]
Security
[name][sec[name]]
Engineering
[name][eng[name]]
Medical
[name][med[name]]
Science
[name][sci[name]]
Civilian
[name][civ[name]]
Silicon
[name][bot[name]]
Miscellaneous
[name][misc[name]]
" + dat = replacetext(dat, "\n", "") + dat = replacetext(dat, "\t", "") + return dat + + var/record_id_num = 1001 /obj/effect/datacore/proc/manifest_inject(var/mob/living/carbon/human/H) if(H.mind && (H.mind.assigned_role != "MODE")) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index f7da665c052..703d4b577e0 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -301,3 +301,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return 0 usr.visible_message("[src] points to [A]") return 1 + +/mob/dead/observer/verb/view_manfiest() + set name = "View Crew Manifest" + set category = "Ghost" + + var/dat + dat += "

Crew Manifest

" + dat += data_core.get_manifest() + + src << browse(dat, "window=manifest;size=370x420;can_close=1") \ No newline at end of file diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index fd087516a33..72c56c7f554 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -25,10 +25,13 @@ var/output = "

Setup Character

" if(!ticker || ticker.current_state <= GAME_STATE_PREGAME) - if(!ready) output += "

Declare Ready

" - else output += "

You are ready Cancel

" + if(ready) + output += "

\[ Ready | Not Ready \]

" + else + output += "

\[ Ready | Not Ready \]

" else + output += "View the Crew Manifest

" output += "

Join Game!

" output += "

Observe

" @@ -98,7 +101,10 @@ return 1 if(href_list["ready"]) - ready = text2num(href_list["ready"]) + if(!ticker || ticker.current_state <= GAME_STATE_PREGAME) // Make sure we don't ready up after the round has started + ready = !ready + else + ready = 0 if(href_list["refresh"]) src << browse(null, "window=playersetup") //closes the player setup window @@ -136,6 +142,9 @@ return LateChoices() + if(href_list["manifest"]) + ViewManifest() + if(href_list["SelectedJob"]) if(!enter_allowed) @@ -364,6 +373,12 @@ return new_character +/mob/new_player/proc/ViewManifest() + var/dat = "" + dat += "

Crew Manifest

" + dat += data_core.get_manifest(OOC = 1) + + src << browse(dat, "window=manifest;size=370x420;can_close=1") /mob/new_player/Move() return 0 From 73f5d8db9c24f617d2258b7616aae633859fc6b1 Mon Sep 17 00:00:00 2001 From: paprka Date: Tue, 23 Dec 2014 12:07:32 -0800 Subject: [PATCH 2/2] fixes bugs --- code/datums/datacore.dm | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index b74a13a36c9..368a3e69c93 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -80,14 +80,14 @@ foundrecord.fields["rank"] = assignment /obj/effect/datacore/proc/get_manifest(monochrome, OOC) - var/list/heads = new() - var/list/sec = new() - var/list/eng = new() - var/list/med = new() - var/list/sci = new() - var/list/civ = new() - var/list/bot = new() - var/list/misc = new() + var/list/heads = list() + var/list/sec = list() + var/list/eng = list() + var/list/med = list() + var/list/sci = list() + var/list/civ = list() + var/list/bot = list() + var/list/misc = list() var/dat = {"