From 042a57e5e4d07f7ec43d44e7a7f2b4af49c6169c Mon Sep 17 00:00:00 2001 From: VisVirific Date: Sat, 4 Jun 2022 17:29:17 -0300 Subject: [PATCH] Implants and Greimorian Egg/Larva Fixes (#14196) --- code/game/machinery/body_scanner.dm | 18 +++++++++++++----- code/game/machinery/computer/Operating.dm | 8 ++++++-- html/changelogs/implant_eggs_larvae_scans.yml | 7 +++++++ 3 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 html/changelogs/implant_eggs_larvae_scans.yml diff --git a/code/game/machinery/body_scanner.dm b/code/game/machinery/body_scanner.dm index 5fa267a3201..cdeecf24cc5 100644 --- a/code/game/machinery/body_scanner.dm +++ b/code/game/machinery/body_scanner.dm @@ -523,15 +523,19 @@ if (O.implants.len) var/unk = 0 + var/list/organic = list() for (var/atom/movable/I in O.implants) - if (is_type_in_list(I, known_implants)) + if(is_type_in_list(I, known_implants)) wounds += "\a [I.name] is installed." - if(istype(I, /obj/effect/spider)) - wounds += "Abnormal organic body detected." + else if(istype(I, /obj/effect/spider)) + organic += I else unk += 1 if (unk) wounds += "Has an abnormal mass present." + var/friends = length(organic) + if(friends) + wounds += friends > 1 ? "Multiple abnormal organic bodies present." : "Abnormal organic body present." if(length(wounds) || brute_damage != "None" || burn_damage != "None") has_external_injuries = TRUE @@ -742,15 +746,19 @@ if (e.implants.len) var/unknown_body = 0 + var/list/organic = list() for(var/I in e.implants) if(is_type_in_list(I,known_implants)) imp += "[I] implanted:" - if(istype(I, /obj/effect/spider)) - imp += "Abnormal organic body present:" + else if(istype(I, /obj/effect/spider)) + organic += I else unknown_body++ if(unknown_body) imp += "Unknown body present:" + var/friends = length(organic) + if(friends) + imp += friends > 1 ? "Multiple abnormal organic bodies present:" : "Abnormal organic body present:" if(!AN && !open && !infected && !imp) AN = "None:" diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index 7d76682293d..e599a0cb7cd 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -306,15 +306,19 @@ if (e.implants.len) var/unknown_body = 0 + var/list/organic = list() for(var/I in e.implants) if(is_type_in_list(I,internal_bodyscanner.known_implants)) imp += "[I] implanted:" - if(istype(I, /obj/effect/spider)) - imp += "Abnormal organic body present:" + else if(istype(I, /obj/effect/spider)) + organic += I else unknown_body++ if(unknown_body) imp += "Unknown body present:" + var/friends = length(organic) + if(friends) + imp += friends > 1 ? "Multiple abnormal organic bodies present:" : "Abnormal organic body present:" if(!AN && !open && !infected && !imp) AN = "None:" diff --git a/html/changelogs/implant_eggs_larvae_scans.yml b/html/changelogs/implant_eggs_larvae_scans.yml new file mode 100644 index 00000000000..beaf64b777c --- /dev/null +++ b/html/changelogs/implant_eggs_larvae_scans.yml @@ -0,0 +1,7 @@ +author: Vrow + +delete-after: True + +changes: + - bugfix: "Fixes medscans/body scanners/operating consoles thinking there's something else when someone only has an implant in them." + - bugfix: "Fixes the above counting each and every single greimorian larva inside a limb that has eggs implanted."