Merge branch 'yogstation13-master' into tribal-crafting-port
@@ -12,6 +12,7 @@
|
||||
#define ROBOTICIST (1<<8)
|
||||
#define AI_JF (1<<9)
|
||||
#define CYBORG (1<<10)
|
||||
#define BRIGPHYS (1<<11)
|
||||
|
||||
|
||||
#define MEDSCI (1<<1)
|
||||
@@ -23,7 +24,6 @@
|
||||
#define DOCTOR (1<<4)
|
||||
#define GENETICIST (1<<5)
|
||||
#define VIROLOGIST (1<<6)
|
||||
#define BRIGPHYS (1<<7)
|
||||
|
||||
|
||||
#define CIVILIAN (1<<2)
|
||||
@@ -62,27 +62,27 @@
|
||||
#define JOB_DISPLAY_ORDER_WARDEN 4
|
||||
#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 5
|
||||
#define JOB_DISPLAY_ORDER_DETECTIVE 6
|
||||
#define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 7
|
||||
#define JOB_DISPLAY_ORDER_STATION_ENGINEER 8
|
||||
#define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 9
|
||||
#define JOB_DISPLAY_ORDER_SIGNAL_TECHNICIAN 10
|
||||
#define JOB_DISPLAY_ORDER_AI 11
|
||||
#define JOB_DISPLAY_ORDER_CYBORG 12
|
||||
#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 13
|
||||
#define JOB_DISPLAY_ORDER_SCIENTIST 14
|
||||
#define JOB_DISPLAY_ORDER_ROBOTICIST 15
|
||||
#define JOB_DISPLAY_ORDER_QUARTERMASTER 16
|
||||
#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 17
|
||||
#define JOB_DISPLAY_ORDER_SHAFT_MINER 18
|
||||
#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 19
|
||||
#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 20
|
||||
#define JOB_DISPLAY_ORDER_CHEMIST 21
|
||||
#define JOB_DISPLAY_ORDER_GENETICIST 22
|
||||
#define JOB_DISPLAY_ORDER_VIROLOGIST 23
|
||||
#define JOB_DISPLAY_ORDER_MINING_MEDIC 24
|
||||
#define JOB_DISPLAY_ORDER_PARAMEDIC 25
|
||||
#define JOB_DISPLAY_ORDER_PSYCHIATRIST 26
|
||||
#define JOB_DISPLAY_ORDER_BRIG_PHYSICIAN 27
|
||||
#define JOB_DISPLAY_ORDER_BRIG_PHYSICIAN 7
|
||||
#define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 8
|
||||
#define JOB_DISPLAY_ORDER_STATION_ENGINEER 9
|
||||
#define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 10
|
||||
#define JOB_DISPLAY_ORDER_SIGNAL_TECHNICIAN 11
|
||||
#define JOB_DISPLAY_ORDER_AI 12
|
||||
#define JOB_DISPLAY_ORDER_CYBORG 13
|
||||
#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 14
|
||||
#define JOB_DISPLAY_ORDER_SCIENTIST 15
|
||||
#define JOB_DISPLAY_ORDER_ROBOTICIST 16
|
||||
#define JOB_DISPLAY_ORDER_QUARTERMASTER 17
|
||||
#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 18
|
||||
#define JOB_DISPLAY_ORDER_SHAFT_MINER 19
|
||||
#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 20
|
||||
#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 21
|
||||
#define JOB_DISPLAY_ORDER_CHEMIST 22
|
||||
#define JOB_DISPLAY_ORDER_GENETICIST 23
|
||||
#define JOB_DISPLAY_ORDER_VIROLOGIST 24
|
||||
#define JOB_DISPLAY_ORDER_MINING_MEDIC 25
|
||||
#define JOB_DISPLAY_ORDER_PARAMEDIC 26
|
||||
#define JOB_DISPLAY_ORDER_PSYCHIATRIST 27
|
||||
#define JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL 28
|
||||
#define JOB_DISPLAY_ORDER_BARTENDER 29
|
||||
#define JOB_DISPLAY_ORDER_COOK 30
|
||||
|
||||
@@ -118,12 +118,6 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th
|
||||
user.update_body()
|
||||
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.
|
||||
for(var/slot in GLOB.slots)
|
||||
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]
|
||||
if(equip)
|
||||
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()
|
||||
|
||||
@@ -172,4 +162,4 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th
|
||||
round_credits += "<br>"
|
||||
|
||||
round_credits += ..()
|
||||
return round_credits
|
||||
return round_credits
|
||||
|
||||
77
code/game/gamemodes/overthrow/overthrow.dm
Normal 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>"
|
||||
@@ -38,6 +38,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
|
||||
jobs["Warden"] = 11
|
||||
jobs["Security Officer"] = 12
|
||||
jobs["Detective"] = 13
|
||||
jobs["Brig Physician"] = 14
|
||||
jobs["Chief Medical Officer"] = 20
|
||||
jobs["Chemist"] = 21
|
||||
jobs["Geneticist"] = 22
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
new /obj/item/pet_carrier(src)
|
||||
new /obj/item/cartridge/captain(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(src)
|
||||
new /obj/item/restraints/handcuffs/cable/zipties(src)
|
||||
@@ -31,7 +30,6 @@
|
||||
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/clothing/neck/cloak/hop(src)
|
||||
new /obj/item/megaphone/command(src)
|
||||
new /obj/item/clothing/suit/armor/vest/alt(src)
|
||||
new /obj/item/assembly/flash/handheld(src)
|
||||
@@ -44,7 +42,7 @@
|
||||
new /obj/item/storage/photo_album/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/storage/backpack/duffelbag/clothing/hop(src)
|
||||
new /obj/item/storage/backpack/duffelbag/hop/clothing(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/hos
|
||||
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(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/holosign_creator/security(src)
|
||||
new /obj/item/storage/lockbox/loyalty(src)
|
||||
@@ -72,7 +69,7 @@
|
||||
new /obj/item/storage/photo_album/HoS(src)
|
||||
new /obj/item/clipboard/yog/paperwork/hos(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
|
||||
name = "\proper warden's locker"
|
||||
@@ -96,7 +93,7 @@
|
||||
new /obj/item/gun/ballistic/shotgun/automatic/combat/compact(src)
|
||||
new /obj/item/clipboard/yog/paperwork/warden(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
|
||||
name = "security officer's locker"
|
||||
@@ -175,7 +172,7 @@
|
||||
new /obj/item/storage/belt/holster/full(src)
|
||||
new /obj/item/pinpointer/crew(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
|
||||
name = "lethal injections"
|
||||
@@ -306,7 +303,7 @@
|
||||
|
||||
/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/radio/headset/headset_medsec(src)
|
||||
new /obj/item/storage/belt/medical(src)
|
||||
@@ -315,4 +312,3 @@
|
||||
new /obj/item/storage/box/bodybags(src)
|
||||
new /obj/item/tank/internals/anesthetic(src)
|
||||
new /obj/item/clothing/mask/breath/medical(src)
|
||||
new /obj/item/defibrillator/loaded(src)
|
||||
|
||||
@@ -1,132 +1,112 @@
|
||||
/datum/skillcape
|
||||
var/name = ""
|
||||
var/minutes = 18000
|
||||
var/job
|
||||
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/path = /obj/item/clothing/neck/skillcape
|
||||
var/id
|
||||
var/name = ""
|
||||
var/minutes = 18000
|
||||
var/job
|
||||
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/path = /obj/item/clothing/neck/skillcape
|
||||
|
||||
/datum/skillcape/trimmed
|
||||
name = "trimmed cape of skill"
|
||||
minutes = 30000
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed
|
||||
name = "trimmed cape of skill"
|
||||
minutes = 30000
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed
|
||||
|
||||
|
||||
/datum/skillcape/maximum
|
||||
name = "cape of the absolute pinnacle of beings"
|
||||
special = TRUE
|
||||
capetype = "max"
|
||||
path = /obj/item/clothing/neck/skillcape/maximum
|
||||
id = "max"
|
||||
name = "cape of the absolute pinnacle of beings"
|
||||
special = TRUE
|
||||
capetype = "max"
|
||||
path = /obj/item/clothing/neck/skillcape/maximum
|
||||
|
||||
/datum/skillcape/captain
|
||||
name = "cape of the captain"
|
||||
job = "Captain"
|
||||
path = /obj/item/clothing/neck/skillcape/captain
|
||||
id = "cap"
|
||||
name = "cape of the captain"
|
||||
job = "Captain"
|
||||
path = /obj/item/clothing/neck/skillcape/captain
|
||||
|
||||
/datum/skillcape/trimmed/captain
|
||||
name = "cape of the grand commander"
|
||||
job = "Captain"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/captain
|
||||
id = "cap_trimmed"
|
||||
name = "cape of the grand commander"
|
||||
job = "Captain"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/captain
|
||||
|
||||
/datum/skillcape/hop
|
||||
name = "cape of the head of personel"
|
||||
job = "Head of Personnel"
|
||||
path = /obj/item/clothing/neck/skillcape/hop
|
||||
id = "hop"
|
||||
name = "cape of the head of personel"
|
||||
job = "Head of Personnel"
|
||||
path = /obj/item/clothing/neck/skillcape/hop
|
||||
|
||||
/datum/skillcape/trimmed/hop
|
||||
name = "cape of the grand torchbearer"
|
||||
job = "Head of Personnel"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/hop
|
||||
id = "hop_trimmed"
|
||||
name = "cape of the grand torchbearer"
|
||||
job = "Head of Personnel"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/hop
|
||||
|
||||
/datum/skillcape/hos
|
||||
name = "cape of the head of security"
|
||||
job = "Head of Security"
|
||||
path = /obj/item/clothing/neck/skillcape/hos
|
||||
id = "hos"
|
||||
name = "cape of the head of security"
|
||||
job = "Head of Security"
|
||||
path = /obj/item/clothing/neck/skillcape/hos
|
||||
|
||||
/datum/skillcape/trimmed/hos
|
||||
name = "cape of the grand executor"
|
||||
job = "Head of Security"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/hos
|
||||
id = "hos_trimmed"
|
||||
name = "cape of the grand executor"
|
||||
job = "Head of Security"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/hos
|
||||
|
||||
/datum/skillcape/chiefengineer
|
||||
name = "cape of the chief engineer"
|
||||
job = "Chief Engineer"
|
||||
path = /obj/item/clothing/neck/skillcape/chiefengineer
|
||||
id = "ce"
|
||||
name = "cape of the chief engineer"
|
||||
job = "Chief Engineer"
|
||||
path = /obj/item/clothing/neck/skillcape/chiefengineer
|
||||
|
||||
/datum/skillcape/trimmed/chiefengineer
|
||||
name = "cape of the grand constructor"
|
||||
job = "Chief Engineer"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/chiefengineer
|
||||
id = "ce_trimmed"
|
||||
name = "cape of the grand constructor"
|
||||
job = "Chief Engineer"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/chiefengineer
|
||||
|
||||
/datum/skillcape/researchdirector
|
||||
name = "cape of the research director"
|
||||
job = "Research Director"
|
||||
path = /obj/item/clothing/neck/skillcape/researchdirector
|
||||
id = "rd"
|
||||
name = "cape of the research director"
|
||||
job = "Research Director"
|
||||
path = /obj/item/clothing/neck/skillcape/researchdirector
|
||||
|
||||
/datum/skillcape/trimmed/researchdirector
|
||||
name = "cape of the grand scholar"
|
||||
job = "Research Director"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/researchdirector
|
||||
id = "rd_trimmed"
|
||||
name = "cape of the grand scholar"
|
||||
job = "Research Director"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/researchdirector
|
||||
|
||||
/datum/skillcape/cmo
|
||||
name = "cape of the chief medical officer"
|
||||
job = "Chief Medical Officer"
|
||||
path = /obj/item/clothing/neck/skillcape/cmo
|
||||
id = "cmo"
|
||||
name = "cape of the chief medical officer"
|
||||
job = "Chief Medical Officer"
|
||||
path = /obj/item/clothing/neck/skillcape/cmo
|
||||
|
||||
/datum/skillcape/trimmed/cmo
|
||||
name = "cape of the grand surgeon"
|
||||
job = "Chief Medical Officer"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/cmo
|
||||
id = "cmo_trimmed"
|
||||
name = "cape of the grand surgeon"
|
||||
job = "Chief Medical Officer"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/cmo
|
||||
|
||||
/datum/skillcape/warden
|
||||
name = "cape of the warden"
|
||||
job = "Warden"
|
||||
path = /obj/item/clothing/neck/skillcape/warden
|
||||
id = "warden"
|
||||
name = "cape of the warden"
|
||||
job = "Warden"
|
||||
path = /obj/item/clothing/neck/skillcape/warden
|
||||
|
||||
/datum/skillcape/trimmed/warden
|
||||
name = "cape of the grand warden"
|
||||
job = "Warden"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/warden
|
||||
id = "warden_trimmed"
|
||||
name = "cape of the grand warden"
|
||||
job = "Warden"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/warden
|
||||
|
||||
/datum/skillcape/security
|
||||
name = "cape of the security officer"
|
||||
job = "Security Officer"
|
||||
path = /obj/item/clothing/neck/skillcape/security
|
||||
id = "security"
|
||||
name = "cape of the security officer"
|
||||
job = "Security Officer"
|
||||
path = /obj/item/clothing/neck/skillcape/security
|
||||
|
||||
/datum/skillcape/trimmed/security
|
||||
name = "cape of the grand security officer"
|
||||
job = "Security Officer"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/security
|
||||
id = "security_trimmed"
|
||||
name = "cape of the grand security officer"
|
||||
job = "Security Officer"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/security
|
||||
|
||||
/datum/skillcape/detective
|
||||
name = "cape of the detective"
|
||||
job = "Detective"
|
||||
path = /obj/item/clothing/neck/skillcape/detective
|
||||
id = "detective"
|
||||
name = "cape of the detective"
|
||||
job = "Detective"
|
||||
path = /obj/item/clothing/neck/skillcape/detective
|
||||
|
||||
/datum/skillcape/trimmed/detective
|
||||
name = "cape of the grand detective"
|
||||
job = "Detective"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/detective
|
||||
id = "detective_trimmed"
|
||||
name = "cape of the grand detective"
|
||||
job = "Detective"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/detective
|
||||
|
||||
/datum/skillcape/physician
|
||||
name = "cape of the brig physician"
|
||||
@@ -139,327 +119,273 @@
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/physician
|
||||
|
||||
/datum/skillcape/signaltech
|
||||
name = "cape of the signal technician"
|
||||
job = "Signal Technician"
|
||||
path = /obj/item/clothing/neck/skillcape/signaltech
|
||||
id = "signaltech"
|
||||
name = "cape of the signal technician"
|
||||
job = "Signal Technician"
|
||||
path = /obj/item/clothing/neck/skillcape/signaltech
|
||||
|
||||
/datum/skillcape/trimmed/signaltech
|
||||
name = "cape of the grand signal technician"
|
||||
job = "Signal Technician"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/signaltech
|
||||
id = "signaltech_trimmed"
|
||||
name = "cape of the grand signal technician"
|
||||
job = "Signal Technician"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/signaltech
|
||||
|
||||
/datum/skillcape/atmos
|
||||
name = "cape of the atmospheric technician"
|
||||
job = "Atmospheric Technician"
|
||||
path = /obj/item/clothing/neck/skillcape/atmos
|
||||
id = "atmos"
|
||||
name = "cape of the atmospheric technician"
|
||||
job = "Atmospheric Technician"
|
||||
path = /obj/item/clothing/neck/skillcape/atmos
|
||||
|
||||
/datum/skillcape/trimmed/atmos
|
||||
name = "cape of the grand atmospheric technician"
|
||||
job = "Atmospheric Technician"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/atmos
|
||||
id = "atmos_trimmed"
|
||||
name = "cape of the grand atmospheric technician"
|
||||
job = "Atmospheric Technician"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/atmos
|
||||
|
||||
/datum/skillcape/engineer
|
||||
name = "cape of the station engineer"
|
||||
job = "Station Engineer"
|
||||
path = /obj/item/clothing/neck/skillcape/engineer
|
||||
id = "engineer"
|
||||
name = "cape of the station engineer"
|
||||
job = "Station Engineer"
|
||||
path = /obj/item/clothing/neck/skillcape/engineer
|
||||
|
||||
/datum/skillcape/trimmed/engineer
|
||||
name = "cape of the grand station engineer"
|
||||
job = "Station Engineer"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/engineer
|
||||
id = "engineer_trimmed"
|
||||
name = "cape of the grand station engineer"
|
||||
job = "Station Engineer"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/engineer
|
||||
|
||||
/datum/skillcape/science
|
||||
name = "cape of the scientist"
|
||||
job = "Scientist"
|
||||
path = /obj/item/clothing/neck/skillcape/science
|
||||
id = "science"
|
||||
name = "cape of the scientist"
|
||||
job = "Scientist"
|
||||
path = /obj/item/clothing/neck/skillcape/science
|
||||
|
||||
/datum/skillcape/trimmed/science
|
||||
name = "cape of the grand scientist"
|
||||
job = "Scientist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/science
|
||||
id = "science_trimmed"
|
||||
name = "cape of the grand scientist"
|
||||
job = "Scientist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/science
|
||||
|
||||
/datum/skillcape/robo
|
||||
name = "cape of the roboticist"
|
||||
job = "Roboticist"
|
||||
path = /obj/item/clothing/neck/skillcape/robo
|
||||
id = "robo"
|
||||
name = "cape of the roboticist"
|
||||
job = "Roboticist"
|
||||
path = /obj/item/clothing/neck/skillcape/robo
|
||||
|
||||
/datum/skillcape/trimmed/robo
|
||||
name = "cape of the grand roboticist"
|
||||
job = "Roboticist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/robo
|
||||
id = "robo_trimmed"
|
||||
name = "cape of the grand roboticist"
|
||||
job = "Roboticist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/robo
|
||||
|
||||
/datum/skillcape/psych
|
||||
name = "cape of the psychiatrist"
|
||||
job = "Psychiatrist"
|
||||
path = /obj/item/clothing/neck/skillcape/psych
|
||||
id = "psych"
|
||||
name = "cape of the psychiatrist"
|
||||
job = "Psychiatrist"
|
||||
path = /obj/item/clothing/neck/skillcape/psych
|
||||
|
||||
/datum/skillcape/trimmed/psych
|
||||
name = "cape of the grand psychiatrist"
|
||||
job = "Psychiatrist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/psych
|
||||
id = "psych_trimmed"
|
||||
name = "cape of the grand psychiatrist"
|
||||
job = "Psychiatrist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/psych
|
||||
|
||||
/datum/skillcape/paramedic
|
||||
name = "cape of the paramedic"
|
||||
job = "Paramedic"
|
||||
path = /obj/item/clothing/neck/skillcape/paramedic
|
||||
id = "psych"
|
||||
name = "cape of the paramedic"
|
||||
job = "Paramedic"
|
||||
path = /obj/item/clothing/neck/skillcape/paramedic
|
||||
|
||||
/datum/skillcape/trimmed/paramedic
|
||||
name = "cape of the grand paramedic"
|
||||
job = "Paramedic"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/paramedic
|
||||
id = "psych_trimmed"
|
||||
name = "cape of the grand paramedic"
|
||||
job = "Paramedic"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/paramedic
|
||||
|
||||
/datum/skillcape/gene
|
||||
name = "cape of the geneticist"
|
||||
job = "Geneticist"
|
||||
path = /obj/item/clothing/neck/skillcape/gene
|
||||
id = "gene"
|
||||
name = "cape of the geneticist"
|
||||
job = "Geneticist"
|
||||
path = /obj/item/clothing/neck/skillcape/gene
|
||||
|
||||
/datum/skillcape/trimmed/gene
|
||||
name = "cape of the grand geneticist"
|
||||
job = "Geneticist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/gene
|
||||
id = "gene_trimmed"
|
||||
name = "cape of the grand geneticist"
|
||||
job = "Geneticist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/gene
|
||||
|
||||
/datum/skillcape/viro
|
||||
name = "cape of the virologist"
|
||||
job = "Virologist"
|
||||
path = /obj/item/clothing/neck/skillcape/viro
|
||||
id = "viro"
|
||||
name = "cape of the virologist"
|
||||
job = "Virologist"
|
||||
path = /obj/item/clothing/neck/skillcape/viro
|
||||
|
||||
/datum/skillcape/trimmed/viro
|
||||
name = "cape of the grand virologist"
|
||||
job = "Virologist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/viro
|
||||
id = "viro_trimmed"
|
||||
name = "cape of the grand virologist"
|
||||
job = "Virologist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/viro
|
||||
|
||||
/datum/skillcape/chem
|
||||
name = "cape of the chemist"
|
||||
job = "Chemist"
|
||||
path = /obj/item/clothing/neck/skillcape/chem
|
||||
id = "chem"
|
||||
name = "cape of the chemist"
|
||||
job = "Chemist"
|
||||
path = /obj/item/clothing/neck/skillcape/chem
|
||||
|
||||
/datum/skillcape/trimmed/chem
|
||||
name = "cape of the grand chemist"
|
||||
job = "Chemist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/chem
|
||||
id = "chem_trimmed"
|
||||
name = "cape of the grand chemist"
|
||||
job = "Chemist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/chem
|
||||
|
||||
/datum/skillcape/doctor
|
||||
name = "cape of the doctor"
|
||||
job = "Medical Doctor"
|
||||
path = /obj/item/clothing/neck/skillcape/doctor
|
||||
id = "doctor"
|
||||
name = "cape of the doctor"
|
||||
job = "Medical Doctor"
|
||||
path = /obj/item/clothing/neck/skillcape/doctor
|
||||
|
||||
/datum/skillcape/trimmed/doctor
|
||||
name = "cape of the grand doctor"
|
||||
job = "Medical Doctor"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/doctor
|
||||
id = "doctor_trimmed"
|
||||
name = "cape of the grand doctor"
|
||||
job = "Medical Doctor"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/doctor
|
||||
|
||||
/datum/skillcape/minemedic
|
||||
name = "cape of the mining medic"
|
||||
job = "Mining Medic"
|
||||
path = /obj/item/clothing/neck/skillcape/minemedic
|
||||
id = "minemeic"
|
||||
name = "cape of the mining medic"
|
||||
job = "Mining Medic"
|
||||
path = /obj/item/clothing/neck/skillcape/minemedic
|
||||
|
||||
/datum/skillcape/trimmed/minemedic
|
||||
name = "cape of the grand minic medic"
|
||||
job = "Mining Medic"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/minemedic
|
||||
id = "minemeic_trimmed"
|
||||
name = "cape of the grand mining medic"
|
||||
job = "Mining Medic"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/minemedic
|
||||
|
||||
/datum/skillcape/mining
|
||||
name = "cape of the miner"
|
||||
job = "Shaft Miner"
|
||||
path = /obj/item/clothing/neck/skillcape/mining
|
||||
id = "mining"
|
||||
name = "cape of the miner"
|
||||
job = "Shaft Miner"
|
||||
path = /obj/item/clothing/neck/skillcape/mining
|
||||
|
||||
/datum/skillcape/trimmed/mining
|
||||
name = "cape of the grand miner"
|
||||
job = "Shaft Miner"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/mining
|
||||
id = "mining_trimmed"
|
||||
name = "cape of the grand miner"
|
||||
job = "Shaft Miner"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/mining
|
||||
|
||||
/datum/skillcape/cargo
|
||||
name = "cape of the cargo technician"
|
||||
job = "Cargo Technician"
|
||||
path = /obj/item/clothing/neck/skillcape/cargo
|
||||
id = "cargo"
|
||||
name = "cape of the cargo technician"
|
||||
job = "Cargo Technician"
|
||||
path = /obj/item/clothing/neck/skillcape/cargo
|
||||
|
||||
/datum/skillcape/trimmed/cargo
|
||||
name = "cape of the grand cargo technician"
|
||||
job = "Cargo Technician"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/cargo
|
||||
id = "cargo_trimmed"
|
||||
name = "cape of the grand cargo technician"
|
||||
job = "Cargo Technician"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/cargo
|
||||
|
||||
/datum/skillcape/quartermaster
|
||||
name = "cape of the quartermaster"
|
||||
job = "Quartermaster"
|
||||
path = /obj/item/clothing/neck/skillcape/quartermaster
|
||||
id = "qm"
|
||||
name = "cape of the quartermaster"
|
||||
job = "Quartermaster"
|
||||
path = /obj/item/clothing/neck/skillcape/quartermaster
|
||||
|
||||
/datum/skillcape/trimmed/quartermaster
|
||||
name = "cape of the grand quartermaster"
|
||||
job = "Quartermaster"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/quartermaster
|
||||
id = "qm_trimmed"
|
||||
name = "cape of the grand quartermaster"
|
||||
job = "Quartermaster"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/quartermaster
|
||||
|
||||
/datum/skillcape/tourist
|
||||
name = "cape of the tourist"
|
||||
job = "Tourist"
|
||||
path = /obj/item/clothing/neck/skillcape/tourist
|
||||
id = "tourist"
|
||||
name = "cape of the tourist"
|
||||
job = "Tourist"
|
||||
path = /obj/item/clothing/neck/skillcape/tourist
|
||||
|
||||
/datum/skillcape/trimmed/tourist
|
||||
name = "cape of the grand tourist"
|
||||
job = "Tourist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/tourist
|
||||
id = "tourist_trimmed"
|
||||
name = "cape of the grand tourist"
|
||||
job = "Tourist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/tourist
|
||||
|
||||
/datum/skillcape/assistant
|
||||
name = "cape of the greytider"
|
||||
job = "Assistant"
|
||||
path = /obj/item/clothing/neck/skillcape/assistant
|
||||
id = "assistant"
|
||||
name = "cape of the greytider"
|
||||
job = "Assistant"
|
||||
path = /obj/item/clothing/neck/skillcape/assistant
|
||||
|
||||
/datum/skillcape/trimmed/assistant
|
||||
name = "cape of the grand greytider"
|
||||
job = "Assistant"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/assistant
|
||||
id = "assistant_trimmed"
|
||||
name = "cape of the grand greytider"
|
||||
job = "Assistant"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/assistant
|
||||
|
||||
/datum/skillcape/clown
|
||||
name = "cape of the clown"
|
||||
job = "Clown"
|
||||
path = /obj/item/clothing/neck/skillcape/clown
|
||||
id = "clown"
|
||||
name = "cape of the clown"
|
||||
job = "Clown"
|
||||
path = /obj/item/clothing/neck/skillcape/clown
|
||||
|
||||
/datum/skillcape/trimmed/clown
|
||||
name = "cape of the grand clown"
|
||||
job = "Clown"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/clown
|
||||
id = "clown_trimmed"
|
||||
name = "cape of the grand clown"
|
||||
job = "Clown"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/clown
|
||||
|
||||
/datum/skillcape/mime
|
||||
name = "cape of the mime"
|
||||
job = "Mime"
|
||||
path = /obj/item/clothing/neck/skillcape/mime
|
||||
id = "mime"
|
||||
name = "cape of the mime"
|
||||
job = "Mime"
|
||||
path = /obj/item/clothing/neck/skillcape/mime
|
||||
|
||||
/datum/skillcape/trimmed/mime
|
||||
name = "cape of the grand mime"
|
||||
job = "Mime"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/mime
|
||||
id = "mime_trimmed"
|
||||
name = "cape of the grand mime"
|
||||
job = "Mime"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/mime
|
||||
|
||||
/datum/skillcape/chaplain
|
||||
name = "cape of the chaplain"
|
||||
job = "Chaplain"
|
||||
path = /obj/item/clothing/neck/skillcape/chaplain
|
||||
id = "chaplain"
|
||||
name = "cape of the chaplain"
|
||||
job = "Chaplain"
|
||||
path = /obj/item/clothing/neck/skillcape/chaplain
|
||||
|
||||
/datum/skillcape/trimmed/chaplain
|
||||
name = "cape of the grand chaplain"
|
||||
job = "Chaplain"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/chaplain
|
||||
id = "chaplain_trimmed"
|
||||
name = "cape of the grand chaplain"
|
||||
job = "Chaplain"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/chaplain
|
||||
|
||||
/datum/skillcape/curator
|
||||
name = "cape of the curator"
|
||||
job = "Curator"
|
||||
path = /obj/item/clothing/neck/skillcape/curator
|
||||
id = "curator"
|
||||
name = "cape of the curator"
|
||||
job = "Curator"
|
||||
path = /obj/item/clothing/neck/skillcape/curator
|
||||
|
||||
/datum/skillcape/trimmed/curator
|
||||
name = "cape of the grand curator"
|
||||
job = "Curator"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/curator
|
||||
id = "curator_trimmed"
|
||||
name = "cape of the grand curator"
|
||||
job = "Curator"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/curator
|
||||
|
||||
/datum/skillcape/lawyer
|
||||
name = "cape of the lawyer"
|
||||
job = "Lawyer"
|
||||
path = /obj/item/clothing/neck/skillcape/lawyer
|
||||
id = "lawyer"
|
||||
name = "cape of the lawyer"
|
||||
job = "Lawyer"
|
||||
path = /obj/item/clothing/neck/skillcape/lawyer
|
||||
|
||||
/datum/skillcape/trimmed/lawyer
|
||||
name = "cape of the grand lawyer"
|
||||
job = "Lawyer"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/lawyer
|
||||
id = "lawyer_trimmed"
|
||||
name = "cape of the grand lawyer"
|
||||
job = "Lawyer"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/lawyer
|
||||
|
||||
/datum/skillcape/clerk
|
||||
name = "cape of the clerk"
|
||||
job = "Clerk"
|
||||
path = /obj/item/clothing/neck/skillcape/clerk
|
||||
id = "clerk"
|
||||
name = "cape of the clerk"
|
||||
job = "Clerk"
|
||||
path = /obj/item/clothing/neck/skillcape/clerk
|
||||
|
||||
/datum/skillcape/trimmed/clerk
|
||||
name = "cape of the grand clerk"
|
||||
job = "Clerk"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/clerk
|
||||
id = "clerk_trimmed"
|
||||
name = "cape of the grand clerk"
|
||||
job = "Clerk"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/clerk
|
||||
|
||||
/datum/skillcape/janitor
|
||||
name = "cape of the janitor"
|
||||
job = "Janitor"
|
||||
path = /obj/item/clothing/neck/skillcape/janitor
|
||||
id = "janitor"
|
||||
name = "cape of the janitor"
|
||||
job = "Janitor"
|
||||
path = /obj/item/clothing/neck/skillcape/janitor
|
||||
|
||||
/datum/skillcape/trimmed/janitor
|
||||
name = "cape of the grand janitor"
|
||||
job = "Janitor"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/janitor
|
||||
id = "janitor_trimmed"
|
||||
name = "cape of the grand janitor"
|
||||
job = "Janitor"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/janitor
|
||||
|
||||
/datum/skillcape/bartender
|
||||
name = "cape of the bartender"
|
||||
job = "Bartender"
|
||||
path = /obj/item/clothing/neck/skillcape/bartender
|
||||
id = "bartender"
|
||||
name = "cape of the bartender"
|
||||
job = "Bartender"
|
||||
path = /obj/item/clothing/neck/skillcape/bartender
|
||||
|
||||
/datum/skillcape/trimmed/bartender
|
||||
name = "cape of the grand bartender"
|
||||
job = "Bartender"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/bartender
|
||||
id = "bartender_trimmed"
|
||||
name = "cape of the grand bartender"
|
||||
job = "Bartender"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/bartender
|
||||
|
||||
/datum/skillcape/cook
|
||||
name = "cape of the cook"
|
||||
job = "Cook"
|
||||
path = /obj/item/clothing/neck/skillcape/cook
|
||||
id = "cook"
|
||||
name = "cape of the cook"
|
||||
job = "Cook"
|
||||
path = /obj/item/clothing/neck/skillcape/cook
|
||||
|
||||
/datum/skillcape/trimmed/cook
|
||||
name = "cape of the grand cook"
|
||||
job = "Cook"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/cook
|
||||
id = "cook_trimmed"
|
||||
name = "cape of the grand cook"
|
||||
job = "Cook"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/cook
|
||||
|
||||
/datum/skillcape/botany
|
||||
name = "cape of the botanist"
|
||||
job = "Botanist"
|
||||
path = /obj/item/clothing/neck/skillcape/botany
|
||||
id = "botany"
|
||||
name = "cape of the botanist"
|
||||
job = "Botanist"
|
||||
path = /obj/item/clothing/neck/skillcape/botany
|
||||
|
||||
/datum/skillcape/trimmed/botany
|
||||
name = "cape of the grand botanist"
|
||||
job = "Botanist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/botany
|
||||
id = "botany_trimmed"
|
||||
name = "cape of the grand botanist"
|
||||
job = "Botanist"
|
||||
path = /obj/item/clothing/neck/skillcape/trimmed/botany
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
//check if it doesn't require any access at all
|
||||
if(src.check_access(null))
|
||||
@@ -29,21 +29,12 @@
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/// Get the accesses on the item
|
||||
/obj/item/proc/GetAccess()
|
||||
return list()
|
||||
|
||||
/// Get the ID in the object, used for PDAs
|
||||
/obj/item/proc/GetID()
|
||||
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)
|
||||
. = list()
|
||||
if(!access_text)
|
||||
@@ -54,7 +45,7 @@
|
||||
if(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()
|
||||
//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)
|
||||
@@ -66,11 +57,10 @@
|
||||
for(var/b in text2access(req_one_access_txt))
|
||||
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)
|
||||
return check_access_list(I ? I.GetAccess() : null)
|
||||
|
||||
/// Check if an access list has sufficient access
|
||||
/obj/proc/check_access_list(list/access_list)
|
||||
gen_access()
|
||||
|
||||
@@ -94,11 +84,9 @@
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/// Checks ntnet access
|
||||
/obj/proc/check_access_ntnet(datum/netdata/data)
|
||||
return check_access_list(data.passkey)
|
||||
|
||||
/// Get access for centcom job
|
||||
/proc/get_centcom_access(job)
|
||||
switch(job)
|
||||
if("VIP Guest")
|
||||
@@ -136,7 +124,6 @@
|
||||
if("HONK Squad Trooper")
|
||||
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_SPECOPS, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE)
|
||||
|
||||
/// Gets all station access
|
||||
/proc/get_all_accesses()
|
||||
return list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT,
|
||||
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_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()
|
||||
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)
|
||||
switch(class)
|
||||
if("commander")
|
||||
@@ -173,11 +152,9 @@
|
||||
if("med")
|
||||
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_LIVING)
|
||||
|
||||
/// Gets all syndicate access
|
||||
/proc/get_all_syndicate_access()
|
||||
return list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER)
|
||||
|
||||
/// Gets access from region ID
|
||||
/proc/get_region_accesses(code)
|
||||
switch(code)
|
||||
if(0)
|
||||
@@ -185,9 +162,9 @@
|
||||
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)
|
||||
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
|
||||
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
|
||||
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
|
||||
@@ -197,7 +174,6 @@
|
||||
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)
|
||||
|
||||
/// Gets the name from region ID
|
||||
/proc/get_region_accesses_name(code)
|
||||
switch(code)
|
||||
if(0)
|
||||
@@ -217,7 +193,6 @@
|
||||
if(7) //command
|
||||
return "Command"
|
||||
|
||||
/// Gets teh description for an access
|
||||
/proc/get_access_desc(A)
|
||||
switch(A)
|
||||
if(ACCESS_CARGO)
|
||||
@@ -359,17 +334,8 @@
|
||||
return "Clerk"
|
||||
if(ACCESS_BRIG_PHYS)
|
||||
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
|
||||
|
||||
/// Get descriptions for centcom accesses
|
||||
/proc/get_centcom_access_desc(A)
|
||||
switch(A)
|
||||
if(ACCESS_CENT_GENERAL)
|
||||
@@ -391,7 +357,6 @@
|
||||
if(ACCESS_CENT_BAR)
|
||||
return "Code Scotch"
|
||||
|
||||
/// Gets all jobs
|
||||
/proc/get_all_jobs()
|
||||
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",
|
||||
@@ -401,26 +366,20 @@
|
||||
"Signal Technician", "Mining Medic", "Paramedic", "Psychiatrist", "Clerk", "Tourist", "Space Bartender", "Artist", "Brig Physician")
|
||||
// yogs end
|
||||
|
||||
/// Gets all jobs with hud icons
|
||||
/proc/get_all_job_icons() //For all existing HUD icons
|
||||
return get_all_jobs() + list("Prisoner")
|
||||
|
||||
/// Gets 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")
|
||||
|
||||
/// Gets all task for jobs
|
||||
/proc/get_all_task_force_jobs()
|
||||
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
|
||||
var/obj/item/card/id/I = GetID()
|
||||
if(!I)
|
||||
return
|
||||
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
|
||||
return jobName
|
||||
if(jobName in get_all_centcom_jobs()) //Return with the NT logo if it is a CentCom job
|
||||
|
||||
@@ -12,14 +12,11 @@
|
||||
minimal_player_age = 7
|
||||
exp_requirements = 300
|
||||
exp_type = EXP_TYPE_CREW
|
||||
exp_type_department = EXP_TYPE_SECURITY
|
||||
|
||||
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)
|
||||
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()
|
||||
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()
|
||||
paycheck = PAYCHECK_HARD
|
||||
paycheck_department = ACCOUNT_SEC
|
||||
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
|
||||
@@ -44,11 +41,9 @@
|
||||
name = "Warden"
|
||||
jobtype = /datum/job/warden
|
||||
|
||||
pda_type = /obj/item/pda/warden
|
||||
|
||||
belt = /obj/item/pda/warden
|
||||
ears = /obj/item/radio/headset/headset_sec/alt
|
||||
uniform = /obj/item/clothing/under/rank/warden
|
||||
uniform_skirt = /obj/item/clothing/under/rank/warden/skirt
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
suit = /obj/item/clothing/suit/armor/vest/warden/alt
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
|
||||
@@ -53,7 +53,10 @@ GLOBAL_LIST_INIT(original_security_positions, list(
|
||||
"Head of Security",
|
||||
"Warden",
|
||||
"Detective",
|
||||
"Security Officer"))
|
||||
"Security Officer",
|
||||
//Yogs Start: Yog jobs
|
||||
"Brig Physician"))
|
||||
//Yogs End
|
||||
|
||||
GLOBAL_LIST_INIT(original_nonhuman_positions, list(
|
||||
"AI",
|
||||
|
||||
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 111 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 41 KiB |
@@ -14,7 +14,7 @@
|
||||
|
||||
/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.
|
||||
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)
|
||||
cut = FALSE
|
||||
appears_split = FALSE
|
||||
@@ -23,21 +23,21 @@
|
||||
return TRUE
|
||||
if(istype(W, /obj/item/scalpel) && istype(loc, /turf) && !appears_split) // you gotta do this on the ground.
|
||||
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(!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
|
||||
name = "cut [initial(name)]"
|
||||
icon_state = "holdingpack-cut"
|
||||
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
|
||||
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(!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
|
||||
appears_split = TRUE
|
||||
name = "split [initial(name)]"
|
||||
@@ -57,21 +57,21 @@
|
||||
twin.name = "split [initial(twin.name)]"
|
||||
twin.icon_state = "holdingpack-split-left"
|
||||
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)
|
||||
return TRUE
|
||||
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(!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)
|
||||
var/obj/item/disabled_boh/replacement = new(loc)
|
||||
replacement.icon_state = replacetext(icon_state, "holdingpack", "brokenpack")
|
||||
replacement.name = name
|
||||
qdel(src)
|
||||
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)
|
||||
return TRUE
|
||||
return ..()
|
||||
@@ -121,7 +121,7 @@
|
||||
continue
|
||||
for(var/mob/living/M in T)
|
||||
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.
|
||||
T.TerraformTurf(/turf/open/chasm/magic, /turf/open/chasm/magic)
|
||||
for(var/fabricarea in get_areas(/area/fabric_of_reality))
|
||||
@@ -195,14 +195,6 @@
|
||||
item_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
|
||||
name = "banana backpack"
|
||||
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"
|
||||
|
||||
//Clothing Bags
|
||||
/obj/item/storage/backpack/duffelbag/clothing/sec/physician
|
||||
/obj/item/storage/backpack/duffelbag/sec/physician/clothing
|
||||
name = "Brig Physician's clothing duffelbag"
|
||||
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/suit/toggle/labcoat/emt/physician(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/head/beret/med/phys(src)
|
||||
new /obj/item/clothing/head/beret/corpsec/phys(src)
|
||||
new /obj/item/clothing/shoes/xeno_wraps/jackboots(src)
|
||||
|
||||
@@ -8,12 +8,16 @@
|
||||
//Mining Medic
|
||||
/obj/item/clothing/head/soft/emt/mining
|
||||
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
|
||||
/obj/item/clothing/head/soft/emt/phys
|
||||
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'
|
||||
alternate_worn_icon = 'yogstation/icons/mob/head.dmi'
|
||||
icon_state = "emtsecsoft"
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
//Mining Medic
|
||||
/obj/item/clothing/suit/toggle/labcoat/emt/explorer
|
||||
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)
|
||||
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
|
||||
/obj/item/clothing/suit/toggle/labcoat/emt/physician
|
||||
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'
|
||||
icon = 'yogstation/icons/obj/clothing/suits.dmi'
|
||||
icon_state = "labcoat_emtsec"
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
/obj/item/clothing/suit/toggle/labcoat/physician
|
||||
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'
|
||||
icon = 'yogstation/icons/obj/clothing/suits.dmi'
|
||||
icon_state = "labcoat_sec"
|
||||
|
||||
@@ -21,7 +21,9 @@
|
||||
alt_covers_chest = TRUE
|
||||
sensor_mode = 3
|
||||
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
|
||||
name = "white brig physician's jumpsuit"
|
||||
@@ -31,6 +33,8 @@
|
||||
item_color = "secwhite"
|
||||
alt_covers_chest = FALSE
|
||||
random_sensor = TRUE
|
||||
can_adjust = TRUE
|
||||
digiadjusted = TRUE
|
||||
|
||||
/obj/item/clothing/under/yogs/rank/physician/white/skirt
|
||||
name = "white brig physician's jumpskirt"
|
||||
@@ -41,4 +45,5 @@
|
||||
can_adjust = FALSE
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
digiversion = FALSE
|
||||
digiadjusted = FALSE
|
||||
|
||||
@@ -1,30 +1,25 @@
|
||||
/datum/job/brigphysician
|
||||
title = "Brig Physician"
|
||||
flag = BRIGPHYS
|
||||
flag = BRIGPHYS // check this
|
||||
department_head = list("Chief Medical Officer")
|
||||
department_flag = MEDSCI
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
supervisors = "the chief medical officer"
|
||||
selection_color = "#d4ebf2"
|
||||
supervisors = "the chief medical officer and the head of security"
|
||||
selection_color = "#ffeeee"
|
||||
|
||||
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"
|
||||
|
||||
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)
|
||||
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_BRIG, ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_MAINT_TUNNELS, 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_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MECH_MEDICAL, ACCESS_BRIG_PHYS)
|
||||
paycheck = PAYCHECK_MEDIUM
|
||||
paycheck_department = ACCOUNT_MED
|
||||
display_order = JOB_DISPLAY_ORDER_BRIG_PHYSICIAN
|
||||
|
||||
changed_maps = list("OmegaStation", "EclipseStation")
|
||||
|
||||
/datum/job/brigphysician/proc/OmegaStationChanges()
|
||||
return TRUE
|
||||
changed_maps = list("EclipseStation")
|
||||
|
||||
/datum/job/brigphysician/proc/EclipseStationChanges()
|
||||
total_positions = 2
|
||||
@@ -34,9 +29,8 @@
|
||||
name = "Brig Physician"
|
||||
jobtype = /datum/job/brigphysician
|
||||
|
||||
pda_type = /obj/item/pda/physician
|
||||
|
||||
backpack_contents = list(/obj/item/roller = 1)
|
||||
belt = /obj/item/pda/physician
|
||||
ears = /obj/item/radio/headset/headset_medsec
|
||||
glasses = /obj/item/clothing/glasses/hud/health/sunglasses
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
|
||||
@@ -11,8 +11,6 @@
|
||||
|
||||
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"
|
||||
|
||||
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
|
||||
name = "Mining Medic"
|
||||
jobtype = /datum/job/miningmedic
|
||||
|
||||
pda_type = /obj/item/pda/miningmed
|
||||
|
||||
backpack_contents = list(/obj/item/roller = 1,\
|
||||
/obj/item/kitchen/knife/combat/survival = 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
|
||||
glasses = /obj/item/clothing/glasses/hud/health/meson
|
||||
shoes = /obj/item/clothing/shoes/workboots/mining
|
||||
suit = /obj/item/clothing/suit/toggle/labcoat/emt/explorer
|
||||
uniform = /obj/item/clothing/under/yogs/rank/miner/medic
|
||||
l_hand = /obj/item/storage/firstaid/regular
|
||||
l_pocket = /obj/item/pda/miningmed
|
||||
gloves = /obj/item/clothing/gloves/color/latex
|
||||
head = /obj/item/clothing/head/soft/emt/mining
|
||||
backpack = /obj/item/storage/backpack/medic
|
||||
satchel = /obj/item/storage/backpack/satchel/med
|
||||
duffelbag = /obj/item/storage/backpack/duffelbag/med
|
||||
box = /obj/item/storage/box/survival_mining
|
||||
pda_slot = SLOT_L_STORE
|
||||
|
||||
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |