From 68b06637e1a3ff42069843e009fc40a8b9211dfe Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Wed, 3 Mar 2021 19:59:14 +0100 Subject: [PATCH] [MIRROR] Moves heirloom lists to job/species datums (#3773) * Moves heirloom lists to job/species datums * Revert "Merge branch 'master' into upstream-merge-57329" This reverts commit dde12e8a1bb916f4e152925c181d006210402423, reversing changes made to 1994fc1ee357824519f1b3071e774f6700e99c62. * Revert "Revert "Merge branch 'master' into upstream-merge-57329"" This reverts commit 3d7c92afc1b92ab4d70c456f06f24d3213324338. * a * a * Update chief_medical_officer.dm Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Gandalf2k15 --- code/datums/quirks/negative.dm | 115 ++++-------------- code/modules/jobs/job_types/_job.dm | 3 + code/modules/jobs/job_types/assistant.dm | 2 + .../jobs/job_types/atmospheric_technician.dm | 2 + code/modules/jobs/job_types/bartender.dm | 2 + code/modules/jobs/job_types/botanist.dm | 2 + code/modules/jobs/job_types/captain.dm | 2 + .../jobs/job_types/cargo_technician.dm | 2 + code/modules/jobs/job_types/chaplain.dm | 2 + code/modules/jobs/job_types/chemist.dm | 3 +- code/modules/jobs/job_types/chief_engineer.dm | 2 + .../jobs/job_types/chief_medical_officer.dm | 3 +- code/modules/jobs/job_types/clown.dm | 1 + code/modules/jobs/job_types/cook.dm | 2 + code/modules/jobs/job_types/curator.dm | 2 + code/modules/jobs/job_types/detective.dm | 3 +- code/modules/jobs/job_types/geneticist.dm | 2 + .../jobs/job_types/head_of_personnel.dm | 5 +- .../jobs/job_types/head_of_security.dm | 3 +- code/modules/jobs/job_types/janitor.dm | 2 + code/modules/jobs/job_types/lawyer.dm | 2 + code/modules/jobs/job_types/medical_doctor.dm | 2 + code/modules/jobs/job_types/mime.dm | 2 + code/modules/jobs/job_types/paramedic.dm | 2 + code/modules/jobs/job_types/prisoner.dm | 2 + code/modules/jobs/job_types/psychologist.dm | 2 + code/modules/jobs/job_types/quartermaster.dm | 2 + .../jobs/job_types/research_director.dm | 2 + code/modules/jobs/job_types/roboticist.dm | 6 + code/modules/jobs/job_types/scientist.dm | 2 + .../jobs/job_types/security_officer.dm | 2 + code/modules/jobs/job_types/shaft_miner.dm | 2 + .../jobs/job_types/station_engineer.dm | 2 + code/modules/jobs/job_types/virologist.dm | 2 + code/modules/jobs/job_types/warden.dm | 2 + .../mob/living/carbon/human/species.dm | 3 + .../carbon/human/species_types/felinid.dm | 1 + .../carbon/human/species_types/mothmen.dm | 1 + .../code/modules/jobs/job_types/blueshield.dm | 2 + .../code/security_medic/security_medic.dm | 2 + .../security_sergeant/security_sergeant.dm | 1 + 41 files changed, 104 insertions(+), 100 deletions(-) mode change 100644 => 100755 code/modules/jobs/job_types/captain.dm diff --git a/code/datums/quirks/negative.dm b/code/datums/quirks/negative.dm index 23a18602024..d05aac51753 100644 --- a/code/datums/quirks/negative.dm +++ b/code/datums/quirks/negative.dm @@ -123,104 +123,33 @@ desc = "You are the current owner of an heirloom, passed down for generations. You have to keep it safe!" value = -2 mood_quirk = TRUE - var/obj/item/heirloom - var/where medical_record_text = "Patient demonstrates an unnatural attachment to a family heirloom." hardcore_value = 1 + /// A reference to our heirloom. + var/obj/item/heirloom + /// Where our heirloom is spawning. + var/heirloom_spawn_loc /datum/quirk/family_heirloom/on_spawn() - var/mob/living/carbon/human/H = quirk_holder + /// The quirk holder, casted to human + var/mob/living/carbon/human/human_holder = quirk_holder + /// The heirloom we will spawn var/obj/item/heirloom_type - if(ismoth(H) && prob(50)) - heirloom_type = /obj/item/flashlight/lantern/heirloom_moth - else if(isfelinid(H) && prob(50)) - heirloom_type = /obj/item/toy/cattoy + /// The quirk holder's species - we have a 50% chance, if we have a species with a set heirloom, to choose a species heirloom. + var/datum/species/holder_species = human_holder.dna?.species + if(holder_species && LAZYLEN(holder_species.family_heirlooms) && prob(50)) + heirloom_type = pick(holder_species.family_heirlooms) else - switch(quirk_holder.mind.assigned_role) - //Service jobs - if("Clown") - heirloom_type = /obj/item/bikehorn/golden - if("Mime") - heirloom_type = /obj/item/food/baguette - if("Janitor") - heirloom_type = pick(/obj/item/mop, /obj/item/clothing/suit/caution, /obj/item/reagent_containers/glass/bucket, /obj/item/paper/fluff/stations/soap) - if("Cook") - heirloom_type = pick(/obj/item/reagent_containers/food/condiment/saltshaker, /obj/item/kitchen/rollingpin, /obj/item/clothing/head/chefhat) - if("Botanist") - heirloom_type = pick(/obj/item/cultivator, /obj/item/reagent_containers/glass/bucket, /obj/item/toy/plush/beeplushie) - if("Bartender") - heirloom_type = pick(/obj/item/reagent_containers/glass/rag, /obj/item/clothing/head/that, /obj/item/reagent_containers/food/drinks/shaker) - if("Curator") - heirloom_type = pick(/obj/item/pen/fountain, /obj/item/storage/pill_bottle/dice) - if("Chaplain") - heirloom_type = pick(/obj/item/toy/windup_toolbox, /obj/item/reagent_containers/food/drinks/bottle/holywater) - if("Assistant") - heirloom_type = pick(/obj/item/storage/toolbox/mechanical/old/heirloom, /obj/item/clothing/gloves/cut/heirloom) - //Security/Command - if("Captain") - heirloom_type = /obj/item/reagent_containers/food/drinks/flask/gold - if("Head of Security") - heirloom_type = /obj/item/book/manual/wiki/security_space_law - if("Head of Personnel") - heirloom_type = /obj/item/reagent_containers/food/drinks/trophy/silver_cup - if("Warden") - heirloom_type = /obj/item/book/manual/wiki/security_space_law - if("Security Officer") - heirloom_type = pick(/obj/item/book/manual/wiki/security_space_law, /obj/item/clothing/head/beret/sec) - if("Detective") - heirloom_type = /obj/item/reagent_containers/food/drinks/bottle/whiskey - if("Lawyer") - heirloom_type = pick(/obj/item/gavelhammer, /obj/item/book/manual/wiki/security_space_law) - if("Prisoner") - heirloom_type = /obj/item/pen/blue - //RnD - if("Research Director") - heirloom_type = /obj/item/toy/plush/slimeplushie - if("Scientist") - heirloom_type = /obj/item/toy/plush/slimeplushie - if("Roboticist") - heirloom_type = pick(subtypesof(/obj/item/toy/prize) + /obj/item/toy/plush/pkplush) //look at this nerd - if("Geneticist") - heirloom_type = /obj/item/clothing/under/shorts/purple - //Medical - if("Chief Medical Officer") - heirloom_type = /obj/item/storage/firstaid/ancient/heirloom - if("Medical Doctor") - heirloom_type = /obj/item/storage/firstaid/ancient/heirloom - if("Paramedic") - heirloom_type = /obj/item/storage/firstaid/ancient/heirloom - if("Psychologist") - heirloom_type = /obj/item/storage/pill_bottle - if("Chemist") - heirloom_type = pick(/obj/item/book/manual/wiki/chemistry, /obj/item/ph_booklet) - if("Virologist") - heirloom_type = /obj/item/reagent_containers/syringe - //Engineering - if("Chief Engineer") - heirloom_type = pick(/obj/item/clothing/head/hardhat/white, /obj/item/screwdriver, /obj/item/wrench, /obj/item/weldingtool, /obj/item/crowbar, /obj/item/wirecutters) - if("Station Engineer") - heirloom_type = pick(/obj/item/clothing/head/hardhat, /obj/item/screwdriver, /obj/item/wrench, /obj/item/weldingtool, /obj/item/crowbar, /obj/item/wirecutters) - if("Atmospheric Technician") - heirloom_type = pick(/obj/item/lighter, /obj/item/lighter/greyscale, /obj/item/storage/box/matches) - //Supply - if("Quartermaster") - heirloom_type = pick(/obj/item/stamp, /obj/item/stamp/denied) - if("Cargo Technician") - heirloom_type = /obj/item/clipboard - if("Shaft Miner") - heirloom_type = pick(/obj/item/pickaxe/mini, /obj/item/shovel) - //SKYRAT EDIT ADDITION BEGIN - SEC_HAUL - if("Brig Physician") - heirloom_type = pick(/obj/item/clothing/neck/stethoscope, /obj/item/roller, /obj/item/book/manual/wiki/security_space_law) - if("Security Sergeant") - heirloom_type = pick(/obj/item/book/manual/wiki/security_space_law, /obj/item/clothing/head/beret/sec) - //SKYRAT EDIT END + /// Our quirk holder's job + var/datum/job/holder_job = SSjob.GetJob(human_holder.mind?.assigned_role) + if(holder_job && LAZYLEN(holder_job.family_heirlooms)) + heirloom_type = pick(holder_job.family_heirlooms) + + // If we didn't find an heirloom somehow, throw them a generic one if(!heirloom_type) - heirloom_type = pick( - /obj/item/toy/cards/deck, - /obj/item/lighter, - /obj/item/dice/d20) + heirloom_type = pick(/obj/item/toy/cards/deck, /obj/item/lighter, /obj/item/dice/d20) + heirloom = new heirloom_type(get_turf(quirk_holder)) var/list/slots = list( LOCATION_LPOCKET = ITEM_SLOT_LPOCKET, @@ -228,14 +157,14 @@ LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS ) - where = H.equip_in_one_of_slots(heirloom, slots, FALSE) || "at your feet" + heirloom_spawn_loc = human_holder.equip_in_one_of_slots(heirloom, slots, FALSE) || "at your feet" /datum/quirk/family_heirloom/post_add() - if(where == LOCATION_BACKPACK) + if(heirloom_spawn_loc == LOCATION_BACKPACK) var/mob/living/carbon/human/H = quirk_holder SEND_SIGNAL(H.back, COMSIG_TRY_STORAGE_SHOW, H) - to_chat(quirk_holder, "There is a precious family [heirloom.name] [where], passed down from generation to generation. Keep it safe!") + to_chat(quirk_holder, "There is a precious family [heirloom.name] [heirloom_spawn_loc], passed down from generation to generation. Keep it safe!") var/list/names = splittext(quirk_holder.real_name, " ") var/family_name = names[names.len] diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 9f6098c2680..dbf3c521465 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -70,6 +70,9 @@ /// Should this job be allowed to be picked for the bureaucratic error event? var/allow_bureaucratic_error = TRUE + /// List of family heirlooms this job can get with the family heirloom quirk. List of types. + var/list/family_heirlooms + /datum/job/New() . = ..() var/list/jobs_changes = get_map_changes() diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index fc84ab2d867..ca8ba9de09d 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -18,6 +18,8 @@ Assistant paycheck_department = ACCOUNT_CIV display_order = JOB_DISPLAY_ORDER_ASSISTANT + family_heirlooms = list(/obj/item/storage/toolbox/mechanical/old/heirloom, /obj/item/clothing/gloves/cut/heirloom) + /datum/outfit/job/assistant name = "Assistant" jobtype = /datum/job/assistant diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm index c42726ac58f..9b6696228e1 100644 --- a/code/modules/jobs/job_types/atmospheric_technician.dm +++ b/code/modules/jobs/job_types/atmospheric_technician.dm @@ -20,6 +20,8 @@ bounty_types = CIV_JOB_ENG departments = DEPARTMENT_ENGINEERING + family_heirlooms = list(/obj/item/lighter, /obj/item/lighter/greyscale, /obj/item/storage/box/matches) + /datum/outfit/job/atmos name = "Atmospheric Technician" jobtype = /datum/job/atmospheric_technician diff --git a/code/modules/jobs/job_types/bartender.dm b/code/modules/jobs/job_types/bartender.dm index 00b261e8e3d..76c467b07a7 100644 --- a/code/modules/jobs/job_types/bartender.dm +++ b/code/modules/jobs/job_types/bartender.dm @@ -15,6 +15,8 @@ bounty_types = CIV_JOB_DRINK departments = DEPARTMENT_SERVICE + family_heirlooms = list(/obj/item/reagent_containers/glass/rag, /obj/item/clothing/head/that, /obj/item/reagent_containers/food/drinks/shaker) + /datum/outfit/job/bartender name = "Bartender" jobtype = /datum/job/bartender diff --git a/code/modules/jobs/job_types/botanist.dm b/code/modules/jobs/job_types/botanist.dm index 29f37048475..e150d6f9dc0 100644 --- a/code/modules/jobs/job_types/botanist.dm +++ b/code/modules/jobs/job_types/botanist.dm @@ -15,6 +15,8 @@ bounty_types = CIV_JOB_GROW departments = DEPARTMENT_SERVICE + family_heirlooms = list(/obj/item/cultivator, /obj/item/reagent_containers/glass/bucket, /obj/item/toy/plush/beeplushie) + /datum/outfit/job/botanist name = "Botanist" jobtype = /datum/job/botanist diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm old mode 100644 new mode 100755 index 2603e8ff151..038ff25dd62 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -23,6 +23,8 @@ display_order = JOB_DISPLAY_ORDER_CAPTAIN departments = DEPARTMENT_COMMAND + family_heirlooms = list(/obj/item/reagent_containers/food/drinks/flask/gold) + /datum/job/captain/announce(mob/living/carbon/human/H, announce_captaincy = TRUE) ..() if(announce_captaincy) diff --git a/code/modules/jobs/job_types/cargo_technician.dm b/code/modules/jobs/job_types/cargo_technician.dm index cecf006b905..e5ae4dd82fc 100644 --- a/code/modules/jobs/job_types/cargo_technician.dm +++ b/code/modules/jobs/job_types/cargo_technician.dm @@ -17,6 +17,8 @@ bounty_types = CIV_JOB_RANDOM departments = DEPARTMENT_CARGO + family_heirlooms = list(/obj/item/clipboard) + /datum/outfit/job/cargo_tech name = "Cargo Technician" jobtype = /datum/job/cargo_technician diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm index 3f2da02d779..8c5f90d925f 100644 --- a/code/modules/jobs/job_types/chaplain.dm +++ b/code/modules/jobs/job_types/chaplain.dm @@ -15,6 +15,8 @@ display_order = JOB_DISPLAY_ORDER_CHAPLAIN departments = DEPARTMENT_SERVICE + family_heirlooms = list(/obj/item/toy/windup_toolbox, /obj/item/reagent_containers/food/drinks/bottle/holywater) + /datum/job/chaplain/after_spawn(mob/living/H, mob/M) . = ..() diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm index 721d7019645..21f0c38c002 100644 --- a/code/modules/jobs/job_types/chemist.dm +++ b/code/modules/jobs/job_types/chemist.dm @@ -20,6 +20,8 @@ bounty_types = CIV_JOB_CHEM departments = DEPARTMENT_MEDICAL + family_heirlooms = list(/obj/item/book/manual/wiki/chemistry, /obj/item/ph_booklet) + /datum/outfit/job/chemist name = "Chemist" jobtype = /datum/job/chemist @@ -40,4 +42,3 @@ chameleon_extras = /obj/item/gun/syringe id_trim = /datum/id_trim/job/chemist - diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index 8c7e0297511..efc7d54d138 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -25,6 +25,8 @@ display_order = JOB_DISPLAY_ORDER_CHIEF_ENGINEER bounty_types = CIV_JOB_ENG + family_heirlooms = list(/obj/item/clothing/head/hardhat/white, /obj/item/screwdriver, /obj/item/wrench, /obj/item/weldingtool, /obj/item/crowbar, /obj/item/wirecutters) + /datum/job/chief_engineer/announce(mob/living/carbon/human/H, announce_captaincy = FALSE) ..() if(announce_captaincy) diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm index bf0e4f4a671..359963e1e23 100644 --- a/code/modules/jobs/job_types/chief_medical_officer.dm +++ b/code/modules/jobs/job_types/chief_medical_officer.dm @@ -25,6 +25,8 @@ display_order = JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER bounty_types = CIV_JOB_MED + family_heirlooms = list(/obj/item/storage/firstaid/ancient/heirloom) + /datum/job/chief_medical_officer/announce(mob/living/carbon/human/H, announce_captaincy = FALSE) ..() if(announce_captaincy) @@ -63,4 +65,3 @@ suit = /obj/item/clothing/suit/space/hardsuit/medical suit_store = /obj/item/tank/internals/oxygen r_pocket = /obj/item/flashlight/pen/paramedic - diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm index 6aa04273f56..90cc989e87a 100644 --- a/code/modules/jobs/job_types/clown.dm +++ b/code/modules/jobs/job_types/clown.dm @@ -17,6 +17,7 @@ display_order = JOB_DISPLAY_ORDER_CLOWN departments = DEPARTMENT_SERVICE + family_heirlooms = list(/obj/item/bikehorn/golden) /datum/job/clown/after_spawn(mob/living/carbon/human/H, mob/M) . = ..() diff --git a/code/modules/jobs/job_types/cook.dm b/code/modules/jobs/job_types/cook.dm index a4085b8e7a2..be05dfb19d1 100644 --- a/code/modules/jobs/job_types/cook.dm +++ b/code/modules/jobs/job_types/cook.dm @@ -19,6 +19,8 @@ bounty_types = CIV_JOB_CHEF departments = DEPARTMENT_SERVICE + family_heirlooms = list(/obj/item/reagent_containers/food/condiment/saltshaker, /obj/item/kitchen/rollingpin, /obj/item/clothing/head/chefhat) + /datum/outfit/job/cook name = "Cook" jobtype = /datum/job/cook diff --git a/code/modules/jobs/job_types/curator.dm b/code/modules/jobs/job_types/curator.dm index bc11268c004..3c06b3b0109 100644 --- a/code/modules/jobs/job_types/curator.dm +++ b/code/modules/jobs/job_types/curator.dm @@ -15,6 +15,8 @@ display_order = JOB_DISPLAY_ORDER_CURATOR departments = DEPARTMENT_SERVICE + family_heirlooms = list(/obj/item/pen/fountain, /obj/item/storage/pill_bottle/dice) + /datum/outfit/job/curator name = "Curator" jobtype = /datum/job/curator diff --git a/code/modules/jobs/job_types/detective.dm b/code/modules/jobs/job_types/detective.dm index 22de3dcc970..93a450b2ffe 100644 --- a/code/modules/jobs/job_types/detective.dm +++ b/code/modules/jobs/job_types/detective.dm @@ -22,6 +22,8 @@ display_order = JOB_DISPLAY_ORDER_DETECTIVE + family_heirlooms = list(/obj/item/reagent_containers/food/drinks/bottle/whiskey) + /datum/outfit/job/detective name = "Detective" jobtype = /datum/job/detective @@ -55,4 +57,3 @@ if(visualsOnly) return - diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm index 77eae91e6bd..2d24870e837 100644 --- a/code/modules/jobs/job_types/geneticist.dm +++ b/code/modules/jobs/job_types/geneticist.dm @@ -18,6 +18,8 @@ display_order = JOB_DISPLAY_ORDER_GENETICIST bounty_types = CIV_JOB_SCI + family_heirlooms = list(/obj/item/clothing/under/shorts/purple) + /datum/outfit/job/geneticist name = "Geneticist" jobtype = /datum/job/geneticist diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm index 7e337b3d712..8a9822fb276 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -26,6 +26,8 @@ display_order = JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL + family_heirlooms = list(/obj/item/reagent_containers/food/drinks/trophy/silver_cup) + /datum/job/head_of_personnel/announce(mob/living/carbon/human/H, announce_captaincy = FALSE) ..() if(announce_captaincy) @@ -46,14 +48,11 @@ chameleon_extras = list(/obj/item/gun/energy/e_gun, /obj/item/stamp/hop) - id_trim = /datum/id_trim/job/head_of_personnel - /datum/outfit/job/hop/pre_equip(mob/living/carbon/human/H) ..() if(locate(/datum/holiday/ianbirthday) in SSevents.holidays) undershirt = /datum/sprite_accessory/undershirt/ian - /obj/item/paper/fluff/ids_for_dummies name = "Memo: New IDs and You" desc = "It looks like this was left by the last Head of Personnel to man this station. It explains some information about new IDs." diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm index ba71101fd23..c01abc2c75c 100644 --- a/code/modules/jobs/job_types/head_of_security.dm +++ b/code/modules/jobs/job_types/head_of_security.dm @@ -26,6 +26,8 @@ display_order = JOB_DISPLAY_ORDER_HEAD_OF_SECURITY bounty_types = CIV_JOB_SEC + family_heirlooms = list(/obj/item/book/manual/wiki/security_space_law) + /datum/job/head_of_security/announce(mob/living/carbon/human/H, announce_captaincy = FALSE) ..() if(announce_captaincy) @@ -67,4 +69,3 @@ suit = /obj/item/clothing/suit/space/hardsuit/security/hos suit_store = /obj/item/tank/internals/oxygen backpack_contents = list(/obj/item/melee/baton/loaded=1) - diff --git a/code/modules/jobs/job_types/janitor.dm b/code/modules/jobs/job_types/janitor.dm index 1db8a299a4e..9dbb7cb0725 100644 --- a/code/modules/jobs/job_types/janitor.dm +++ b/code/modules/jobs/job_types/janitor.dm @@ -15,6 +15,8 @@ display_order = JOB_DISPLAY_ORDER_JANITOR departments = DEPARTMENT_SERVICE + family_heirlooms = list(/obj/item/mop, /obj/item/clothing/suit/caution, /obj/item/reagent_containers/glass/bucket, /obj/item/paper/fluff/stations/soap) + /datum/outfit/job/janitor name = "Janitor" jobtype = /datum/job/janitor diff --git a/code/modules/jobs/job_types/lawyer.dm b/code/modules/jobs/job_types/lawyer.dm index 73fd263e5be..7b63d26207e 100644 --- a/code/modules/jobs/job_types/lawyer.dm +++ b/code/modules/jobs/job_types/lawyer.dm @@ -19,6 +19,8 @@ display_order = JOB_DISPLAY_ORDER_LAWYER departments = DEPARTMENT_SERVICE + family_heirlooms = list(/obj/item/gavelhammer, /obj/item/book/manual/wiki/security_space_law) + /datum/outfit/job/lawyer name = "Lawyer" jobtype = /datum/job/lawyer diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm index 993d811d106..fa107a8e439 100644 --- a/code/modules/jobs/job_types/medical_doctor.dm +++ b/code/modules/jobs/job_types/medical_doctor.dm @@ -18,6 +18,8 @@ bounty_types = CIV_JOB_MED departments = DEPARTMENT_MEDICAL + family_heirlooms = list(/obj/item/storage/firstaid/ancient/heirloom) + /datum/outfit/job/doctor name = "Medical Doctor" jobtype = /datum/job/doctor diff --git a/code/modules/jobs/job_types/mime.dm b/code/modules/jobs/job_types/mime.dm index a142cd58cba..007a8320330 100644 --- a/code/modules/jobs/job_types/mime.dm +++ b/code/modules/jobs/job_types/mime.dm @@ -15,6 +15,8 @@ display_order = JOB_DISPLAY_ORDER_MIME departments = DEPARTMENT_SERVICE + family_heirlooms = list(/obj/item/food/baguette) + /datum/job/mime/after_spawn(mob/living/carbon/human/H, mob/M) H.apply_pref_name("mime", M.client) diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm index 0daf982d7c3..09c905c612f 100644 --- a/code/modules/jobs/job_types/paramedic.dm +++ b/code/modules/jobs/job_types/paramedic.dm @@ -18,6 +18,8 @@ bounty_types = CIV_JOB_MED departments = DEPARTMENT_MEDICAL + family_heirlooms = list(/obj/item/storage/firstaid/ancient/heirloom) + /datum/outfit/job/paramedic name = "Paramedic" jobtype = /datum/job/paramedic diff --git a/code/modules/jobs/job_types/prisoner.dm b/code/modules/jobs/job_types/prisoner.dm index b44a91f6b4b..9f89a20227f 100644 --- a/code/modules/jobs/job_types/prisoner.dm +++ b/code/modules/jobs/job_types/prisoner.dm @@ -11,6 +11,8 @@ display_order = JOB_DISPLAY_ORDER_PRISONER + family_heirlooms = list(/obj/item/pen/blue) + /datum/outfit/job/prisoner name = "Prisoner" jobtype = /datum/job/prisoner diff --git a/code/modules/jobs/job_types/psychologist.dm b/code/modules/jobs/job_types/psychologist.dm index 59df39cfc72..0ac44a8d738 100644 --- a/code/modules/jobs/job_types/psychologist.dm +++ b/code/modules/jobs/job_types/psychologist.dm @@ -17,6 +17,8 @@ display_order = JOB_DISPLAY_ORDER_PSYCHOLOGIST departments = DEPARTMENT_SERVICE + family_heirlooms = list(/obj/item/storage/pill_bottle) + /datum/outfit/job/psychologist name = "Psychologist" jobtype = /datum/job/psychologist diff --git a/code/modules/jobs/job_types/quartermaster.dm b/code/modules/jobs/job_types/quartermaster.dm index bec299433a0..d116f485a6e 100644 --- a/code/modules/jobs/job_types/quartermaster.dm +++ b/code/modules/jobs/job_types/quartermaster.dm @@ -26,6 +26,8 @@ if(announce_captaincy) SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, .proc/minor_announce, "Due to extreme staffing shortages, newly promoted Acting Captain [H.real_name] on deck!")) + family_heirlooms = list(/obj/item/stamp, /obj/item/stamp/denied) + /datum/outfit/job/quartermaster name = "Quartermaster" jobtype = /datum/job/quartermaster diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm index fd50251fd2a..5c02d75ee4f 100644 --- a/code/modules/jobs/job_types/research_director.dm +++ b/code/modules/jobs/job_types/research_director.dm @@ -23,6 +23,8 @@ display_order = JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR bounty_types = CIV_JOB_SCI + family_heirlooms = list(/obj/item/toy/plush/slimeplushie) + /datum/job/research_director/announce(mob/living/carbon/human/H, announce_captaincy = FALSE) ..() if(announce_captaincy) diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm index fae4e6ce51c..ecb7822f535 100644 --- a/code/modules/jobs/job_types/roboticist.dm +++ b/code/modules/jobs/job_types/roboticist.dm @@ -18,6 +18,12 @@ display_order = JOB_DISPLAY_ORDER_ROBOTICIST + family_heirlooms = list(/obj/item/toy/plush/pkplush) + +/datum/job/roboticist/New() + . = ..() + family_heirlooms += subtypesof(/obj/item/toy/prize) + /datum/outfit/job/roboticist name = "Roboticist" jobtype = /datum/job/roboticist diff --git a/code/modules/jobs/job_types/scientist.dm b/code/modules/jobs/job_types/scientist.dm index 574fdfdb95e..14a5cd2a5b9 100644 --- a/code/modules/jobs/job_types/scientist.dm +++ b/code/modules/jobs/job_types/scientist.dm @@ -18,6 +18,8 @@ bounty_types = CIV_JOB_SCI departments = DEPARTMENT_SCIENCE + family_heirlooms = list(/obj/item/toy/plush/slimeplushie) + /datum/outfit/job/scientist name = "Scientist" jobtype = /datum/job/scientist diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm index 724d305f70e..295a8b57837 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -23,6 +23,8 @@ bounty_types = CIV_JOB_SEC departments = DEPARTMENT_SECURITY + family_heirlooms = list(/obj/item/book/manual/wiki/security_space_law, /obj/item/clothing/head/beret/sec) + GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, SEC_DEPT_SCIENCE, SEC_DEPT_SUPPLY)) /datum/job/security_officer/after_spawn(mob/living/carbon/human/H, mob/M) diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index 71dae6cfebe..5b8c28514d6 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -16,6 +16,8 @@ bounty_types = CIV_JOB_MINE departments = DEPARTMENT_CARGO + family_heirlooms = list(/obj/item/pickaxe/mini, /obj/item/shovel) + /datum/outfit/job/miner name = "Shaft Miner" jobtype = /datum/job/shaft_miner diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm index fff1cf42b87..d229e01acf5 100644 --- a/code/modules/jobs/job_types/station_engineer.dm +++ b/code/modules/jobs/job_types/station_engineer.dm @@ -20,6 +20,8 @@ bounty_types = CIV_JOB_ENG departments = DEPARTMENT_ENGINEERING + family_heirlooms = list(/obj/item/clothing/head/hardhat, /obj/item/screwdriver, /obj/item/wrench, /obj/item/weldingtool, /obj/item/crowbar, /obj/item/wirecutters) + /datum/outfit/job/engineer name = "Station Engineer" jobtype = /datum/job/station_engineer diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm index ff5e3443bbe..dd26e52f504 100644 --- a/code/modules/jobs/job_types/virologist.dm +++ b/code/modules/jobs/job_types/virologist.dm @@ -20,6 +20,8 @@ bounty_types = CIV_JOB_VIRO departments = DEPARTMENT_MEDICAL + family_heirlooms = list(/obj/item/reagent_containers/syringe) + /datum/outfit/job/virologist name = "Virologist" jobtype = /datum/job/virologist diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm index 3db07a71e45..fb01e1e30bd 100644 --- a/code/modules/jobs/job_types/warden.dm +++ b/code/modules/jobs/job_types/warden.dm @@ -23,6 +23,8 @@ bounty_types = CIV_JOB_SEC departments = DEPARTMENT_SECURITY + family_heirlooms = list(/obj/item/book/manual/wiki/security_space_law) + /datum/outfit/job/warden name = "Warden" jobtype = /datum/job/warden diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 1101f298563..3fa6d2328ea 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -190,6 +190,9 @@ GLOBAL_LIST_EMPTY(roundstart_races) ///For custom overrides for species ass images var/icon/ass_image + /// List of family heirlooms this species can get with the family heirloom quirk. List of types. + var/list/family_heirlooms + ///List of results you get from knife-butchering. null means you cant butcher it. Associated by resulting type - value of amount var/list/knife_butcher_results diff --git a/code/modules/mob/living/carbon/human/species_types/felinid.dm b/code/modules/mob/living/carbon/human/species_types/felinid.dm index c296b3509fa..d1afcdce055 100644 --- a/code/modules/mob/living/carbon/human/species_types/felinid.dm +++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm @@ -14,6 +14,7 @@ var/original_felinid = TRUE //set to false for felinids created by mass-purrbation payday_modifier = 0.75 ass_image = 'icons/ass/asscat.png' + family_heirlooms = list(/obj/item/toy/cattoy) //SKYRAT EDIT REMOVAL BEGIN - CUSTOMIZATION (moved to modular) diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm index 9f1b5915216..98e7925b9ee 100644 --- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm @@ -19,6 +19,7 @@ wings_icons = list("Megamoth", "Mothra") has_innate_wings = TRUE payday_modifier = 0.75 + family_heirlooms = list(/obj/item/flashlight/lantern/heirloom_moth) /datum/species/moth/regenerate_organs(mob/living/carbon/C,datum/species/old_species,replace_current=TRUE,list/excluded_zones) . = ..() diff --git a/modular_skyrat/modules/blueshield/code/modules/jobs/job_types/blueshield.dm b/modular_skyrat/modules/blueshield/code/modules/jobs/job_types/blueshield.dm index 526c0ad80c0..f8d70752dbd 100644 --- a/modular_skyrat/modules/blueshield/code/modules/jobs/job_types/blueshield.dm +++ b/modular_skyrat/modules/blueshield/code/modules/jobs/job_types/blueshield.dm @@ -16,6 +16,8 @@ display_order = JOB_DISPLAY_ORDER_BLUESHIELD outfit = /datum/outfit/job/blueshield + family_heirlooms = list(/obj/item/book/manual/wiki/security_space_law, /obj/item/clothing/head/beret/sec) + /datum/outfit/job/blueshield name = "Blueshield" jobtype = /datum/job/blueshield diff --git a/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm b/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm index 018f89c02e7..ac0f22ef108 100644 --- a/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm +++ b/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm @@ -23,6 +23,8 @@ display_order = JOB_DISPLAY_ORDER_SECURITY_MEDIC bounty_types = CIV_JOB_SEC + family_heirlooms = list(/obj/item/clothing/neck/stethoscope, /obj/item/roller, /obj/item/book/manual/wiki/security_space_law) + /datum/outfit/job/security_medic name = "Security Medic" diff --git a/modular_skyrat/modules/sec_haul/code/security_sergeant/security_sergeant.dm b/modular_skyrat/modules/sec_haul/code/security_sergeant/security_sergeant.dm index 28b0574d20d..10196d8f6a1 100644 --- a/modular_skyrat/modules/sec_haul/code/security_sergeant/security_sergeant.dm +++ b/modular_skyrat/modules/sec_haul/code/security_sergeant/security_sergeant.dm @@ -22,6 +22,7 @@ display_order = JOB_DISPLAY_ORDER_SECURITY_SERGEANT bounty_types = CIV_JOB_SEC + family_heirlooms = list(/obj/item/book/manual/wiki/security_space_law, /obj/item/clothing/head/beret/sec) /datum/outfit/job/security_sergeant name = "Security Sergeant"