mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 21:40:55 +01:00
## Description Hello! First PR here so I figured I'd do a big one ~~and stress out the maintainers as quickly as possible~~. :) While going through the process of creating a character the 'faction select' UI stuck out to me as *functional*, but difficult to parse visually and pretty dated looking by modern SS13 standards. (Not too bad, but you know what I mean) The new version is realistically *bit* too flashy for what it is (a single-use interface hidden away in the character creation menu), but it was very good practise for me to get back into DM/TGUI programming so it works out either way. I'm very happy to implement any feedback or suggested changes that could help improve it. ## Actual Description This PR replaces the old HTML 'faction select' interface with a new TGUI one, and also cleans up and fixes some adjacent code I bumped into while working on it. A couple of notes about the current version: * The 'Citizenship Check' line is currently non-functional and will always show a checkmark. I know a lot of the corporations have specific backgrounds/origins they won't hire people from, but I wasn't sure where exactly that's enforced in code, if at all. (I noticed `/datum/faction` has a `blacklisted_citizenship_types` variable, but it's currently unused.) * De-adminning or changing species doesn't immediately update the UI to reflect the changes, you have to click on something new to trigger an update manually. This doesn't have any actual consequences since I made sure to sanitise everything, but it is a visual thing. ## Screenshots <details><summary><b>Collapsed so it doesn't take up so much room:</b></summary> ### Before <img width="752" height="482" alt="xziPCYXbkn" src="https://github.com/user-attachments/assets/334e0609-c2e3-4a33-92ad-15120b78ab35" /> ### After <img width="900" height="645" alt="NT" src="https://github.com/user-attachments/assets/476702c7-c83c-4fee-a2cd-34d912468903" /> ### Unathi attempting to join Zeng-Hu (Button disabled) <img width="900" height="645" alt="Unathi fail" src="https://github.com/user-attachments/assets/c5a256c1-5531-4cbe-8198-27411c1aab9a" /> ### Faction Pages <details><summary><b>Stellar Corporate Conglomerate</b></summary> <img width="900" height="645" alt="SCC" src="https://github.com/user-attachments/assets/6e8bdb64-a220-41d4-a503-1268f9f93a30" /> </details> <details><summary><b>Nanotrasen</b></summary> <img width="900" height="645" alt="NT" src="https://github.com/user-attachments/assets/1ff107b5-7b3e-40e2-8f86-390ce29e165b" /> </details> <details><summary><b>Hephaestus Industries</b></summary> <img width="900" height="645" alt="HI" src="https://github.com/user-attachments/assets/6fc23159-990d-4de2-9745-827e11ca0442" /> </details> <details><summary><b>Idris Incorporated</b></summary> <img width="900" height="645" alt="II" src="https://github.com/user-attachments/assets/366a9824-81f1-4dd1-b385-4fa3968e39e0" /> </details> <details><summary><b>Orion Express</b></summary> <img width="900" height="645" alt="OE" src="https://github.com/user-attachments/assets/5588f0fe-d6c3-44b4-8297-cca4ed991bd8" /> </details> <details><summary><b>Private Military Contracting Group</b></summary> <img width="900" height="645" alt="PMCG" src="https://github.com/user-attachments/assets/a3dc6540-bfde-4fb2-939d-11e066b1e316" /> </details> <details><summary><b>Zavodskoi Interstellar</b></summary> <img width="900" height="645" alt="ZI" src="https://github.com/user-attachments/assets/a8c2c33d-7138-4164-a9f1-6a2dc3eb3e61" /> </details> <details><summary><b>Zeng-Hu Pharmaceuticals</b></summary> <img width="900" height="645" alt="ZHP" src="https://github.com/user-attachments/assets/4535ba80-efcb-4e50-9396-299bc16db2b5" /> </details> <details><summary><b>Independent</b></summary> <img width="900" height="645" alt="Independent" src="https://github.com/user-attachments/assets/dcf7b46c-edce-4104-a4f5-000479a9f963" /> </details> <hr> </details> ## Changelog - rscadd: "Revamped the 'Faction Select' UI in the occupation menu of character setup." - bugfix: "Fixed changing species in character setup not resetting your faction if it became invalid." - Not player-facing: - Fixed the TGUI dev server not working by bumping up the 'source-map' version. You still have to manually refresh the interface with Ctrl+R or Ctrl+F5 but it actually links now. - Added a `wiki_page` variable to each faction to allow for it to be manually set rather than being exclusively based on the name. (Mostly just futureproofing) - Added some line breaks to the faction descriptions to make them more easily readable. --------- Signed-off-by: SabreML <57483089+SabreML@users.noreply.github.com> Co-authored-by: VMSolidus <evilexecutive@gmail.com>
292 lines
11 KiB
Plaintext
292 lines
11 KiB
Plaintext
/datum/faction/pmc
|
|
name = "Private Military Contracting Group"
|
|
description = {"
|
|
The Private Military Contracting Group is a coalition of security and medical contractors;
|
|
borne from the necessity of protecting the Stellar Corporate Conglomerate and its holdings.<br>
|
|
Following the ever-growing corporate empire, mercenaries and contractors from all across the spur are deployed accordingly;
|
|
from mere office buildings to outposts in the Corporate Reconstruction Zone.<br><br>
|
|
Unlike the other members of the Corporate Conglomerate, the Private Military Contracting Group has few employees of its own.
|
|
Only some liaisons and bureaucrats work behind the scenes to hire and manage the contractors;
|
|
the rest of its members are part of several organizations contracted to supply the PMCG.
|
|
"}
|
|
departments = list(DEPARTMENT_MEDICAL, DEPARTMENT_SECURITY)
|
|
title_suffix = "PMCG"
|
|
wiki_page = "Private_Military_Contracting_Group"
|
|
|
|
allowed_role_types = PMC_ROLES
|
|
|
|
allowed_species_types = list(
|
|
/datum/species/human,
|
|
/datum/species/skrell,
|
|
/datum/species/tajaran,
|
|
/datum/species/unathi,
|
|
/datum/species/bug = TRUE,
|
|
/datum/species/bug/type_b = TRUE,
|
|
/datum/species/bug/type_b/type_bb = TRUE,
|
|
/datum/species/machine
|
|
)
|
|
|
|
job_species_blacklist = list(
|
|
"Corporate Liaison" = list(
|
|
SPECIES_DIONA,
|
|
SPECIES_DIONA_COEUS,
|
|
SPECIES_VAURCA_WORKER,
|
|
SPECIES_VAURCA_WARRIOR,
|
|
SPECIES_VAURCA_ATTENDANT
|
|
)
|
|
)
|
|
|
|
titles_to_loadout = list(
|
|
"Security Officer" = /obj/outfit/job/officer/pmc,
|
|
"Warden" = /obj/outfit/job/warden/pmc,
|
|
"Security Cadet" = /obj/outfit/job/intern_sec/officer/pmc,
|
|
"Investigator Intern" = /obj/outfit/job/intern_sec/forensics/pmc,
|
|
"Investigator" =/obj/outfit/job/forensics/pmc,
|
|
"Physician" = /obj/outfit/job/doctor/pmc,
|
|
"Surgeon" = /obj/outfit/job/doctor/surgeon/pmc,
|
|
"Pharmacist" = /obj/outfit/job/pharmacist/pmc,
|
|
"Psychiatrist" = /obj/outfit/job/psychiatrist/pmc,
|
|
"Psychologist" = /obj/outfit/job/psychiatrist/pmc,
|
|
"Paramedic" = /obj/outfit/job/med_tech/pmc,
|
|
"Medical Intern" = /obj/outfit/job/intern_med/pmc,
|
|
"Corporate Reporter" = /obj/outfit/job/journalist/pmc,
|
|
"Corporate Liaison" = /obj/outfit/job/representative/pmc,
|
|
"Corporate Aide" = /obj/outfit/job/corporate_aide/pmc,
|
|
"Assistant" = /obj/outfit/job/assistant/pmc,
|
|
"Medical Orderly" = /obj/outfit/job/assistant/med_assistant/pmc,
|
|
"Off-Duty Crew Member" = /obj/outfit/job/visitor/pmc,
|
|
"Security Personnel" = /obj/outfit/job/officer/event/pmc,
|
|
"Medical Personnel" = /obj/outfit/job/med_tech/event/pmc
|
|
)
|
|
|
|
/obj/outfit/job/officer/pmc
|
|
name = "Security Officer - PMC"
|
|
|
|
uniform = /obj/item/clothing/under/rank/security/pmc
|
|
id = /obj/item/card/id/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/warden/pmc
|
|
name = "Warden - PMC"
|
|
|
|
head = /obj/item/clothing/head/warden/pmc
|
|
uniform = /obj/item/clothing/under/rank/warden/pmc
|
|
suit = /obj/item/clothing/suit/storage/toggle/warden/pmc
|
|
id = /obj/item/card/id/pmc
|
|
glasses = /obj/item/clothing/glasses/sunglasses/sechud/aviator/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/intern_sec/officer/pmc
|
|
name = "Security Cadet - PMC"
|
|
|
|
uniform = /obj/item/clothing/under/rank/cadet/pmc
|
|
id = /obj/item/card/id/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/intern_sec/forensics/pmc
|
|
name = "Investigator Intern - PMC"
|
|
|
|
uniform = /obj/item/clothing/under/rank/cadet/pmc
|
|
id = /obj/item/card/id/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/forensics/pmc
|
|
name = "Investigator - PMC"
|
|
|
|
uniform = /obj/item/clothing/under/det/pmc
|
|
suit = /obj/item/clothing/suit/storage/security/investigator/pmc
|
|
id = /obj/item/card/id/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/doctor/pmc
|
|
name = "Physician - PMC"
|
|
|
|
uniform = /obj/item/clothing/under/rank/medical/pmc
|
|
suit = /obj/item/clothing/suit/storage/toggle/labcoat/pmc
|
|
id = /obj/item/card/id/pmc
|
|
shoes = /obj/item/clothing/shoes/sneakers/medsci/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/doctor/surgeon/pmc
|
|
name = "Surgeon - PMC"
|
|
|
|
uniform = /obj/item/clothing/under/rank/medical/surgeon/pmc
|
|
suit = /obj/item/clothing/suit/storage/surgical_gown/pmc/alt
|
|
id = /obj/item/card/id/pmc
|
|
shoes = /obj/item/clothing/shoes/sneakers/medsci/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/doctor/surgeon/pmc/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
|
if(!isskrell(H))
|
|
H.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/pmc(H), slot_head)
|
|
|
|
/obj/outfit/job/pharmacist/pmc
|
|
name = "Pharmacist - PMC"
|
|
|
|
uniform = /obj/item/clothing/under/rank/medical/pharmacist/pmc
|
|
suit = /obj/item/clothing/suit/storage/toggle/labcoat/pmc
|
|
id = /obj/item/card/id/pmc
|
|
shoes = /obj/item/clothing/shoes/sneakers/medsci/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/psychiatrist/pmc
|
|
name = "Psychiatrist - PMC"
|
|
|
|
uniform = /obj/item/clothing/under/rank/medical/psych/pmc
|
|
id = /obj/item/card/id/pmc
|
|
shoes = /obj/item/clothing/shoes/sneakers/medsci/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/med_tech/pmc
|
|
name = "Paramedic - PMC"
|
|
|
|
head = /obj/item/clothing/head/softcap/pmc
|
|
uniform = /obj/item/clothing/under/rank/medical/paramedic/pmc
|
|
suit = /obj/item/clothing/suit/storage/toggle/para_jacket/pmc
|
|
id = /obj/item/card/id/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/intern_med/pmc
|
|
name = "Medical Intern - PMC"
|
|
|
|
uniform = /obj/item/clothing/under/rank/medical/intern/pmc
|
|
id = /obj/item/card/id/pmc
|
|
shoes = /obj/item/clothing/shoes/sneakers/medsci/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/representative/pmc
|
|
name = "PMC Corporate Liaison"
|
|
|
|
head = /obj/item/clothing/head/beret/corporate/pmc
|
|
uniform = /obj/item/clothing/under/rank/liaison/pmc
|
|
suit = /obj/item/clothing/suit/storage/liaison/pmc
|
|
id = /obj/item/card/id/pmc
|
|
accessory = /obj/item/clothing/accessory/tie/corporate/pmc
|
|
suit_accessory = /obj/item/clothing/accessory/pin/corporate/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/corporate_aide/pmc
|
|
name = "PMC Corporate Aide"
|
|
|
|
id = /obj/item/card/id/pmc
|
|
head = /obj/item/clothing/head/beret/corporate/pmc
|
|
suit = /obj/item/clothing/suit/storage/toggle/corp/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/journalist/pmc
|
|
name = "Corporate Reporter - PMC"
|
|
|
|
uniform = /obj/item/clothing/under/librarian/pmc
|
|
id = /obj/item/card/id/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/assistant/pmc
|
|
name = "Assistant - PMC"
|
|
|
|
id = /obj/item/card/id/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/assistant/med_assistant/pmc
|
|
name = "Medical Orderly - PMC"
|
|
|
|
id = /obj/item/card/id/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/visitor/pmc
|
|
name = "Off-Duty Crew Member - PMC"
|
|
|
|
id = /obj/item/card/id/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/officer/event/pmc
|
|
name = "Security Personnel - PMC"
|
|
|
|
uniform = /obj/item/clothing/under/rank/security/pmc
|
|
id = /obj/item/card/id/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|
|
|
|
/obj/outfit/job/med_tech/event/pmc
|
|
name = "Medical Personnel - PMC"
|
|
|
|
head = /obj/item/clothing/head/softcap/pmc
|
|
uniform = /obj/item/clothing/under/rank/medical/paramedic/pmc
|
|
suit = /obj/item/clothing/suit/storage/toggle/para_jacket/pmc
|
|
id = /obj/item/card/id/pmc
|
|
|
|
backpack_faction = /obj/item/storage/backpack/pmcg
|
|
satchel_faction = /obj/item/storage/backpack/satchel/pmcg
|
|
dufflebag_faction = /obj/item/storage/backpack/duffel/pmcg
|
|
messengerbag_faction = /obj/item/storage/backpack/messenger/pmcg
|