From 65286d78300f6c5b1c3ab26f7e3e43185f7c4822 Mon Sep 17 00:00:00 2001 From: datlo Date: Tue, 20 Nov 2018 03:51:52 +0000 Subject: [PATCH 1/5] Adds the CQC manual to nukie uplinks --- code/_onclick/item_attack.dm | 3 +- code/datums/uplink_item.dm | 10 + code/game/objects/items.dm | 7 + code/game/objects/items/weapons/stunbaton.dm | 2 + code/modules/martial_arts/cqc.dm | 186 ++++++++++++++++++ code/modules/martial_arts/martial.dm | 23 +++ .../mob/living/carbon/human/human_defense.dm | 4 + .../living/carbon/human/species/_species.dm | 11 +- icons/obj/library.dmi | Bin 40097 -> 40283 bytes paradise.dme | 1 + sound/weapons/cqchit1.ogg | Bin 0 -> 15234 bytes sound/weapons/cqchit2.ogg | Bin 0 -> 15201 bytes sound/weapons/slam.ogg | Bin 0 -> 29009 bytes 13 files changed, 245 insertions(+), 2 deletions(-) create mode 100644 code/modules/martial_arts/cqc.dm create mode 100644 sound/weapons/cqchit1.ogg create mode 100644 sound/weapons/cqchit2.ogg create mode 100644 sound/weapons/slam.ogg diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 9e8b9b9c3a6..3e803cdfd97 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -30,7 +30,8 @@ /obj/item/proc/attack(mob/living/M, mob/living/user, def_zone) if(flags & (NOBLUDGEON)) return 0 - + if(check_martial_counter(M, user)) + return 0 if(can_operate(M)) //Checks if mob is lying down on table for surgery if(istype(src,/obj/item/robot_parts))//popup override for direct attach if(!attempt_initiate_surgery(src, M, user,1)) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index ed3536f8183..1e99ea2bc77 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -419,6 +419,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) reference = "RPGD" item = /obj/item/clothing/gloves/fingerless/rapid cost = 8 + excludefrom = list(/datum/game_mode/nuclear) /datum/uplink_item/dangerous/sniper name = "Sniper Rifle" @@ -764,6 +765,15 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) excludefrom = list(/datum/game_mode/nuclear) refundable = TRUE +/datum/uplink_item/stealthy_weapons/cqc + name = "CQC Manual" + desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." + reference = "CQC" + item = /obj/item/CQC_manual + gamemodes = list(/datum/game_mode/nuclear) + cost = 8 + surplus = 0 + /datum/uplink_item/stealthy_weapons/throwingweapons name = "Box of Throwing Weapons" desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 9af8b04580a..42a0913d326 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -558,3 +558,10 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d /obj/item/attack_hulk(mob/living/carbon/human/user) return FALSE + +/obj/item/proc/check_martial_counter(mob/living/carbon/human/target, mob/living/carbon/human/user) //handles block for CQC + if(target.check_block()) + target.visible_message("[target.name] blocks [src] and twists [user]'s arm behind [user.p_their()] back!", + "You block the attack!") + user.Stun(2) + return TRUE \ No newline at end of file diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 231645ed758..f16ca21682f 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -166,6 +166,8 @@ if(ishuman(L)) var/mob/living/carbon/human/H = L + if(check_martial_counter(L, user)) + return if(H.check_shields(0, "[user]'s [name]", src, MELEE_ATTACK)) //No message; check_shields() handles that playsound(L, 'sound/weapons/Genhit.ogg', 50, 1) return diff --git a/code/modules/martial_arts/cqc.dm b/code/modules/martial_arts/cqc.dm new file mode 100644 index 00000000000..876334c4b63 --- /dev/null +++ b/code/modules/martial_arts/cqc.dm @@ -0,0 +1,186 @@ +#define SLAM_COMBO "HG" +#define KICK_COMBO "HH" +#define RESTRAIN_COMBO "GG" +#define PRESSURE_COMBO "DG" +#define CONSECUTIVE_COMBO "DDH" + +/datum/martial_art/cqc + name = "CQC" + help_verb = /mob/living/carbon/human/proc/CQC_help + block_chance = 75 + +/datum/martial_art/cqc/proc/drop_restraining() + restraining = FALSE + +/datum/martial_art/cqc/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!can_use(A)) + return FALSE + if(findtext(streak,SLAM_COMBO)) + streak = "" + Slam(A,D) + return TRUE + if(findtext(streak,KICK_COMBO)) + streak = "" + Kick(A,D) + return TRUE + if(findtext(streak,RESTRAIN_COMBO)) + streak = "" + Restrain(A,D) + return TRUE + if(findtext(streak,PRESSURE_COMBO)) + streak = "" + Pressure(A,D) + return TRUE + if(findtext(streak,CONSECUTIVE_COMBO)) + streak = "" + Consecutive(A,D) + return FALSE + +/datum/martial_art/cqc/proc/Slam(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!can_use(A)) + return FALSE + if(!D.stat || !D.weakened) + D.visible_message("[A] slams [D] into the ground!", \ + "[A] slams you into the ground!") + playsound(get_turf(A), 'sound/weapons/slam.ogg', 50, 1, -1) + D.apply_damage(10, BRUTE) + D.Weaken(6) + return TRUE + +/datum/martial_art/cqc/proc/Kick(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!can_use(A)) + return FALSE + if(!D.stat || !D.weakened) + D.visible_message("[A] kicks [D] back!", \ + "[A] kicks you back!") + playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + var/atom/throw_target = get_edge_target_turf(D, A.dir) + D.throw_at(throw_target, 1, 14, A) + D.apply_damage(10, BRUTE) + if(D.weakened && !D.stat) + D.visible_message("[A] kicks [D]'s head, knocking [D.p_them()] out!", \ + "[A] kicks your head, knocking you out!") + playsound(get_turf(A), 'sound/weapons/genhit1.ogg', 50, 1, -1) + D.SetSleeping(15) + D.adjustBrainLoss(15, 150) + return TRUE + +/datum/martial_art/cqc/proc/Pressure(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!can_use(A)) + return FALSE + D.visible_message("[A] forces their arm on [D]'s neck!") + D.adjustStaminaLoss(60) + playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + return TRUE + +/datum/martial_art/cqc/proc/Restrain(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(restraining) + return + if(!can_use(A)) + return FALSE + if(!D.stat) + D.visible_message("[A] locks [D] into a restraining position!", \ + "[A] locks you into a restraining position!") + D.adjustStaminaLoss(20) + D.Stun(5) + restraining = TRUE + addtimer(CALLBACK(src, .proc/drop_restraining), 50, TIMER_UNIQUE) + return TRUE + +/datum/martial_art/cqc/proc/Consecutive(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!can_use(A)) + return FALSE + if(!D.stat) + D.visible_message("[A] strikes [D]'s abdomen, neck and back consecutively", \ + "[A] strikes your abdomen, neck and back consecutively!") + playsound(get_turf(D), 'sound/weapons/cqchit2.ogg', 50, 1, -1) + var/obj/item/I = D.get_active_hand() + if(I && D.drop_item()) + A.put_in_hands(I) + D.adjustStaminaLoss(50) + D.apply_damage(25, BRUTE) + return TRUE + +/datum/martial_art/cqc/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!can_use(A)) + return FALSE + add_to_streak("G",D) + if(check_streak(A,D)) + return TRUE + var/obj/item/grab/G = D.grabbedby(A,1) + if(G) + G.state = GRAB_AGGRESSIVE //Instant aggressive grab + return TRUE + +/datum/martial_art/cqc/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!can_use(A)) + return FALSE + add_to_streak("H",D) + if(check_streak(A,D)) + return TRUE + A.do_attack_animation(D) + var/picked_hit_type = pick("CQC'd", "Big Bossed") + var/bonus_damage = 13 + if(D.weakened || D.resting || D.lying) + bonus_damage += 5 + picked_hit_type = "stomps on" + D.apply_damage(bonus_damage, BRUTE) + if(picked_hit_type == "kicks" || picked_hit_type == "stomps on") + playsound(get_turf(D), 'sound/weapons/cqchit2.ogg', 50, 1, -1) + else + playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + D.visible_message("[A] [picked_hit_type] [D]!", \ + "[A] [picked_hit_type] you!") + if(A.resting && !D.stat && !D.weakened) + D.visible_message("[A] leg sweeps [D]!", \ + "[A] leg sweeps you!") + playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) + D.apply_damage(10, BRUTE) + D.Weaken(3) + return TRUE + +/datum/martial_art/cqc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!can_use(A)) + return FALSE + add_to_streak("D",D) + var/obj/item/I = null + if(check_streak(A,D)) + return TRUE + if(prob(65)) + if(!D.stat || !D.weakened || !restraining) + I = D.get_active_hand() + D.visible_message("[A] strikes [D]'s jaw with their hand!", \ + "[A] strikes your jaw, disorienting you!") + playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + if(I && D.drop_item()) + A.put_in_hands(I) + D.Jitter(2) + D.apply_damage(5, BRUTE) + else + D.visible_message("[A] attempted to disarm [D]!", \ + "[A] attempted to disarm [D]!") + playsound(D, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + if(restraining) + D.visible_message("[A] puts [D] into a chokehold!", \ + "[A] puts you into a chokehold!") + D.SetSleeping(20) + restraining = FALSE + else + restraining = FALSE + return FALSE + return TRUE + +/mob/living/carbon/human/proc/CQC_help() + set name = "Remember The Basics" + set desc = "You try to remember some of the basics of CQC." + set category = "CQC" + to_chat(usr, "You try to remember some of the basics of CQC.") + + to_chat(usr, "Slam: Harm Grab. Slam opponent into the ground, knocking them down.") + to_chat(usr, "CQC Kick: Harm Harm. Knocks opponent away. Knocks out stunned or knocked down opponents.") + to_chat(usr, "Restrain: Grab Switch Hand Grab. Locks opponent into a restraining position, stunning them.") + to_chat(usr, "Choke Hold: Restrain Disarm. Knocks out an opponent you have restrained.") + to_chat(usr, "Pressure: Disarm Grab. Decent stamina damage.") + to_chat(usr, "Consecutive CQC: Disarm Disarm Harm. Mainly offensive move, huge damage and decent stamina damage.") + + to_chat(usr, "In addition, by having your throw mode on when being attacked, you enter an active defense mode where you have a chance to block and sometimes even counter melee attacks done to you.") diff --git a/code/modules/martial_arts/martial.dm b/code/modules/martial_arts/martial.dm index 26e6a2e873c..dde7524a2f1 100644 --- a/code/modules/martial_arts/martial.dm +++ b/code/modules/martial_arts/martial.dm @@ -6,6 +6,8 @@ var/temporary = 0 var/datum/martial_art/base = null // The permanent style var/deflection_chance = 0 //Chance to deflect projectiles + var/block_chance = 0 //Chance to block melee attacks using items while on throw mode. + var/restraining = 0 //used in cqc's disarm_act to check if the disarmed is being restrained and so whether they should be put in a chokehold or not var/help_verb = null var/no_guns = FALSE //set to TRUE to prevent users of this style from using guns (sleeping carp, highlander). They can still pick them up, but not fire them. var/no_guns_message = "" //message to tell the style user if they try and use a gun while no_guns = TRUE (DISHONORABRU!) @@ -22,6 +24,9 @@ /datum/martial_art/proc/help_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) return 0 +/datum/martial_art/proc/can_use(mob/living/carbon/human/H) + return TRUE + /datum/martial_art/proc/add_to_streak(var/element,var/mob/living/carbon/human/D) if(D != current_target) current_target = D @@ -184,6 +189,24 @@ new /obj/effect/decal/cleanable/ash(get_turf(src)) qdel(src) +/obj/item/CQC_manual + name = "old manual" + desc = "A small, black manual. There are drawn instructions of tactical hand-to-hand combat." + icon = 'icons/obj/library.dmi' + icon_state ="cqcmanual" + +/obj/item/CQC_manual/attack_self(mob/living/carbon/human/user) + if(!istype(user) || !user) + return + to_chat(user, "You remember the basics of CQC.") + + var/datum/martial_art/cqc/CQC = new(null) + CQC.teach(user) + user.drop_item() + visible_message("[src] beeps ominously, and a moment later it bursts up in flames.") + new /obj/effect/decal/cleanable/ash(get_turf(src)) + qdel(src) + /obj/item/twohanded/bostaff name = "bo staff" desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts. Can be wielded to both kill and incapacitate." diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 98274ea7e1f..ae5fe905735 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -156,6 +156,10 @@ emp_act return 1 return 0 +/mob/living/carbon/human/proc/check_block() + if(martial_art && prob(martial_art.block_chance) && martial_art.can_use(src) && in_throw_mode && !incapacitated(FALSE, TRUE)) + return TRUE + /mob/living/carbon/human/emp_act(severity) for(var/obj/O in src) if(!O) continue diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index 37b67d40f29..a728c2bbfd8 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -198,7 +198,7 @@ var/obj/item/organ/internal/ears/ears = H.get_int_organ(/obj/item/organ/internal/ears) if(ears) qdel(ears) - + ears = new mutantears(H) /datum/species/proc/breathe(mob/living/carbon/human/H) @@ -318,6 +318,9 @@ user.do_cpr(target) /datum/species/proc/grab(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) + if(target.check_block()) //cqc + target.visible_message("[target] blocks [user]'s grab attempt!") + return FALSE if(attacker_style && attacker_style.grab_act(user, target)) return TRUE else @@ -344,6 +347,9 @@ add_attack_logs(user, target, "vampirebit") return //end vampire codes + if(target.check_block()) //cqc + target.visible_message("[target] blocks [user]'s attack!") + return FALSE if(attacker_style && attacker_style.harm_act(user, target)) return TRUE else @@ -382,6 +388,9 @@ target.forcesay(GLOB.hit_appends) /datum/species/proc/disarm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) + if(target.check_block()) //cqc + target.visible_message("[target] blocks [user]'s disarm attempt!") + return FALSE if(attacker_style && attacker_style.disarm_act(user, target)) return TRUE else diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index ec038f3477b6b66b332882e000c6e5c8295a034b..20588d3617c8d6efd21b394d36a582972532c14e 100644 GIT binary patch delta 2881 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 literal 0 HcmV?d00001 diff --git a/sound/weapons/cqchit2.ogg b/sound/weapons/cqchit2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..cbf0da0d239fdf8f1f317860ff34386928d5f4c5 GIT binary patch literal 15201 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 E0Wif2od5s; literal 0 HcmV?d00001 diff --git a/sound/weapons/slam.ogg b/sound/weapons/slam.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f533f44e56fb741bf4a97429a8ace503e718a6e6 GIT binary patch literal 29009 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 H-Ik>Qi8%!$ literal 0 HcmV?d00001 From e0037ffefeb47348b6980067e5b002d77f77e8c3 Mon Sep 17 00:00:00 2001 From: datlo Date: Tue, 20 Nov 2018 15:03:38 +0000 Subject: [PATCH 2/5] space activated mama mia stop the copy pasta --- code/modules/martial_arts/cqc.dm | 28 ++++++++++++++-------------- code/modules/martial_arts/martial.dm | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/code/modules/martial_arts/cqc.dm b/code/modules/martial_arts/cqc.dm index 876334c4b63..ab7ce5dd250 100644 --- a/code/modules/martial_arts/cqc.dm +++ b/code/modules/martial_arts/cqc.dm @@ -17,23 +17,23 @@ return FALSE if(findtext(streak,SLAM_COMBO)) streak = "" - Slam(A,D) + Slam(A, D) return TRUE if(findtext(streak,KICK_COMBO)) streak = "" - Kick(A,D) + Kick(A, D) return TRUE if(findtext(streak,RESTRAIN_COMBO)) streak = "" - Restrain(A,D) + Restrain(A, D) return TRUE if(findtext(streak,PRESSURE_COMBO)) streak = "" - Pressure(A,D) + Pressure(A, D) return TRUE if(findtext(streak,CONSECUTIVE_COMBO)) streak = "" - Consecutive(A,D) + Consecutive(A, D) return FALSE /datum/martial_art/cqc/proc/Slam(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -95,7 +95,7 @@ "[A] strikes your abdomen, neck and back consecutively!") playsound(get_turf(D), 'sound/weapons/cqchit2.ogg', 50, 1, -1) var/obj/item/I = D.get_active_hand() - if(I && D.drop_item()) + if(I && D.drop_item()) A.put_in_hands(I) D.adjustStaminaLoss(50) D.apply_damage(25, BRUTE) @@ -104,10 +104,10 @@ /datum/martial_art/cqc/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!can_use(A)) return FALSE - add_to_streak("G",D) - if(check_streak(A,D)) + add_to_streak("G", D) + if(check_streak(A, D)) return TRUE - var/obj/item/grab/G = D.grabbedby(A,1) + var/obj/item/grab/G = D.grabbedby(A, 1) if(G) G.state = GRAB_AGGRESSIVE //Instant aggressive grab return TRUE @@ -115,8 +115,8 @@ /datum/martial_art/cqc/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!can_use(A)) return FALSE - add_to_streak("H",D) - if(check_streak(A,D)) + add_to_streak("H", D) + if(check_streak(A, D)) return TRUE A.do_attack_animation(D) var/picked_hit_type = pick("CQC'd", "Big Bossed") @@ -142,9 +142,9 @@ /datum/martial_art/cqc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!can_use(A)) return FALSE - add_to_streak("D",D) + add_to_streak("D", D) var/obj/item/I = null - if(check_streak(A,D)) + if(check_streak(A, D)) return TRUE if(prob(65)) if(!D.stat || !D.weakened || !restraining) @@ -183,4 +183,4 @@ to_chat(usr, "Pressure: Disarm Grab. Decent stamina damage.") to_chat(usr, "Consecutive CQC: Disarm Disarm Harm. Mainly offensive move, huge damage and decent stamina damage.") - to_chat(usr, "In addition, by having your throw mode on when being attacked, you enter an active defense mode where you have a chance to block and sometimes even counter melee attacks done to you.") + to_chat(usr, "In addition, by having your throw mode on when being attacked, you enter an active defense mode where you have a chance to block and sometimes even counter melee attacks done to you.") \ No newline at end of file diff --git a/code/modules/martial_arts/martial.dm b/code/modules/martial_arts/martial.dm index dde7524a2f1..aed823b372b 100644 --- a/code/modules/martial_arts/martial.dm +++ b/code/modules/martial_arts/martial.dm @@ -193,7 +193,7 @@ name = "old manual" desc = "A small, black manual. There are drawn instructions of tactical hand-to-hand combat." icon = 'icons/obj/library.dmi' - icon_state ="cqcmanual" + icon_state = "cqcmanual" /obj/item/CQC_manual/attack_self(mob/living/carbon/human/user) if(!istype(user) || !user) From f1ada4fefacfd0abeef4991e58f52e36ddf70ac8 Mon Sep 17 00:00:00 2001 From: datlo Date: Wed, 21 Nov 2018 17:18:32 +0000 Subject: [PATCH 3/5] big commit changes in desc Added missing spacings Added attack logging Raised cost to 9 TC, made it tator and nukies, added to surplus, allowed nukies to have gloves of north star, and updated description Added a check preventing usage of CQC with gloves of north star Fix a bug where attacks would not go through if a combo was done but the target was critically injured (regular attacks now done instead) Changed disarm logic, now always hits for 5 damage and use regular disarm logic for disarming/pushing Replaced "Big Bossed" attack verb by "neck chopped" and "gut punched" because nofunallowed --- code/datums/uplink_item.dm | 7 +-- code/modules/martial_arts/cqc.dm | 73 ++++++++++++++++++++------------ 2 files changed, 48 insertions(+), 32 deletions(-) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 1e99ea2bc77..8e69face174 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -419,7 +419,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) reference = "RPGD" item = /obj/item/clothing/gloves/fingerless/rapid cost = 8 - excludefrom = list(/datum/game_mode/nuclear) /datum/uplink_item/dangerous/sniper name = "Sniper Rifle" @@ -767,12 +766,10 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/stealthy_weapons/cqc name = "CQC Manual" - desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." + desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing. Does not restrict weapon usage, but cannot be used alongside Gloves of the North Star." reference = "CQC" item = /obj/item/CQC_manual - gamemodes = list(/datum/game_mode/nuclear) - cost = 8 - surplus = 0 + cost = 9 /datum/uplink_item/stealthy_weapons/throwingweapons name = "Box of Throwing Weapons" diff --git a/code/modules/martial_arts/cqc.dm b/code/modules/martial_arts/cqc.dm index ab7ce5dd250..58082baa359 100644 --- a/code/modules/martial_arts/cqc.dm +++ b/code/modules/martial_arts/cqc.dm @@ -9,29 +9,34 @@ help_verb = /mob/living/carbon/human/proc/CQC_help block_chance = 75 +/datum/martial_art/cqc/can_use(mob/living/carbon/human/H) + if (istype(H.gloves, /obj/item/clothing/gloves/fingerless/rapid)) + return FALSE + return ..() + /datum/martial_art/cqc/proc/drop_restraining() restraining = FALSE /datum/martial_art/cqc/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!can_use(A)) return FALSE - if(findtext(streak,SLAM_COMBO)) + if(findtext(streak, SLAM_COMBO)) streak = "" Slam(A, D) return TRUE - if(findtext(streak,KICK_COMBO)) + if(findtext(streak, KICK_COMBO)) streak = "" Kick(A, D) return TRUE - if(findtext(streak,RESTRAIN_COMBO)) + if(findtext(streak, RESTRAIN_COMBO)) streak = "" Restrain(A, D) return TRUE - if(findtext(streak,PRESSURE_COMBO)) + if(findtext(streak, PRESSURE_COMBO)) streak = "" Pressure(A, D) return TRUE - if(findtext(streak,CONSECUTIVE_COMBO)) + if(findtext(streak, CONSECUTIVE_COMBO)) streak = "" Consecutive(A, D) return FALSE @@ -45,6 +50,11 @@ playsound(get_turf(A), 'sound/weapons/slam.ogg', 50, 1, -1) D.apply_damage(10, BRUTE) D.Weaken(6) + add_attack_logs(A, D, "Melee attacked with martial-art [src] : Slam", ATKLOG_ALL) + else //if target can't be slammed, do a regular grab attack then clear the streak + streak = "" + grab_act(A, D) + streak = "" return TRUE /datum/martial_art/cqc/proc/Kick(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -57,12 +67,18 @@ var/atom/throw_target = get_edge_target_turf(D, A.dir) D.throw_at(throw_target, 1, 14, A) D.apply_damage(10, BRUTE) - if(D.weakened && !D.stat) - D.visible_message("[A] kicks [D]'s head, knocking [D.p_them()] out!", \ - "[A] kicks your head, knocking you out!") - playsound(get_turf(A), 'sound/weapons/genhit1.ogg', 50, 1, -1) - D.SetSleeping(15) - D.adjustBrainLoss(15, 150) + add_attack_logs(A, D, "Melee attacked with martial-art [src] : Kick", ATKLOG_ALL) + if(D.weakened && !D.stat) + D.visible_message("[A] kicks [D]'s head, knocking [D.p_them()] out!", \ + "[A] kicks your head, knocking you out!") + playsound(get_turf(A), 'sound/weapons/genhit1.ogg', 50, 1, -1) + D.SetSleeping(15) + D.adjustBrainLoss(15, 150) + add_attack_logs(A, D, "Knocked out with martial-art [src] : Kick", ATKLOG_ALL) + else //if target can't be kicked, do a regular harm attack then clear the streak + streak = "" + harm_act(A, D) + streak = "" return TRUE /datum/martial_art/cqc/proc/Pressure(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -71,6 +87,7 @@ D.visible_message("[A] forces their arm on [D]'s neck!") D.adjustStaminaLoss(60) playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + add_attack_logs(A, D, "Melee attacked with martial-art [src] : Pressure", ATKLOG_ALL) return TRUE /datum/martial_art/cqc/proc/Restrain(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -85,6 +102,7 @@ D.Stun(5) restraining = TRUE addtimer(CALLBACK(src, .proc/drop_restraining), 50, TIMER_UNIQUE) + add_attack_logs(A, D, "Melee attacked with martial-art [src] : Restrain", ATKLOG_ALL) return TRUE /datum/martial_art/cqc/proc/Consecutive(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -99,6 +117,11 @@ A.put_in_hands(I) D.adjustStaminaLoss(50) D.apply_damage(25, BRUTE) + add_attack_logs(A, D, "Melee attacked with martial-art [src] : Consecutive", ATKLOG_ALL) + else //if target can't be hit, do a regular harm attack then clear the streak + streak = "" + harm_act(A, D) + streak = "" return TRUE /datum/martial_art/cqc/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -119,7 +142,7 @@ if(check_streak(A, D)) return TRUE A.do_attack_animation(D) - var/picked_hit_type = pick("CQC'd", "Big Bossed") + var/picked_hit_type = pick("CQC'd", "neck chopped", "gut punched") var/bonus_damage = 13 if(D.weakened || D.resting || D.lying) bonus_damage += 5 @@ -131,40 +154,36 @@ playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, 1, -1) D.visible_message("[A] [picked_hit_type] [D]!", \ "[A] [picked_hit_type] you!") + add_attack_logs(A, D, "Melee attacked with martial-art [src]", ATKLOG_ALL) if(A.resting && !D.stat && !D.weakened) D.visible_message("[A] leg sweeps [D]!", \ "[A] leg sweeps you!") playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) D.apply_damage(10, BRUTE) D.Weaken(3) + add_attack_logs(A, D, "Melee attacked with martial-art [src] : Leg sweep", ATKLOG_ALL) return TRUE /datum/martial_art/cqc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!can_use(A)) return FALSE add_to_streak("D", D) - var/obj/item/I = null if(check_streak(A, D)) return TRUE - if(prob(65)) - if(!D.stat || !D.weakened || !restraining) - I = D.get_active_hand() - D.visible_message("[A] strikes [D]'s jaw with their hand!", \ - "[A] strikes your jaw, disorienting you!") - playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, 1, -1) - if(I && D.drop_item()) - A.put_in_hands(I) - D.Jitter(2) - D.apply_damage(5, BRUTE) - else - D.visible_message("[A] attempted to disarm [D]!", \ - "[A] attempted to disarm [D]!") - playsound(D, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + if(!restraining) + I = D.get_active_hand() + D.visible_message("[A] strikes [D]'s jaw with their hand!", \ + "[A] strikes your jaw, disorienting you!") + playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + D.Jitter(2) + D.apply_damage(5, BRUTE) + add_attack_logs(A, D, "Melee attacked with martial-art [src] : Disarm", ATKLOG_ALL) if(restraining) D.visible_message("[A] puts [D] into a chokehold!", \ "[A] puts you into a chokehold!") D.SetSleeping(20) restraining = FALSE + add_attack_logs(A, D, "Knocked out with martial-art [src] : Choke hold", ATKLOG_ALL) else restraining = FALSE return FALSE From 5ef666f0f5d4b1a61794d5919f2d6e457f19618f Mon Sep 17 00:00:00 2001 From: datlo Date: Wed, 21 Nov 2018 17:27:29 +0000 Subject: [PATCH 4/5] oops forgot to remove a line durrr --- code/modules/martial_arts/cqc.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/martial_arts/cqc.dm b/code/modules/martial_arts/cqc.dm index 58082baa359..305c49ddf7c 100644 --- a/code/modules/martial_arts/cqc.dm +++ b/code/modules/martial_arts/cqc.dm @@ -171,7 +171,6 @@ if(check_streak(A, D)) return TRUE if(!restraining) - I = D.get_active_hand() D.visible_message("[A] strikes [D]'s jaw with their hand!", \ "[A] strikes your jaw, disorienting you!") playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, 1, -1) From 12f6413417be915f9096271fca2d017433502fb1 Mon Sep 17 00:00:00 2001 From: datlo Date: Thu, 22 Nov 2018 00:27:52 +0000 Subject: [PATCH 5/5] SPACING SKREEE --- code/modules/martial_arts/cqc.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/martial_arts/cqc.dm b/code/modules/martial_arts/cqc.dm index 305c49ddf7c..54f9ac97cd9 100644 --- a/code/modules/martial_arts/cqc.dm +++ b/code/modules/martial_arts/cqc.dm @@ -10,7 +10,7 @@ block_chance = 75 /datum/martial_art/cqc/can_use(mob/living/carbon/human/H) - if (istype(H.gloves, /obj/item/clothing/gloves/fingerless/rapid)) + if(istype(H.gloves, /obj/item/clothing/gloves/fingerless/rapid)) return FALSE return ..()