From 0e948ffeece76151a22c95dad29f37870376d106 Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Sun, 10 May 2015 04:29:01 -0700 Subject: [PATCH] Remove Jointbreaking, Joint fracturing, and Knifing This commit removes Jointbreaking, Joint fracturing, and Knifing from the grab system due to near-universal dislike of the features. --- code/_onclick/item_attack.dm | 16 ---------- .../living/carbon/human/human_attackhand.dm | 30 +------------------ code/modules/mob/mob_grab.dm | 28 ++++------------- 3 files changed, 7 insertions(+), 67 deletions(-) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index c78723f34f4..afb2ca35a73 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -34,22 +34,6 @@ if (do_surgery(M,user,src)) return 0 - // Knifing - if(edge) //this is still absolutely fucking horrible - for(var/obj/item/weapon/grab/G in M.grabbed_by) - if(G.assailant == user && G.state >= GRAB_NECK) - //TODO: better alternative for applying damage multiple times? Nice knifing sound? - M.apply_damage(20, BRUTE, "head", 0, sharp=sharp, edge=edge) - M.apply_damage(20, BRUTE, "head", 0, sharp=sharp, edge=edge) - M.apply_damage(20, BRUTE, "head", 0, sharp=sharp, edge=edge) - M.adjustOxyLoss(60) // Brain lacks oxygen immediately, pass out - user.visible_message("[user] slit [M]'s throat open with \the [name]!") - user.attack_log += "\[[time_stamp()]\] Knifed [M.name] ([M.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" - M.attack_log += "\[[time_stamp()]\] Got knifed by [user.name] ([user.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" - msg_admin_attack("[key_name(user)] knifed [key_name(M)] with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" ) - return - - if (istype(M,/mob/living/carbon/brain)) messagesource = M:container if (hitsound && force > 0) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 8964816317d..b2be2f8e29d 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -226,32 +226,4 @@ return /mob/living/carbon/human/proc/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, inrange, params) - return - -/mob/living/carbon/human/proc/grab_joint(var/mob/living/user, var/def_zone) - var/has_grab = 0 - for(var/obj/item/weapon/grab/G in list(user.l_hand, user.r_hand)) - if(G.affecting == src && G.state == GRAB_NECK) - has_grab = 1 - break - - if(!has_grab) - return 0 - - if(!def_zone) def_zone = user.zone_sel.selecting - var/target_zone = check_zone(def_zone) - if(!target_zone) - return 0 - var/obj/item/organ/external/organ = get_organ(check_zone(target_zone)) - if(!organ || organ.is_broken()) - return 0 - - if(organ.limb_name == "chest" || organ.limb_name == "groin") - return 0 //what how do you dislocate a chest with your hands or a groin really - - user.visible_message("[user] begins to fracture [src]'s [organ.name]!") - if(do_after(user, 100)) - organ.fracture() - src.visible_message("[src]'s [organ.name] [pick("cracks","gives way","snaps","collapses")]!") - return 1 - return 0 \ No newline at end of file + return \ No newline at end of file diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 99c52c2ecf9..e37b3af25e9 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -293,21 +293,11 @@ assailant << "You no longer pin [affecting] to the ground." force_down = 0 return - if("grab") - if(state < GRAB_AGGRESSIVE) - assailant << "You require a better grab to do this." - return - var/obj/item/organ/external/organ = affected.get_organ(check_zone(last_hit_zone)) - if(!organ || organ.is_broken() || organ.limb_name == "chest" || organ.limb_name == "groin") //necessary to prevent chest and groin - return - assailant.visible_message("[assailant] begins [pick("bending", "twisting")] [affecting]'s [organ.name] into a jointlock!") - var/armor = affected.run_armor_check(affecting, "melee") - if(armor < 2) - affecting << "You feel extreme pain!" - affecting.apply_damage(40, HALLOSS, last_hit_zone, armor) - return - if("harm") + if("grab") + return + + if("harm") if(last_hit_zone == "eyes") if(state < GRAB_NECK) assailant << "You require a better grab to do this." @@ -330,14 +320,7 @@ if (eyes.damage >= eyes.min_broken_damage) if(M.stat != 2) M << "\red You go blind!" - else if(last_hit_zone != "chest" && last_hit_zone != "groin") //headbutting should probably use head hitzone, - if(state < GRAB_NECK)// but, chest and groin being fractured doesn't paticulary make sense in this context - assailant << "You require a better grab to do this."//and head does - return - if(affected.grab_joint(assailant)) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - return - else + else if(last_hit_zone == "head") if(affecting.lying) return assailant.visible_message("[assailant] thrusts \his head into [affecting]'s skull!") @@ -352,6 +335,7 @@ affecting.attack_log += text("\[[time_stamp()]\] Headbutted by [assailant.name] ([assailant.ckey])") msg_admin_attack("[key_name(assailant)] has headbutted [key_name(affecting)]") return + if("disarm") if(state < GRAB_AGGRESSIVE) assailant << "You require a better grab to do this."