From 6a27a0758cbc6ad5caad8f827c1ce9aade56f9eb Mon Sep 17 00:00:00 2001 From: Metis <100518708+sheepishgoat@users.noreply.github.com> Date: Sat, 24 Aug 2024 15:32:50 -0400 Subject: [PATCH] Update docility_implant.dm --- .../game/objects/items/docility_implant.dm | 35 +++++++++++++------ 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/GainStation13/code/game/objects/items/docility_implant.dm b/GainStation13/code/game/objects/items/docility_implant.dm index c2ceea8f..0e713dd0 100644 --- a/GainStation13/code/game/objects/items/docility_implant.dm +++ b/GainStation13/code/game/objects/items/docility_implant.dm @@ -1,6 +1,24 @@ /obj/item/implant/docile name = "docility implant" activated = FALSE + /// What fatness level does the target need to be for the implant to work? + var/required_fatness = FATNESS_LEVEL_BLOB + /// What traits do we want to give the implanted mob? + var/list/traits_list = list( + TRAIT_WEIGHT_LOSS_IMMUNE, + TRAIT_PACIFISM, + TRAIT_CLUMSY, + TRAIT_FAT_GOOD, + TRAIT_HEAVY_SLEEPER, + TRAIT_DOCILE, + ) + +/obj/item/implant/docile/can_be_implanted_in(mob/living/target) + var/mob/living/carbon/human/target_human = target + if(!istype(target_human) || (target_human.fatness_real < required_fatness)) + return FALSE + + return target?.client?.prefs?.fatness_vulnerable /obj/item/implant/docile/implant(mob/living/target, mob/user, silent = FALSE) . = ..() @@ -11,25 +29,20 @@ if(!istype(target_human)) return - // If you have this implant, you aren't going to be doing any fighting. - ADD_TRAIT(target, TRAIT_WEIGHT_LOSS_IMMUNE, src) - ADD_TRAIT(target, TRAIT_PACIFISM, src) - ADD_TRAIT(target, TRAIT_CLUMSY, src) - ADD_TRAIT(target, TRAIT_FAT_GOOD, src) - ADD_TRAIT(target, TRAIT_HEAVY_SLEEPER, src) + for(var/trait in trait_list) + ADD_TRAIT(target, trait, src) target_human.nutri_mult += 1 + return TRUE /obj/item/implant/docile/removed(mob/living/source, silent = FALSE, special = 0) . = ..() if(!.) return - REMOVE_TRAIT(target, TRAIT_WEIGHT_LOSS_IMMUNE, src) - REMOVE_TRAIT(target, TRAIT_PACIFISM, src) - REMOVE_TRAIT(target, TRAIT_CLUMSY, src) - REMOVE_TRAIT(target, TRAIT_FAT_GOOD, src) - REMOVE_TRAIT(target, TRAIT_HEAVY_SLEEPER, src) + for(var/trait in trait_list) + REMOVE_TRAIT(target, trait, src) target_human.nutri_mult -= 1 + return TRUE