diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 5af4570245e..5b969dd6763 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -8,7 +8,8 @@ #define CONSULAR_ROLE /datum/job/consular #define JOURNALIST_ROLE /datum/job/journalist #define CHAPLAIN_ROLE /datum/job/chaplain -#define CONSULAR_AIDE_ROLE /datum/job/consular_assistant +#define DIPLOMATIC_AIDE_ROLE /datum/job/diplomatic_aide +#define CORPORATE_AIDE_ROLE /datum/job/corporate_aide //Event Roles //Used for generic department jobs for off-ship events @@ -48,4 +49,4 @@ #define ZENG_ROLES list(SCIENCE_ROLES, MEDICAL_ROLES, CIVILIAN_ROLES, REPRESENTATIVE_ROLE) #define HEPH_ROLES list(OPERATIONS_ROLES, ENGINEERING_ROLES, CIVILIAN_ROLES, REPRESENTATIVE_ROLE) #define ORION_ROLES list(OPERATIONS_ROLES, CIVILIAN_ROLES, REPRESENTATIVE_ROLE, SERVICE_ROLES) -#define INDEP_ROLES list(NON_CREW_CIVILIAN_ROLES, CONSULAR_ROLE, JOURNALIST_ROLE, CHAPLAIN_ROLE, OFF_DUTY_CREW_MEMBER_ROLE, JOURNALIST_ROLE, CONSULAR_AIDE_ROLE) +#define INDEP_ROLES list(NON_CREW_CIVILIAN_ROLES, CONSULAR_ROLE, JOURNALIST_ROLE, CHAPLAIN_ROLE, OFF_DUTY_CREW_MEMBER_ROLE, JOURNALIST_ROLE, DIPLOMATIC_AIDE_ROLE) diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 7e3ab6c29fb..338b292326c 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -1,44 +1,77 @@ /datum/job - var/title = "NOPE" //The name of the job - //Job access. The use of minimal_access or access is determined by a config setting: config.jobs_have_minimal_access - var/list/minimal_access = list() // Useful for servers which prefer to only have access given to the places a job absolutely needs (Larger server population) - var/list/access = list() // Useful for servers which either have fewer players, so each person needs to fill more than one role, or servers which like to give more access, so players can't hide forever in their super secure departments (I'm looking at you, chemistry!) + /// The name of the job. + var/title = "NOPE" - var/flag = 0 // Bitflags for the job - var/department_flag = 0 // Used to tell which set of job bitflags to use to determine the actual job (since there are too many jobs to fit in a single bit flag) - var/faction = "None" // Players will be allowed to spawn in as jobs that are set to "Station" + /// Job access. The use of minimal_access or access is determined by a config setting: config.jobs_have_minimal_access + /// Useful for servers which prefer to only have access given to the places a job absolutely needs (Larger server population) + var/list/minimal_access = list() + /// Useful for servers which either have fewer players, so each person needs to fill more than one role, or servers which like to give more access, so players can't hide forever in their super secure departments (I'm looking at you, chemistry!) + var/list/access = list() - var/total_positions = 0 // How many players can be this job - var/spawn_positions = 0 // How many players can spawn in as this job - var/current_positions = 0 // How many players have this job + /// Bitflags for the job. + var/flag = 0 + /// Used to tell which set of job bitflags to use to determine the actual job (since there are too many jobs to fit in a single bit flag) + var/department_flag = 0 + /// Players will be allowed to spawn in as jobs that are set to "Station". + var/faction = "None" + /// How many players can be this job. + var/total_positions = 0 + /// How many players can spawn in as this job. + var/spawn_positions = 0 + /// How many players have this job. + var/current_positions = 0 + + /// Prefix for the introduction ("As [intro prefix] [title], you answer to...") var/intro_prefix = "a" - var/supervisors = null // Supervisors, who this person answers to directly - var/selection_color = "#5d6a67" // Selection screen color - var/list/departments = list() // List of departments this job is a part of. Keys are departments, values are a bit field that indicate special roles of that job within the department (like whether they are a head/supervisor of that department). - var/list/alt_titles // List of alternate titles, if any - var/list/title_accesses // A map of title -> list of accesses to add if the person has this title. - var/minimal_player_age = 0 // If you have use_age_restriction_for_jobs config option enabled and the database set up, this option will add a requirement for players to be at least minimal_player_age days old. (meaning they first signed in at least that many days before.) - var/list/minimum_character_age = list(// Age restriction, assoc list of species define -> age; if species isn't found, defaults to SPECIES_HUMAN entry + /// Supervisors, who this person answers to directly. + var/supervisors = null + /// Selection screen color + var/selection_color = "#5d6a67" + /// List of departments this job is a part of. Keys are departments, values are a bit field that indicate special roles of that job within the department (like whether they are a head/supervisor of that department). + var/list/departments = list() + /// List of alternate titles, if any. + var/list/alt_titles + /// An assoc list of title -> list of accesses to add if the person has this title. + var/list/title_accesses + /// If you have use_age_restriction_for_jobs config option enabled and the database set up, this option will add a requirement for players to be at least minimal_player_age days old. (meaning they first signed in at least that many days before.) + var/minimal_player_age = 0 + /// Age restriction, assoc list of species define -> age; if species isn't found, defaults to SPECIES_HUMAN entry. + var/list/minimum_character_age = list( SPECIES_HUMAN = 17, SPECIES_SKRELL = 50, SPECIES_SKRELL_AXIORI = 50 ) - var/list/alt_ages = null // assoc list of alt titles to minimum character ages assoc lists (see above -- yes this is slightly awful) - var/list/alt_factions = null // Assoc list of alt titles (as strings) to a list of faction titles (as strings). Defines what alt title can belong to what faction. Remains Null if no restrictions in use. + /// Assoc list of alt titles to minimum character ages assoc lists (see above -- yes this is slightly awful) + var/list/alt_ages = null + /// Assoc list of alt titles (as strings) to a list of faction titles (as strings). Defines what alt title can belong to what faction. Remains Null if no restrictions in use. + var/list/alt_factions = null - var/latejoin_at_spawnpoints = FALSE //If this job should use roundstart spawnpoints for latejoin (offstation jobs etc) + /// If this job should use roundstart spawnpoints for latejoin (offstation jobs etc) + var/latejoin_at_spawnpoints = FALSE - var/account_allowed = TRUE // Does this job type come with a station account? - var/public_account = TRUE // does this account appear on account terminals? - var/initial_funds_override = 0 // if set to anything else, the initial account balance will be set to this instead - var/economic_modifier = 2 // With how much does this job modify the initial account amount? - var/create_record = TRUE // Do we announce/make records for people who spawn on this job? + /// Does this job type come with a station account? + var/account_allowed = TRUE + /// Does this account appear on account terminals? + var/public_account = TRUE + /// If set to anything else, the initial account balance will be set to this instead. + var/initial_funds_override = 0 + /// With how much does this job modify the initial account amount? + var/economic_modifier = 2 + /// Do we announce/make records for people who spawn on this job? + var/create_record = TRUE + /// The outfit of the job. var/obj/outfit/outfit = null - var/list/alt_outfits = null // A list of special outfits for the alt titles list("alttitle" = /obj/outfit) - var/list/blacklisted_species = null // A blacklist of species that can't be this job - var/list/blacklisted_citizenship = list() //A blacklist of citizenships that can't be this job + /// A list of special outfits for the alt titles list("alttitle" = /obj/outfit) + var/list/alt_outfits = null + /// A blacklist of species that can't be this job. + var/list/blacklisted_species = null + /// A blacklist of citizenships that can't be this job. + var/list/blacklisted_citizenship = list() + + /// The job name of the aide slot. Used for consulars and representatives. + var/aide_job //Only override this proc /datum/job/proc/pre_spawn(mob/abstract/new_player/player) @@ -204,6 +237,57 @@ /datum/job/proc/has_alt_title(var/mob/H, var/supplied_title, var/desired_title) return (supplied_title == desired_title) || (H.mind && H.mind.role_alt_title == desired_title) +/** + * This is the proc responsible for actually opening the aide slot. + * The `aide_job` on the job datum must be a valid, existing job. Blame the fact that we don't have job defines. Or singletons. + */ +/datum/job/proc/open_aide_slot(mob/living/carbon/human/representative) + if(!aide_job) + log_debug("Generic Open Aide Slot called without an aide job.") + return FALSE + + if(!representative) + log_debug("Generic Open Aide Slot called without a mob.") + return FALSE + + var/confirm = tgui_alert(representative, "Are you sure you want to open an assistant slot? This can only be used once.", "Open Aide Slot", list("Yes", "No")) + if(confirm != "Yes") + return FALSE + var/datum/job/J = SSjobs.GetJob(aide_job) + + // At this point, we add the relevant blacklists in the proc below. + post_open_aide_slot(representative, J) + + // Now that the blacklists are applied, open the job. + J.total_positions++ + to_chat(representative, SPAN_NOTICE("A slot for a [aide_job] has been opened.")) + +/** + * This proc is called when a job opens an aide slot. It MUST be called manually. + * It is responsible for adding any relevant blacklists to the aide job datum. + */ +/datum/job/proc/post_open_aide_slot(mob/living/carbon/human/representative, datum/job/aide) + return + +/** + * This proc is called when an aide slot is closed (cryoing or leaving the game). + * It is responsible for cleaning up existing slots and wiping any applied blacklists to the aide's job datum. + */ +/datum/job/proc/close_aide_slot(mob/living/carbon/human/representative, datum/job/aide) + return + +/** + * This is the verb you should give to a mob to allow it to summon an aide. + */ +/mob/living/carbon/human/proc/summon_aide() + set name = "Open Aide Slot" + set desc = "Allows an aide to join you as an assistant, companion, or bodyguard." + set category = "IC" + + var/datum/job/J = SSjobs.GetJob(job) + if(J.open_aide_slot(src)) + remove_verb(src, /mob/living/carbon/human/proc/summon_aide) + /obj/outfit/job name = "Standard Gear" var/base_name = null diff --git a/code/game/jobs/job/outsider/representative.dm b/code/game/jobs/job/outsider/representative.dm index c52cf6edd54..57d139aedd0 100644 --- a/code/game/jobs/job/outsider/representative.dm +++ b/code/game/jobs/job/outsider/representative.dm @@ -97,14 +97,37 @@ outfit = /obj/outfit/job/representative blacklisted_species = list(SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER) + aide_job = "Corporate Aide" + /datum/job/representative/after_spawn(mob/living/carbon/human/H) var/datum/faction/faction = SSjobs.GetFaction(H) LAZYREMOVE(faction.allowed_role_types, REPRESENTATIVE_ROLE) + add_verb(H, /mob/living/carbon/human/proc/summon_aide) /datum/job/representative/on_despawn(mob/living/carbon/human/H) var/datum/faction/faction = SSjobs.GetFaction(H) LAZYDISTINCTADD(faction.allowed_role_types, REPRESENTATIVE_ROLE) + // Handle the removal of aide blacklists and the slot. + var/datum/job/J = SSjobs.GetJob(aide_job) + close_aide_slot(H, J) + +/datum/job/representative/post_open_aide_slot(mob/living/carbon/human/representative, datum/job/aide) + var/datum/faction/rep_faction = SSjobs.name_factions[representative.employer_faction] + + // This is some unfortunately necessary mega snowflake code, because job and faction species blacklists aren't mirrored. + // Factions utilize a datum-based whitelist, whereas jobs utilise a define-based blacklist... + for(var/species_name in ALL_SPECIES) + var/datum/species/species = GLOB.all_species[species_name] + if(species.type in rep_faction.allowed_species_types) + continue + LAZYDISTINCTADD(aide.blacklisted_species, species.name) + +/datum/job/representative/close_aide_slot(mob/living/carbon/human/representative, datum/job/aide) + aide.blacklisted_species = null + if(aide.total_positions > 0) + aide.total_positions-- + /obj/outfit/job/representative name = "NanoTrasen Corporate Liaison" var/fax_department = "Representative's Office" @@ -191,6 +214,8 @@ blacklisted_species = list(SPECIES_VAURCA_BULWARK) blacklisted_citizenship = list(CITIZENSHIP_SOL, CITIZENSHIP_ERIDANI, CITIZENSHIP_ELYRA_NCP, CITIZENSHIP_NONE, CITIZENSHIP_FREE_COUNCIL) + aide_job = "Diplomatic Aide" + /datum/job/consular/get_outfit(mob/living/carbon/human/H, alt_title = null) var/datum/citizenship/citizenship = SSrecords.citizenships[H.citizenship] if(citizenship) @@ -224,37 +249,34 @@ /datum/job/consular/after_spawn(mob/living/carbon/human/H) var/datum/citizenship/citizenship = SSrecords.citizenships[H.citizenship] LAZYDISTINCTADD(blacklisted_citizenship, citizenship.name) - add_verb(H, /mob/living/carbon/human/proc/summon_goon) + add_verb(H, /mob/living/carbon/human/proc/summon_aide) /datum/job/consular/on_despawn(mob/living/carbon/human/H) var/datum/citizenship/citizenship = SSrecords.citizenships[H.citizenship] LAZYREMOVE(blacklisted_citizenship, citizenship.name) - var/datum/job/J = SSjobs.GetJob("Diplomatic Aide") - if(citizenship.linked_citizenship) - LAZYDISTINCTADD(J.blacklisted_citizenship, citizenship.linked_citizenship) - else - LAZYDISTINCTADD(J.blacklisted_citizenship, H.citizenship) - if(J.total_positions > 0) - J.total_positions-- -/mob/living/carbon/human/proc/summon_goon() - set name = "Open Aide Slot" - set desc = "Allows a diplomatic aide to join you as an assistant, companion, or bodyguard." - set category = "Consular" + // Handle the removal of aide blacklists and the slot. + var/datum/job/J = SSjobs.GetJob(aide_job) + close_aide_slot(H, J) - if(alert(src, "Are you sure you want to open an assistant slot? This can only be used once", "Open Aide Slot", "No", "Yes") != "Yes") - return - var/datum/job/J = SSjobs.GetJob("Diplomatic Aide") - var/datum/citizenship/citizenship = SSrecords.citizenships[src.citizenship] +/datum/job/consular/post_open_aide_slot(mob/living/carbon/human/representative, datum/job/aide) + var/datum/citizenship/citizenship = SSrecords.citizenships[representative.citizenship] if(citizenship.linked_citizenship) //if there's a secondary citizenship that this one should allow - e.g zo'ra and biesel - LAZYREMOVE(J.blacklisted_citizenship, citizenship.linked_citizenship) + LAZYREMOVE(aide.blacklisted_citizenship, citizenship.linked_citizenship) else - LAZYREMOVE(J.blacklisted_citizenship, src.citizenship) - J.total_positions++ - to_chat(src, SPAN_NOTICE("A slot for a diplomatic aide has been opened.")) - remove_verb(src, /mob/living/carbon/human/proc/summon_goon) + LAZYREMOVE(aide.blacklisted_citizenship, representative.citizenship) -/datum/job/consular_assistant +/datum/job/consular/close_aide_slot(mob/living/carbon/human/representative, datum/job/aide) + var/datum/citizenship/citizenship = SSrecords.citizenships[representative.citizenship] + if(citizenship.linked_citizenship) + LAZYDISTINCTADD(aide.blacklisted_citizenship, citizenship.linked_citizenship) + else + LAZYDISTINCTADD(aide.blacklisted_citizenship, representative.citizenship) + + if(aide.total_positions > 0) + aide.total_positions-- + +/datum/job/diplomatic_aide title = "Diplomatic Aide" flag = CONSULAR_ASST departments = SIMPLEDEPT(DEPARTMENT_COMMAND_SUPPORT) @@ -274,17 +296,17 @@ access = list(ACCESS_CONSULAR, ACCESS_MAINT_TUNNELS) minimal_access = list(ACCESS_CONSULAR) - outfit = /obj/outfit/job/consular_assistant + outfit = /obj/outfit/job/diplomatic_aide blacklisted_citizenship = ALL_CITIZENSHIPS //removed based on consular citizensihp -/datum/job/consular_assistant/get_outfit(mob/living/carbon/human/H, alt_title = null) +/datum/job/diplomatic_aide/get_outfit(mob/living/carbon/human/H, alt_title = null) var/datum/citizenship/citizenship = SSrecords.citizenships[H.citizenship] if(citizenship) return citizenship.assistant_outfit -/obj/outfit/job/consular_assistant +/obj/outfit/job/diplomatic_aide name = "Diplomatic Aide" - jobtype = /datum/job/consular_assistant + jobtype = /datum/job/diplomatic_aide uniform = /obj/item/clothing/under/suit_jacket/navy tab_pda = /obj/item/modular_computer/handheld/pda/civilian/lawyer @@ -297,5 +319,47 @@ double_headset = /obj/item/device/radio/headset/alt/double/command/representative wrist_radio = /obj/item/device/radio/headset/wrist/command/representative -/datum/job/consular_assistant/after_spawn(mob/living/carbon/human/H) +/datum/job/diplomatic_aide/after_spawn(mob/living/carbon/human/H) LAZYDISTINCTADD(blacklisted_citizenship, H.citizenship) + +/datum/job/corporate_aide + title = "Corporate Aide" + flag = DIPLOMAT_AIDE + departments = SIMPLEDEPT(DEPARTMENT_COMMAND_SUPPORT) + department_flag = ENGSEC + faction = "Station" + total_positions = 0 //manually opened by representative + spawn_positions = 0 + supervisors = "the Corporate Representative" + selection_color = "#6186cf" + economic_modifier = 5 + + minimum_character_age = list( + SPECIES_HUMAN = 18, + SPECIES_SKRELL = 50, + SPECIES_SKRELL_AXIORI = 50 + ) + + access = list(ACCESS_LAWYER, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_LAWYER) + outfit = /obj/outfit/job/diplomatic_aide + +/datum/job/corporate_aide/get_outfit(mob/living/carbon/human/H, alt_title = null) + var/datum/faction/aide_faction = SSjobs.name_factions[H.employer_faction] + if(aide_faction) + return aide_faction.titles_to_loadout["Off-Duty Crew Member"] + +/obj/outfit/job/corporate_aide + name = "Corporate Aide" + jobtype = /datum/job/corporate_aide + + uniform = /obj/item/clothing/under/suit_jacket/navy + tab_pda = /obj/item/modular_computer/handheld/pda/civilian/lawyer + wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/civilian/lawyer + tablet = /obj/item/modular_computer/handheld/preset/civilian/lawyer + shoes = /obj/item/clothing/shoes/laceup + glasses = /obj/item/clothing/glasses/sunglasses/big + headset = /obj/item/device/radio/headset/representative + bowman = /obj/item/device/radio/headset/representative/alt + double_headset = /obj/item/device/radio/headset/alt/double/command/representative + wrist_radio = /obj/item/device/radio/headset/wrist/command/representative diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm index f719246c7e5..15e1bc490cc 100644 --- a/code/game/jobs/jobs.dm +++ b/code/game/jobs/jobs.dm @@ -19,6 +19,7 @@ var/const/BRIDGE_CREW =(1<<12) var/const/OPERATIONS_MANAGER =(1<<13) var/const/HRA =(1<<14) var/const/CONSULAR_ASST =(1<<15) +var/const/DIPLOMAT_AIDE =(1<<16) // MEDSCI var/const/MEDSCI =(1<<1) @@ -87,7 +88,8 @@ var/list/command_support_positions = list( "Corporate Liaison", "Consular Officer", "Bridge Crew", - "Diplomatic Aide" + "Diplomatic Aide", + "Corporate Aide" ) var/list/engineering_positions = list( diff --git a/code/modules/background/citizenship/citizenship.dm b/code/modules/background/citizenship/citizenship.dm index e59c96c02e5..4f872cdb3e4 100644 --- a/code/modules/background/citizenship/citizenship.dm +++ b/code/modules/background/citizenship/citizenship.dm @@ -2,7 +2,7 @@ var/name var/description var/obj/outfit/consular_outfit = /obj/outfit/job/representative/consular - var/obj/outfit/assistant_outfit = /obj/outfit/job/consular_assistant + var/obj/outfit/assistant_outfit = /obj/outfit/job/diplomatic_aide var/demonym var/list/job_species_blacklist = list() var/linked_citizenship //a secondary citizenship tied to this one. only used for vaurca snowflake code. diff --git a/code/modules/background/citizenship/human.dm b/code/modules/background/citizenship/human.dm index 029bbdea6ac..4998c2465bc 100644 --- a/code/modules/background/citizenship/human.dm +++ b/code/modules/background/citizenship/human.dm @@ -5,7 +5,7 @@ its large xeno population which enjoys various privileges compared to other space powers. With a very lax migration policy, virtually everyone is welcome to live here. However, \ 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 = /obj/outfit/job/representative/consular/ceti - assistant_outfit = /obj/outfit/job/consular_assistant/ceti + assistant_outfit = /obj/outfit/job/diplomatic_aide/ceti job_species_blacklist = list( "Consular Officer" = list( @@ -64,7 +64,7 @@ /obj/item/stamp/biesel = 1, ) -/obj/outfit/job/consular_assistant/ceti +/obj/outfit/job/diplomatic_aide/ceti name = "Tau Ceti Diplomatic Aide" accessory = /obj/item/clothing/accessory/tc_pin @@ -92,7 +92,7 @@ Presently ruled by a military junta that is gradually giving way to civilian control, the Alliance is also generally xenophobic, and most non-humans find themselves discriminated against in Solarian territory. \ Though much of its former possessions are now occupied by warlord statelets and other interstellar powers, the Alliance still maintains a revanchist outlook, refusing to relinquish its claims to its lost territories." consular_outfit = /obj/outfit/job/representative/consular/sol - assistant_outfit = /obj/outfit/job/consular_assistant/sol + assistant_outfit = /obj/outfit/job/diplomatic_aide/sol job_species_blacklist = list( "Consular Officer" = list( SPECIES_HUMAN, @@ -172,7 +172,7 @@ /obj/item/gun/projectile/pistol/sol = 1 ) -/obj/outfit/job/consular_assistant/sol +/obj/outfit/job/diplomatic_aide/sol name = "Sol Consular Officer" accessory = /obj/item/clothing/accessory/sol_pin diff --git a/code/modules/background/citizenship/skrell.dm b/code/modules/background/citizenship/skrell.dm index f293b04c427..40e7ca65ce4 100644 --- a/code/modules/background/citizenship/skrell.dm +++ b/code/modules/background/citizenship/skrell.dm @@ -7,7 +7,7 @@ A rogue artificial intelligence, Glorsh-Omega, has traumatized this nation for centuries to come. The Federation is very wary of humanity, who has acquired AI technology \ after a Federation tech leak provided them with the research required to create their own AI, as well as allowing them to create IPCs." consular_outfit = /obj/outfit/job/representative/consular/nralakk - assistant_outfit = /obj/outfit/job/consular_assistant/nralakk + assistant_outfit = /obj/outfit/job/diplomatic_aide/nralakk job_species_blacklist = list( "Consular Officer" = list( @@ -112,5 +112,5 @@ addtimer(CALLBACK(src, PROC_REF(send_representative_mission), H), 5 MINUTES) return TRUE -/obj/outfit/job/consular_assistant/nralakk +/obj/outfit/job/diplomatic_aide/nralakk uniform = /obj/item/clothing/under/skrell diff --git a/code/modules/background/citizenship/tajara.dm b/code/modules/background/citizenship/tajara.dm index 4f0dbfde70b..544d1441c2c 100644 --- a/code/modules/background/citizenship/tajara.dm +++ b/code/modules/background/citizenship/tajara.dm @@ -6,7 +6,7 @@ revolution to the masses. With land reform, enfranchisement of women and peasantry, literacy initiatives, and the collectivization of farms and the means of production, the PRA is \ struggling to hold true to its radical ideals while an entrenched upper party stubbornly tries to hold onto power." consular_outfit = /obj/outfit/job/representative/consular/pra - assistant_outfit = /obj/outfit/job/consular_assistant/pra + assistant_outfit = /obj/outfit/job/diplomatic_aide/pra job_species_blacklist = list( "Consular Officer" = list( @@ -79,7 +79,7 @@ ) accessory = /obj/item/clothing/accessory/hadii_pin -/obj/outfit/job/consular_assistant/pra +/obj/outfit/job/diplomatic_aide/pra glasses = null uniform = /obj/item/clothing/under/tajaran/smart backpack_contents = list( @@ -99,7 +99,7 @@ insurgency movement, then an organized military, into a modern, democratic nation. With the help of Nated as a government minister going out to negotiate with ruling Juntas to \ voluntarily turn over power to civilian governments, the DPRA's future faces many fundamental changes." consular_outfit = /obj/outfit/job/representative/consular/dpra - assistant_outfit = /obj/outfit/job/consular_assistant/dpra + assistant_outfit = /obj/outfit/job/diplomatic_aide/dpra job_species_blacklist = list( "Consular Officer" = list( @@ -170,7 +170,7 @@ ) accessory = /obj/item/clothing/accessory/dpra_pin -/obj/outfit/job/consular_assistant/dpra +/obj/outfit/job/diplomatic_aide/dpra glasses = null uniform = /obj/item/clothing/under/tajaran/smart backpack_contents = list( @@ -190,7 +190,7 @@ The lofty titles of the nobles disguise the fact that most of the nobility of this new kingdom remain in squalor only marginally better than the peasants. Life is difficult, and \ 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 = /obj/outfit/job/representative/consular/nka - assistant_outfit = /obj/outfit/job/consular_assistant/nka + assistant_outfit = /obj/outfit/job/diplomatic_aide/nka job_species_blacklist = list( "Consular Officer" = list( @@ -262,7 +262,7 @@ ) accessory = /obj/item/clothing/accessory/nka_pin -/obj/outfit/job/consular_assistant/nka +/obj/outfit/job/diplomatic_aide/nka glasses = null uniform = /obj/item/clothing/under/tajaran/fancy backpack_contents = list( diff --git a/code/modules/background/citizenship/unathi.dm b/code/modules/background/citizenship/unathi.dm index b8e85b6601b..51c7cc8cfba 100644 --- a/code/modules/background/citizenship/unathi.dm +++ b/code/modules/background/citizenship/unathi.dm @@ -5,7 +5,7 @@ with everything else revolving around it. It forms a major part of their code of honor, which stresses the importance of martial abilities and loyalty to the Clan. Despite an \ 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 = /obj/outfit/job/representative/consular/izweski - assistant_outfit = /obj/outfit/job/consular_assistant/izweski + assistant_outfit = /obj/outfit/job/diplomatic_aide/izweski job_species_blacklist = list( "Consular Officer" = list( @@ -108,6 +108,6 @@ addtimer(CALLBACK(src, .proc/send_representative_mission, H), 5 MINUTES) return TRUE -/obj/outfit/job/consular_assistant/izweski +/obj/outfit/job/diplomatic_aide/izweski uniform = /obj/item/clothing/under/unathi suit = /obj/item/clothing/accessory/poncho/unathimantle diff --git a/code/modules/client/preference_setup/loadout/items/accessories.dm b/code/modules/client/preference_setup/loadout/items/accessories.dm index ecc2990411d..4a0be377fcf 100644 --- a/code/modules/client/preference_setup/loadout/items/accessories.dm +++ b/code/modules/client/preference_setup/loadout/items/accessories.dm @@ -62,7 +62,7 @@ ABSTRACT_TYPE(/datum/gear/accessory) display_name = "holster selection" path = /obj/item/clothing/accessory/holster/armpit allowed_roles = list("Captain", "Executive Officer", "Bridge Crew", "Security Officer", "Warden", "Head of Security","Investigator", "Security Cadet", "Corporate Liaison", "Consular Officer", - "Chief Engineer", "Chief Medical Officer", "Research Director", "Operations Manager", "Diplomatic Aide", "Security Personnel") + "Chief Engineer", "Chief Medical Officer", "Research Director", "Operations Manager", "Diplomatic Aide", "Corporate Aide", "Security Personnel") /datum/gear/accessory/holster/New() ..() diff --git a/html/changelogs/mattatlas-corporateaides.yml b/html/changelogs/mattatlas-corporateaides.yml new file mode 100644 index 00000000000..ef5819c3209 --- /dev/null +++ b/html/changelogs/mattatlas-corporateaides.yml @@ -0,0 +1,59 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: MattAtlas + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added Corporate Aides - essentially diplomatic aides but for corporate representatives." + - refactor: "Refactored aide code to make it more modular and easier to work with."