From 6ad7ea6bb9a837820989dad3f6babcbf40e2808a Mon Sep 17 00:00:00 2001 From: SuperSlayer <91609255+SuperSlayer0@users.noreply.github.com> Date: Tue, 21 Feb 2023 00:53:11 +0200 Subject: [PATCH] Adds new combat cybernetic implant (#73043) ## About The Pull Request Adds arm empower implant to the game - a cybernetic implant that will make your punches deal 13 damage(normal human attacks deal between 1 and 10 damage), and throw your target away(doesn't work if you are lying down) like a baseball bat does. It is inserted into your arm, and it works only for the arm it is inserted into. As an EMP effect it would cause you to fall under your target, or get paralyzed due to muscle spasms. ## Why It's Good For The Game Expands the implant system and adds more things to stuff into yourself if you want to roleplay as a cool robo man. ## Changelog :cl: add: Added a new cybernetic implant that increases punch damage of a human /:cl: --------- Co-authored-by: san7890 --- code/modules/cargo/packs/medical.dm | 7 ++ code/modules/surgery/organs/augments_arms.dm | 100 +++++++++++++++++++ icons/obj/medical/organs/organs.dmi | Bin 34689 -> 34923 bytes 3 files changed, 107 insertions(+) diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index 45383b10bb4..3d294b216b6 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -156,3 +156,10 @@ contains = list(/obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck, /obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck/skirt, ) + +/datum/supply_pack/medical/arm_implants + name = "Strong-Arm Implant Set" + desc = "A crate containing two implants, which can be surgically implanted to empower the strength of human arms. Warranty void if exposed to electromagnetic pulses." + cost = CARGO_CRATE_VALUE * 6 + contains = list(/obj/item/organ/internal/cyberimp/arm/muscle = 2) + crate_name = "Strong-Arm implant crate" diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index 7b1d42fbd12..f57dc3c9735 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -334,3 +334,103 @@ /obj/item/surgical_drapes, /obj/item/knife/combat/cyborg, ) + +/obj/item/organ/internal/cyberimp/arm/muscle + name = "\proper Strong-Arm empowered musculature implant" + desc = "When implanted, this cybernetic implant will enhance the muscles of the arm to deliver more power-per-action." + icon_state = "muscle_implant" + + zone = BODY_ZONE_R_ARM + slot = ORGAN_SLOT_RIGHT_ARM_AUG + + actions_types = list() + + ///The amount of damage dealt by the empowered attack. + var/punch_damage = 13 + ///Will the punch smash people into walls? + var/gentle = TRUE + ///How far away your attack will throw your oponent + var/attack_throw_range = 1 + ///Minimum throw power of the attack + var/throw_power_min = 1 + ///Maximum throw power of the attack + var/throw_power_max = 4 + ///How long will the implant malfunction if it is EMP'd + var/emp_base_duration = 9 SECONDS + +/obj/item/organ/internal/cyberimp/arm/muscle/Insert(mob/living/carbon/reciever, special = FALSE, drop_if_replaced = TRUE) + . = ..() + if(ishuman(reciever)) //Sorry, only humans + RegisterSignal(reciever, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, PROC_REF(on_attack_hand)) + +/obj/item/organ/internal/cyberimp/arm/muscle/Remove(mob/living/carbon/implant_owner, special = 0) + . = ..() + UnregisterSignal(implant_owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK) + +/obj/item/organ/internal/cyberimp/arm/muscle/emp_act(severity) + . = ..() + if((organ_flags & ORGAN_FAILING) || . & EMP_PROTECT_SELF) + return + owner.balloon_alert(owner, "your arm spasms wildly!") + organ_flags |= ORGAN_FAILING + addtimer(CALLBACK(src, PROC_REF(reboot)), 90 / severity) + +/obj/item/organ/internal/cyberimp/arm/muscle/proc/reboot() + organ_flags &= ~ORGAN_FAILING + owner.balloon_alert(owner, "your arm stops spasming!") + +/obj/item/organ/internal/cyberimp/arm/muscle/proc/on_attack_hand(mob/living/carbon/human/source, atom/target, proximity, modifiers) + SIGNAL_HANDLER + + if(source.get_active_hand() != source.get_bodypart(check_zone(zone)) || !proximity) + return + if(!source.combat_mode || LAZYACCESS(modifiers, RIGHT_CLICK)) + return + if(!isliving(target)) + return + + var/mob/living/living_target = target + + source.changeNext_move(CLICK_CD_MELEE) + var/picked_hit_type = pick("punch", "smash", "kick") + + if(organ_flags & ORGAN_FAILING) + if(source.body_position != LYING_DOWN && living_target != source && prob(50)) + to_chat(source, span_danger("You try to [picked_hit_type] [living_target], but lose your balance and fall!")) + source.Knockdown(3 SECONDS) + source.forceMove(get_turf(living_target)) + else + to_chat(source, span_danger("Your muscles spasm!")) + source.Paralyze(1 SECONDS) + return COMPONENT_CANCEL_ATTACK_CHAIN + + if(ishuman(target)) + var/mob/living/carbon/human/human_target = target + if(human_target.check_shields(source, punch_damage, "[source]'s' [picked_hit_type]")) + source.do_attack_animation(target) + playsound(living_target.loc, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) + log_combat(source, target, "attempted to [picked_hit_type]", "muscle implant") + return COMPONENT_CANCEL_ATTACK_CHAIN + + source.do_attack_animation(target, ATTACK_EFFECT_SMASH) + playsound(living_target.loc, 'sound/weapons/punch1.ogg', 25, TRUE, -1) + + living_target.apply_damage(punch_damage, BRUTE) + + if(source.body_position != LYING_DOWN) //Throw them if we are standing + var/atom/throw_target = get_edge_target_turf(living_target, source.dir) + living_target.throw_at(throw_target, attack_throw_range, rand(throw_power_min,throw_power_max), source, gentle) + + living_target.visible_message( + span_danger("[source] [picked_hit_type]ed [living_target]!"), + span_userdanger("You're [picked_hit_type]ed by [source]!"), + span_hear("You hear a sickening sound of flesh hitting flesh!"), + COMBAT_MESSAGE_RANGE, + source, + ) + + to_chat(source, span_danger("You [picked_hit_type] [target]!")) + + log_combat(source, target, "[picked_hit_type]ed", "muscle implant") + + return COMPONENT_CANCEL_ATTACK_CHAIN diff --git a/icons/obj/medical/organs/organs.dmi b/icons/obj/medical/organs/organs.dmi index 38ed71a74838460bfc399588106efed25d6b7f3b..acab1e2484000c23b1cd7bcde8ab33b2d69e4ad3 100644 GIT binary patch delta 16002 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