diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 46ac27bad0c..116136bfafb 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -70,7 +70,7 @@ .manifest td:first-child {text-align:right} .manifest tr.alt td {[monochrome?"border-top-width: 2px":"background-color: #DEF"]} - +
"} var/even = 0 @@ -94,28 +94,31 @@ //world << "[name]: [rank]" + //cael - to prevent multiple appearances of a player/job combination, add a continue after each line + var/department = 0 if(real_rank in command_positions) heads[name] = rank + department = 1 if(real_rank in security_positions) sec[name] = rank - continue + department = 1 if(real_rank in engineering_positions) eng[name] = rank - continue + department = 1 if(real_rank in medical_positions) med[name] = rank - continue + department = 1 if(real_rank in science_positions) sci[name] = rank - continue + department = 1 if(real_rank in civilian_positions) civ[name] = rank - continue + department = 1 if(real_rank in nonhuman_positions) bot[name] = rank - continue + department = 1 - if(!(name in heads)) + if(!department && !(name in heads)) misc[name] = rank if(heads.len > 0) diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index b71453292fd..7ebb958112a 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -74,7 +74,7 @@ selection_color = "#ffeeff" access = list(access_robotics, access_tox, access_tox_storage, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. minimal_access = list(access_robotics, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. - alt_titles = list("Biomedical Engineer","Mechatronic Engineer") + alt_titles = list("Biomechanical Engineer","Mechatronic Engineer") equip(var/mob/living/carbon/human/H) if(!H) return 0 diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index a32e9ea1343..5e9b8256e54 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -51,14 +51,24 @@ if (!( ticker )) return if (mode) // accessing crew manifest - var/crew = "" + + dat += "

Crew Manifest

" + dat += "Entries cannot be modified from this terminal.

" + if(data_core) + dat += data_core.get_manifest(0) // make it monochrome + dat += "
" + dat += "Print
" + dat += "
" + dat += "Access ID modification console.
" + + /*var/crew = "" var/list/L = list() for (var/datum/data/record/t in data_core.general) var/R = t.fields["name"] + " - " + t.fields["rank"] L += R for(var/R in sortList(L)) - crew += "[R]
" - dat = "Crew Manifest:
Please use security record computer to modify entries.

[crew]Print

Access ID modification console.
" + crew += "[R]
"*/ + //dat = "Crew Manifest:
Please use security record computer to modify entries.

[crew]Print

Access ID modification console.
" else var/header = "
Identification Card Modifier
" @@ -267,13 +277,19 @@ printing = 1 sleep(50) var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( loc ) - var/t1 = "Crew Manifest:
" + /*var/t1 = "Crew Manifest:
" var/list/L = list() for (var/datum/data/record/t in data_core.general) var/R = t.fields["name"] + " - " + t.fields["rank"] L += R for(var/R in sortList(L)) - t1 += "[R]
" + t1 += "[R]
"*/ + + var/t1 = "

Crew Manifest

" + t1 += "
" + if(data_core) + t1 += data_core.get_manifest(0) // make it monochrome + P.info = t1 P.name = "paper- 'Crew Manifest'" printing = null diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 3080f4d1bb6..2a56a4f3def 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -74,7 +74,7 @@ var/recieve_color = "purple" var/send_pm_type = "" var/recieve_pm_type = "Player" - //usr.client.holder.rights + if(holder) //mod PMs are maroon @@ -91,17 +91,17 @@ src << "Error: Admin-PM: Non-admin to non-admin PM communication is forbidden." return - var/recieve_message = "[recieve_pm_type] PM from-[key_name(src, C, 1)]: [msg]" + var/recieve_message = "" if(holder && !C.holder) - recieve_message = "-- Administrator private message --\n" + recieve_message + recieve_message = "-- Administrator private message --\n" //AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn if(config.popup_admin_pm) spawn(0) //so we don't hold the caller proc up var/sender = src var/sendername = key - var/reply = input(C, msg,"Admin PM from-[sendername]", "") as text|null //show message and await a reply + var/reply = input(C, msg,"[recieve_pm_type] PM from-[sendername]", "") as text|null //show message and await a reply if(C && reply) if(sender) C.cmd_admin_pm(sender,reply) //sender is still about, let's reply to them @@ -109,8 +109,9 @@ adminhelp(reply) //sender has left, adminhelp instead return + recieve_message = "[recieve_pm_type] PM from-[key_name(src, C, C.holder ? 1 : 0)]: [msg]" C << recieve_message - src << "[send_pm_type] PM to-[key_name(C, src, 1)]: [msg]" + src << "[send_pm_type] PM to-[key_name(C, src, holder ? 1 : 0)]: [msg]" /*if(holder && !C.holder) C.last_pm_recieved = world.time @@ -177,6 +178,7 @@ //we don't use message_admins here because the sender/receiver might get it too for(var/client/X in admins) //check client/X is an admin and isn't the sender or recipient - //only admins can see PMs + if(X == C || X == src) + continue if(X.key!=key && X.key!=C.key && (X.holder.rights & R_ADMIN) || (X.holder.rights & R_MOD) ) X << "PM: [key_name(src, X, 0)]->[key_name(C, X, 0)]: \blue [msg]" //inform X diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index 513f83ea5ed..04dc7d46a17 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -94,7 +94,7 @@ var/spawn_type = pick(spawn_types) new spawn_type(T) num-- - world << "[vermstring] spawned in [spawn_area_type]" + //world << "[vermstring] spawned in [spawn_area_type]" /datum/event/infestation/announce() command_alert("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation") diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 3dbe68a53fe..8b238f6ee91 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1260,10 +1260,9 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 if("lizard","slime") see_in_dark = 3 see_invisible = SEE_INVISIBLE_LEVEL_ONE - if("tajaran") - see_in_dark = 4 - if("shadow") + if("shadow","tajaran") see_in_dark = 8 + see_invisible = SEE_INVISIBLE_LEVEL_ONE else see_in_dark = 2 diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 1b5e8e5e3f4..425c730ba85 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -15,6 +15,9 @@ var/list/department_radio_keys = list( ":t" = "Syndicate", "#t" = "Syndicate", ".t" = "Syndicate", ":u" = "Supply", "#u" = "Supply", ".u" = "Supply", ":g" = "changeling", "#g" = "changeling", ".g" = "changeling", + ":k" = "skrell", "#k" = "skrell", ".k" = "skrell", + ":j" = "tajaran", "#j" = "tajaran", ".j" = "tajaran", + ":o" = "soghun", "#o" = "soghun", ".o" = "soghun", ":R" = "right hand", "#R" = "right hand", ".R" = "right hand", ":L" = "left hand", "#L" = "left hand", ".L" = "left hand", @@ -31,6 +34,9 @@ var/list/department_radio_keys = list( ":T" = "Syndicate", "#T" = "Syndicate", ".T" = "Syndicate", ":U" = "Supply", "#U" = "Supply", ".U" = "Supply", ":G" = "changeling", "#G" = "changeling", ".G" = "changeling", + ":K" = "skrell", "#K" = "skrell", ".K" = "skrell", + ":J" = "tajaran", "#J" = "tajaran", ".J" = "tajaran", + ":O" = "soghun", "#O" = "soghun", ".O" = "soghun", //kinda localization -- rastaf0 //same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding. @@ -139,27 +145,6 @@ var/list/department_radio_keys = list( if (!message) return - //work out if we're speaking skrell or not - var/is_speaking_skrell = 0 - if(copytext(message, 1, 3) == ":k" || copytext(message, 1, 3) == ":K") - message = copytext(message, 3) - if(skrell_talk_understand || universal_speak) - is_speaking_skrell = 1 - - //work out if we're speaking soghun or not - var/is_speaking_soghun = 0 - if(copytext(message, 1, 3) == ":o" || copytext(message, 1, 3) == ":O") - message = copytext(message, 3) - if(soghun_talk_understand || universal_speak) - is_speaking_soghun = 1 - - //work out if we're speaking soghun or not - var/is_speaking_taj = 0 - if(copytext(message, 1, 3) == ":j" || copytext(message, 1, 3) == ":J") - message = copytext(message, 3) - if(tajaran_talk_understand || universal_speak) - is_speaking_taj = 1 - // :downs: if (getBrainLoss() >= 60) message = replacetext(message, " am ", " ") @@ -191,6 +176,10 @@ var/list/department_radio_keys = list( */ var/list/obj/item/used_radios = new + var/is_speaking_skrell = 0 + var/is_speaking_soghun = 0 + var/is_speaking_taj = 0 + switch (message_mode) if ("headset") if (src:ears) @@ -269,6 +258,18 @@ var/list/department_radio_keys = list( message_range = 1 italics = 1 + if ("tajaran") + if(tajaran_talk_understand || universal_speak) + is_speaking_taj = 1 + + if ("soghun") + if(soghun_talk_understand || universal_speak) + is_speaking_soghun = 1 + + if ("skrell") + if(skrell_talk_understand || universal_speak) + is_speaking_skrell = 1 + if("changeling") if(mind && mind.changeling) for(var/mob/Changeling in mob_list)
NameRankActivity