mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 22:17:32 +01:00
Adds the Strong-Arm empowered musculature implant (#22159)
* Aaaaaaaaaaaa * IT WORKS * Okay now make it a martial art * Final shit * Forgor this * Protolathe moment * The sprite * Typo fixes * Burza review * Contra review * Contra review * Contra + Henri review * Update code/modules/surgery/organs/augments_arms.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Me when I push untested code * Contra review pt 1 * Contra review * I forgor * I forgot v2 * Henri review --------- Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
/datum/martial_art/muscle_implant
|
||||
name = "Empowered Muscle Implant Fighting"
|
||||
weight = 1
|
||||
/// Are we EMP'ed?
|
||||
var/is_emped = FALSE
|
||||
/// How much damage should our punches deal
|
||||
var/punch_damage = 13
|
||||
|
||||
/datum/martial_art/muscle_implant/harm_act(mob/living/carbon/human/user, mob/living/carbon/human/target)
|
||||
MARTIAL_ARTS_ACT_CHECK
|
||||
|
||||
if(HAS_TRAIT(user, TRAIT_PACIFISM))
|
||||
to_chat(user, "<span class='warning'>You don't want to hurt [target]!</span>")
|
||||
return FALSE
|
||||
var/picked_hit_type = pick("punch", "smash", "kick")
|
||||
if(ishuman(target) && target.check_shields(user, punch_damage, "[user]'s' [picked_hit_type]"))
|
||||
user.do_attack_animation(target)
|
||||
playsound(target.loc, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1)
|
||||
return FALSE
|
||||
if(is_emped)
|
||||
do_the_punch(user, user)
|
||||
else
|
||||
do_the_punch(user, target)
|
||||
playsound(target.loc, 'sound/weapons/resonator_blast.ogg', 50, TRUE)
|
||||
playsound(target.loc, 'sound/weapons/genhit2.ogg', 50, TRUE)
|
||||
|
||||
return TRUE
|
||||
|
||||
/datum/martial_art/muscle_implant/proc/do_the_punch(mob/living/carbon/human/puncher, mob/living/carbon/human/punchee)
|
||||
puncher.do_attack_animation(punchee, ATTACK_EFFECT_SMASH)
|
||||
add_attack_logs(puncher, punchee, "Melee attacked with martial-art [src] : Punched", ATKLOG_ALL)
|
||||
punchee.apply_damage(punch_damage, BRUTE, puncher.zone_selected)
|
||||
|
||||
if(!IS_HORIZONTAL(puncher)) //Throw them if we are standing
|
||||
var/atom/throw_target = get_edge_target_turf(punchee, puncher.dir)
|
||||
punchee.throw_at(throw_target, rand(1, 2), 0.5, puncher)
|
||||
|
||||
var/picked_hit_type = pick("punch", "smash", "kick")
|
||||
punchee.visible_message(
|
||||
"<span class='danger'>[puncher] [picked_hit_type]ed [punchee]!</span>",
|
||||
"<span class='danger'>You're [picked_hit_type]ed by [puncher]!</span>",
|
||||
"<span class='danger'>You hear a sickening sound of flesh hitting flesh!</span>"
|
||||
)
|
||||
|
||||
if(puncher == punchee)
|
||||
to_chat(puncher, "<span class='danger'>You [picked_hit_type] yourself!</span>")
|
||||
else
|
||||
to_chat(puncher, "<span class='danger'>You [picked_hit_type] [punchee]!</span>")
|
||||
|
||||
/datum/martial_art/muscle_implant/proc/emp_act(severity, mob/owner)
|
||||
is_emped = TRUE
|
||||
to_chat(owner, "<span class='danger'>Your arms spasm wildly!</span>")
|
||||
addtimer(CALLBACK(src, PROC_REF(reboot), owner), (18 / severity) SECONDS)
|
||||
|
||||
/datum/martial_art/muscle_implant/proc/reboot(mob/owner)
|
||||
is_emped = FALSE
|
||||
to_chat(owner, "<span class='danger'>Your arms stop spasming.</span>")
|
||||
@@ -333,3 +333,13 @@
|
||||
reagents_list = list("blood" = 50)
|
||||
build_path = /obj/item/v1_arm_shell
|
||||
category = list("Weapons")
|
||||
|
||||
/datum/design/muscle_implant
|
||||
name = "Strong-arm Empowered Musculature Implant"
|
||||
desc = "An implant that enhances your muscles to punch harder and throw people back."
|
||||
id = "muscle_implant"
|
||||
req_tech = list("combat" = 7, "syndicate" = 4, "biotech" = 7)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_GOLD = 5000, MAT_METAL = 10000, MAT_TITANIUM = 3000, MAT_BLUESPACE = 2000)
|
||||
build_path = /obj/item/organ/internal/cyberimp/arm/muscle
|
||||
category = list("Weapons")
|
||||
|
||||
@@ -559,3 +559,29 @@
|
||||
qdel(src)
|
||||
qdel(I)
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/muscle
|
||||
name = "strong-arm empowered musculature implant"
|
||||
desc = "When implanted, this cybernetic implant will enhance the muscles of the arm to deliver more power-per-action. Only has to be installed in one arm."
|
||||
icon_state = "muscle_imp"
|
||||
|
||||
parent_organ = "l_arm" //Left arm by default
|
||||
slot = "l_arm_device"
|
||||
|
||||
actions_types = list()
|
||||
var/datum/martial_art/muscle_implant/muscle_implant
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/muscle/insert(mob/living/carbon/M, special, dont_remove_slot)
|
||||
. = ..()
|
||||
muscle_implant = new()
|
||||
muscle_implant.teach(M)
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/muscle/remove(mob/living/carbon/M, special)
|
||||
. = ..()
|
||||
muscle_implant.remove(M)
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/muscle/emp_act(severity)
|
||||
. = ..()
|
||||
if(emp_proof)
|
||||
return
|
||||
muscle_implant.emp_act(severity, owner)
|
||||
|
||||
Reference in New Issue
Block a user