Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fax Responders & Paperwork Prefabs hybrid TM #7165

Draft
wants to merge 67 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
1ae9e9f
x
realforest2001 Dec 13, 2023
7cee84a
Merge remote-tracking branch 'cmss13-devs/master' into forest/paperwork
realforest2001 Dec 18, 2023
0851378
It works!
realforest2001 Dec 19, 2023
55870bd
pens and some MP forms
realforest2001 Dec 20, 2023
328dae8
WY liaison docs
realforest2001 Dec 20, 2023
6f6c5e9
state
realforest2001 Dec 20, 2023
7015f84
x
realforest2001 Dec 20, 2023
b4f9ac9
Merge remote-tracking branch 'cmss13-devs/master' into forest/paperwork
realforest2001 Dec 20, 2023
f0b98a5
cl mapping
realforest2001 Dec 20, 2023
2db8a2e
x
realforest2001 Dec 23, 2023
0aaccae
Merge branch 'master' into forest/paperwork
realforest2001 Apr 26, 2024
cf8ddc5
works with the CDN.
realforest2001 Apr 26, 2024
df10b99
Apply suggestions from code review
realforest2001 Apr 26, 2024
7eff867
reset almayer to master
realforest2001 Apr 26, 2024
391c619
cl and brig
realforest2001 Apr 26, 2024
96d6d46
chinook pens
realforest2001 Apr 26, 2024
8682416
icons
realforest2001 Apr 26, 2024
bca88a5
wrong cabinet!
realforest2001 Apr 26, 2024
7b4fc48
wy_bw
realforest2001 Apr 26, 2024
14ad4e5
crayon blanks
realforest2001 Apr 26, 2024
5538d00
I fixed fields!
realforest2001 Apr 27, 2024
e4ce751
reshuffle
realforest2001 Apr 28, 2024
831b821
Update code/modules/paperwork/prefab_papers/wey_yu/liaison/nda_long.dm
realforest2001 May 1, 2024
16db60d
Merge remote-tracking branch 'cmss13-devs/master' into forest/paperwork
realforest2001 Jul 30, 2024
991981d
floor fix
realforest2001 Jul 30, 2024
51cd5b2
Presets part 1
realforest2001 Sep 8, 2024
6668089
job cat
realforest2001 Sep 8, 2024
ddd3e5d
Part one
realforest2001 Sep 8, 2024
72ec6db
landmark test
realforest2001 Sep 8, 2024
adceabc
whiskey fix
realforest2001 Sep 9, 2024
78e964b
Functional Join
realforest2001 Sep 9, 2024
a896139
temp station
realforest2001 Sep 9, 2024
4da4912
temp fax posts
realforest2001 Sep 9, 2024
2f4ae2d
fax machines
realforest2001 Sep 9, 2024
8c1221d
Merge remote-tracking branch 'cmss13-devs/master' into project/fax_wl…
realforest2001 Sep 10, 2024
17e4332
fax machine ID
realforest2001 Sep 10, 2024
e43e9b0
Lobby Fix
realforest2001 Sep 10, 2024
54e4662
Preset Tweaks
realforest2001 Sep 10, 2024
84c6b0a
single target faxes
realforest2001 Sep 10, 2024
61f0ab2
Merge remote-tracking branch 'cmss13-devs/master' into forest/paperwork
realforest2001 Sep 10, 2024
3991b2f
scale
realforest2001 Sep 10, 2024
2dd3bc0
map reset
realforest2001 Sep 10, 2024
849386d
dead mao
realforest2001 Sep 10, 2024
b56e5e1
attempt 2
realforest2001 Sep 10, 2024
438c2c5
fix dupes
realforest2001 Sep 10, 2024
fee7f90
compat
realforest2001 Sep 10, 2024
9d60ee8
map tweak and cmb
realforest2001 Sep 11, 2024
78f356c
s
realforest2001 Sep 11, 2024
f3e3fae
latejoin fix
realforest2001 Sep 11, 2024
77aba18
WL test fix
realforest2001 Sep 11, 2024
4a9cf67
rebrand
realforest2001 Sep 12, 2024
0bed0c7
Merge remote-tracking branch 'cmss13-devs/master' into forest/paperwork
realforest2001 Sep 13, 2024
37e6446
hc paper
realforest2001 Sep 14, 2024
9b4cf0c
colour scheme
realforest2001 Sep 14, 2024
0a29a5d
Merge remote-tracking branch 'cmss13-devs/master' into forest/paperwork
realforest2001 Sep 14, 2024
cbe904e
Merge remote-tracking branch 'cmss13-devs/master' into project/fax_re…
realforest2001 Sep 14, 2024
cf9cf02
Merge branch 'forest/paperwork' into project/fax_responders_tm
realforest2001 Sep 14, 2024
00c3725
pens
realforest2001 Sep 14, 2024
55fcf87
lobby fix and council testing
realforest2001 Sep 15, 2024
2df478d
shut up lint
realforest2001 Sep 15, 2024
b3a17c8
I hate code
realforest2001 Sep 16, 2024
0f902ef
grr
realforest2001 Sep 16, 2024
db516d2
Merge branch 'master' into project/fax_responders_tm
realforest2001 Sep 18, 2024
decaeab
Merge branch 'master' into project/fax_responders_tm
harryob Sep 24, 2024
fc14a55
Update fax_responders.dm
harryob Sep 24, 2024
5c95f6e
Merge remote-tracking branch 'cmss13-devs/master' into project/fax_re…
realforest2001 Sep 28, 2024
3594523
tlc
realforest2001 Sep 28, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions code/__DEFINES/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,9 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST)
#define ROLES_WY_CORPORATE list(JOB_EXECUTIVE_SUPERVISOR, JOB_EXECUTIVE_SPECIALIST, JOB_SENIOR_EXECUTIVE, JOB_EXECUTIVE, JOB_JUNIOR_EXECUTIVE, JOB_TRAINEE)
#define ROLES_WY_LEADERSHIP list(JOB_DIRECTOR, JOB_PMC_DIRECTOR, JOB_CHIEF_EXECUTIVE, JOB_DIVISION_MANAGER, JOB_ASSISTANT_MANAGER)

#define JOB_CORPORATE_ROLES /datum/timelock/corporate
#define JOB_CORPORATE_ROLES_LIST list(JOB_CORPORATE_LIAISON, JOB_WO_CORPORATE_LIAISON, JOB_DIRECTOR, JOB_PMC_DIRECTOR, JOB_CHIEF_EXECUTIVE, JOB_DIVISION_MANAGER, JOB_ASSISTANT_MANAGER, JOB_EXECUTIVE_SUPERVISOR, JOB_EXECUTIVE_SPECIALIST, JOB_SENIOR_EXECUTIVE, JOB_EXECUTIVE, JOB_JUNIOR_EXECUTIVE, JOB_TRAINEE)

//-------- WY Goons --------//
#define JOB_WY_GOON "WY Corporate Security"
#define JOB_WY_GOON_TECH "WY Corporate Security Technician"
Expand Down Expand Up @@ -366,6 +369,21 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST)

#define DUTCH_JOB_LIST list(JOB_DUTCH_ARNOLD, JOB_DUTCH_RIFLEMAN, JOB_DUTCH_MINIGUNNER, JOB_DUTCH_FLAMETHROWER, JOB_DUTCH_MEDIC)

//---------- RESPONDERS ----------//
/// This root job should never appear ingame, it's used to select the character slot.
#define JOB_FAX_RESPONDER "Fax Responder"
#define JOB_FAX_RESPONDER_USCM_HC "USCM-HC Communications Officer"
#define JOB_FAX_RESPONDER_USCM_PVST "Provost Communications Officer"
#define JOB_FAX_RESPONDER_WY "WY Communications Executive"
#define JOB_FAX_RESPONDER_UPP "UPP Communications Officer"
#define JOB_FAX_RESPONDER_TWE "TWE Communications Officer"
#define JOB_FAX_RESPONDER_CLF "CLF Information Correspondant"
#define JOB_FAX_RESPONDER_CMB "CMB Deputy Operations Officer"

#define FAX_RESPONDER_JOB_LIST list(JOB_FAX_RESPONDER_USCM_HC, JOB_FAX_RESPONDER_USCM_PVST, JOB_FAX_RESPONDER_WY, JOB_FAX_RESPONDER_UPP, JOB_FAX_RESPONDER_TWE, JOB_FAX_RESPONDER_CLF, JOB_FAX_RESPONDER_CMB)


//---------- ANTAG ----------//
#define JOB_PREDATOR "Predator"
#define JOB_XENOMORPH "Xenomorph"
#define JOB_XENOMORPH_QUEEN "Queen"
Expand Down
13 changes: 5 additions & 8 deletions code/__DEFINES/mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@
#define ROLE_WHITELISTED 16
#define ROLE_NO_ACCOUNT 32
#define ROLE_CUSTOM_SPAWN 64
#define ROLE_HIDDEN 128
//=================================================

//Role defines, specifically lists of roles for job bans, crew manifests and the like.
Expand All @@ -137,7 +138,7 @@ GLOBAL_LIST_INIT(ROLES_WO, list(JOB_WO_CO, JOB_WO_XO, JOB_WO_CORPORATE_LIAISON,

//Groundside roles
GLOBAL_LIST_INIT(ROLES_XENO, list(JOB_XENOMORPH_QUEEN, JOB_XENOMORPH))
GLOBAL_LIST_INIT(ROLES_WHITELISTED, list(JOB_SYNTH_SURVIVOR, JOB_CO_SURVIVOR, JOB_PREDATOR))
GLOBAL_LIST_INIT(ROLES_WHITELISTED, list(JOB_SYNTH_SURVIVOR, JOB_CO_SURVIVOR, JOB_PREDATOR, JOB_FAX_RESPONDER))
GLOBAL_LIST_INIT(ROLES_SPECIAL, list(JOB_SURVIVOR))

GLOBAL_LIST_INIT(ROLES_USCM, ROLES_CIC + GLOB.ROLES_POLICE + GLOB.ROLES_AUXIL_SUPPORT + GLOB.ROLES_MISC + GLOB.ROLES_ENGINEERING + GLOB.ROLES_REQUISITION + GLOB.ROLES_MEDICAL + GLOB.ROLES_MARINES - ROLES_WO)
Expand Down Expand Up @@ -195,13 +196,8 @@ GLOBAL_LIST_INIT(whitelist_hierarchy, list(WHITELIST_NORMAL, WHITELIST_COUNCIL,
///Senior Enlisted Advisor, auto granted by R_MENTOR
#define WHITELIST_MENTOR (1<<15)


#define WHITELISTS_GENERAL (WHITELIST_YAUTJA|WHITELIST_COMMANDER|WHITELIST_SYNTHETIC|WHITELIST_MENTOR|WHITELIST_JOE)
#define WHITELISTS_COUNCIL (WHITELIST_YAUTJA_COUNCIL|WHITELIST_COMMANDER_COUNCIL|WHITELIST_SYNTHETIC_COUNCIL)
#define WHITELISTS_LEGACY_COUNCIL (WHITELIST_YAUTJA_COUNCIL_LEGACY|WHITELIST_COMMANDER_COUNCIL_LEGACY|WHITELIST_SYNTHETIC_COUNCIL_LEGACY)
#define WHITELISTS_LEADER (WHITELIST_YAUTJA_LEADER|WHITELIST_COMMANDER_LEADER|WHITELIST_SYNTHETIC_LEADER)

#define WHITELIST_EVERYTHING (WHITELISTS_GENERAL|WHITELISTS_COUNCIL|WHITELISTS_LEADER)
///Fax Responder
#define WHITELIST_FAX_RESPONDER (1<<16)

#define COUNCIL_LIST list(WHITELIST_COMMANDER_COUNCIL, WHITELIST_SYNTHETIC_COUNCIL, WHITELIST_YAUTJA_COUNCIL)
#define SENATOR_LIST list(WHITELIST_COMMANDER_LEADER, WHITELIST_SYNTHETIC_LEADER, WHITELIST_YAUTJA_LEADER)
Expand All @@ -225,6 +221,7 @@ DEFINE_BITFIELD(whitelist_status, list(
"WHITELIST_SYNTHETIC_COUNCIL_LEGACY" = WHITELIST_SYNTHETIC_COUNCIL_LEGACY,
"WHITELIST_SYNTHETIC_LEADER" = WHITELIST_SYNTHETIC_LEADER,
"WHITELIST_MENTOR" = WHITELIST_MENTOR,
"WHITELIST_FAX_RESPONDER" = WHITELIST_FAX_RESPONDER,
))

//=================================================
Expand Down
8 changes: 8 additions & 0 deletions code/__DEFINES/paperwork.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#define PAPER_CATEGORY_USCM "USCM"
#define PAPER_CATEGORY_USCM_HC "USCM HC"
#define PAPER_CATEGORY_PROVOST "Provost"
#define PAPER_CATEGORY_WEYYU "Weyland Yutani"
#define PAPER_CATEGORY_UPP "UPP"
#define PAPER_CATEGORY_CMB "CMB"
#define PAPER_CATEGORY_MP "Military Police"
#define PAPER_CATEGORY_LIAISON "WY Liaison"
1 change: 1 addition & 0 deletions code/__DEFINES/urls.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@
#define URL_WIKI_MACROS "Macros"
#define URL_WIKI_SOP "Standard_Operating_Procedure"
#define URL_WIKI_CO_RULES "CO_Council_Rulings"
#define URL_WIKI_FAX_RESPONDER "Fax_Responder"
1 change: 1 addition & 0 deletions code/datums/emergency_calls/emergency_call.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
var/list/datum/emergency_call/all_calls = list() //initialized at round start and stores the datums.
var/datum/emergency_call/picked_calls[] = list() //Which distress calls are currently active
var/ert_dispatched = FALSE
var/loaded_fax_base = FALSE

/datum/game_mode/proc/ares_online()
var/name = "ARES Online"
Expand Down
3 changes: 3 additions & 0 deletions code/datums/emergency_calls/ert_stations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@

/datum/lazy_template/ert/uscm_station
map_name = "uscm_ert_station"

/datum/lazy_template/fax_response_base
map_name = "fax_responder_base"
12 changes: 12 additions & 0 deletions code/datums/skills/civilian.dm
Original file line number Diff line number Diff line change
Expand Up @@ -224,3 +224,15 @@ CIVILIAN
SKILL_FIREARMS = SKILL_FIREARMS_TRAINED,
SKILL_LEADERSHIP = SKILL_LEAD_TRAINED,
)

/datum/skills/civilian/fax_responder
name = "Comms Relay Worker" //Used for fax responder presets, allowing use of appropriate HUDs and basics.
skills = list(
SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED,
SKILL_LEADERSHIP = SKILL_LEAD_MASTER,
SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED,
SKILL_MEDICAL = SKILL_MEDICAL_TRAINED,
SKILL_ENGINEER = SKILL_ENGINEER_NOVICE,
SKILL_VEHICLE = SKILL_VEHICLE_SMALL,
SKILL_INTEL = SKILL_INTEL_EXPERT,
)
4 changes: 4 additions & 0 deletions code/game/area/admin_level.dm
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,10 @@
soundscape_playlist = SCAPE_PL_ELEVATOR_MUSIC
icon_state = "yellow"

/area/adminlevel/ert_station/fax_response_station
name = "Sector Comms Relay"
icon_state = "green"

//Simulation area
/area/adminlevel/simulation
name = "Simulated Reality"
Expand Down
100 changes: 100 additions & 0 deletions code/game/gamemodes/cm_initialize.dm
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,106 @@ Additional game mode variables.

return new_predator

//===================================================\\
//FAX RESPONDER INITIATLIZE\\
//===================================================\\
/datum/game_mode/proc/check_fax_responder_late_join(mob/responder, show_warning = TRUE)
if(!responder.client)
return FALSE
if(!(responder?.client.check_whitelist_status(WHITELIST_FAX_RESPONDER)))
if(show_warning)
to_chat(responder, SPAN_WARNING("You are not whitelisted!"))
return FALSE
if(show_warning && tgui_alert(responder, "Confirm joining as a Fax Responder.", "Confirmation", list("Yes", "No"), 10 SECONDS) != "Yes")
return FALSE
if(!get_fax_responder_slots(responder))
if(show_warning)
to_chat(responder, SPAN_WARNING("No slots available!"))
return FALSE
return TRUE

/datum/game_mode/proc/get_fax_responder_slots(mob/responder_candidate)
var/list/options = list()
if(!responder_candidate.client)
return FALSE
if(!(responder_candidate.client.check_whitelist_status(WHITELIST_FAX_RESPONDER)))
to_chat(responder_candidate, SPAN_WARNING("You are not whitelisted!"))
return FALSE

for(var/job in FAX_RESPONDER_JOB_LIST)
var/datum/job/fax_responder_job = GLOB.RoleAuthority.roles_by_name[job]
var/job_max = fax_responder_job.total_positions
if((fax_responder_job.current_positions < job_max) && fax_responder_job.can_play_role(responder_candidate.client))
options += job
return options

/datum/game_mode/proc/attempt_to_join_as_fax_responder(mob/responder_candidate, from_lobby = FALSE)
var/list/options = get_fax_responder_slots(responder_candidate)
if(!options || !options.len)
to_chat(responder_candidate, SPAN_WARNING("No Available Slot!"))
if(from_lobby)
var/mob/new_player/lobbied = responder_candidate
lobbied.new_player_panel()
return FALSE

var/choice = tgui_input_list(responder_candidate, "What Fax Responder do you want to join as?", "Which Responder?", options, 30 SECONDS)
if(!(choice in FAX_RESPONDER_JOB_LIST))
to_chat(responder_candidate, SPAN_WARNING("Error: No valid responder selected."))
if(from_lobby)
var/mob/new_player/lobbied = responder_candidate
lobbied.new_player_panel()
return FALSE

if(!transform_fax_responder(responder_candidate, choice))
if(from_lobby)
var/mob/new_player/lobbied = responder_candidate
lobbied.new_player_panel()
return FALSE

if(responder_candidate)
responder_candidate.moveToNullspace() //Nullspace it for garbage collection later.
return TRUE

/datum/game_mode/proc/transform_fax_responder(mob/responder_candidate, sub_job)
//set waitfor = FALSE

if(!(sub_job in FAX_RESPONDER_JOB_LIST))
return FALSE

if(!responder_candidate.client) // Legacy - probably due to spawn code sync sleeps
log_debug("Null client attempted to transform_fax_responder")
return FALSE
if(!loaded_fax_base)
loaded_fax_base = SSmapping.lazy_load_template(/datum/lazy_template/fax_response_base, force = TRUE)
if(!loaded_fax_base)
log_debug("Error loading fax response base!")
return FALSE

responder_candidate.client.prefs.find_assigned_slot(JOB_FAX_RESPONDER)

var/turf/spawn_point = get_turf(pick(GLOB.latejoin_by_job[sub_job]))
var/mob/living/carbon/human/new_responder = new(spawn_point)
responder_candidate.mind.transfer_to(new_responder, TRUE)
new_responder.client?.prefs.copy_all_to(new_responder, JOB_FAX_RESPONDER, TRUE, FALSE)

var/datum/job/fax_responder_job = GLOB.RoleAuthority.roles_by_name[sub_job]

if(!fax_responder_job)
qdel(new_responder)
return FALSE

// This is usually done in assign_role, a proc which is not executed in this case, since check_fax_responder_late_join is running its own checks.
fax_responder_job.current_positions++
GLOB.RoleAuthority.equip_role(new_responder, fax_responder_job, new_responder.loc)
SSticker.minds += new_responder.mind

message_admins(FONT_SIZE_XL(SPAN_RED("([new_responder.key]) joined as a [sub_job], [new_responder.real_name].")))

return TRUE


//===================================================\\
Expand Down
2 changes: 1 addition & 1 deletion code/game/gamemodes/colonialmarines/whiskey_outpost.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
/datum/job/civilian/doctor/whiskey = JOB_DOCTOR,
/datum/job/civilian/researcher/whiskey = JOB_RESEARCHER,
/datum/job/logistics/engineering/whiskey = JOB_CHIEF_ENGINEER,
/datum/job/logistics/tech/maint/whiskey = JOB_MAINT_TECH,
/datum/job/logistics/maint/whiskey = JOB_MAINT_TECH,
/datum/job/logistics/cargo/whiskey = JOB_CARGO_TECH,
/datum/job/civilian/liaison/whiskey = JOB_CORPORATE_LIAISON,
/datum/job/marine/leader/whiskey = JOB_SQUAD_LEADER,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,12 +189,12 @@ Ensure power is up, and the bunker is well defended. You share your bunker crew
//*************************************
//---------------MAINT TECH-------------
//*************************************/
/datum/job/logistics/tech/maint/whiskey
/datum/job/logistics/maint/whiskey
title = JOB_WO_ORDNANCE_TECH
supervisors = "the bunker crew master and the quartermaster"
gear_preset = /datum/equipment_preset/wo/bc

/datum/job/logistics/tech/maint/whiskey/generate_entry_message(mob/living/carbon/human/H)
/datum/job/logistics/maint/whiskey/generate_entry_message(mob/living/carbon/human/H)
. = {"You've worked here for a while, figuring it was a pretty comfy job. Now you gotta fight for your life. Have fun with that.
Assist both the Bunker Crew Master and the Quartermaster in their duties."}

Expand Down
7 changes: 7 additions & 0 deletions code/game/jobs/job/civilians/civilian.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,10 @@
/datum/timelock/medic/New(name, time_required, list/roles)
. = ..()
src.roles = JOB_MEDIC_ROLES_LIST

/datum/timelock/corporate
name = "Corporate Roles"

/datum/timelock/corporate/New(name, time_required, list/roles)
. = ..()
src.roles = JOB_CORPORATE_ROLES_LIST
75 changes: 75 additions & 0 deletions code/game/jobs/job/special/responders.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
/datum/job/fax_responder
title = JOB_FAX_RESPONDER
gear_preset = /datum/equipment_preset/fax_responder
selection_class = "job_command"
supervisors = "CMSS13 Administration Staff"
total_positions = 1
spawn_positions = 1

late_joinable = FALSE

flags_startup_parameters = ROLE_ADMIN_NOTIFY|ROLE_WHITELISTED|ROLE_NO_ACCOUNT|ROLE_CUSTOM_SPAWN|ROLE_HIDDEN
flags_whitelist = WHITELIST_FAX_RESPONDER

/datum/job/fax_responder/on_config_load()
entry_message_body = "<a href='[CONFIG_GET(string/wikiarticleurl)]/[URL_WIKI_FAX_RESPONDER]'>Your job</a> is to answer faxes sent to your fax machine. You are answering on behalf of the CMSS13 staff team and are therefore expected to behave appropriately. Failure to adhere to expectations may result in loss of the role or a server ban. Non-staff players of this role are not able to authorise ERTs through their faxes."
return ..()

/datum/job/fax_responder/uscm_hc
title = JOB_FAX_RESPONDER_USCM_HC
gear_preset = /datum/equipment_preset/fax_responder/uscm

AddTimelock(/datum/job/fax_responder/uscm_hc, list(
JOB_POLICE_ROLES = 25 HOURS,
JOB_COMMAND_ROLES = 75 HOURS,
))

/datum/job/fax_responder/uscm_pvst
title = JOB_FAX_RESPONDER_USCM_PVST
gear_preset = /datum/equipment_preset/fax_responder/uscm/provost

AddTimelock(/datum/job/fax_responder/uscm_pvst, list(
JOB_POLICE_ROLES = 150 HOURS,
JOB_COMMAND_ROLES = 75 HOURS,
))

/datum/job/fax_responder/wy
title = JOB_FAX_RESPONDER_WY
gear_preset = /datum/equipment_preset/fax_responder/wey_yu

AddTimelock(/datum/job/fax_responder/wy, list(
JOB_CORPORATE_ROLES = 75 HOURS,
))

/datum/job/fax_responder/upp
title = JOB_FAX_RESPONDER_UPP
gear_preset = /datum/equipment_preset/fax_responder/upp

AddTimelock(/datum/job/fax_responder/upp, list(
JOB_COMMAND_ROLES = 75 HOURS,
))

/datum/job/fax_responder/twe
title = JOB_FAX_RESPONDER_TWE
gear_preset = /datum/equipment_preset/fax_responder/twe

AddTimelock(/datum/job/fax_responder/twe, list(
JOB_COMMAND_ROLES = 75 HOURS,
))

/datum/job/fax_responder/clf
title = JOB_FAX_RESPONDER_CLF
gear_preset = /datum/equipment_preset/fax_responder/clf

AddTimelock(/datum/job/fax_responder/clf, list(
JOB_COMMAND_ROLES = 75 HOURS,
))

/datum/job/fax_responder/cmb
title = JOB_FAX_RESPONDER_CMB
gear_preset = /datum/equipment_preset/fax_responder/cmb

AddTimelock(/datum/job/fax_responder/cmb, list(
JOB_POLICE_ROLES = 75 HOURS,
JOB_COMMAND_ROLES = 25 HOURS,
))
6 changes: 4 additions & 2 deletions code/game/jobs/whitelist.dm
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,9 @@
#define WL_PANEL_RIGHT_YAUTJA (1<<2)
#define WL_PANEL_RIGHT_MENTOR (1<<3)
#define WL_PANEL_RIGHT_OVERSEER (1<<4)
#define WL_PANEL_RIGHT_MANAGER (1<<5)
#define WL_PANEL_ALL_COUNCILS (WL_PANEL_RIGHT_CO|WL_PANEL_RIGHT_SYNTH|WL_PANEL_RIGHT_YAUTJA)
#define WL_PANEL_ALL_RIGHTS (WL_PANEL_RIGHT_CO|WL_PANEL_RIGHT_SYNTH|WL_PANEL_RIGHT_YAUTJA|WL_PANEL_RIGHT_MENTOR|WL_PANEL_RIGHT_OVERSEER)
#define WL_PANEL_ALL_RIGHTS (WL_PANEL_RIGHT_CO|WL_PANEL_RIGHT_SYNTH|WL_PANEL_RIGHT_YAUTJA|WL_PANEL_RIGHT_MENTOR|WL_PANEL_RIGHT_OVERSEER|WL_PANEL_RIGHT_MANAGER)

/datum/whitelist_panel
var/viewed_player = list()
Expand All @@ -68,7 +69,7 @@
if(person.check_whitelist_status(WHITELIST_YAUTJA_LEADER))
rights |= WL_PANEL_RIGHT_YAUTJA
if(rights == WL_PANEL_ALL_COUNCILS)
return WL_PANEL_ALL_RIGHTS
rights |= WL_PANEL_RIGHT_OVERSEER
return rights

/datum/whitelist_panel/tgui_interact(mob/user, datum/tgui/ui)
Expand Down Expand Up @@ -122,6 +123,7 @@ GLOBAL_LIST_INIT(yaut_flags, list(
GLOBAL_LIST_INIT(misc_flags, list(
list(name = "Senior Enlisted Advisor", bitflag = WHITELIST_MENTOR, permission = WL_PANEL_RIGHT_MENTOR),
list(name = "Working Joe", bitflag = WHITELIST_JOE, permission = WL_PANEL_RIGHT_SYNTH),
list(name = "Fax Responder", bitflag = WHITELIST_FAX_RESPONDER, permission = WL_PANEL_RIGHT_MANAGER),
))

/datum/whitelist_panel/ui_static_data(mob/user)
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/computer/medical.dm
Original file line number Diff line number Diff line change
Expand Up @@ -477,7 +477,7 @@
var/datum/asset/asset = get_asset_datum(/datum/asset/simple/paper)
var/obj/item/paper/P = new /obj/item/paper( src.loc )
P.name = text("Scan: [], []",record.fields["name"],worldtime2text())
P.info += text("<center><img src = [asset.get_url_mappings()["wylogo.png"]]><HR><I><B>Official Weyland-Yutani Document</B><BR>Scan Record</I><HR><H2>[]</H2>\n</center>",record.fields["name"])
P.info += text("<center><img src = [asset.get_url_mappings()["logo_wy.png"]]><HR><I><B>Official Weyland-Yutani Document</B><BR>Scan Record</I><HR><H2>[]</H2>\n</center>",record.fields["name"])
for(var/datum/data/record/R as anything in GLOB.data_core.medical)
if (R.fields["name"] == record.fields["name"])
if(R.fields["last_scan_time"] && R.fields["last_scan_result"])
Expand Down
Loading
Loading