Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add: Job Brig Physician #1644

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
808 changes: 603 additions & 205 deletions _maps/map_files220/stations/boxstation.dmm

Large diffs are not rendered by default.

501 changes: 283 additions & 218 deletions _maps/map_files220/stations/deltastation.dmm

Large diffs are not rendered by default.

519 changes: 376 additions & 143 deletions _maps/map_files220/stations/metastation.dmm

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions code/datums/datacore.dm
Original file line number Diff line number Diff line change
Expand Up @@ -533,6 +533,11 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "trainee_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "orange"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/belt.dmi', "utility"), ICON_OVERLAY)

if("Security Medic")
clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "sec_medic_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY)
// SS220 ADDITION - END

if("Syndicate Agent")
Expand Down
2 changes: 2 additions & 0 deletions code/game/jobs/job/security_jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,8 @@
H.dna.SetSEState(GLOB.soberblock, TRUE)
H.check_mutations = 1

datum/job/brigphysic // SS220 ADDITION - add brig physician

/datum/job/officer
title = "Security Officer"
flag = JOB_OFFICER
Expand Down
2 changes: 2 additions & 0 deletions code/game/objects/items/weapons/cards_ids.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1189,6 +1189,8 @@
return "Thunderdome Red"
if("TDgreen")
return "Thunderdome Green"
if("brigphysician")
return "Security Medic" //SS220 ADDICTION - add brig physician
else
return capitalize(skin)

Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/living/carbon/human/species/plasmaman.dm
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
if("Chef")
O = new /datum/outfit/plasmaman/chef

if("Security Officer", "Special Operations Officer")
if("Security Officer", "Special Operations Officer", "Security Medic")
O = new /datum/outfit/plasmaman/security

if("Detective")
Expand Down
1 change: 1 addition & 0 deletions config/example/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -497,6 +497,7 @@ job_slot_amounts = [
{ name = "Security Cadet", lowpop = 0, highpop = 0 },
{ name = "Warden", lowpop = 1, highpop = 1 },
{ name = "Internal Affairs Agent", lowpop = 2, highpop = 2 },
{ name = "Security Medic", lowpop = 1, highpop = 1 },
# Service
{ name = "Bartender", lowpop = 1, highpop = 1 },
{ name = "Botanist", lowpop = 2, highpop = 2 },
Expand Down
Binary file modified icons/obj/pda.dmi
Binary file not shown.
5 changes: 3 additions & 2 deletions modular_ss220/_defines220/code/job_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// Но так как они больше не планируют и выступают против добавления новых профессий, скорее всего ничего и не изменится.

// JOBCAT_"отдел"_LAST - нужен для корректного вывода из БД, иначе чуда не будет.
// Максимальный сдвиг (1<<22), Последний сдвиг (1<<23)
// Максимальный сдвиг (1<<23), Последний сдвиг (1<<24)
// Он должен быть всегда как минимум на 1 больше последнего, по дефолту у ОФФов (1<<16)


Expand All @@ -22,8 +22,9 @@
#define JOB_VIP_GUEST (1<<20)
#define JOB_BANKER (1<<21)
#define JOB_SECURITY_CLOWN (1<<22)
#define JOB_BRIGPHYSICIAN (1<<23)

#define JOBCAT_LAST_ENGSEC (1<<23)
#define JOBCAT_LAST_ENGSEC (1<<24)


// ====================================
Expand Down
2 changes: 1 addition & 1 deletion modular_ss220/aesthetics/better_ids/code/better_ids.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
GLOBAL_LIST_INIT(card_skins_ss220, list(
"id", "silver", "gold", "data",
"assistant", "civilian", "librarian", "chaplain", "janitor", "botanist", "chef", "bartender", "clown", "mime",
"intern", "medical", "paramedic", "psychiatrist", "coroner", "virologist", "chemist", "warden", "internalaffairsagent",
"intern", "medical", "paramedic", "psychiatrist", "coroner", "virologist", "chemist", "brigphysician", "warden", "internalaffairsagent",
"geneticist", "student", "research", "roboticist", "cadet", "security", "detective", "quartermaster", "cargo", "explorer",
"shaftminer", "trainee", "engineering", "atmostech", "captain", "HoP", "HoS", "CMO", "RD", "CE", "prisoner", "rainbow"
))
Expand Down
Binary file modified modular_ss220/aesthetics/better_ids/icons/better_ids.dmi
Binary file not shown.
24 changes: 24 additions & 0 deletions modular_ss220/aesthetics/closets/code/closets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,27 @@

/obj/structure/closet/secure_closet/personal/cabinet
icon = 'modular_ss220/aesthetics/closets/icons/closets.dmi'

/obj/structure/closet/secure_closet/brigphysic
name = "security medic's locker"
req_access = list(ACCESS_SECURITY)
icon_state = "sec"

/obj/structure/closet/secure_closet/brigphysic/populate_contents()
if(prob(50))
new /obj/item/storage/backpack/security(src)
else
new /obj/item/storage/backpack/satchel_sec(src)
new /obj/item/radio/headset/headset_secmedical/alt(src)
new /obj/item/radio/headset/headset_secmedical(src)
new /obj/item/defibrillator/compact/loaded(src)
new /obj/item/holosign_creator/security(src)
new /obj/item/storage/box/gloves(src)
new /obj/item/storage/box/masks(src)
new /obj/item/storage/box/syringes(src)
new /obj/item/storage/box/autoinjectors(src)
new /obj/item/storage/box/bodybags(src)
new /obj/item/clothing/glasses/hud/health/sunglasses(src)
new /obj/item/flashlight/seclite(src)
new /obj/item/clothing/gloves/color/latex(src)
new /obj/item/clothing/gloves/color/latex/nitrile(src)
Binary file modified modular_ss220/clothing/icons/mob/species/drask/under.dmi
Binary file not shown.
Binary file modified modular_ss220/clothing/icons/mob/species/vox/under.dmi
Binary file not shown.
2 changes: 1 addition & 1 deletion modular_ss220/jobs/_jobs.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/datum/modpack/jobs
name = "Работы"
desc = "Новые джобки и изменения старых"
author = "furior, PhantomRU"
author = "furior, PhantomRU, Glamyr"

/datum/modpack/jobs/initialize()
. = ..()
Expand Down
8 changes: 8 additions & 0 deletions modular_ss220/jobs/code/card_id.dm
Original file line number Diff line number Diff line change
Expand Up @@ -209,3 +209,11 @@
access = list(ACCESS_CLOWN, ACCESS_THEATRE, ACCESS_MAINT_TUNNELS, ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT)
icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi'
icon_state = "securityclown"

/obj/item/card/id/brigphysician
name = "Security Medic ID"
icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi'
icon_state = "brigphysician"
registered_name = "Security Medic"
access = list(ACCESS_BRIG, ACCESS_COURT, ACCESS_EVA, ACCESS_MAINT_TUNNELS, ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SEC_DOORS, ACCESS_SECURITY, ACCESS_SURGERY, ACCESS_WEAPONS, ACCESS_CREMATORIUM)

62 changes: 62 additions & 0 deletions modular_ss220/jobs/code/clothing/security_clothing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,65 @@
item_color = "security_clown"
item_state = "clown"

/obj/item/clothing/under/rank/security/brigphysic
name = "security medic turtleneck"
icon = 'modular_ss220/jobs/icons/clothing/uniforms.dmi'
icon_override = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi'
desc = "Модная и удобная водолазка, специально для медика отдела службы безопасности!"
icon_state = "sec_medic_s"
item_state = "sec_medic_s"
item_color = "sec_medic"
sprite_sheets = null
random_sensor = TRUE
sprite_sheets = list(
"Abductor" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Ancient Skeleton" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Diona" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Drask" = 'modular_ss220/clothing/icons/mob/species/drask/under.dmi',
"Golem" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Grey" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Human" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Kidan" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Machine" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Monkey" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Nian" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Plasmaman" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Shadow" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Skrell" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Slime People" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Tajaran" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Unathi" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Vox" = 'modular_ss220/clothing/icons/mob/species/vox/under.dmi',
"Vulpkanin" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Nucleation" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
)


/obj/item/clothing/under/rank/security/brigphysic/skirt
name = "security medic skirtleneck"
desc = "Модная и удобная юбка-водолазка, специально для медика отдела службы безопасности!"
icon_state = "sec_medic_skirt_s"
item_state = "sec_medic_skirt_s"
item_color = "sec_medic_skirt"
sprite_sheets = list(
"Abductor" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Ancient Skeleton" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Diona" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Drask" = 'modular_ss220/clothing/icons/mob/species/drask/under.dmi',
"Golem" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Grey" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Human" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Kidan" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Machine" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Monkey" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Nian" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Plasmaman" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Shadow" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Skrell" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Slime People" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Tajaran" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Unathi" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Vox" = 'modular_ss220/clothing/icons/mob/species/vox/under.dmi',
"Vulpkanin" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
"Nucleation" = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi',
)
54 changes: 54 additions & 0 deletions modular_ss220/jobs/code/job/security_jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@
/datum/job/officer
exp_map = list(EXP_TYPE_SECURITY = (600 + NOVICE_CADET_JOB_MINUTES))

/datum/job/brigphysic
exp_map = list(EXP_TYPE_SECURITY = (900 + NOVICE_CADET_JOB_MINUTES))

/datum/job/detective
exp_map = list(EXP_TYPE_SECURITY = (900 + NOVICE_CADET_JOB_MINUTES))

Expand All @@ -61,3 +64,54 @@

/datum/job/hos
exp_map = list(EXP_TYPE_SECURITY = (1200 + NOVICE_CADET_JOB_MINUTES))

/datum/job/brigphysic
title = "Security Medic"
flag = JOB_BRIGPHYSICIAN
department_flag = JOBCAT_ENGSEC
total_positions = 1
spawn_positions = 1
alt_titles = list("Brig Physician", "Security Doctor", "Security Paramedic")
supervisors = "the head of security"
department_head = list("Head of Security")
selection_color = "#ffeeee"
job_department_flags = DEP_FLAG_SECURITY
access = list(ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SEC_DOORS, ACCESS_SECURITY, ACCESS_SURGERY, ACCESS_WEAPONS, ACCESS_CREMATORIUM, ACCESS_EVA)
minimal_player_age = 21
exp_map = list(EXP_TYPE_SECURITY = 900)
blacklisted_disabilities = list(DISABILITY_FLAG_BLIND, DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_DIZZY)
missing_limbs_allowed = FALSE
outfit = /datum/outfit/job/brigphysic
important_information = "Вы медик службы безопасности. \
Лечите своих коллег и заключённых. Следите за стерильностью своей комнаты. \
Помните о том что вы не офицер службы безопаности, а их медик и вместо войны должны заниматся лечением."

/datum/outfit/job/brigphysic
name = "Security Medic"
jobtype = /datum/job/brigphysic
uniform = /obj/item/clothing/under/rank/security/brigphysic
suit = /obj/item/clothing/suit/storage/labcoat
gloves = /obj/item/clothing/gloves/color/black
shoes = /obj/item/clothing/shoes/laceup
head = /obj/item/clothing/head/beret/sec
l_ear = /obj/item/radio/headset/headset_secmedical/alt
id = /obj/item/card/id/brigphysician
l_pocket = /obj/item/reagent_containers/spray/pepper
r_pocket = /obj/item/flash
l_hand = /obj/item/storage/firstaid/doctor
pda = /obj/item/pda/brigphysic
backpack_contents = list(
/obj/item/melee/classic_baton/telescopic = 1
)

bio_chips = list(/obj/item/bio_chip/mindshield)

backpack = /obj/item/storage/backpack/security
satchel = /obj/item/storage/backpack/satchel_sec
dufflebag = /obj/item/storage/backpack/duffel/security

/datum/outfit/job/brigphysic/pre_equip(mob/living/carbon/human/H, visualsOnly)
. = ..()

if(H.gender == FEMALE)
uniform = /obj/item/clothing/under/rank/security/brigphysic/skirt
15 changes: 14 additions & 1 deletion modular_ss220/jobs/code/jobs_character.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
var/datum/outfit/plasmaman/O = new /datum/outfit/plasmaman
switch(current_job)

if("Security Cadet")
if("Security Cadet", "Security Medic")
O = new /datum/outfit/plasmaman/security

if("Medical Intern")
Expand Down Expand Up @@ -207,6 +207,19 @@
else if(backbag == 3 || backbag == 4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-clown"), ICON_OVERLAY)

if(JOB_BRIGPHYSICIAN)
clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "sec_medic[g ? "_skirt" : ""]_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "bgloves"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/head/beret.dmi',"beret_officer"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY)
switch(backbag)
if(1)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "securitypack"), ICON_OVERLAY)
if(2)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-sec"), ICON_OVERLAY)
if(3)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)

else if(job_support_high)
switch(job_support_high)
Expand Down
1 change: 1 addition & 0 deletions modular_ss220/jobs/code/jobs_global_list.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ GLOBAL_LIST_INIT(engineering_positions_ss220, list(
))

GLOBAL_LIST_INIT(security_positions_ss220, list(
"Security Medic",
"Security Cadet",
))

Expand Down
5 changes: 5 additions & 0 deletions modular_ss220/jobs/code/landmarks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,8 @@
icon = 'modular_ss220/jobs/icons/landmarks.dmi'
name = "Bath"
icon_state = "bath"

/obj/effect/landmark/start/brigphysician
icon = 'modular_ss220/jobs/icons/landmarks.dmi'
name = "Security Medic"
icon_state = "brigphysician"
21 changes: 21 additions & 0 deletions modular_ss220/jobs/code/objects/job_objects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -179,3 +179,24 @@
new /obj/item/grenade/chem_grenade/cleaner(src)
new /obj/item/grenade/chem_grenade/cleaner(src)
update_icon()

// Гарнитура Бриг-Медика //
/obj/item/encryptionkey/headset_secmedical
name = "Security-Medical Radio Encryption Key"
icon_state = "sec_cypherkey"
channels = list("Security" = 1, "Medical" = 1)

/obj/item/radio/headset/headset_secmedical
name = "Security-medical radio headset"
desc = "Это используется вашим элитным медиком службы безопасности."
icon_state = "sec_headset"
item_state = "headset"
ks2type = /obj/item/encryptionkey/headset_secmedical


/obj/item/radio/headset/headset_secmedical/alt
name = "Security-medical bowman headset"
desc = "Это используется вашим элитным медиком службы безопасности. Защищает уши от светошумовых гранат."
flags = EARBANGPROTECT
icon_state = "sec_headset_alt"
item_state = "sec_headset_alt"
Binary file modified modular_ss220/jobs/icons/clothing/mob/uniform.dmi
Binary file not shown.
Binary file modified modular_ss220/jobs/icons/clothing/uniforms.dmi
Binary file not shown.
Binary file modified modular_ss220/jobs/icons/hud.dmi
Binary file not shown.
Binary file modified modular_ss220/jobs/icons/landmarks.dmi
Binary file not shown.
Binary file modified modular_ss220/jobs/icons/uniforms.dmi
Binary file not shown.
6 changes: 6 additions & 0 deletions modular_ss220/maps220/code/Station/station_areas.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@
icon_state = "security"
request_console_name = "Security"

/area/station/security/brigmed
name = "Медпункт отдела Службы Безопасности"
icon = 'modular_ss220/maps220/icons/areas.dmi'
icon_state = "brigmed"
request_console_name = "Security"

/area/mine/laborcamp
request_console_name = "Labor Camp"

Expand Down
Binary file modified modular_ss220/maps220/icons/areas.dmi
Binary file not shown.
1 change: 1 addition & 0 deletions modular_ss220/objects/_objects.dme
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
#include "code/miscellaneous.dm"
#include "code/officetoys.dm"
#include "code/papershredder.dm"
#include "code/pdas.dm"
#include "code/plastic_chair.dm"
#include "code/platform.dm"
#include "code/posters.dm"
Expand Down
18 changes: 18 additions & 0 deletions modular_ss220/objects/code/pdas.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/obj/item/pda/brigphysic
default_cartridge = /obj/item/cartridge/secmed
icon = 'icons/obj/pda.dmi' //для сохранения функционала ПДА-пэйнтера
icon_state = "pda-brigphysic"
desc = "ПДА для медика отдела службы безопасности. Включает в себя передовой картридж, только если его не украли."

// картридж для пда //
/obj/item/cartridge/secmed
name = "Sec&med"
desc = "A data cartridge for portable microcomputers. Has medical and security records and a med and reagent scanners."
icon = 'icons/obj/pda.dmi'
icon_state = "cart-sm"
programs = list(
new /datum/data/pda/utility/scanmode/medical,
new /datum/data/pda/utility/scanmode/reagent,
new /datum/data/pda/app/crew_records/security,
new /datum/data/pda/app/crew_records/medical,
)
3 changes: 3 additions & 0 deletions modular_ss220/text_to_speech/code/tts_subsystem.dm
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,9 @@ SUBSYSTEM_DEF(tts220)
"Security Assistant" = "Ассистент службы безопасности",
"Security Graduate" = "Выпускник кадетской академии",
"brig physician" = "Врач брига",
"security medic" = "Медик службы безопасности",
"security doctor" = "Доктор службы безопасности",
"security paramedic" = "Парамедик службы безопасности",
"security pod pilot" = "Пилот пода службы безопасности",
"captain" = "Капитан",
"ai" = "И И",
Expand Down
Loading