Factions may now have their own specific job blacklists for species + some blacklists (#9532)

* Factions may now have their own specific job blacklists for species.

* Fixes CL blacklists for NT, EPMC, Heph, Idris, Zavod and Zeng-Hu

* Update changelog.

Co-authored-by: ParadoxSpace <takyahasu@gmail.com>
This commit is contained in:
mikomyazaki
2020-08-20 21:27:15 +01:00
committed by GitHub
parent 1a21676536
commit 4e0e08c447
11 changed files with 91 additions and 11 deletions
+12
View File
@@ -50,6 +50,18 @@
"Corporate Liaison" = /datum/outfit/job/representative/eridani
)
job_species_blacklist = list(
"Corporate Liaison" = list(
"Tajara",
"M'sai Tajara",
"Zhan-Khazan Tajara",
"Diona",
"Vaurca Worker",
"Vaurca Warrior",
"Unathi"
)
)
/datum/outfit/job/officer/eridani
name = "Security Officer - Eridani"
uniform = /obj/item/clothing/under/rank/security/eridani
+6 -2
View File
@@ -5,6 +5,7 @@
var/list/allowed_role_types
var/list/allowed_species_types
var/list/job_species_blacklist //will override the normal job species list for a member of this faction
var/is_default = FALSE
@@ -25,7 +26,10 @@
. = list()
for (var/path in allowed_role_types)
. += SSjobs.type_occupations[path]
var/datum/job/role = SSjobs.type_occupations[path]
if(LAZYACCESS(job_species_blacklist, role.title))
role.blacklisted_species = job_species_blacklist[role.title]
. += role
/datum/faction/proc/get_selection_error(datum/preferences/prefs)
if (!length(allowed_species_types))
@@ -60,4 +64,4 @@
objective = pick("Collect [rand(3,7)] pictures of secure station areas",
"Make sure that [rand(2,4)] complaints related to contractors are solved on the station")
return objective
return objective
+7
View File
@@ -68,6 +68,13 @@
"Corporate Liaison" = /datum/outfit/job/representative/hephaestus
)
job_species_blacklist = list(
"Corporate Liaison" = list(
"Vaurca Worker",
"Vaurca Warrior"
)
)
/datum/outfit/job/engineer/hephaestus
name = "Station Engineer - Hephaestus"
uniform = /obj/item/clothing/under/rank/hephaestus
+11
View File
@@ -63,6 +63,17 @@
"Corporate Liaison" = /datum/outfit/job/representative/idris
)
job_species_blacklist = list(
"Corporate Liaison" = list(
"Tajara",
"M'sai Tajara",
"Zhan-Khazan Tajara",
"Unathi",
"Vaurca Worker",
"Vaurca Warrior"
)
)
/datum/outfit/job/officer/idris
name = "Security Officer - Idris"
uniform = /obj/item/clothing/under/rank/security/idris
+8
View File
@@ -5,6 +5,14 @@
is_default = TRUE
job_species_blacklist = list(
"Corporate Liaison" = list(
"Diona",
"Vaurca Worker",
"Vaurca Warrior",
)
)
/datum/faction/nano_trasen/New()
..()
+16 -3
View File
@@ -9,9 +9,6 @@
Dominia, and are at the forefront of weapons development technology.
</p>
<p><font size='5' color='red'><b> DO NOT PLAY AN IPC AS A ZAVODSKOI LIAISON, THIS IS UNINTENDED. JOINING AS ONE WILL RESULT IN AN IPC/HEAD WHITELIST STRIP.</b></font>
</p>
<p>Some character examples are:
<ul>
<li><b>Surgical Specialist</b>: Unit to unit Zavodskoi ships the most firearms and weapons compared
@@ -52,6 +49,22 @@
/datum/species/machine
)
job_species_blacklist = list(
"Corporate Liaison" = list(
"Baseline Frame",
"Hephaestus G1 Industrial Frame",
"Hephaestus G2 Industrial Frame",
"Xion Industrial Frame",
"Zeng-Hu Mobility Frame",
"Bishop Accessory Frame",
"Shell Frame",
"Unathi",
"Tajara",
"M'sai Tajara",
"Zhan-Khazan Tajara"
)
)
titles_to_loadout = list(
"Security Officer" = /datum/outfit/job/officer/zavodskoi,
"Surgeon" = /datum/outfit/job/doctor/zavodskoi,
+11
View File
@@ -68,6 +68,17 @@
"Corporate Liaison" = /datum/outfit/job/representative/zeng_hu
)
job_species_blacklist = list(
"Corporate Liaison" = list(
"Unathi",
"Tajara",
"M'sai Tajara",
"Zhan-Khazan Tajara",
"Vaurca Worker",
"Vaurca Warrior"
)
)
/datum/outfit/job/doctor/zeng_hu
name = "Physician - Zeng-Hu"
uniform = /obj/item/clothing/under/rank/zeng
@@ -18,8 +18,6 @@
outfit = /datum/outfit/job/representative
alt_titles = list("Consular Officer")
blacklisted_species = list("M'sai Tajara", "Zhan-Khazan Tajara")
/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]
+1 -1
View File
@@ -1,4 +1,4 @@
var/const/NUM_JOB_DEPTS = 3 //ENGSEC, MEDSCI and CIVILIAN
var/const/ENGSEC =(1<<0)
var/const/CAPTAIN =(1<<0)
@@ -281,10 +281,20 @@
/datum/category_item/player_setup_item/occupation/proc/sanitize_faction()
if (!SSjobs.name_factions[pref.faction])
pref.faction = SSjobs.default_faction.name
to_client_chat("<span class='danger'>Your faction selection has been reset to [pref.faction].</span>")
to_client_chat("<span class='danger'>Your jobs have been reset due to this!</span>")
to_client_chat(SPAN_DANGER("Your faction selection has been reset to [pref.faction]."))
to_client_chat(SPAN_DANGER("Your jobs have been reset due to this!"))
ResetJobs()
return TOPIC_REFRESH_UPDATE_PREVIEW
var/datum/faction/faction = SSjobs.name_factions[pref.faction]
for(var/datum/job/job in faction.get_occupations())
for(var/department = 1 to NUM_JOB_DEPTS)
if(pref.GetJobDepartment(job, department) & job.flag)
if(pref.species in job.blacklisted_species)
to_client_chat(SPAN_DANGER("Your faction selection does not permit this species-occupation combination, [pref.species] as [job.title]."))
to_client_chat(SPAN_DANGER("Your jobs have been reset due to this!"))
ResetJobs()
return TOPIC_REFRESH_UPDATE_PREVIEW
/datum/category_item/player_setup_item/occupation/proc/SetPlayerAltTitle(datum/job/job, new_title)
// remove existing entry
+6
View File
@@ -0,0 +1,6 @@
author: ParadoxSpace & mikomyazaki
delete-after: True
changes:
- tweak: "Corp. Liason species blacklists have been updated for NT, EPMC, Hephaestus, Idris, Zavodskoi, Zeng-Hu."