Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions code/controllers/configuration/entries/game_options.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_NUM

/datum/config_entry/keyed_list/job_species_whitelist // Assigns species-based exceptions to Command roles
key_mode = KEY_MODE_TYPE
value_mode = VALUE_MODE_TEXT

/datum/config_entry/keyed_list/max_pop/ValidateListEntry(key_name)
return key_name in config.modes

Expand Down
34 changes: 34 additions & 0 deletions code/modules/clothing/outfits/plasmaman.dm
Original file line number Diff line number Diff line change
Expand Up @@ -498,4 +498,38 @@
l_pocket = /obj/item/laser_pointer
backpack_contents = list(/obj/item/storage/box/plasmaman = 1)

/datum/outfit/job/plasmaman/ce
name = "Plasmaman Chief Engineer"

id = /obj/item/card/id/silver
head = /obj/item/clothing/head/helmet/space/plasmaman/engineering
r_hand= /obj/item/tank/internals/plasmaman/belt/full
mask = /obj/item/clothing/mask/breath
uniform = /obj/item/clothing/under/plasmaman/engineering
shoes = /obj/item/clothing/shoes/sneakers/brown
ears = /obj/item/radio/headset/heads/ce
gloves = /obj/item/clothing/gloves/color/black/ce
belt = /obj/item/storage/belt/utility/chief/full
backpack = /obj/item/storage/backpack/industrial
satchel = /obj/item/storage/backpack/satchel/eng
duffelbag = /obj/item/storage/backpack/duffelbag/engineering
l_pocket = /obj/item/pda/heads/ce
backpack_contents = list(/obj/item/storage/box/plasmaman = 1)

/datum/outfit/job/plasmaman/rd
name = "Plasmaman Research Director"

id = /obj/item/card/id/silver
head = /obj/item/clothing/head/helmet/space/plasmaman
r_hand= /obj/item/tank/internals/plasmaman/belt/full
mask = /obj/item/clothing/mask/breath
uniform = /obj/item/clothing/under/plasmaman/science
shoes = /obj/item/clothing/shoes/sneakers/brown
ears = /obj/item/radio/headset/heads/rd
glasses = /obj/item/clothing/glasses/hud/diagnostic/sunglasses
belt = /obj/item/pda/heads/rd
suit = /obj/item/clothing/suit/toggle/labcoat/science
backpack = /obj/item/storage/backpack/science
satchel = /obj/item/storage/backpack/satchel/tox
backpack_contents = list(/obj/item/storage/box/plasmaman = 1)

3 changes: 2 additions & 1 deletion code/modules/jobs/job_types/_job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,8 @@
if(!H)
return FALSE

if(CONFIG_GET(flag/enforce_human_authority) && (title in GLOB.command_positions))
//This reads Command placement exceptions in code/controllers/configuration/entries/game_options to allow non-Humans in specified Command roles. If the combination of species and command role is invalid, default to Human.
if(CONFIG_GET(keyed_list/job_species_whitelist)[type] && !splittext(CONFIG_GET(keyed_list/job_species_whitelist)[type], ",").Find(H.dna.species.id))
if(H.dna.species.id != "human")
H.set_species(/datum/species/human)
H.apply_pref_name("human", preference_source)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,16 @@

if("Assistant")
O = new /datum/outfit/job/plasmaman/assistant

if("Artist")
O = new /datum/outfit/job/plasmaman/artist

if("Chief Engineer")
O = new /datum/outfit/job/plasmaman/ce

if("Research Director")
O = new /datum/outfit/job/plasmaman/rd

H.equipOutfit(O, visualsOnly)
H.internal = H.get_item_for_held_index(2)
H.update_internals_hud_icon(1)
Expand Down
11 changes: 11 additions & 0 deletions config/game_options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,17 @@ REVIVAL_CLONING
## amount of time (in hundredths of seconds) for which a brain retains the "spark of life" after the person's death (set to -1 for infinite)
REVIVAL_BRAIN_LIFE -1

## JOB_SPECIES_WHITELIST ##
## Creates Command roles species based exceptions; comma delineated list - /datum/job/[JOB] [SPECIES 1],[SPECIES 2], etc.

JOB_SPECIES_WHITELIST /datum/job/captain human
JOB_SPECIES_WHITELIST /datum/job/hop human
JOB_SPECIES_WHITELIST /datum/job/hos human,lizard
JOB_SPECIES_WHITELIST /datum/job/chief_engineer human,plasmaman,moth,ethereal,preternis, polysmorph
JOB_SPECIES_WHITELIST /datum/job/rd human,pod,plasmaman,ethereal,preternis,polysmorph
JOB_SPECIES_WHITELIST /datum/job/cmo human,lizard,pod,moth


## OOC DURING ROUND ###
## Comment this out if you want OOC to be automatically disabled during the round, it will be enabled during the lobby and after the round end results.
OOC_DURING_ROUND
Expand Down