Skip to content

Commit 06ac02d

Browse files
author
feartheblackout
authored
Honor, fire, burn thy fear: Adds a simple animal knockout technique to the Kis-Khan martial art (#19631)
Implements a disarm technique to Kis-Khan that "knocks out" simple animals for a few seconds, allowing you to follow up with other attacks. This is because shriekers are easy to encounter in the Untouched Lands as a Kis-Khan master and are too difficult to get away from with Unathi sprint, making it easy to get overwhelmed by multiple of them, especially if you're in water. And dying to shriekers is, unfortunately, not badass as a martial arts master. Could also pave the way for other simple animal-based attacks for Kis-Khan or other martial arts, if people are interested in that.
1 parent f64885b commit 06ac02d

File tree

4 files changed

+83
-1
lines changed

4 files changed

+83
-1
lines changed

code/modules/martial_arts/martial.dm

+6
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,12 @@
163163

164164
return TRUE
165165

166+
/datum/martial_art/proc/simple_animal_basic_disarm(var/mob/living/carbon/human/A, var/mob/living/simple_animal/D)
167+
if(A.a_intent == I_DISARM)
168+
A.visible_message("[SPAN_BOLD("\The [A]")] [D.response_disarm] \the [D]")
169+
A.do_attack_animation(D)
170+
D.poke(1)
171+
D.handle_attack_by(A)
166172

167173
/datum/martial_art/proc/teach(var/mob/living/carbon/human/H)
168174
if(help_verb)

code/modules/martial_arts/unathi.dm

+15-1
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,22 @@
4545
add_to_streak("D",D)
4646
if(check_streak(A,D))
4747
return 1
48-
basic_hit(A,D)
48+
if(istype(D, /mob/living/simple_animal))
49+
simple_animal_basic_disarm(A,D)
50+
else
51+
basic_hit(A,D)
4952
return 1
5053

54+
/datum/martial_art/kis_khan/simple_animal_basic_disarm(var/mob/living/carbon/human/A, var/mob/living/simple_animal/D)
55+
if(!D.paralysis)
56+
A.visible_message("[SPAN_BOLD("[A]")] delivers a blow to \the [SPAN_BOLD("[D]")]'s head, making [D.get_pronoun("him")] fall unconscious!")
57+
A.do_attack_animation(D)
58+
playsound(D.loc, /singleton/sound_category/punch_sound, 25, TRUE, MEDIUM_RANGE_SOUND_EXTRARANGE+4)
59+
D.AdjustParalysis(5)
60+
else
61+
to_chat(A, SPAN_WARNING("\The [SPAN_BOLD("[D]")] is already unconscious!"))
62+
return
63+
5164
/datum/martial_art/kis_khan/proc/tail_sweep(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
5265
if(D.stat || D.weakened)
5366
return 0
@@ -97,6 +110,7 @@
97110
to_chat(usr, "<span class='notice'>Tail Sweep</span>: Harm Harm Disarm. Trips the victim with your tail, rendering them prone and unable to move for a short time.")
98111
to_chat(usr, "<span class='notice'>Swift Disarm</span>: Disarm Disarm Grab. Strikes your target's weapon, trying to disarm it from their hands.")
99112
to_chat(usr, "<span class='notice'>Hammering Strike</span>: Disarm Harm Disarm. Delivers a strikes that will push the target away from you.")
113+
to_chat(usr, "<span class='notice'>You can also deal a knockout blow to non-sapient animals by using disarm.</span>")
100114

101115
/obj/item/martial_manual/unathi
102116
name = "kis khan scroll"

code/modules/mob/living/simple_animal/simple_animal.dm

+3
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,7 @@
500500

501501
/mob/living/simple_animal/attack_hand(mob/living/carbon/human/M as mob)
502502
..()
503+
var/datum/martial_art/attacker_style = M.primary_martial_art
503504
switch(M.a_intent)
504505

505506
if(I_HELP)
@@ -508,6 +509,8 @@
508509
poke()
509510

510511
if(I_DISARM)
512+
if(attacker_style && attacker_style.disarm_act(M, src))
513+
return TRUE
511514
M.visible_message("<b>\The [M]</b> [response_disarm] \the [src]")
512515
M.do_attack_animation(src)
513516
poke(1)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
################################
2+
# Example Changelog File
3+
#
4+
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
5+
#
6+
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
7+
# When it is, any changes listed below will disappear.
8+
#
9+
# Valid Prefixes:
10+
# bugfix
11+
# - (fixes bugs)
12+
# wip
13+
# - (work in progress)
14+
# qol
15+
# - (quality of life)
16+
# soundadd
17+
# - (adds a sound)
18+
# sounddel
19+
# - (removes a sound)
20+
# rscadd
21+
# - (adds a feature)
22+
# rscdel
23+
# - (removes a feature)
24+
# imageadd
25+
# - (adds an image or sprite)
26+
# imagedel
27+
# - (removes an image or sprite)
28+
# spellcheck
29+
# - (fixes spelling or grammar)
30+
# experiment
31+
# - (experimental change)
32+
# balance
33+
# - (balance changes)
34+
# code_imp
35+
# - (misc internal code change)
36+
# refactor
37+
# - (refactors code)
38+
# config
39+
# - (makes a change to the config files)
40+
# admin
41+
# - (makes changes to administrator tools)
42+
# server
43+
# - (miscellaneous changes to server)
44+
#################################
45+
46+
# Your name.
47+
author: SimpleMaroon
48+
49+
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
50+
delete-after: True
51+
52+
# Any changes you've made. See valid prefix list above.
53+
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
54+
# SCREW THIS UP AND IT WON'T WORK.
55+
# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
56+
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
57+
changes:
58+
- rscadd: "Added a 'knockout blow' technique to the Kis-Khan martial art that renders a simple animal temporarily paralyzed. It can be performed with disarm intent."
59+
- code_imp: "Adjusted disarm intent on simple mobs to be compatible with martial arts."

0 commit comments

Comments
 (0)