Merge branch 'yogstation13-master' into tribal-crafting-port

This commit is contained in:
nmajask
2022-05-12 19:38:50 -04:00
28 changed files with 144622 additions and 87290 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -12,6 +12,7 @@
#define ROBOTICIST (1<<8) #define ROBOTICIST (1<<8)
#define AI_JF (1<<9) #define AI_JF (1<<9)
#define CYBORG (1<<10) #define CYBORG (1<<10)
#define BRIGPHYS (1<<11)
#define MEDSCI (1<<1) #define MEDSCI (1<<1)
@@ -23,7 +24,6 @@
#define DOCTOR (1<<4) #define DOCTOR (1<<4)
#define GENETICIST (1<<5) #define GENETICIST (1<<5)
#define VIROLOGIST (1<<6) #define VIROLOGIST (1<<6)
#define BRIGPHYS (1<<7)
#define CIVILIAN (1<<2) #define CIVILIAN (1<<2)
@@ -62,27 +62,27 @@
#define JOB_DISPLAY_ORDER_WARDEN 4 #define JOB_DISPLAY_ORDER_WARDEN 4
#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 5 #define JOB_DISPLAY_ORDER_SECURITY_OFFICER 5
#define JOB_DISPLAY_ORDER_DETECTIVE 6 #define JOB_DISPLAY_ORDER_DETECTIVE 6
#define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 7 #define JOB_DISPLAY_ORDER_BRIG_PHYSICIAN 7
#define JOB_DISPLAY_ORDER_STATION_ENGINEER 8 #define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 8
#define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 9 #define JOB_DISPLAY_ORDER_STATION_ENGINEER 9
#define JOB_DISPLAY_ORDER_SIGNAL_TECHNICIAN 10 #define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 10
#define JOB_DISPLAY_ORDER_AI 11 #define JOB_DISPLAY_ORDER_SIGNAL_TECHNICIAN 11
#define JOB_DISPLAY_ORDER_CYBORG 12 #define JOB_DISPLAY_ORDER_AI 12
#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 13 #define JOB_DISPLAY_ORDER_CYBORG 13
#define JOB_DISPLAY_ORDER_SCIENTIST 14 #define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 14
#define JOB_DISPLAY_ORDER_ROBOTICIST 15 #define JOB_DISPLAY_ORDER_SCIENTIST 15
#define JOB_DISPLAY_ORDER_QUARTERMASTER 16 #define JOB_DISPLAY_ORDER_ROBOTICIST 16
#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 17 #define JOB_DISPLAY_ORDER_QUARTERMASTER 17
#define JOB_DISPLAY_ORDER_SHAFT_MINER 18 #define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 18
#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 19 #define JOB_DISPLAY_ORDER_SHAFT_MINER 19
#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 20 #define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 20
#define JOB_DISPLAY_ORDER_CHEMIST 21 #define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 21
#define JOB_DISPLAY_ORDER_GENETICIST 22 #define JOB_DISPLAY_ORDER_CHEMIST 22
#define JOB_DISPLAY_ORDER_VIROLOGIST 23 #define JOB_DISPLAY_ORDER_GENETICIST 23
#define JOB_DISPLAY_ORDER_MINING_MEDIC 24 #define JOB_DISPLAY_ORDER_VIROLOGIST 24
#define JOB_DISPLAY_ORDER_PARAMEDIC 25 #define JOB_DISPLAY_ORDER_MINING_MEDIC 25
#define JOB_DISPLAY_ORDER_PSYCHIATRIST 26 #define JOB_DISPLAY_ORDER_PARAMEDIC 26
#define JOB_DISPLAY_ORDER_BRIG_PHYSICIAN 27 #define JOB_DISPLAY_ORDER_PSYCHIATRIST 27
#define JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL 28 #define JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL 28
#define JOB_DISPLAY_ORDER_BARTENDER 29 #define JOB_DISPLAY_ORDER_BARTENDER 29
#define JOB_DISPLAY_ORDER_COOK 30 #define JOB_DISPLAY_ORDER_COOK 30

View File

@@ -118,12 +118,6 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th
user.update_body() user.update_body()
user.domutcheck() user.domutcheck()
// get rid of any scars from previous changeling-ing
for(var/i in user.all_scars)
var/datum/scar/iter_scar = i
if(iter_scar.fake)
qdel(iter_scar)
//vars hackery. not pretty, but better than the alternative. //vars hackery. not pretty, but better than the alternative.
for(var/slot in GLOB.slots) for(var/slot in GLOB.slots)
if(istype(user.vars[slot], GLOB.slot2type[slot]) && !(chosen_prof.exists_list[slot])) //remove unnecessary flesh items if(istype(user.vars[slot], GLOB.slot2type[slot]) && !(chosen_prof.exists_list[slot])) //remove unnecessary flesh items
@@ -150,10 +144,6 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th
C.item_state = chosen_prof.item_state_list[slot] C.item_state = chosen_prof.item_state_list[slot]
if(equip) if(equip)
user.equip_to_slot_or_del(C, GLOB.slot2slot[slot]) user.equip_to_slot_or_del(C, GLOB.slot2slot[slot])
for(var/stored_scar_line in chosen_prof.stored_scars)
var/datum/scar/attempted_fake_scar = user.load_scar(stored_scar_line)
if(attempted_fake_scar)
attempted_fake_scar.fake = TRUE
user.regenerate_icons() user.regenerate_icons()
@@ -172,4 +162,4 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th
round_credits += "<br>" round_credits += "<br>"
round_credits += ..() round_credits += ..()
return round_credits return round_credits

View File

@@ -0,0 +1,77 @@
// Overthrow gamemode, based on the sleeping agent antagonist.
/datum/game_mode/overthrow
name = "overthrow"
config_tag = "overthrow"
report_type = "overthrow"
antag_flag = ROLE_OVERTHROW
restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer", "Brig Physician") //Yogs: Added Brig Physician
required_players = 20 // the core idea is of a swift, bloodless coup, so it shouldn't be as chaotic as revs.
required_enemies = 2 // minimum two teams, otherwise it's just nerfed revs.
recommended_enemies = 4
announce_span = "danger"
announce_text = "There are sleeping Syndicate agents on the station who are trying to stage a coup!\n\
<span class='danger'>Agents</span>: Accomplish your objectives, convert heads and targets, take control of the AI.\n\
<span class='notice'>Crew</span>: Do not let the agents succeed!"
var/list/initial_agents = list() // Why doesn't this exist at /game_mode level? Literally every gamemode has some sort of version for this, what the fuck
/datum/game_mode/overthrow/pre_setup()
if(CONFIG_GET(flag/protect_roles_from_antagonist))
restricted_jobs += protected_jobs
if(CONFIG_GET(flag/protect_assistant_from_antagonist))
restricted_jobs += "Assistant"
var/sleeping_agents = required_enemies + round(num_players()*0.05) // At 100 players, it'd be 2 + 5 = 7 teams existing.
for (var/i in 1 to sleeping_agents)
if (!antag_candidates.len)
break
var/datum/mind/sleeping_agent = antag_pick(antag_candidates)
antag_candidates -= sleeping_agent
initial_agents += sleeping_agent
sleeping_agent.restricted_roles = restricted_jobs
sleeping_agent.special_role = ROLE_OVERTHROW
if(initial_agents.len < required_enemies)
setup_error = "Not enough initial sleeping agents candidates"
return FALSE
return TRUE
/datum/game_mode/overthrow/post_setup()
for(var/i in initial_agents) // each agent will have its own team.
var/datum/mind/agent = i
var/datum/antagonist/overthrow/O = agent.add_antag_datum(/datum/antagonist/overthrow) // create_team called on_gain will create the team
O.equip_initial_overthrow_agent()
return ..()
/datum/game_mode/overthrow/generate_report()
return "Some sleeping agents have managed to get aboard. Their objective is to stage a coup and take over the station stealthly."
// Calculates points for each team and displays the winners.
/datum/game_mode/overthrow/special_report() // so many for loops, I am deeply sorry
var/list/teams = list()
for(var/datum/antagonist/overthrow/I in GLOB.antagonists)
var/datum/team/overthrow/Oteam = I.team
if(istype(Oteam)) // same
teams |= Oteam
var/max_points = 0 // the maximum amount of points reached
for(var/j in teams)
var/datum/team/T = j
var/points = 0 // Sum of points of all the objectives done
for(var/k in T.objectives)
var/datum/objective/overthrow/obj = k
if(istype(obj))
points += obj.get_points()
if(max_points < points)
max_points = points
teams[T] = points
// Now we will have a list of team=points and a max_points var. Let's fetch all the teams with points=maxpoints and display them as winner. This code allows multiple teams to win if they both achieved
// the same amount of points and they got the most points out of all the teams.
var/list/winners = list()
for(var/l in teams)
var/datum/team/Tagain = l
if(teams[Tagain] == max_points)
winners += Tagain.name
return "<span class='greentext big'>The [english_list(winners)] team[winners.len > 1 ? "s tied" : " won"] with [max_points] points!</span>"

View File

@@ -38,6 +38,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
jobs["Warden"] = 11 jobs["Warden"] = 11
jobs["Security Officer"] = 12 jobs["Security Officer"] = 12
jobs["Detective"] = 13 jobs["Detective"] = 13
jobs["Brig Physician"] = 14
jobs["Chief Medical Officer"] = 20 jobs["Chief Medical Officer"] = 20
jobs["Chemist"] = 21 jobs["Chemist"] = 21
jobs["Geneticist"] = 22 jobs["Geneticist"] = 22

View File

@@ -9,7 +9,6 @@
new /obj/item/pet_carrier(src) new /obj/item/pet_carrier(src)
new /obj/item/cartridge/captain(src) new /obj/item/cartridge/captain(src)
new /obj/item/storage/box/silver_ids(src) new /obj/item/storage/box/silver_ids(src)
new /obj/item/clothing/neck/cloak/cap(src)
new /obj/item/radio/headset/heads/captain/alt(src) new /obj/item/radio/headset/heads/captain/alt(src)
new /obj/item/radio/headset/heads/captain(src) new /obj/item/radio/headset/heads/captain(src)
new /obj/item/restraints/handcuffs/cable/zipties(src) new /obj/item/restraints/handcuffs/cable/zipties(src)
@@ -31,7 +30,6 @@
new /obj/item/radio/headset/heads/hop(src) new /obj/item/radio/headset/heads/hop(src)
new /obj/item/storage/box/ids(src) new /obj/item/storage/box/ids(src)
new /obj/item/storage/box/ids(src) new /obj/item/storage/box/ids(src)
new /obj/item/clothing/neck/cloak/hop(src)
new /obj/item/megaphone/command(src) new /obj/item/megaphone/command(src)
new /obj/item/clothing/suit/armor/vest/alt(src) new /obj/item/clothing/suit/armor/vest/alt(src)
new /obj/item/assembly/flash/handheld(src) new /obj/item/assembly/flash/handheld(src)
@@ -44,7 +42,7 @@
new /obj/item/storage/photo_album/HoP(src) new /obj/item/storage/photo_album/HoP(src)
new /obj/item/clipboard/yog/paperwork/hop(src) new /obj/item/clipboard/yog/paperwork/hop(src)
new /obj/item/gun/energy/e_gun/mini(src) //hop doesn't get a proper gun new /obj/item/gun/energy/e_gun/mini(src) //hop doesn't get a proper gun
new /obj/item/storage/backpack/duffelbag/clothing/hop(src) new /obj/item/storage/backpack/duffelbag/hop/clothing(src)
/obj/structure/closet/secure_closet/hos /obj/structure/closet/secure_closet/hos
name = "\proper head of security's locker" name = "\proper head of security's locker"
@@ -57,7 +55,6 @@
new /obj/item/radio/headset/heads/hos/alt(src) new /obj/item/radio/headset/heads/hos/alt(src)
new /obj/item/radio/headset/heads/hos(src) new /obj/item/radio/headset/heads/hos(src)
new /obj/item/storage/lockbox/medal/sec(src) new /obj/item/storage/lockbox/medal/sec(src)
new /obj/item/clothing/neck/cloak/hos(src)
new /obj/item/megaphone/sec(src) new /obj/item/megaphone/sec(src)
new /obj/item/holosign_creator/security(src) new /obj/item/holosign_creator/security(src)
new /obj/item/storage/lockbox/loyalty(src) new /obj/item/storage/lockbox/loyalty(src)
@@ -72,7 +69,7 @@
new /obj/item/storage/photo_album/HoS(src) new /obj/item/storage/photo_album/HoS(src)
new /obj/item/clipboard/yog/paperwork/hos(src) new /obj/item/clipboard/yog/paperwork/hos(src)
new /obj/item/radio/security(src) new /obj/item/radio/security(src)
new /obj/item/storage/backpack/duffelbag/clothing/sec/head(src) new /obj/item/storage/backpack/duffelbag/sec/head/clothing(src)
/obj/structure/closet/secure_closet/warden /obj/structure/closet/secure_closet/warden
name = "\proper warden's locker" name = "\proper warden's locker"
@@ -96,7 +93,7 @@
new /obj/item/gun/ballistic/shotgun/automatic/combat/compact(src) new /obj/item/gun/ballistic/shotgun/automatic/combat/compact(src)
new /obj/item/clipboard/yog/paperwork/warden(src) new /obj/item/clipboard/yog/paperwork/warden(src)
new /obj/item/radio/security(src) new /obj/item/radio/security(src)
new /obj/item/storage/backpack/duffelbag/clothing/sec/warden(src) new /obj/item/storage/backpack/duffelbag/sec/warden/clothing(src)
/obj/structure/closet/secure_closet/security /obj/structure/closet/secure_closet/security
name = "security officer's locker" name = "security officer's locker"
@@ -175,7 +172,7 @@
new /obj/item/storage/belt/holster/full(src) new /obj/item/storage/belt/holster/full(src)
new /obj/item/pinpointer/crew(src) new /obj/item/pinpointer/crew(src)
new /obj/item/twohanded/binoculars(src) new /obj/item/twohanded/binoculars(src)
new /obj/item/storage/backpack/duffelbag/clothing/sec/detective(src) new /obj/item/storage/backpack/duffelbag/sec/detective/clothing(src)
/obj/structure/closet/secure_closet/injection /obj/structure/closet/secure_closet/injection
name = "lethal injections" name = "lethal injections"
@@ -306,7 +303,7 @@
/obj/structure/closet/secure_closet/physician/PopulateContents() /obj/structure/closet/secure_closet/physician/PopulateContents()
..() ..()
new /obj/item/storage/backpack/duffelbag/clothing/sec/physician(src) new /obj/item/storage/backpack/duffelbag/sec/physician/clothing(src)
new /obj/item/cartridge/medical(src) new /obj/item/cartridge/medical(src)
new /obj/item/radio/headset/headset_medsec(src) new /obj/item/radio/headset/headset_medsec(src)
new /obj/item/storage/belt/medical(src) new /obj/item/storage/belt/medical(src)
@@ -315,4 +312,3 @@
new /obj/item/storage/box/bodybags(src) new /obj/item/storage/box/bodybags(src)
new /obj/item/tank/internals/anesthetic(src) new /obj/item/tank/internals/anesthetic(src)
new /obj/item/clothing/mask/breath/medical(src) new /obj/item/clothing/mask/breath/medical(src)
new /obj/item/defibrillator/loaded(src)

View File

@@ -1,132 +1,112 @@
/datum/skillcape /datum/skillcape
var/name = "" var/name = ""
var/minutes = 18000 var/minutes = 18000
var/job var/job
var/special = FALSE //If its TRUE it wont have a related job, it's for the switch statement in preferences.dm var/special = FALSE //If its TRUE it wont have a related job, it's for the switch statement in preferences.dm
var/capetype = "" // goes along with special, for the switch statement. var/capetype = "" // goes along with special, for the switch statement.
var/path = /obj/item/clothing/neck/skillcape var/path = /obj/item/clothing/neck/skillcape
var/id
/datum/skillcape/trimmed /datum/skillcape/trimmed
name = "trimmed cape of skill" name = "trimmed cape of skill"
minutes = 30000 minutes = 30000
path = /obj/item/clothing/neck/skillcape/trimmed path = /obj/item/clothing/neck/skillcape/trimmed
/datum/skillcape/maximum /datum/skillcape/maximum
name = "cape of the absolute pinnacle of beings" name = "cape of the absolute pinnacle of beings"
special = TRUE special = TRUE
capetype = "max" capetype = "max"
path = /obj/item/clothing/neck/skillcape/maximum path = /obj/item/clothing/neck/skillcape/maximum
id = "max"
/datum/skillcape/captain /datum/skillcape/captain
name = "cape of the captain" name = "cape of the captain"
job = "Captain" job = "Captain"
path = /obj/item/clothing/neck/skillcape/captain path = /obj/item/clothing/neck/skillcape/captain
id = "cap"
/datum/skillcape/trimmed/captain /datum/skillcape/trimmed/captain
name = "cape of the grand commander" name = "cape of the grand commander"
job = "Captain" job = "Captain"
path = /obj/item/clothing/neck/skillcape/trimmed/captain path = /obj/item/clothing/neck/skillcape/trimmed/captain
id = "cap_trimmed"
/datum/skillcape/hop /datum/skillcape/hop
name = "cape of the head of personel" name = "cape of the head of personel"
job = "Head of Personnel" job = "Head of Personnel"
path = /obj/item/clothing/neck/skillcape/hop path = /obj/item/clothing/neck/skillcape/hop
id = "hop"
/datum/skillcape/trimmed/hop /datum/skillcape/trimmed/hop
name = "cape of the grand torchbearer" name = "cape of the grand torchbearer"
job = "Head of Personnel" job = "Head of Personnel"
path = /obj/item/clothing/neck/skillcape/trimmed/hop path = /obj/item/clothing/neck/skillcape/trimmed/hop
id = "hop_trimmed"
/datum/skillcape/hos /datum/skillcape/hos
name = "cape of the head of security" name = "cape of the head of security"
job = "Head of Security" job = "Head of Security"
path = /obj/item/clothing/neck/skillcape/hos path = /obj/item/clothing/neck/skillcape/hos
id = "hos"
/datum/skillcape/trimmed/hos /datum/skillcape/trimmed/hos
name = "cape of the grand executor" name = "cape of the grand executor"
job = "Head of Security" job = "Head of Security"
path = /obj/item/clothing/neck/skillcape/trimmed/hos path = /obj/item/clothing/neck/skillcape/trimmed/hos
id = "hos_trimmed"
/datum/skillcape/chiefengineer /datum/skillcape/chiefengineer
name = "cape of the chief engineer" name = "cape of the chief engineer"
job = "Chief Engineer" job = "Chief Engineer"
path = /obj/item/clothing/neck/skillcape/chiefengineer path = /obj/item/clothing/neck/skillcape/chiefengineer
id = "ce"
/datum/skillcape/trimmed/chiefengineer /datum/skillcape/trimmed/chiefengineer
name = "cape of the grand constructor" name = "cape of the grand constructor"
job = "Chief Engineer" job = "Chief Engineer"
path = /obj/item/clothing/neck/skillcape/trimmed/chiefengineer path = /obj/item/clothing/neck/skillcape/trimmed/chiefengineer
id = "ce_trimmed"
/datum/skillcape/researchdirector /datum/skillcape/researchdirector
name = "cape of the research director" name = "cape of the research director"
job = "Research Director" job = "Research Director"
path = /obj/item/clothing/neck/skillcape/researchdirector path = /obj/item/clothing/neck/skillcape/researchdirector
id = "rd"
/datum/skillcape/trimmed/researchdirector /datum/skillcape/trimmed/researchdirector
name = "cape of the grand scholar" name = "cape of the grand scholar"
job = "Research Director" job = "Research Director"
path = /obj/item/clothing/neck/skillcape/trimmed/researchdirector path = /obj/item/clothing/neck/skillcape/trimmed/researchdirector
id = "rd_trimmed"
/datum/skillcape/cmo /datum/skillcape/cmo
name = "cape of the chief medical officer" name = "cape of the chief medical officer"
job = "Chief Medical Officer" job = "Chief Medical Officer"
path = /obj/item/clothing/neck/skillcape/cmo path = /obj/item/clothing/neck/skillcape/cmo
id = "cmo"
/datum/skillcape/trimmed/cmo /datum/skillcape/trimmed/cmo
name = "cape of the grand surgeon" name = "cape of the grand surgeon"
job = "Chief Medical Officer" job = "Chief Medical Officer"
path = /obj/item/clothing/neck/skillcape/trimmed/cmo path = /obj/item/clothing/neck/skillcape/trimmed/cmo
id = "cmo_trimmed"
/datum/skillcape/warden /datum/skillcape/warden
name = "cape of the warden" name = "cape of the warden"
job = "Warden" job = "Warden"
path = /obj/item/clothing/neck/skillcape/warden path = /obj/item/clothing/neck/skillcape/warden
id = "warden"
/datum/skillcape/trimmed/warden /datum/skillcape/trimmed/warden
name = "cape of the grand warden" name = "cape of the grand warden"
job = "Warden" job = "Warden"
path = /obj/item/clothing/neck/skillcape/trimmed/warden path = /obj/item/clothing/neck/skillcape/trimmed/warden
id = "warden_trimmed"
/datum/skillcape/security /datum/skillcape/security
name = "cape of the security officer" name = "cape of the security officer"
job = "Security Officer" job = "Security Officer"
path = /obj/item/clothing/neck/skillcape/security path = /obj/item/clothing/neck/skillcape/security
id = "security"
/datum/skillcape/trimmed/security /datum/skillcape/trimmed/security
name = "cape of the grand security officer" name = "cape of the grand security officer"
job = "Security Officer" job = "Security Officer"
path = /obj/item/clothing/neck/skillcape/trimmed/security path = /obj/item/clothing/neck/skillcape/trimmed/security
id = "security_trimmed"
/datum/skillcape/detective /datum/skillcape/detective
name = "cape of the detective" name = "cape of the detective"
job = "Detective" job = "Detective"
path = /obj/item/clothing/neck/skillcape/detective path = /obj/item/clothing/neck/skillcape/detective
id = "detective"
/datum/skillcape/trimmed/detective /datum/skillcape/trimmed/detective
name = "cape of the grand detective" name = "cape of the grand detective"
job = "Detective" job = "Detective"
path = /obj/item/clothing/neck/skillcape/trimmed/detective path = /obj/item/clothing/neck/skillcape/trimmed/detective
id = "detective_trimmed"
/datum/skillcape/physician /datum/skillcape/physician
name = "cape of the brig physician" name = "cape of the brig physician"
@@ -139,327 +119,273 @@
path = /obj/item/clothing/neck/skillcape/trimmed/physician path = /obj/item/clothing/neck/skillcape/trimmed/physician
/datum/skillcape/signaltech /datum/skillcape/signaltech
name = "cape of the signal technician" name = "cape of the signal technician"
job = "Signal Technician" job = "Signal Technician"
path = /obj/item/clothing/neck/skillcape/signaltech path = /obj/item/clothing/neck/skillcape/signaltech
id = "signaltech"
/datum/skillcape/trimmed/signaltech /datum/skillcape/trimmed/signaltech
name = "cape of the grand signal technician" name = "cape of the grand signal technician"
job = "Signal Technician" job = "Signal Technician"
path = /obj/item/clothing/neck/skillcape/trimmed/signaltech path = /obj/item/clothing/neck/skillcape/trimmed/signaltech
id = "signaltech_trimmed"
/datum/skillcape/atmos /datum/skillcape/atmos
name = "cape of the atmospheric technician" name = "cape of the atmospheric technician"
job = "Atmospheric Technician" job = "Atmospheric Technician"
path = /obj/item/clothing/neck/skillcape/atmos path = /obj/item/clothing/neck/skillcape/atmos
id = "atmos"
/datum/skillcape/trimmed/atmos /datum/skillcape/trimmed/atmos
name = "cape of the grand atmospheric technician" name = "cape of the grand atmospheric technician"
job = "Atmospheric Technician" job = "Atmospheric Technician"
path = /obj/item/clothing/neck/skillcape/trimmed/atmos path = /obj/item/clothing/neck/skillcape/trimmed/atmos
id = "atmos_trimmed"
/datum/skillcape/engineer /datum/skillcape/engineer
name = "cape of the station engineer" name = "cape of the station engineer"
job = "Station Engineer" job = "Station Engineer"
path = /obj/item/clothing/neck/skillcape/engineer path = /obj/item/clothing/neck/skillcape/engineer
id = "engineer"
/datum/skillcape/trimmed/engineer /datum/skillcape/trimmed/engineer
name = "cape of the grand station engineer" name = "cape of the grand station engineer"
job = "Station Engineer" job = "Station Engineer"
path = /obj/item/clothing/neck/skillcape/trimmed/engineer path = /obj/item/clothing/neck/skillcape/trimmed/engineer
id = "engineer_trimmed"
/datum/skillcape/science /datum/skillcape/science
name = "cape of the scientist" name = "cape of the scientist"
job = "Scientist" job = "Scientist"
path = /obj/item/clothing/neck/skillcape/science path = /obj/item/clothing/neck/skillcape/science
id = "science"
/datum/skillcape/trimmed/science /datum/skillcape/trimmed/science
name = "cape of the grand scientist" name = "cape of the grand scientist"
job = "Scientist" job = "Scientist"
path = /obj/item/clothing/neck/skillcape/trimmed/science path = /obj/item/clothing/neck/skillcape/trimmed/science
id = "science_trimmed"
/datum/skillcape/robo /datum/skillcape/robo
name = "cape of the roboticist" name = "cape of the roboticist"
job = "Roboticist" job = "Roboticist"
path = /obj/item/clothing/neck/skillcape/robo path = /obj/item/clothing/neck/skillcape/robo
id = "robo"
/datum/skillcape/trimmed/robo /datum/skillcape/trimmed/robo
name = "cape of the grand roboticist" name = "cape of the grand roboticist"
job = "Roboticist" job = "Roboticist"
path = /obj/item/clothing/neck/skillcape/trimmed/robo path = /obj/item/clothing/neck/skillcape/trimmed/robo
id = "robo_trimmed"
/datum/skillcape/psych /datum/skillcape/psych
name = "cape of the psychiatrist" name = "cape of the psychiatrist"
job = "Psychiatrist" job = "Psychiatrist"
path = /obj/item/clothing/neck/skillcape/psych path = /obj/item/clothing/neck/skillcape/psych
id = "psych"
/datum/skillcape/trimmed/psych /datum/skillcape/trimmed/psych
name = "cape of the grand psychiatrist" name = "cape of the grand psychiatrist"
job = "Psychiatrist" job = "Psychiatrist"
path = /obj/item/clothing/neck/skillcape/trimmed/psych path = /obj/item/clothing/neck/skillcape/trimmed/psych
id = "psych_trimmed"
/datum/skillcape/paramedic /datum/skillcape/paramedic
name = "cape of the paramedic" name = "cape of the paramedic"
job = "Paramedic" job = "Paramedic"
path = /obj/item/clothing/neck/skillcape/paramedic path = /obj/item/clothing/neck/skillcape/paramedic
id = "psych"
/datum/skillcape/trimmed/paramedic /datum/skillcape/trimmed/paramedic
name = "cape of the grand paramedic" name = "cape of the grand paramedic"
job = "Paramedic" job = "Paramedic"
path = /obj/item/clothing/neck/skillcape/trimmed/paramedic path = /obj/item/clothing/neck/skillcape/trimmed/paramedic
id = "psych_trimmed"
/datum/skillcape/gene /datum/skillcape/gene
name = "cape of the geneticist" name = "cape of the geneticist"
job = "Geneticist" job = "Geneticist"
path = /obj/item/clothing/neck/skillcape/gene path = /obj/item/clothing/neck/skillcape/gene
id = "gene"
/datum/skillcape/trimmed/gene /datum/skillcape/trimmed/gene
name = "cape of the grand geneticist" name = "cape of the grand geneticist"
job = "Geneticist" job = "Geneticist"
path = /obj/item/clothing/neck/skillcape/trimmed/gene path = /obj/item/clothing/neck/skillcape/trimmed/gene
id = "gene_trimmed"
/datum/skillcape/viro /datum/skillcape/viro
name = "cape of the virologist" name = "cape of the virologist"
job = "Virologist" job = "Virologist"
path = /obj/item/clothing/neck/skillcape/viro path = /obj/item/clothing/neck/skillcape/viro
id = "viro"
/datum/skillcape/trimmed/viro /datum/skillcape/trimmed/viro
name = "cape of the grand virologist" name = "cape of the grand virologist"
job = "Virologist" job = "Virologist"
path = /obj/item/clothing/neck/skillcape/trimmed/viro path = /obj/item/clothing/neck/skillcape/trimmed/viro
id = "viro_trimmed"
/datum/skillcape/chem /datum/skillcape/chem
name = "cape of the chemist" name = "cape of the chemist"
job = "Chemist" job = "Chemist"
path = /obj/item/clothing/neck/skillcape/chem path = /obj/item/clothing/neck/skillcape/chem
id = "chem"
/datum/skillcape/trimmed/chem /datum/skillcape/trimmed/chem
name = "cape of the grand chemist" name = "cape of the grand chemist"
job = "Chemist" job = "Chemist"
path = /obj/item/clothing/neck/skillcape/trimmed/chem path = /obj/item/clothing/neck/skillcape/trimmed/chem
id = "chem_trimmed"
/datum/skillcape/doctor /datum/skillcape/doctor
name = "cape of the doctor" name = "cape of the doctor"
job = "Medical Doctor" job = "Medical Doctor"
path = /obj/item/clothing/neck/skillcape/doctor path = /obj/item/clothing/neck/skillcape/doctor
id = "doctor"
/datum/skillcape/trimmed/doctor /datum/skillcape/trimmed/doctor
name = "cape of the grand doctor" name = "cape of the grand doctor"
job = "Medical Doctor" job = "Medical Doctor"
path = /obj/item/clothing/neck/skillcape/trimmed/doctor path = /obj/item/clothing/neck/skillcape/trimmed/doctor
id = "doctor_trimmed"
/datum/skillcape/minemedic /datum/skillcape/minemedic
name = "cape of the mining medic" name = "cape of the mining medic"
job = "Mining Medic" job = "Mining Medic"
path = /obj/item/clothing/neck/skillcape/minemedic path = /obj/item/clothing/neck/skillcape/minemedic
id = "minemeic"
/datum/skillcape/trimmed/minemedic /datum/skillcape/trimmed/minemedic
name = "cape of the grand minic medic" name = "cape of the grand mining medic"
job = "Mining Medic" job = "Mining Medic"
path = /obj/item/clothing/neck/skillcape/trimmed/minemedic path = /obj/item/clothing/neck/skillcape/trimmed/minemedic
id = "minemeic_trimmed"
/datum/skillcape/mining /datum/skillcape/mining
name = "cape of the miner" name = "cape of the miner"
job = "Shaft Miner" job = "Shaft Miner"
path = /obj/item/clothing/neck/skillcape/mining path = /obj/item/clothing/neck/skillcape/mining
id = "mining"
/datum/skillcape/trimmed/mining /datum/skillcape/trimmed/mining
name = "cape of the grand miner" name = "cape of the grand miner"
job = "Shaft Miner" job = "Shaft Miner"
path = /obj/item/clothing/neck/skillcape/trimmed/mining path = /obj/item/clothing/neck/skillcape/trimmed/mining
id = "mining_trimmed"
/datum/skillcape/cargo /datum/skillcape/cargo
name = "cape of the cargo technician" name = "cape of the cargo technician"
job = "Cargo Technician" job = "Cargo Technician"
path = /obj/item/clothing/neck/skillcape/cargo path = /obj/item/clothing/neck/skillcape/cargo
id = "cargo"
/datum/skillcape/trimmed/cargo /datum/skillcape/trimmed/cargo
name = "cape of the grand cargo technician" name = "cape of the grand cargo technician"
job = "Cargo Technician" job = "Cargo Technician"
path = /obj/item/clothing/neck/skillcape/trimmed/cargo path = /obj/item/clothing/neck/skillcape/trimmed/cargo
id = "cargo_trimmed"
/datum/skillcape/quartermaster /datum/skillcape/quartermaster
name = "cape of the quartermaster" name = "cape of the quartermaster"
job = "Quartermaster" job = "Quartermaster"
path = /obj/item/clothing/neck/skillcape/quartermaster path = /obj/item/clothing/neck/skillcape/quartermaster
id = "qm"
/datum/skillcape/trimmed/quartermaster /datum/skillcape/trimmed/quartermaster
name = "cape of the grand quartermaster" name = "cape of the grand quartermaster"
job = "Quartermaster" job = "Quartermaster"
path = /obj/item/clothing/neck/skillcape/trimmed/quartermaster path = /obj/item/clothing/neck/skillcape/trimmed/quartermaster
id = "qm_trimmed"
/datum/skillcape/tourist /datum/skillcape/tourist
name = "cape of the tourist" name = "cape of the tourist"
job = "Tourist" job = "Tourist"
path = /obj/item/clothing/neck/skillcape/tourist path = /obj/item/clothing/neck/skillcape/tourist
id = "tourist"
/datum/skillcape/trimmed/tourist /datum/skillcape/trimmed/tourist
name = "cape of the grand tourist" name = "cape of the grand tourist"
job = "Tourist" job = "Tourist"
path = /obj/item/clothing/neck/skillcape/trimmed/tourist path = /obj/item/clothing/neck/skillcape/trimmed/tourist
id = "tourist_trimmed"
/datum/skillcape/assistant /datum/skillcape/assistant
name = "cape of the greytider" name = "cape of the greytider"
job = "Assistant" job = "Assistant"
path = /obj/item/clothing/neck/skillcape/assistant path = /obj/item/clothing/neck/skillcape/assistant
id = "assistant"
/datum/skillcape/trimmed/assistant /datum/skillcape/trimmed/assistant
name = "cape of the grand greytider" name = "cape of the grand greytider"
job = "Assistant" job = "Assistant"
path = /obj/item/clothing/neck/skillcape/trimmed/assistant path = /obj/item/clothing/neck/skillcape/trimmed/assistant
id = "assistant_trimmed"
/datum/skillcape/clown /datum/skillcape/clown
name = "cape of the clown" name = "cape of the clown"
job = "Clown" job = "Clown"
path = /obj/item/clothing/neck/skillcape/clown path = /obj/item/clothing/neck/skillcape/clown
id = "clown"
/datum/skillcape/trimmed/clown /datum/skillcape/trimmed/clown
name = "cape of the grand clown" name = "cape of the grand clown"
job = "Clown" job = "Clown"
path = /obj/item/clothing/neck/skillcape/trimmed/clown path = /obj/item/clothing/neck/skillcape/trimmed/clown
id = "clown_trimmed"
/datum/skillcape/mime /datum/skillcape/mime
name = "cape of the mime" name = "cape of the mime"
job = "Mime" job = "Mime"
path = /obj/item/clothing/neck/skillcape/mime path = /obj/item/clothing/neck/skillcape/mime
id = "mime"
/datum/skillcape/trimmed/mime /datum/skillcape/trimmed/mime
name = "cape of the grand mime" name = "cape of the grand mime"
job = "Mime" job = "Mime"
path = /obj/item/clothing/neck/skillcape/trimmed/mime path = /obj/item/clothing/neck/skillcape/trimmed/mime
id = "mime_trimmed"
/datum/skillcape/chaplain /datum/skillcape/chaplain
name = "cape of the chaplain" name = "cape of the chaplain"
job = "Chaplain" job = "Chaplain"
path = /obj/item/clothing/neck/skillcape/chaplain path = /obj/item/clothing/neck/skillcape/chaplain
id = "chaplain"
/datum/skillcape/trimmed/chaplain /datum/skillcape/trimmed/chaplain
name = "cape of the grand chaplain" name = "cape of the grand chaplain"
job = "Chaplain" job = "Chaplain"
path = /obj/item/clothing/neck/skillcape/trimmed/chaplain path = /obj/item/clothing/neck/skillcape/trimmed/chaplain
id = "chaplain_trimmed"
/datum/skillcape/curator /datum/skillcape/curator
name = "cape of the curator" name = "cape of the curator"
job = "Curator" job = "Curator"
path = /obj/item/clothing/neck/skillcape/curator path = /obj/item/clothing/neck/skillcape/curator
id = "curator"
/datum/skillcape/trimmed/curator /datum/skillcape/trimmed/curator
name = "cape of the grand curator" name = "cape of the grand curator"
job = "Curator" job = "Curator"
path = /obj/item/clothing/neck/skillcape/trimmed/curator path = /obj/item/clothing/neck/skillcape/trimmed/curator
id = "curator_trimmed"
/datum/skillcape/lawyer /datum/skillcape/lawyer
name = "cape of the lawyer" name = "cape of the lawyer"
job = "Lawyer" job = "Lawyer"
path = /obj/item/clothing/neck/skillcape/lawyer path = /obj/item/clothing/neck/skillcape/lawyer
id = "lawyer"
/datum/skillcape/trimmed/lawyer /datum/skillcape/trimmed/lawyer
name = "cape of the grand lawyer" name = "cape of the grand lawyer"
job = "Lawyer" job = "Lawyer"
path = /obj/item/clothing/neck/skillcape/trimmed/lawyer path = /obj/item/clothing/neck/skillcape/trimmed/lawyer
id = "lawyer_trimmed"
/datum/skillcape/clerk /datum/skillcape/clerk
name = "cape of the clerk" name = "cape of the clerk"
job = "Clerk" job = "Clerk"
path = /obj/item/clothing/neck/skillcape/clerk path = /obj/item/clothing/neck/skillcape/clerk
id = "clerk"
/datum/skillcape/trimmed/clerk /datum/skillcape/trimmed/clerk
name = "cape of the grand clerk" name = "cape of the grand clerk"
job = "Clerk" job = "Clerk"
path = /obj/item/clothing/neck/skillcape/trimmed/clerk path = /obj/item/clothing/neck/skillcape/trimmed/clerk
id = "clerk_trimmed"
/datum/skillcape/janitor /datum/skillcape/janitor
name = "cape of the janitor" name = "cape of the janitor"
job = "Janitor" job = "Janitor"
path = /obj/item/clothing/neck/skillcape/janitor path = /obj/item/clothing/neck/skillcape/janitor
id = "janitor"
/datum/skillcape/trimmed/janitor /datum/skillcape/trimmed/janitor
name = "cape of the grand janitor" name = "cape of the grand janitor"
job = "Janitor" job = "Janitor"
path = /obj/item/clothing/neck/skillcape/trimmed/janitor path = /obj/item/clothing/neck/skillcape/trimmed/janitor
id = "janitor_trimmed"
/datum/skillcape/bartender /datum/skillcape/bartender
name = "cape of the bartender" name = "cape of the bartender"
job = "Bartender" job = "Bartender"
path = /obj/item/clothing/neck/skillcape/bartender path = /obj/item/clothing/neck/skillcape/bartender
id = "bartender"
/datum/skillcape/trimmed/bartender /datum/skillcape/trimmed/bartender
name = "cape of the grand bartender" name = "cape of the grand bartender"
job = "Bartender" job = "Bartender"
path = /obj/item/clothing/neck/skillcape/trimmed/bartender path = /obj/item/clothing/neck/skillcape/trimmed/bartender
id = "bartender_trimmed"
/datum/skillcape/cook /datum/skillcape/cook
name = "cape of the cook" name = "cape of the cook"
job = "Cook" job = "Cook"
path = /obj/item/clothing/neck/skillcape/cook path = /obj/item/clothing/neck/skillcape/cook
id = "cook"
/datum/skillcape/trimmed/cook /datum/skillcape/trimmed/cook
name = "cape of the grand cook" name = "cape of the grand cook"
job = "Cook" job = "Cook"
path = /obj/item/clothing/neck/skillcape/trimmed/cook path = /obj/item/clothing/neck/skillcape/trimmed/cook
id = "cook_trimmed"
/datum/skillcape/botany /datum/skillcape/botany
name = "cape of the botanist" name = "cape of the botanist"
job = "Botanist" job = "Botanist"
path = /obj/item/clothing/neck/skillcape/botany path = /obj/item/clothing/neck/skillcape/botany
id = "botany"
/datum/skillcape/trimmed/botany /datum/skillcape/trimmed/botany
name = "cape of the grand botanist" name = "cape of the grand botanist"
job = "Botanist" job = "Botanist"
path = /obj/item/clothing/neck/skillcape/trimmed/botany path = /obj/item/clothing/neck/skillcape/trimmed/botany
id = "botany_trimmed"

View File

@@ -1,5 +1,5 @@
/// returns TRUE if this mob has sufficient access to use this object //returns TRUE if this mob has sufficient access to use this object
/obj/proc/allowed(mob/M) /obj/proc/allowed(mob/M)
//check if it doesn't require any access at all //check if it doesn't require any access at all
if(src.check_access(null)) if(src.check_access(null))
@@ -29,21 +29,12 @@
return TRUE return TRUE
return FALSE return FALSE
/// Get the accesses on the item
/obj/item/proc/GetAccess() /obj/item/proc/GetAccess()
return list() return list()
/// Get the ID in the object, used for PDAs
/obj/item/proc/GetID() /obj/item/proc/GetID()
return null return null
/obj/item/proc/RemoveID()
return null
/obj/item/proc/InsertID()
return FALSE
/// Convert a text string to a list of accesses
/obj/proc/text2access(access_text) /obj/proc/text2access(access_text)
. = list() . = list()
if(!access_text) if(!access_text)
@@ -54,7 +45,7 @@
if(n) if(n)
. += n . += n
/// Generates access from strings, Call this before using req_access or req_one_access directly //Call this before using req_access or req_one_access directly
/obj/proc/gen_access() /obj/proc/gen_access()
//These generations have been moved out of /obj/New() because they were slowing down the creation of objects that never even used the access system. //These generations have been moved out of /obj/New() because they were slowing down the creation of objects that never even used the access system.
if(!req_access) if(!req_access)
@@ -66,11 +57,10 @@
for(var/b in text2access(req_one_access_txt)) for(var/b in text2access(req_one_access_txt))
req_one_access += b req_one_access += b
/// Check if an item has access to this object // Check if an item has access to this object
/obj/proc/check_access(obj/item/I) /obj/proc/check_access(obj/item/I)
return check_access_list(I ? I.GetAccess() : null) return check_access_list(I ? I.GetAccess() : null)
/// Check if an access list has sufficient access
/obj/proc/check_access_list(list/access_list) /obj/proc/check_access_list(list/access_list)
gen_access() gen_access()
@@ -94,11 +84,9 @@
return FALSE return FALSE
return TRUE return TRUE
/// Checks ntnet access
/obj/proc/check_access_ntnet(datum/netdata/data) /obj/proc/check_access_ntnet(datum/netdata/data)
return check_access_list(data.passkey) return check_access_list(data.passkey)
/// Get access for centcom job
/proc/get_centcom_access(job) /proc/get_centcom_access(job)
switch(job) switch(job)
if("VIP Guest") if("VIP Guest")
@@ -136,7 +124,6 @@
if("HONK Squad Trooper") if("HONK Squad Trooper")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_SPECOPS, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE) return list(ACCESS_CENT_GENERAL, ACCESS_CENT_SPECOPS, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE)
/// Gets all station access
/proc/get_all_accesses() /proc/get_all_accesses()
return list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, return list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT,
ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_MORGUE, ACCESS_RD, ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_MORGUE, ACCESS_RD,
@@ -151,17 +138,9 @@
ACCESS_VAULT, ACCESS_MINING_STATION, ACCESS_XENOBIOLOGY, ACCESS_CE, ACCESS_HOP, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_VAULT, ACCESS_MINING_STATION, ACCESS_XENOBIOLOGY, ACCESS_CE, ACCESS_HOP, ACCESS_HOS, ACCESS_RC_ANNOUNCE,
ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_MINISAT, ACCESS_NETWORK, ACCESS_CLONING, ACCESS_TCOM_ADMIN, ACCESS_PARAMEDIC, ACCESS_MANUFACTURING, ACCESS_BRIG_PHYS) //YOGS - yogs jobs ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_MINISAT, ACCESS_NETWORK, ACCESS_CLONING, ACCESS_TCOM_ADMIN, ACCESS_PARAMEDIC, ACCESS_MANUFACTURING, ACCESS_BRIG_PHYS) //YOGS - yogs jobs
/// Gets all centcom accesses
/proc/get_all_centcom_access() /proc/get_all_centcom_access()
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_THUNDER, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE, ACCESS_CENT_TELEPORTER, ACCESS_CENT_CAPTAIN) return list(ACCESS_CENT_GENERAL, ACCESS_CENT_THUNDER, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE, ACCESS_CENT_TELEPORTER, ACCESS_CENT_CAPTAIN)
/// Gets all accesses between 1 and 500
/proc/get_debug_access()
. = list()
for(var/i = 1; i <= 500; i++)
. += i
/// Gets access for ERT
/proc/get_ert_access(class) /proc/get_ert_access(class)
switch(class) switch(class)
if("commander") if("commander")
@@ -173,11 +152,9 @@
if("med") if("med")
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_LIVING) return list(ACCESS_CENT_GENERAL, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_LIVING)
/// Gets all syndicate access
/proc/get_all_syndicate_access() /proc/get_all_syndicate_access()
return list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) return list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER)
/// Gets access from region ID
/proc/get_region_accesses(code) /proc/get_region_accesses(code)
switch(code) switch(code)
if(0) if(0)
@@ -185,9 +162,9 @@
if(1) //station general if(1) //station general
return list(ACCESS_KITCHEN,ACCESS_BAR, ACCESS_HYDROPONICS, ACCESS_JANITOR, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_LIBRARY, ACCESS_THEATRE, ACCESS_LAWYER, ACCESS_MANUFACTURING) return list(ACCESS_KITCHEN,ACCESS_BAR, ACCESS_HYDROPONICS, ACCESS_JANITOR, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_LIBRARY, ACCESS_THEATRE, ACCESS_LAWYER, ACCESS_MANUFACTURING)
if(2) //security if(2) //security
return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_MECH_SECURITY, ACCESS_HOS) return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_MECH_SECURITY, ACCESS_HOS, ACCESS_BRIG_PHYS) //Yogs: Yog jobs
if(3) //medbay if(3) //medbay
return list(ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_SURGERY, ACCESS_MECH_MEDICAL, ACCESS_CMO, ACCESS_PARAMEDIC, ACCESS_BRIG_PHYS) // yogs - Yog jobs return list(ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_SURGERY, ACCESS_MECH_MEDICAL, ACCESS_CMO, ACCESS_PARAMEDIC) // yogs - Yog jobs
if(4) //research if(4) //research
return list(ACCESS_RESEARCH, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_GENETICS, ACCESS_ROBOTICS, ACCESS_XENOBIOLOGY, ACCESS_MECH_SCIENCE, ACCESS_MINISAT, ACCESS_RD, ACCESS_NETWORK, ACCESS_AI_UPLOAD) return list(ACCESS_RESEARCH, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_GENETICS, ACCESS_ROBOTICS, ACCESS_XENOBIOLOGY, ACCESS_MECH_SCIENCE, ACCESS_MINISAT, ACCESS_RD, ACCESS_NETWORK, ACCESS_AI_UPLOAD)
if(5) //engineering and maintenance if(5) //engineering and maintenance
@@ -197,7 +174,6 @@
if(7) //command if(7) //command
return list(ACCESS_HEADS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_TELEPORTER, ACCESS_EVA, ACCESS_GATEWAY, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_HOP, ACCESS_CAPTAIN, ACCESS_VAULT) return list(ACCESS_HEADS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_TELEPORTER, ACCESS_EVA, ACCESS_GATEWAY, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_HOP, ACCESS_CAPTAIN, ACCESS_VAULT)
/// Gets the name from region ID
/proc/get_region_accesses_name(code) /proc/get_region_accesses_name(code)
switch(code) switch(code)
if(0) if(0)
@@ -217,7 +193,6 @@
if(7) //command if(7) //command
return "Command" return "Command"
/// Gets teh description for an access
/proc/get_access_desc(A) /proc/get_access_desc(A)
switch(A) switch(A)
if(ACCESS_CARGO) if(ACCESS_CARGO)
@@ -359,17 +334,8 @@
return "Clerk" return "Clerk"
if(ACCESS_BRIG_PHYS) if(ACCESS_BRIG_PHYS)
return "Brig Physician" return "Brig Physician"
if(ACCESS_MECH_FREEMINER)
return "Freeminer Mech"
if(ACCESS_FREEMINER)
return "Freeminer"
if(ACCESS_FREEMINER_ENGINEER)
return "Freeminer Engineer"
if(ACCESS_FREEMINER_CAPTAIN)
return "Freeminer Captain"
// yogs end // yogs end
/// Get descriptions for centcom accesses
/proc/get_centcom_access_desc(A) /proc/get_centcom_access_desc(A)
switch(A) switch(A)
if(ACCESS_CENT_GENERAL) if(ACCESS_CENT_GENERAL)
@@ -391,7 +357,6 @@
if(ACCESS_CENT_BAR) if(ACCESS_CENT_BAR)
return "Code Scotch" return "Code Scotch"
/// Gets all jobs
/proc/get_all_jobs() /proc/get_all_jobs()
return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician", return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician",
"Shaft Miner", "Clown", "Mime", "Janitor", "Curator", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", "Shaft Miner", "Clown", "Mime", "Janitor", "Curator", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer",
@@ -401,26 +366,20 @@
"Signal Technician", "Mining Medic", "Paramedic", "Psychiatrist", "Clerk", "Tourist", "Space Bartender", "Artist", "Brig Physician") "Signal Technician", "Mining Medic", "Paramedic", "Psychiatrist", "Clerk", "Tourist", "Space Bartender", "Artist", "Brig Physician")
// yogs end // yogs end
/// Gets all jobs with hud icons
/proc/get_all_job_icons() //For all existing HUD icons /proc/get_all_job_icons() //For all existing HUD icons
return get_all_jobs() + list("Prisoner") return get_all_jobs() + list("Prisoner")
/// Gets all centcom jobs
/proc/get_all_centcom_jobs() /proc/get_all_centcom_jobs()
return list("VIP Guest","Custodian","Thunderdome Overseer","CentCom Official","Medical Officer","Research Officer","Special Ops Officer","Admiral","CentCom Commander","Emergency Response Team Commander","Security Response Officer","Engineer Response Officer", "Medical Response Officer","CentCom Bartender", "Janitorial Response Officer", "Religious Response Officer", "CentCom Captain", "CentCom Major", "CentCom Commodore", "CentCom Colonel", "CentCom Rear-Admiral", "CentCom Admiral", "CentCom Grand Admiral", "Comedy Response Officer", "HONK Squad Trooper") return list("VIP Guest","Custodian","Thunderdome Overseer","CentCom Official","Medical Officer","Research Officer","Special Ops Officer","Admiral","CentCom Commander","Emergency Response Team Commander","Security Response Officer","Engineer Response Officer", "Medical Response Officer","CentCom Bartender", "Janitorial Response Officer", "Religious Response Officer", "CentCom Captain", "CentCom Major", "CentCom Commodore", "CentCom Colonel", "CentCom Rear-Admiral", "CentCom Admiral", "CentCom Grand Admiral", "Comedy Response Officer", "HONK Squad Trooper")
/// Gets all task for jobs
/proc/get_all_task_force_jobs() /proc/get_all_task_force_jobs()
return list("Amber Soldier","Amber Commander","Amber Medic","Amber Task Force") return list("Amber Soldier","Amber Commander","Amber Medic","Amber Task Force")
/// Gets the name of a job from the ID
/obj/item/proc/GetJobName() //Used in secHUD icon generation /obj/item/proc/GetJobName() //Used in secHUD icon generation
var/obj/item/card/id/I = GetID() var/obj/item/card/id/I = GetID()
if(!I) if(!I)
return return
var/jobName = I.assignment var/jobName = I.assignment
if(I.originalassignment)
jobName = I.originalassignment
if(jobName in get_all_job_icons()) //Check if the job has a hud icon if(jobName in get_all_job_icons()) //Check if the job has a hud icon
return jobName return jobName
if(jobName in get_all_centcom_jobs()) //Return with the NT logo if it is a CentCom job if(jobName in get_all_centcom_jobs()) //Return with the NT logo if it is a CentCom job

View File

@@ -12,14 +12,11 @@
minimal_player_age = 7 minimal_player_age = 7
exp_requirements = 300 exp_requirements = 300
exp_type = EXP_TYPE_CREW exp_type = EXP_TYPE_CREW
exp_type_department = EXP_TYPE_SECURITY
outfit = /datum/outfit/job/warden outfit = /datum/outfit/job/warden
alt_titles = list("Brig Watchman", "Brig Superintendent", "Security Staff Sergeant", "Security Dispatcher", "Prison Supervisor") access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_MECH_SECURITY, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM, ACCESS_BRIG_PHYS)
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM, ACCESS_BRIG_PHYS) // See /datum/job/warden/get_access()
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_MECH_SECURITY, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) // See /datum/job/warden/get_access()
paycheck = PAYCHECK_HARD paycheck = PAYCHECK_HARD
paycheck_department = ACCOUNT_SEC paycheck_department = ACCOUNT_SEC
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM) mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
@@ -44,11 +41,9 @@
name = "Warden" name = "Warden"
jobtype = /datum/job/warden jobtype = /datum/job/warden
pda_type = /obj/item/pda/warden belt = /obj/item/pda/warden
ears = /obj/item/radio/headset/headset_sec/alt ears = /obj/item/radio/headset/headset_sec/alt
uniform = /obj/item/clothing/under/rank/warden uniform = /obj/item/clothing/under/rank/warden
uniform_skirt = /obj/item/clothing/under/rank/warden/skirt
shoes = /obj/item/clothing/shoes/jackboots shoes = /obj/item/clothing/shoes/jackboots
suit = /obj/item/clothing/suit/armor/vest/warden/alt suit = /obj/item/clothing/suit/armor/vest/warden/alt
gloves = /obj/item/clothing/gloves/color/black gloves = /obj/item/clothing/gloves/color/black

View File

@@ -53,7 +53,10 @@ GLOBAL_LIST_INIT(original_security_positions, list(
"Head of Security", "Head of Security",
"Warden", "Warden",
"Detective", "Detective",
"Security Officer")) "Security Officer",
//Yogs Start: Yog jobs
"Brig Physician"))
//Yogs End
GLOBAL_LIST_INIT(original_nonhuman_positions, list( GLOBAL_LIST_INIT(original_nonhuman_positions, list(
"AI", "AI",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

@@ -14,7 +14,7 @@
/obj/item/storage/backpack/holding/attackby(obj/item/W, mob/living/user) /obj/item/storage/backpack/holding/attackby(obj/item/W, mob/living/user)
if(istype(W, /obj/item/disabled_boh) && appears_split) // allows you to make a split bag appear whole, so that you can fool security or whatever with it. it's a bit pricey though since you need to bork an entire bag to do so. if(istype(W, /obj/item/disabled_boh) && appears_split) // allows you to make a split bag appear whole, so that you can fool security or whatever with it. it's a bit pricey though since you need to bork an entire bag to do so.
to_chat(user, span_notice("You graft the outer shell of the disabled bag onto this one.")) to_chat(user, "<span class='notice'>You graft the outer shell of the disabled bag onto this one.</span>")
qdel(W) qdel(W)
cut = FALSE cut = FALSE
appears_split = FALSE appears_split = FALSE
@@ -23,21 +23,21 @@
return TRUE return TRUE
if(istype(W, /obj/item/scalpel) && istype(loc, /turf) && !appears_split) // you gotta do this on the ground. if(istype(W, /obj/item/scalpel) && istype(loc, /turf) && !appears_split) // you gotta do this on the ground.
if(!cut) if(!cut)
user.visible_message("[user] begins to make an incision on the outer shell of [src].", span_notice("You begin to make an incision on the outer shell of [src]...")) user.visible_message("[user] begins to make an incision on the outer shell of [src].", "<span class='notice'>You begin to make an incision on the outer shell of [src]...</span>")
if(W.use_tool(src, user, 40)) if(W.use_tool(src, user, 40))
if(!appears_split && !cut) if(!appears_split && !cut)
user.visible_message("[user] succeeds!", span_notice("You succeed.")) user.visible_message("[user] succeeds!", "<span class='notice'>You succeed.</span>")
cut = TRUE cut = TRUE
name = "cut [initial(name)]" name = "cut [initial(name)]"
icon_state = "holdingpack-cut" icon_state = "holdingpack-cut"
else else
user.visible_message(span_warning("[user] screws up!"), span_warning("You screw up!")) user.visible_message("<span class='warning'>[user] screws up!</span>", "<span class='warning'>You screw up!</span>")
return TRUE return TRUE
else else
user.visible_message("[user] begins to carefully cut [src]'s bluespace interface in half.", span_notice("You begin to carefully cut [src]'s bluespace interface in half...")) user.visible_message("[user] begins to carefully cut [src]'s bluespace interface in half.", "<span class='notice'>You begin to carefully cut [src]'s bluespace interface in half...</span>")
if(W.use_tool(src, user, 40)) if(W.use_tool(src, user, 40))
if(!appears_split && cut) if(!appears_split && cut)
user.visible_message("[user] succeeds!", span_notice("You succeed.")) user.visible_message("[user] succeeds!", "<span class='notice'>You succeed.</span>")
cut = FALSE cut = FALSE
appears_split = TRUE appears_split = TRUE
name = "split [initial(name)]" name = "split [initial(name)]"
@@ -57,21 +57,21 @@
twin.name = "split [initial(twin.name)]" twin.name = "split [initial(twin.name)]"
twin.icon_state = "holdingpack-split-left" twin.icon_state = "holdingpack-split-left"
else // HAHAHAHA YOU FUCKED UP BIG TIME MATE else // HAHAHAHA YOU FUCKED UP BIG TIME MATE
user.visible_message(span_danger("[user] screws up, causing the bluespace interface to collapse catastrophically!"), span_userdanger("You screw up, causing the bluespace interface to collapse catastrophically! Try not moving next time?")) user.visible_message("<span class='danger'>[user] screws up, causing the bluespace interface to collapse catastrophically!</span>", "<span class='userdanger'>You screw up, causing the bluespace interface to collapse catastrophically! Try not moving next time?</span>")
fuck_up(user) fuck_up(user)
return TRUE return TRUE
else if(istype(W, /obj/item/hemostat) && istype(loc, /turf) && !appears_split && cut) // how to bork a bag of holding else if(istype(W, /obj/item/hemostat) && istype(loc, /turf) && !appears_split && cut) // how to bork a bag of holding
user.visible_message("[user] begins to carefully disrupt [src]'s bluespace interface.", span_notice("You begin to carefully disrupt [src]'s bluespace interface...")) user.visible_message("[user] begins to carefully disrupt [src]'s bluespace interface.", "<span class='notice'>You begin to carefully disrupt [src]'s bluespace interface...</span>")
if(W.use_tool(src, user, 40)) if(W.use_tool(src, user, 40))
if(!appears_split && cut) if(!appears_split && cut)
user.visible_message("[user] succeeds!", span_notice("You succeed.")) user.visible_message("[user] succeeds!", "<span class='notice'>You succeed.</span>")
disable_bag(TRUE) disable_bag(TRUE)
var/obj/item/disabled_boh/replacement = new(loc) var/obj/item/disabled_boh/replacement = new(loc)
replacement.icon_state = replacetext(icon_state, "holdingpack", "brokenpack") replacement.icon_state = replacetext(icon_state, "holdingpack", "brokenpack")
replacement.name = name replacement.name = name
qdel(src) qdel(src)
else // HAHAHAHA YOU FUCKED UP BIG TIME MATE else // HAHAHAHA YOU FUCKED UP BIG TIME MATE
user.visible_message(span_danger("[user] screws up, causing the bluespace interface to collapse catastrophically!"), span_userdanger("You screw up, causing the bluespace interface to collapse catastrophically! Try not moving next time?")) user.visible_message("<span class='danger'>[user] screws up, causing the bluespace interface to collapse catastrophically!</span>", "<span class='userdanger'>You screw up, causing the bluespace interface to collapse catastrophically! Try not moving next time?</span>")
fuck_up(user) fuck_up(user)
return TRUE return TRUE
return ..() return ..()
@@ -121,7 +121,7 @@
continue continue
for(var/mob/living/M in T) for(var/mob/living/M in T)
if(M.movement_type & FLYING) if(M.movement_type & FLYING)
M.visible_message(span_danger("The bluespace collapse crushes the air towards it, pulling [M] towards the ground...")) M.visible_message("<span class='danger'>The bluespace collapse crushes the air towards it, pulling [M] towards the ground...</span>")
M.Paralyze(5, TRUE, TRUE) //Overrides stun absorbs. M.Paralyze(5, TRUE, TRUE) //Overrides stun absorbs.
T.TerraformTurf(/turf/open/chasm/magic, /turf/open/chasm/magic) T.TerraformTurf(/turf/open/chasm/magic, /turf/open/chasm/magic)
for(var/fabricarea in get_areas(/area/fabric_of_reality)) for(var/fabricarea in get_areas(/area/fabric_of_reality))
@@ -195,14 +195,6 @@
item_state = "snail_green" item_state = "snail_green"
icon_state = "snail_green" icon_state = "snail_green"
/obj/item/storage/backpack/fakesnail
name = "green shell backpack"
desc = "An emerald-green snail shell converted into a backpack. Still smells of salt."
icon = 'yogstation/icons/obj/storage.dmi'
alternate_worn_icon = 'yogstation/icons/mob/back.dmi'
item_state = "snail_green"
icon_state = "snail_green"
/obj/item/storage/backpack/banana /obj/item/storage/backpack/banana
name = "banana backpack" name = "banana backpack"
desc = "Is it a backpack made of bananas or a backpack with a banana texture? The world may never know." desc = "Is it a backpack made of bananas or a backpack with a banana texture? The world may never know."
@@ -220,11 +212,11 @@
item_state = "clownfacebackpack" item_state = "clownfacebackpack"
//Clothing Bags //Clothing Bags
/obj/item/storage/backpack/duffelbag/clothing/sec/physician /obj/item/storage/backpack/duffelbag/sec/physician/clothing
name = "Brig Physician's clothing duffelbag" name = "Brig Physician's clothing duffelbag"
desc = "A large duffel bag filled with clothing." desc = "A large duffel bag filled with clothing."
/obj/item/storage/backpack/duffelbag/clothing/sec/physician/PopulateContents() /obj/item/storage/backpack/duffelbag/sec/physician/clothing/PopulateContents()
new /obj/item/clothing/under/yogs/rank/physician(src) new /obj/item/clothing/under/yogs/rank/physician(src)
new /obj/item/clothing/suit/toggle/labcoat/emt/physician(src) new /obj/item/clothing/suit/toggle/labcoat/emt/physician(src)
new /obj/item/clothing/head/soft/emt/phys(src) new /obj/item/clothing/head/soft/emt/phys(src)
@@ -234,4 +226,3 @@
new /obj/item/clothing/suit/toggle/labcoat/physician(src) new /obj/item/clothing/suit/toggle/labcoat/physician(src)
new /obj/item/clothing/head/beret/med/phys(src) new /obj/item/clothing/head/beret/med/phys(src)
new /obj/item/clothing/head/beret/corpsec/phys(src) new /obj/item/clothing/head/beret/corpsec/phys(src)
new /obj/item/clothing/shoes/xeno_wraps/jackboots(src)

View File

@@ -8,12 +8,16 @@
//Mining Medic //Mining Medic
/obj/item/clothing/head/soft/emt/mining /obj/item/clothing/head/soft/emt/mining
name = "Mining Medic's cap" name = "Mining Medic's cap"
desc = "It's a baseball hat with a dark turquoise color and a reflective cross on the top. Has MM embossed into it." desc = "It's a baseball hat with a dark turquoise color and a reflective cross on the top."
icon = 'yogstation/icons/obj/clothing/hats.dmi'
alternate_worn_icon = 'yogstation/icons/mob/head.dmi'
icon_state = "emtminesoft"
item_color = "emtmine"
//Brig Physician //Brig Physician
/obj/item/clothing/head/soft/emt/phys /obj/item/clothing/head/soft/emt/phys
name = "Brig Physician's cap" name = "Brig Physician's cap"
desc = "It's a baseball hat with a dark brown color and a reflective cross on the top. Has BP embossed into it." desc = "It's a baseball hat with a dark brown color and a reflective cross on the top. On the back are "
icon = 'yogstation/icons/obj/clothing/hats.dmi' icon = 'yogstation/icons/obj/clothing/hats.dmi'
alternate_worn_icon = 'yogstation/icons/mob/head.dmi' alternate_worn_icon = 'yogstation/icons/mob/head.dmi'
icon_state = "emtsecsoft" icon_state = "emtsecsoft"

View File

@@ -1,14 +1,14 @@
//Mining Medic //Mining Medic
/obj/item/clothing/suit/toggle/labcoat/emt/explorer /obj/item/clothing/suit/toggle/labcoat/emt/explorer
name = "mining medics jacket" name = "mining medics jacket"
desc = "A protective jacket for medical emergencies on off-world planets. Has MM embossed into it." desc = "A protective jacket for medical emergencies on off-world planets. Has MM embrossed into it."
armor = list(melee = 10, bullet = 10, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 50, acid = 50) armor = list(melee = 10, bullet = 10, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 50, acid = 50)
allowed = list(/obj/item/analyzer,/obj/item/stack/medical,/obj/item/dnainjector,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/hypospray,/obj/item/healthanalyzer,/obj/item/flashlight/pen,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle,/obj/item/paper,/obj/item/melee/classic_baton/telescopic,/obj/item/soap,/obj/item/sensor_device,/obj/item/tank/internals) allowed = list(/obj/item/analyzer,/obj/item/stack/medical,/obj/item/dnainjector,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/hypospray,/obj/item/healthanalyzer,/obj/item/flashlight/pen,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle,/obj/item/paper,/obj/item/melee/classic_baton/telescopic,/obj/item/soap,/obj/item/sensor_device,/obj/item/tank/internals)
//Brig Physician //Brig Physician
/obj/item/clothing/suit/toggle/labcoat/emt/physician /obj/item/clothing/suit/toggle/labcoat/emt/physician
name = "brig physicians jacket" name = "brig physicians jacket"
desc = "A protective jacket for medical emergencies on off-world planets. Has BP embossed into it." desc = "A protective jacket for medical emergencies on off-world planets. Has BP embrossed into it."
alternate_worn_icon = 'yogstation/icons/mob/suit.dmi' alternate_worn_icon = 'yogstation/icons/mob/suit.dmi'
icon = 'yogstation/icons/obj/clothing/suits.dmi' icon = 'yogstation/icons/obj/clothing/suits.dmi'
icon_state = "labcoat_emtsec" icon_state = "labcoat_emtsec"
@@ -16,7 +16,7 @@
/obj/item/clothing/suit/toggle/labcoat/physician /obj/item/clothing/suit/toggle/labcoat/physician
name = "brig physician's labcoat" name = "brig physician's labcoat"
desc = "A white labcoat with red medical crosses. Has BP embossed into it." desc = "A white labcoat with red medical crosses. Has BP embrossed into it."
alternate_worn_icon = 'yogstation/icons/mob/suit.dmi' alternate_worn_icon = 'yogstation/icons/mob/suit.dmi'
icon = 'yogstation/icons/obj/clothing/suits.dmi' icon = 'yogstation/icons/obj/clothing/suits.dmi'
icon_state = "labcoat_sec" icon_state = "labcoat_sec"

View File

@@ -21,7 +21,9 @@
alt_covers_chest = TRUE alt_covers_chest = TRUE
sensor_mode = 3 sensor_mode = 3
random_sensor = FALSE random_sensor = FALSE
mutantrace_variation = MUTANTRACE_VARIATION mutantrace_variation = MUTANTRACE_VARIATION //I need to clean this code
digiversion = TRUE
digiadjusted = TRUE
/obj/item/clothing/under/yogs/rank/physician/white /obj/item/clothing/under/yogs/rank/physician/white
name = "white brig physician's jumpsuit" name = "white brig physician's jumpsuit"
@@ -31,6 +33,8 @@
item_color = "secwhite" item_color = "secwhite"
alt_covers_chest = FALSE alt_covers_chest = FALSE
random_sensor = TRUE random_sensor = TRUE
can_adjust = TRUE
digiadjusted = TRUE
/obj/item/clothing/under/yogs/rank/physician/white/skirt /obj/item/clothing/under/yogs/rank/physician/white/skirt
name = "white brig physician's jumpskirt" name = "white brig physician's jumpskirt"
@@ -41,4 +45,5 @@
can_adjust = FALSE can_adjust = FALSE
body_parts_covered = CHEST|GROIN|ARMS body_parts_covered = CHEST|GROIN|ARMS
fitted = FEMALE_UNIFORM_TOP fitted = FEMALE_UNIFORM_TOP
mutantrace_variation = NO_MUTANTRACE_VARIATION digiversion = FALSE
digiadjusted = FALSE

View File

@@ -1,30 +1,25 @@
/datum/job/brigphysician /datum/job/brigphysician
title = "Brig Physician" title = "Brig Physician"
flag = BRIGPHYS flag = BRIGPHYS // check this
department_head = list("Chief Medical Officer") department_head = list("Chief Medical Officer")
department_flag = MEDSCI department_flag = MEDSCI
faction = "Station" faction = "Station"
total_positions = 1 total_positions = 1
spawn_positions = 1 spawn_positions = 1
supervisors = "the chief medical officer" supervisors = "the chief medical officer and the head of security"
selection_color = "#d4ebf2" selection_color = "#ffeeee"
outfit = /datum/outfit/job/brigphysician outfit = /datum/outfit/job/brigphysician
alt_titles = list("Security Medic", "Security Medical Support", "Penitentiary Medical Care Unit", "Junior Brig Physician", "Detention Center Health Officer")
minimal_character_age = 24 // "According to age statistics published by the Association of American Medical Colleges, the average age among medical students who matriculated at U.S. medical schools in the 2017-2018 school year was 24" minimal_character_age = 24 // "According to age statistics published by the Association of American Medical Colleges, the average age among medical students who matriculated at U.S. medical schools in the 2017-2018 school year was 24"
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_BRIG, ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_MECH_MEDICAL, ACCESS_BRIG_PHYS) access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_MECH_MEDICAL, ACCESS_MECH_SECURITY, ACCESS_BRIG_PHYS)
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_BRIG, ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MECH_MEDICAL, ACCESS_BRIG_PHYS) minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MECH_MEDICAL, ACCESS_BRIG_PHYS)
paycheck = PAYCHECK_MEDIUM paycheck = PAYCHECK_MEDIUM
paycheck_department = ACCOUNT_MED paycheck_department = ACCOUNT_MED
display_order = JOB_DISPLAY_ORDER_BRIG_PHYSICIAN display_order = JOB_DISPLAY_ORDER_BRIG_PHYSICIAN
changed_maps = list("OmegaStation", "EclipseStation") changed_maps = list("EclipseStation")
/datum/job/brigphysician/proc/OmegaStationChanges()
return TRUE
/datum/job/brigphysician/proc/EclipseStationChanges() /datum/job/brigphysician/proc/EclipseStationChanges()
total_positions = 2 total_positions = 2
@@ -34,9 +29,8 @@
name = "Brig Physician" name = "Brig Physician"
jobtype = /datum/job/brigphysician jobtype = /datum/job/brigphysician
pda_type = /obj/item/pda/physician
backpack_contents = list(/obj/item/roller = 1) backpack_contents = list(/obj/item/roller = 1)
belt = /obj/item/pda/physician
ears = /obj/item/radio/headset/headset_medsec ears = /obj/item/radio/headset/headset_medsec
glasses = /obj/item/clothing/glasses/hud/health/sunglasses glasses = /obj/item/clothing/glasses/hud/health/sunglasses
shoes = /obj/item/clothing/shoes/jackboots shoes = /obj/item/clothing/shoes/jackboots

View File

@@ -11,8 +11,6 @@
outfit = /datum/outfit/job/miningmedic outfit = /datum/outfit/job/miningmedic
alt_titles = list("Mining Medical Support", "Lavaland Medical Care Unit", "Junior Mining Medic", "Planetside Health Officer")
minimal_character_age = 24 // "According to age statistics published by the Association of American Medical Colleges, the average age among medical students who matriculated at U.S. medical schools in the 2017-2018 school year was 24" minimal_character_age = 24 // "According to age statistics published by the Association of American Medical Colleges, the average age among medical students who matriculated at U.S. medical schools in the 2017-2018 school year was 24"
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CARGO, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MAILSORTING, ACCESS_MINERAL_STOREROOM, ACCESS_MECH_MINING, ACCESS_MECH_MEDICAL) access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CARGO, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MAILSORTING, ACCESS_MINERAL_STOREROOM, ACCESS_MECH_MINING, ACCESS_MECH_MEDICAL)
@@ -30,23 +28,21 @@
/datum/outfit/job/miningmedic /datum/outfit/job/miningmedic
name = "Mining Medic" name = "Mining Medic"
jobtype = /datum/job/miningmedic jobtype = /datum/job/miningmedic
pda_type = /obj/item/pda/miningmed
backpack_contents = list(/obj/item/roller = 1,\ backpack_contents = list(/obj/item/roller = 1,\
/obj/item/kitchen/knife/combat/survival = 1,\ /obj/item/kitchen/knife/combat/survival = 1,\
/obj/item/gps/mining = 1) /obj/item/gps/mining = 1)
belt = /obj/item/storage/belt/medical/mining belt = /obj/item/storage/belt/mining/medical
ears = /obj/item/radio/headset/headset_medcargo ears = /obj/item/radio/headset/headset_medcargo
glasses = /obj/item/clothing/glasses/hud/health/meson glasses = /obj/item/clothing/glasses/hud/health/meson
shoes = /obj/item/clothing/shoes/workboots/mining shoes = /obj/item/clothing/shoes/workboots/mining
suit = /obj/item/clothing/suit/toggle/labcoat/emt/explorer suit = /obj/item/clothing/suit/toggle/labcoat/emt/explorer
uniform = /obj/item/clothing/under/yogs/rank/miner/medic uniform = /obj/item/clothing/under/yogs/rank/miner/medic
l_hand = /obj/item/storage/firstaid/regular l_hand = /obj/item/storage/firstaid/regular
l_pocket = /obj/item/pda/miningmed
gloves = /obj/item/clothing/gloves/color/latex gloves = /obj/item/clothing/gloves/color/latex
head = /obj/item/clothing/head/soft/emt/mining head = /obj/item/clothing/head/soft/emt/mining
backpack = /obj/item/storage/backpack/medic backpack = /obj/item/storage/backpack/medic
satchel = /obj/item/storage/backpack/satchel/med satchel = /obj/item/storage/backpack/satchel/med
duffelbag = /obj/item/storage/backpack/duffelbag/med duffelbag = /obj/item/storage/backpack/duffelbag/med
box = /obj/item/storage/box/survival_mining box = /obj/item/storage/box/survival_mining
pda_slot = SLOT_L_STORE

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB