From d3afbd9e8e0dda168cdfc7dd43cf59b10fb2bb50 Mon Sep 17 00:00:00 2001 From: Casper3667 <8396443+Casper3667@users.noreply.github.com> Date: Fri, 17 Jul 2026 20:48:55 +0200 Subject: [PATCH] Organ bounties have to be organic (#22844) Machinists already get a different set of bounties to complete, so this ensures when an organ bounty rolls, it is a medical job. additionally prosthetic organs can be added as a future option. --- code/modules/cargo/bounties/assistant.dm | 29 ++++++++++++++++++++---- html/changelogs/OrganBountyTweaks.yml | 6 +++++ 2 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 html/changelogs/OrganBountyTweaks.yml diff --git a/code/modules/cargo/bounties/assistant.dm b/code/modules/cargo/bounties/assistant.dm index caed65288f2..833782455bf 100644 --- a/code/modules/cargo/bounties/assistant.dm +++ b/code/modules/cargo/bounties/assistant.dm @@ -8,14 +8,33 @@ wanted_types = list(/obj/item/storage/briefcase) exclude_types = list(/obj/item/storage/briefcase/crimekit) -/datum/bounty/item/assistant/lung +/datum/bounty/item/assistant/organ name = "Lungs" - description = "A recent explosion at %BOSSNAME has left multiple staff with punctured lungs. Ship spare lungs to be rewarded- and save some lives." + description = "A recent explosion at %BOSSNAME has left multiple staff with punctured lungs. Ship spare organic lungs to be rewarded- and save some lives." reward_low = 520 reward_high = 635 + /// If the organ is required to be a prosthetic for the bounty + var/mechanical_needed = FALSE wanted_types = list(/obj/item/organ/internal/lungs) -/datum/bounty/item/assistant/appendix +/datum/bounty/item/assistant/organ/applies_to(var/obj/item/organ/internal/O) + . = ..() + + if(!.) + return FALSE + + if(O.status & ORGAN_DEAD || O.status & ORGAN_BROKEN) + return FALSE + + if(mechanical_needed && !O.robotic) + return FALSE + + else if(O.robotic) + return FALSE + + return . + +/datum/bounty/item/assistant/organ/appendix name = "Appendix" description = "%PERSONNAME wants our chefs to prepare a strange meal using a very special delicacy: an appendix. If you ship one, they'll pay." reward_low = 425 @@ -100,9 +119,9 @@ random_count = 5 wanted_types = list(/obj/item/trash) -/datum/bounty/item/assistant/heart +/datum/bounty/item/assistant/organ/heart name = "Heart" - description = "%PERSONNAME is in critical condition after suffering a heart attack. Doctors say they need a new heart, fast. Ship one, pronto! Organic or mechanical, just hurry up!" + description = "%PERSONNAME is in critical condition after suffering a heart attack. Doctors say they need a new heart, fast. Ship one, pronto! It needs to be organic, hurry up!" reward_low = 825 reward_high = 840 wanted_types = list(/obj/item/organ/internal/heart) diff --git a/html/changelogs/OrganBountyTweaks.yml b/html/changelogs/OrganBountyTweaks.yml new file mode 100644 index 00000000000..f459dfc43a2 --- /dev/null +++ b/html/changelogs/OrganBountyTweaks.yml @@ -0,0 +1,6 @@ +author: TheGreyWolf + +delete-after: True + +changes: + - rscadd: "Organ bounties now require the organs to be organic."