Consular and Representative Split (#9954)

This commit is contained in:
Geeves
2020-09-19 12:11:57 +02:00
committed by GitHub
parent 2c96d29976
commit b433b66a8a
22 changed files with 2133 additions and 1363 deletions

View File

@@ -583,6 +583,7 @@
SearchVar(MIME)
SearchVar(MERCHANT)
SearchVar(ASSISTANT)
SearchVar(CONSULAR)
SearchVar(assistant_occupations)
SearchVar(command_positions)
SearchVar(engineering_positions)

View File

@@ -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 *
******************/

View File

@@ -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

View File

@@ -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()

View File

@@ -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

View File

@@ -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()

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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()
..()

View File

@@ -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'>&nbsp<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)

View File

@@ -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