From 13889abe610ad8fae5d25d97a6705774eba7af1c Mon Sep 17 00:00:00 2001 From: Atermonera Date: Wed, 10 Mar 2021 10:18:22 -0900 Subject: [PATCH 1/3] Tweaked implant loadout, refactored implant detection. --- code/game/machinery/adv_med.dm | 17 ++++++++++------- code/game/machinery/cloning.dm | 1 + .../objects/items/weapons/implants/implant.dm | 19 +++++++++++++------ .../items/weapons/implants/implantlanguage.dm | 1 + .../preference_setup/loadout/gear_tweaks.dm | 18 +++++++++--------- 5 files changed, 34 insertions(+), 22 deletions(-) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 267524b9797..9c922fff855 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -14,7 +14,10 @@ active_power_usage = 10000 //10 kW. It's a big all-body scanner. light_color = "#00FF00" var/obj/machinery/body_scanconsole/console +<<<<<<< HEAD var/known_implants = list(/obj/item/weapon/implant/health, /obj/item/weapon/implant/chem, /obj/item/weapon/implant/death_alarm, /obj/item/weapon/implant/loyalty, /obj/item/weapon/implant/tracking, /obj/item/weapon/implant/language, /obj/item/weapon/implant/language/eal, /obj/item/weapon/implant/backup, /obj/item/device/nif) //VOREStation Add - Backup Implant, NIF +======= +>>>>>>> 823d556... Merge pull request #7963 from MistakeNot4892/implants var/printing_text = null /obj/machinery/bodyscanner/Initialize() @@ -255,12 +258,11 @@ organData["broken"] = E.min_broken_damage var/implantData[0] - for(var/obj/I in E.implants) + for(var/obj/thing in E.implants) var/implantSubData[0] - implantSubData["name"] = I.name - if(is_type_in_list(I, known_implants)) - implantSubData["known"] = 1 - + var/obj/item/weapon/implant/I = thing + implantSubData["name"] = I.name + implantSubData["known"] = istype(I) && I.known_implant implantData.Add(list(implantSubData)) organData["implants"] = implantData @@ -464,8 +466,9 @@ infected = "Gangrene Detected:" var/unknown_body = 0 - for(var/I in e.implants) - if(is_type_in_list(I,known_implants)) + for(var/thing in e.implants) + var/obj/item/weapon/implant/I = thing + if(istype(I) && I.known_implant) imp += "[I] implanted:" else unknown_body++ diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 8ddb76c68a1..2c34326fa7d 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -465,6 +465,7 @@ /obj/item/weapon/implant/health name = "health implant" + known_implant = TRUE var/healthstring = "" /obj/item/weapon/implant/health/proc/sensehealth() diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 81d5bb8f04e..b06e92cc4ab 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -7,6 +7,8 @@ icon = 'icons/obj/device.dmi' icon_state = "implant" w_class = ITEMSIZE_TINY + show_messages = TRUE + var/implanted = null var/mob/imp_in = null var/obj/item/organ/external/part = null @@ -14,7 +16,7 @@ var/allow_reagents = 0 var/malfunction = 0 var/initialize_loc = BP_TORSO - show_messages = 1 + var/known_implant = FALSE /obj/item/weapon/implant/proc/trigger(emote, source as mob) return @@ -65,16 +67,17 @@ malfunction = MALFUNCTION_PERMANENT /obj/item/weapon/implant/proc/implant_loadout(var/mob/living/carbon/human/H) - if(H) - if(handle_implant(H, initialize_loc)) - invisibility = initial(invisibility) - post_implant(H) + . = istype(H) && handle_implant(H, initialize_loc) + if(.) + invisibility = initial(invisibility) + known_implant = TRUE + post_implant(H) /obj/item/weapon/implant/Destroy() if(part) part.implants.Remove(src) + part = null listening_objects.Remove(src) - part = null imp_in = null return ..() @@ -100,6 +103,7 @@ GLOBAL_LIST_BOILERPLATE(all_tracking_implants, /obj/item/weapon/implant/tracking /obj/item/weapon/implant/tracking name = "tracking implant" desc = "An implant normally given to dangerous criminals. Allows security to track your location." + known_implant = TRUE var/id = 1 var/degrade_time = 10 MINUTES //How long before the implant stops working outside of a living body. @@ -348,6 +352,7 @@ GLOBAL_LIST_BOILERPLATE(all_chem_implants, /obj/item/weapon/implant/chem) name = "chemical implant" desc = "Injects things." allow_reagents = 1 + known_implant = TRUE /obj/item/weapon/implant/chem/get_data() var/dat = {" @@ -418,6 +423,7 @@ the implant may become unstable and either pre-maturely inject the subject or si /obj/item/weapon/implant/loyalty name = "loyalty implant" desc = "Makes you loyal or such." + known_implant = TRUE /obj/item/weapon/implant/loyalty/get_data() var/dat = {" @@ -491,6 +497,7 @@ the implant may become unstable and either pre-maturely inject the subject or si name = "death alarm implant" desc = "An alarm which monitors host vital signs and transmits a radio message upon death." origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 2, TECH_DATA = 1) + known_implant = TRUE var/mobname = "Will Robinson" /obj/item/weapon/implant/death_alarm/get_data() diff --git a/code/game/objects/items/weapons/implants/implantlanguage.dm b/code/game/objects/items/weapons/implants/implantlanguage.dm index 6a0f2baea80..692cdd381f7 100644 --- a/code/game/objects/items/weapons/implants/implantlanguage.dm +++ b/code/game/objects/items/weapons/implants/implantlanguage.dm @@ -5,6 +5,7 @@ /obj/item/weapon/implant/language name = "GalCom language implant" desc = "An implant allowing someone to speak the range of frequencies used in Galactic Common, as well as produce any phonemes that they usually cannot. Only helps with producing sounds, not understanding them." + known_implant = TRUE var/list/languages = list(LANGUAGE_GALCOM) // List of languages that this assists with /obj/item/weapon/implant/language/post_implant(mob/M) // Amends the mob's voice organ, then deletes itself diff --git a/code/modules/client/preference_setup/loadout/gear_tweaks.dm b/code/modules/client/preference_setup/loadout/gear_tweaks.dm index b24bcc71216..0c26ba6ae5e 100644 --- a/code/modules/client/preference_setup/loadout/gear_tweaks.dm +++ b/code/modules/client/preference_setup/loadout/gear_tweaks.dm @@ -512,6 +512,9 @@ var/datum/gear_tweak/custom_desc/gear_tweak_free_desc = new() /datum/gear_tweak/implant_location var/static/list/bodypart_names_to_tokens = list( + "head" = BP_HEAD, + "upper body" = BP_TORSO, + "lower body" = BP_GROIN, "left hand" = BP_L_HAND, "left arm" = BP_L_ARM, "right hand" = BP_R_HAND, @@ -519,12 +522,12 @@ var/datum/gear_tweak/custom_desc/gear_tweak_free_desc = new() "left foot" = BP_L_FOOT, "left leg" = BP_L_LEG, "right foot" = BP_R_FOOT, - "right leg" = BP_R_LEG, - "lower body" = BP_GROIN, - "upper body" = BP_TORSO, - "head" = BP_HEAD + "right leg" = BP_R_LEG ) var/static/list/bodypart_tokens_to_names = list( + BP_HEAD = "head", + BP_TORSO = "upper body", + BP_GROIN = "lower body", BP_LEFT_HAND = "left hand", BP_LEFT_ARM = "left arm", BP_RIGHT_HAND = "right hand", @@ -532,14 +535,11 @@ var/datum/gear_tweak/custom_desc/gear_tweak_free_desc = new() BP_LEFT_FOOT = "left foot", BP_LEFT_LEG = "left leg", BP_RIGHT_FOOT = "right foot", - BP_RIGHT_LEG = "right leg", - BP_GROIN = "lower body", - BP_TORSO = "upper body", - BP_HEAD = "head" + BP_RIGHT_LEG = "right leg" ) /datum/gear_tweak/implant_location/get_default() - return BP_TORSO + return bodypart_names_to_tokens[1] /datum/gear_tweak/implant_location/tweak_item(var/obj/item/weapon/implant/I, var/metadata) if(istype(I)) From c92fbc73feabc020f84e748fa9d15abd0eb9f6b0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 10 Mar 2021 14:24:14 -0500 Subject: [PATCH 2/3] Compatability --- code/game/machinery/adv_med.dm | 4 ---- code/modules/nifsoft/nif.dm | 1 + code/modules/resleeving/implant.dm | 1 + 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 9c922fff855..08e22f96e0e 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -14,10 +14,6 @@ active_power_usage = 10000 //10 kW. It's a big all-body scanner. light_color = "#00FF00" var/obj/machinery/body_scanconsole/console -<<<<<<< HEAD - var/known_implants = list(/obj/item/weapon/implant/health, /obj/item/weapon/implant/chem, /obj/item/weapon/implant/death_alarm, /obj/item/weapon/implant/loyalty, /obj/item/weapon/implant/tracking, /obj/item/weapon/implant/language, /obj/item/weapon/implant/language/eal, /obj/item/weapon/implant/backup, /obj/item/device/nif) //VOREStation Add - Backup Implant, NIF -======= ->>>>>>> 823d556... Merge pull request #7963 from MistakeNot4892/implants var/printing_text = null /obj/machinery/bodyscanner/Initialize() diff --git a/code/modules/nifsoft/nif.dm b/code/modules/nifsoft/nif.dm index a0ad5092b8a..4702e389af8 100644 --- a/code/modules/nifsoft/nif.dm +++ b/code/modules/nifsoft/nif.dm @@ -23,6 +23,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable icon_state = "nif_0" w_class = ITEMSIZE_TINY + known_implant = TRUE var/durability = 100 // Durability remaining var/bioadap = FALSE // If it'll work in fancy species diff --git a/code/modules/resleeving/implant.dm b/code/modules/resleeving/implant.dm index bcb87677213..b7fb3292382 100644 --- a/code/modules/resleeving/implant.dm +++ b/code/modules/resleeving/implant.dm @@ -11,6 +11,7 @@ /datum/category_item/catalogue/technology/resleeving) icon = 'icons/vore/custom_items_vr.dmi' icon_state = "backup_implant" + known_implant = TRUE /obj/item/weapon/implant/backup/get_data() var/dat = {" From f53f54c0b8ab170ca90fecf8097b7b90487baa01 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 10 Mar 2021 14:28:41 -0500 Subject: [PATCH 3/3] Fixfix --- code/modules/nifsoft/nif.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/nifsoft/nif.dm b/code/modules/nifsoft/nif.dm index 4702e389af8..a1027d60179 100644 --- a/code/modules/nifsoft/nif.dm +++ b/code/modules/nifsoft/nif.dm @@ -23,7 +23,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable icon_state = "nif_0" w_class = ITEMSIZE_TINY - known_implant = TRUE + var/known_implant = TRUE var/durability = 100 // Durability remaining var/bioadap = FALSE // If it'll work in fancy species