From 77c86be26231697631dbfd99784d4067c0db2e9d Mon Sep 17 00:00:00 2001 From: Theos Date: Fri, 13 Mar 2020 09:00:56 -0400 Subject: [PATCH 1/3] this else doesn't need to be here --- code/modules/surgery/advanced/dna_recovery.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/surgery/advanced/dna_recovery.dm b/code/modules/surgery/advanced/dna_recovery.dm index 522cd323e9d9..536f540f9db9 100644 --- a/code/modules/surgery/advanced/dna_recovery.dm +++ b/code/modules/surgery/advanced/dna_recovery.dm @@ -17,8 +17,7 @@ if(!HAS_TRAIT_FROM(target, TRAIT_BADDNA, CHANGELING_DRAIN)) return FALSE - else - return TRUE + return TRUE /datum/surgery_step/dna_recovery name = "recover DNA" @@ -37,4 +36,4 @@ "[user] successfully repairs some of [target]'s DNA", "[user] completes the surgery on [target]'s brain.") REMOVE_TRAIT(target, TRAIT_BADDNA, CHANGELING_DRAIN) - return TRUE \ No newline at end of file + return TRUE From 4a6529298193fd156df6bc598810b5397dddc02b Mon Sep 17 00:00:00 2001 From: Theos Date: Fri, 13 Mar 2020 09:33:28 -0400 Subject: [PATCH 2/3] surgery steps that use a syringe can check the syringe for reagents --- code/modules/surgery/surgery_step.dm | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index 520d25c8cae3..1d11b24793c4 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -87,7 +87,7 @@ prob_chance = implements[implement_type] prob_chance *= surgery.get_propability_multiplier() - if((prob(prob_chance) || iscyborg(user)) && chem_check(target) && !try_to_fail) + if((prob(prob_chance) || iscyborg(user)) && chem_check(target, tool) && !try_to_fail) if(success(user, target, target_zone, tool, surgery)) advance = 1 else @@ -122,20 +122,27 @@ /datum/surgery_step/proc/tool_check(mob/user, obj/item/tool) return 1 -/datum/surgery_step/proc/chem_check(mob/living/carbon/target) +/datum/surgery_step/proc/chem_check(mob/living/carbon/target, obj/item/tool) if(!LAZYLEN(chems_needed)) return TRUE - + var/obj/item/reagent_container/syringe/S + if(target.can_inject(user, FALSE)) + S = tool if(require_all_chems) . = TRUE for(var/R in chems_needed) if(!target.reagents.has_reagent(R)) - return FALSE + if(!(S && S.reagents.has_reagent(R)) + return FALSE + S.reagents.remove_reagent(R, min(S.amount_per_transfer_from_this, S.reagents.get_reagent_amount(R))) else . = FALSE for(var/R in chems_needed) if(target.reagents.has_reagent(R)) return TRUE + if(S && S.reagents.has_reagent(R)) + S.reagents.remove_reagent(R, min(S.amount_per_transfer_from_this, S.reagents.get_reagent_amount(R))) + return TRUE /datum/surgery_step/proc/get_chem_list() if(!LAZYLEN(chems_needed)) From e3b8813d71af481575c8dfaf5c9b8090150d03d3 Mon Sep 17 00:00:00 2001 From: SomeguyManperson Date: Fri, 13 Mar 2020 09:59:54 -0400 Subject: [PATCH 3/3] levio- SAAAAAAAAAAAs not levio -SUUUUUUUUUUUU --- code/modules/surgery/surgery_step.dm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index 1d11b24793c4..b3ff3a818e57 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -87,7 +87,8 @@ prob_chance = implements[implement_type] prob_chance *= surgery.get_propability_multiplier() - if((prob(prob_chance) || iscyborg(user)) && chem_check(target, tool) && !try_to_fail) + if((prob(prob_chance) || iscyborg(user)) && chem_check(target, user, + tool) && !try_to_fail) if(success(user, target, target_zone, tool, surgery)) advance = 1 else @@ -122,17 +123,17 @@ /datum/surgery_step/proc/tool_check(mob/user, obj/item/tool) return 1 -/datum/surgery_step/proc/chem_check(mob/living/carbon/target, obj/item/tool) +/datum/surgery_step/proc/chem_check(mob/living/carbon/target, user, obj/item/tool) if(!LAZYLEN(chems_needed)) return TRUE - var/obj/item/reagent_container/syringe/S + var/obj/item/reagent_containers/syringe/S if(target.can_inject(user, FALSE)) S = tool if(require_all_chems) . = TRUE for(var/R in chems_needed) if(!target.reagents.has_reagent(R)) - if(!(S && S.reagents.has_reagent(R)) + if(!(S && S.reagents.has_reagent(R))) return FALSE S.reagents.remove_reagent(R, min(S.amount_per_transfer_from_this, S.reagents.get_reagent_amount(R))) else