mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-03 05:51:56 +00:00
Consular and Representative Split (#9954)
This commit is contained in:
@@ -583,6 +583,7 @@
|
||||
SearchVar(MIME)
|
||||
SearchVar(MERCHANT)
|
||||
SearchVar(ASSISTANT)
|
||||
SearchVar(CONSULAR)
|
||||
SearchVar(assistant_occupations)
|
||||
SearchVar(command_positions)
|
||||
SearchVar(engineering_positions)
|
||||
|
||||
@@ -418,6 +418,11 @@ var/const/access_it = 71 // allows some unique interactions with devices
|
||||
id = access_it
|
||||
desc = "Tech Support"
|
||||
|
||||
var/const/access_consular = 72
|
||||
/datum/access/consular
|
||||
id = access_consular
|
||||
desc = "Consular"
|
||||
|
||||
/******************
|
||||
* Central Command *
|
||||
******************/
|
||||
|
||||
@@ -22,7 +22,9 @@
|
||||
allowed_role_types += job.type
|
||||
|
||||
// Really shitty hack until I get around to rewriting jobs a bit.
|
||||
allowed_role_types -= /datum/job/merchant
|
||||
var/list/disallowed_roles = list(/datum/job/consular, /datum/job/merchant)
|
||||
for(var/disallowed_role in disallowed_roles)
|
||||
allowed_role_types -= disallowed_role
|
||||
|
||||
/datum/faction/nano_trasen/get_corporate_objectives(var/mission_level)
|
||||
var/objective
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
/datum/job/visitor,
|
||||
/datum/job/journalist,
|
||||
/datum/job/merchant,
|
||||
/datum/job/representative
|
||||
/datum/job/consular
|
||||
)
|
||||
|
||||
/datum/faction/unaffiliated/get_logo_name()
|
||||
|
||||
@@ -16,18 +16,10 @@
|
||||
access = list(access_lawyer, access_maint_tunnels)
|
||||
minimal_access = list(access_lawyer)
|
||||
outfit = /datum/outfit/job/representative
|
||||
alt_titles = list("Consular Officer")
|
||||
|
||||
/datum/job/representative/get_outfit(mob/living/carbon/human/H, alt_title = null)
|
||||
if(H.mind?.role_alt_title == "Consular Officer" || alt_title == "Consular Officer")
|
||||
var/datum/citizenship/citizenship = SSrecords.citizenships[H.citizenship]
|
||||
if(citizenship)
|
||||
return citizenship.consular_outfit
|
||||
else
|
||||
. = ..()
|
||||
|
||||
/datum/outfit/job/representative
|
||||
name = "NanoTrasen Corporate Liaison"
|
||||
var/fax_department = "Representative's Office"
|
||||
jobtype = /datum/job/representative
|
||||
|
||||
head = /obj/item/clothing/head/beret/liaison
|
||||
@@ -47,7 +39,6 @@
|
||||
/obj/item/implant/mindshield
|
||||
)
|
||||
|
||||
|
||||
/datum/outfit/job/representative/post_equip(mob/living/carbon/human/H, visualsOnly)
|
||||
. = ..()
|
||||
if(H && !visualsOnly)
|
||||
@@ -67,7 +58,7 @@
|
||||
faxtext += "<li>[get_objectives(H, REPRESENTATIVE_MISSION_HIGH)].</li>"
|
||||
|
||||
for (var/obj/machinery/photocopier/faxmachine/F in allfaxes)
|
||||
if (F.department == "Representative's Office")
|
||||
if (F.department == fax_department)
|
||||
var/obj/item/paper/P = new /obj/item/paper(get_turf(F))
|
||||
P.name = "[name] - Directives"
|
||||
P.info = faxtext
|
||||
@@ -85,8 +76,34 @@
|
||||
|
||||
return rep_objectives
|
||||
|
||||
/datum/job/consular
|
||||
title = "Consular Officer"
|
||||
flag = CONSULAR
|
||||
department = "Civilian"
|
||||
department_flag = CIVILIAN
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
supervisors = "your embassy"
|
||||
selection_color = "#C0C0C0"
|
||||
economic_modifier = 7
|
||||
latejoin_at_spawnpoints = TRUE
|
||||
|
||||
minimum_character_age = 30
|
||||
|
||||
access = list(access_consular, access_maint_tunnels)
|
||||
minimal_access = list(access_consular)
|
||||
outfit = /datum/outfit/job/representative/consular
|
||||
|
||||
/datum/job/consular/get_outfit(mob/living/carbon/human/H, alt_title = null)
|
||||
var/datum/citizenship/citizenship = SSrecords.citizenships[H.citizenship]
|
||||
if(citizenship)
|
||||
return citizenship.consular_outfit
|
||||
|
||||
/datum/outfit/job/representative/consular
|
||||
name = "Consular Officer"
|
||||
fax_department = "Consular's Office"
|
||||
jobtype = /datum/job/consular
|
||||
|
||||
uniform = /obj/item/clothing/under/suit_jacket/navy
|
||||
head = null
|
||||
@@ -102,5 +119,4 @@
|
||||
var/datum/citizenship/citizenship = SSrecords.citizenships[H.citizenship]
|
||||
if(citizenship)
|
||||
rep_objectives = citizenship.get_objectives(mission_level, H)
|
||||
|
||||
return rep_objectives
|
||||
return rep_objectives
|
||||
@@ -47,6 +47,7 @@ var/const/MINER =(1<<8)
|
||||
var/const/LAWYER =(1<<9)
|
||||
var/const/CHAPLAIN =(1<<10)
|
||||
var/const/VISITOR =(1<<11)
|
||||
var/const/CONSULAR =(1<<12)
|
||||
var/const/MERCHANT =(1<<13)
|
||||
var/const/JOURNALIST =(1<<14)
|
||||
var/const/ASSISTANT =(1<<15)
|
||||
@@ -102,6 +103,7 @@ var/list/cargo_positions = list(
|
||||
var/list/civilian_positions = list(
|
||||
"Head of Personnel",
|
||||
"Corporate Liaison",
|
||||
"Consular Officer",
|
||||
"Bartender",
|
||||
"Gardener",
|
||||
"Chef",
|
||||
@@ -131,7 +133,7 @@ var/list/nonhuman_positions = list(
|
||||
)
|
||||
|
||||
/proc/guest_jobbans(var/job)
|
||||
return ((job in command_positions) || job == "Corporate Liaison")
|
||||
return ((job in command_positions) || job == "Corporate Liaison" || job == "Consular Officer")
|
||||
|
||||
/proc/get_job_datums()
|
||||
var/list/occupations = list()
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
var/description
|
||||
var/datum/outfit/consular_outfit = /datum/outfit/job/representative/consular
|
||||
var/demonym
|
||||
var/list/job_species_blacklist = list()
|
||||
|
||||
/datum/citizenship/proc/get_objectives(mission_level, var/mob/living/carbon/human/H)
|
||||
var/rep_objectives
|
||||
|
||||
@@ -6,6 +6,13 @@
|
||||
unrest and gridlock undermine the government, and the aggressive attitude of the Sol Alliance against its former system has made many worried for the future of the Republic."
|
||||
consular_outfit = /datum/outfit/job/representative/consular/ceti
|
||||
|
||||
job_species_blacklist = list(
|
||||
"Consular Officer" = list(
|
||||
SPECIES_VAURCA_WORKER,
|
||||
SPECIES_VAURCA_WARRIOR
|
||||
)
|
||||
)
|
||||
|
||||
/datum/citizenship/tau_ceti/get_objectives(mission_level, var/mob/living/carbon/human/H)
|
||||
var/rep_objectives
|
||||
|
||||
@@ -45,6 +52,27 @@
|
||||
It is generally authoritarian, and many aliens here find themselves discriminated against."
|
||||
consular_outfit = /datum/outfit/job/representative/consular/sol
|
||||
|
||||
job_species_blacklist = list(
|
||||
"Consular Officer" = list(
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_G1,
|
||||
SPECIES_IPC_G2,
|
||||
SPECIES_IPC_SHELL,
|
||||
SPECIES_IPC_UNBRANDED,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_DIONA,
|
||||
SPECIES_SKRELL,
|
||||
SPECIES_TAJARA,
|
||||
SPECIES_TAJARA_MSAI,
|
||||
SPECIES_TAJARA_ZHAN,
|
||||
SPECIES_UNATHI,
|
||||
SPECIES_VAURCA_WORKER,
|
||||
SPECIES_VAURCA_WARRIOR
|
||||
)
|
||||
)
|
||||
|
||||
/datum/citizenship/sol_alliance/get_objectives(mission_level, var/mob/living/carbon/human/H)
|
||||
var/rep_objectives
|
||||
|
||||
@@ -87,6 +115,17 @@
|
||||
tightly-knit. Almost anything and anyone can be found in these wild, mostly uncharted lands. "
|
||||
demonym = "frontiersman"
|
||||
|
||||
job_species_blacklist = list(
|
||||
"Consular Officer" = list(
|
||||
SPECIES_TAJARA,
|
||||
SPECIES_TAJARA_MSAI,
|
||||
SPECIES_TAJARA_ZHAN,
|
||||
SPECIES_UNATHI,
|
||||
SPECIES_VAURCA_WORKER,
|
||||
SPECIES_VAURCA_WARRIOR
|
||||
)
|
||||
)
|
||||
|
||||
/datum/citizenship/elyra
|
||||
name = CITIZENSHIP_ELYRA
|
||||
description = "The Republic of Elyra, or its more official name, The Serene Republic of Elyra, was formed during a large scale colonization and emigration effort from south \
|
||||
@@ -104,6 +143,24 @@
|
||||
Indebted citizens are known as Ma'zals, forming the massive underclass in Dominia. Many in the Empire follow a strict code of honor."
|
||||
consular_outfit = /datum/outfit/job/representative/consular/dominia
|
||||
|
||||
job_species_blacklist = list(
|
||||
"Consular Officer" = list(
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_G1,
|
||||
SPECIES_IPC_G2,
|
||||
SPECIES_IPC_SHELL,
|
||||
SPECIES_IPC_UNBRANDED,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_TAJARA,
|
||||
SPECIES_TAJARA_MSAI,
|
||||
SPECIES_TAJARA_ZHAN,
|
||||
SPECIES_VAURCA_WORKER,
|
||||
SPECIES_VAURCA_WARRIOR
|
||||
)
|
||||
)
|
||||
|
||||
/datum/citizenship/dominia/get_objectives(mission_level, var/mob/living/carbon/human/H)
|
||||
var/rep_objectives
|
||||
|
||||
|
||||
@@ -12,6 +12,21 @@
|
||||
find themselves the target of job opportunities in exchange for citizenship."
|
||||
consular_outfit = /datum/outfit/job/representative/consular/golden
|
||||
|
||||
job_species_blacklist = list(
|
||||
"Consular Officer" = list(
|
||||
SPECIES_HUMAN,
|
||||
SPECIES_HUMAN_OFFWORLD,
|
||||
SPECIES_DIONA,
|
||||
SPECIES_SKRELL,
|
||||
SPECIES_TAJARA,
|
||||
SPECIES_TAJARA_MSAI,
|
||||
SPECIES_TAJARA_ZHAN,
|
||||
SPECIES_UNATHI,
|
||||
SPECIES_VAURCA_WORKER,
|
||||
SPECIES_VAURCA_WARRIOR
|
||||
)
|
||||
)
|
||||
|
||||
/datum/outfit/job/representative/consular/golden
|
||||
name = "Golden Deep Consular Officer"
|
||||
|
||||
|
||||
@@ -8,6 +8,28 @@
|
||||
tech leak."
|
||||
consular_outfit = /datum/outfit/job/representative/consular/jargon
|
||||
|
||||
job_species_blacklist = list(
|
||||
"Consular Officer" = list(
|
||||
SPECIES_HUMAN,
|
||||
SPECIES_HUMAN_OFFWORLD,
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_G1,
|
||||
SPECIES_IPC_G2,
|
||||
SPECIES_IPC_SHELL,
|
||||
SPECIES_IPC_UNBRANDED,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_DIONA,
|
||||
SPECIES_TAJARA,
|
||||
SPECIES_TAJARA_MSAI,
|
||||
SPECIES_TAJARA_ZHAN,
|
||||
SPECIES_UNATHI,
|
||||
SPECIES_VAURCA_WORKER,
|
||||
SPECIES_VAURCA_WARRIOR
|
||||
)
|
||||
)
|
||||
|
||||
/datum/citizenship/jargon/get_objectives(mission_level, var/mob/living/carbon/human/H)
|
||||
var/rep_objectives
|
||||
|
||||
|
||||
@@ -7,6 +7,26 @@
|
||||
struggling to hold true to its radical ideals while an entrenched upper party stubbornly tries to hold onto power."
|
||||
consular_outfit = /datum/outfit/job/representative/consular/pra
|
||||
|
||||
job_species_blacklist = list(
|
||||
"Consular Officer" = list(
|
||||
SPECIES_HUMAN,
|
||||
SPECIES_HUMAN_OFFWORLD,
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_G1,
|
||||
SPECIES_IPC_G2,
|
||||
SPECIES_IPC_SHELL,
|
||||
SPECIES_IPC_UNBRANDED,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_DIONA,
|
||||
SPECIES_SKRELL,
|
||||
SPECIES_UNATHI,
|
||||
SPECIES_VAURCA_WORKER,
|
||||
SPECIES_VAURCA_WARRIOR
|
||||
)
|
||||
)
|
||||
|
||||
/datum/citizenship/pra/get_objectives(mission_level, var/mob/living/carbon/human/H)
|
||||
var/rep_objectives
|
||||
|
||||
@@ -49,6 +69,26 @@
|
||||
voluntarily turn over power to civilian governments, the DPRA's future faces many fundamental changes."
|
||||
consular_outfit = /datum/outfit/job/representative/consular/dpra
|
||||
|
||||
job_species_blacklist = list(
|
||||
"Consular Officer" = list(
|
||||
SPECIES_HUMAN,
|
||||
SPECIES_HUMAN_OFFWORLD,
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_G1,
|
||||
SPECIES_IPC_G2,
|
||||
SPECIES_IPC_SHELL,
|
||||
SPECIES_IPC_UNBRANDED,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_DIONA,
|
||||
SPECIES_SKRELL,
|
||||
SPECIES_UNATHI,
|
||||
SPECIES_VAURCA_WORKER,
|
||||
SPECIES_VAURCA_WARRIOR
|
||||
)
|
||||
)
|
||||
|
||||
/datum/citizenship/dpra/get_objectives(mission_level, var/mob/living/carbon/human/H)
|
||||
var/rep_objectives
|
||||
|
||||
@@ -89,6 +129,26 @@
|
||||
the Azunja dynasty finds itself struggling to function with their limited constitutional powers and factional in-fighting between the military and the civilian government."
|
||||
consular_outfit = /datum/outfit/job/representative/consular/nka
|
||||
|
||||
job_species_blacklist = list(
|
||||
"Consular Officer" = list(
|
||||
SPECIES_HUMAN,
|
||||
SPECIES_HUMAN_OFFWORLD,
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_G1,
|
||||
SPECIES_IPC_G2,
|
||||
SPECIES_IPC_SHELL,
|
||||
SPECIES_IPC_UNBRANDED,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_DIONA,
|
||||
SPECIES_SKRELL,
|
||||
SPECIES_UNATHI,
|
||||
SPECIES_VAURCA_WORKER,
|
||||
SPECIES_VAURCA_WARRIOR
|
||||
)
|
||||
)
|
||||
|
||||
/datum/citizenship/nka/get_objectives(mission_level, var/mob/living/carbon/human/H)
|
||||
var/rep_objectives
|
||||
|
||||
|
||||
@@ -6,6 +6,28 @@
|
||||
apocalyptic world war that nearly plunged the species into ruin, the Izweski Hegemony has rebounded and is currently working on making the Hegemony a galactic power."
|
||||
consular_outfit = /datum/outfit/job/representative/consular/izweski
|
||||
|
||||
job_species_blacklist = list(
|
||||
"Consular Officer" = list(
|
||||
SPECIES_HUMAN,
|
||||
SPECIES_HUMAN_OFFWORLD,
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_G1,
|
||||
SPECIES_IPC_G2,
|
||||
SPECIES_IPC_SHELL,
|
||||
SPECIES_IPC_UNBRANDED,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_DIONA,
|
||||
SPECIES_SKRELL,
|
||||
SPECIES_TAJARA,
|
||||
SPECIES_TAJARA_MSAI,
|
||||
SPECIES_TAJARA_ZHAN,
|
||||
SPECIES_VAURCA_WORKER,
|
||||
SPECIES_VAURCA_WARRIOR
|
||||
)
|
||||
)
|
||||
|
||||
/datum/citizenship/izweski/get_objectives(mission_level, var/mob/living/carbon/human/H)
|
||||
var/rep_objectives
|
||||
|
||||
|
||||
@@ -7,6 +7,27 @@
|
||||
the Tau Ceti Foreign Legion, and making active progress to spread their influence."
|
||||
consular_outfit = /datum/outfit/job/representative/consular/zora
|
||||
|
||||
job_species_blacklist = list(
|
||||
"Consular Officer" = list(
|
||||
SPECIES_HUMAN,
|
||||
SPECIES_HUMAN_OFFWORLD,
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_G1,
|
||||
SPECIES_IPC_G2,
|
||||
SPECIES_IPC_SHELL,
|
||||
SPECIES_IPC_UNBRANDED,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_DIONA,
|
||||
SPECIES_SKRELL,
|
||||
SPECIES_TAJARA,
|
||||
SPECIES_TAJARA_MSAI,
|
||||
SPECIES_TAJARA_ZHAN,
|
||||
SPECIES_UNATHI
|
||||
)
|
||||
)
|
||||
|
||||
/datum/citizenship/zora/get_objectives(mission_level, var/mob/living/carbon/human/H)
|
||||
var/rep_objectives
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
/datum/gear/accessory/holster
|
||||
display_name = "holster selection"
|
||||
path = /obj/item/clothing/accessory/holster/armpit
|
||||
allowed_roles = list("Captain", "Head of Personnel", "Security Officer", "Warden", "Head of Security","Detective", "Forensic Technician", "Security Cadet", "Corporate Liaison")
|
||||
allowed_roles = list("Captain", "Head of Personnel", "Security Officer", "Warden", "Head of Security","Detective", "Forensic Technician", "Security Cadet", "Corporate Liaison", "Consular Officer")
|
||||
|
||||
/datum/gear/accessory/holster/New()
|
||||
..()
|
||||
|
||||
@@ -192,6 +192,10 @@
|
||||
if(S.name in job.blacklisted_species)
|
||||
dat += "<del>[dispRank]</del></td><td><b> \[SPECIES RESTRICTED]</b></td></tr>"
|
||||
continue
|
||||
var/datum/citizenship/C = SSrecords.citizenships[pref.citizenship]
|
||||
if(C.job_species_blacklist[job.title] && (pref.species in C.job_species_blacklist[job.title]))
|
||||
dat += "<del>[dispRank]</del></td><td><b> \[SPECIES RESTRICTED]</b></td></tr>"
|
||||
continue
|
||||
if(job.alt_titles && (LAZYLEN(pref.GetValidTitles(job)) > 1))
|
||||
dispRank = "<span style='background-color: [hex2cssrgba(lastJob.selection_color, 0.4)];' width='60%' align='center'> <a href='?src=\ref[src];select_alt_title=\ref[job]'>\[[pref.GetPlayerAltTitle(job)]\]</a></span>"
|
||||
if((pref.job_civilian_low & ASSISTANT) && (rank != "Assistant"))
|
||||
@@ -306,14 +310,14 @@
|
||||
/datum/category_item/player_setup_item/occupation/proc/SetJob(mob/user, role)
|
||||
var/datum/job/job = SSjobs.GetJob(role)
|
||||
if(!job)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if(role == "Assistant")
|
||||
if(pref.job_civilian_low & job.flag)
|
||||
pref.job_civilian_low &= ~job.flag
|
||||
else
|
||||
pref.job_civilian_low |= job.flag
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
if(pref.GetJobDepartment(job, 1) & job.flag)
|
||||
SetJobDepartment(job, 1)
|
||||
@@ -328,7 +332,7 @@
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/proc/SetJobDepartment(var/datum/job/job, var/level)
|
||||
if(!job || !level)
|
||||
return 0
|
||||
return FALSE
|
||||
switch(level)
|
||||
if(1)//Only one of these should ever be active at once so clear them all here
|
||||
pref.job_civilian_high = 0
|
||||
@@ -454,7 +458,8 @@
|
||||
return choices
|
||||
|
||||
/datum/preferences/proc/GetJobDepartment(var/datum/job/job, var/level)
|
||||
if(!job || !level) return 0
|
||||
if(!job || !level)
|
||||
return FALSE
|
||||
switch(job.department_flag)
|
||||
if(CIVILIAN)
|
||||
switch(level)
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
extended_desc = "Used to view, edit and maintain employment records."
|
||||
record_prefix = "Employment "
|
||||
|
||||
required_access_run = list(access_heads, access_lawyer)
|
||||
required_access_run = list(access_heads, access_lawyer, access_consular)
|
||||
required_access_download = access_heads
|
||||
available_on_ntnet = TRUE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user