#define PIERCING_STRIKE "DHH" #define SWIFT_BITE "DDG" #define CRUSHING_JAWS "HHDG" /datum/martial_art/vkutet name = "Vk'utet" help_verb = /datum/martial_art/vkutet/proc/vkutet_help /datum/martial_art/vkutet/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) if(findtext(streak,PIERCING_STRIKE)) streak = "" piercing_strike(A,D) return 1 if(findtext(streak,SWIFT_BITE)) streak = "" swift_bite(A,D) return 1 if(findtext(streak,CRUSHING_JAWS)) streak = "" crushing_jaws(A,D) return 1 return 0 /datum/martial_art/vkutet/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) add_to_streak("G",D) if(check_streak(A,D)) return 1 D.grabbedby(A,1) return 1 /datum/martial_art/vkutet/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) add_to_streak("H",D) if(check_streak(A,D)) return 1 basic_hit(A,D) return 1 /datum/martial_art/vkutet/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) add_to_streak("D",D) if(check_streak(A,D)) return 1 basic_hit(A,D) return 1 /datum/martial_art/vkutet/proc/piercing_strike(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) if(!isvaurca(A)) return 0 A.do_attack_animation(D) var/atk_verb = pick("slices", "pinches", "chops", "bites", "claws") D.visible_message(SPAN_DANGER("[A] [atk_verb] [D]!"), \ SPAN_DANGER("[A] [atk_verb] you!")) D.apply_damage(rand(5,15), DAMAGE_BRUTE, damage_flags = DAMAGE_FLAG_SHARP) playsound(get_turf(D), 'sound/weapons/slash.ogg', 25, 1, -1) return 1 /datum/martial_art/vkutet/proc/swift_bite(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) D.grabbedby(A,1) if(istype(A.get_active_hand(),/obj/item/grab)) var/obj/item/grab/G = A.get_active_hand() if(G && G.affecting == D) G.state = GRAB_AGGRESSIVE D.visible_message(SPAN_DANGER("[A] gets a strong grip on [D]!")) if(isvaurca(A)) A.bugbite(TRUE) qdel(G) return 1 /datum/martial_art/vkutet/proc/crushing_jaws(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) if(!isvaurca(A)) return 0 D.grabbedby(A,1) if(istype(A.get_active_hand(),/obj/item/grab)) var/obj/item/grab/G = A.get_active_hand() if(G && G.affecting == D) A.visible_message(SPAN_WARNING("[A] crushes [D] with its mandibles!")) D.apply_damage(30, DAMAGE_BRUTE) D.apply_effect(6, WEAKEN) qdel(G) return 1 /datum/martial_art/vkutet/proc/vkutet_help() set name = "Recall Vk'utet" set desc = "Remember the martial techniques of the Vk'utet." set category = "Abilities" to_chat(usr, "You chitter deeply and remember the indoctrination...") to_chat(usr, "Piercing Strike: Disarm Harm Harm. Slashes your victim, bypassing their armor and causing bleeding.") to_chat(usr, "Swift Bite: Disarm Disarm Grab. Quickly grabs your victim and bites them with your mandibles.") to_chat(usr, "Crushing Jaws: Harm Harm Disarm Grab. Grabs your victim and violently crushes them with your mandibles, inflicting heavy damage.") /obj/item/martial_manual/vaurca name = "vk'utet data disk" desc = "A data disk containing information about the vaurca fighting technice know as Vk'utet." icon = 'icons/obj/vaurca_items.dmi' icon_state = "harddisk" martial_art = /datum/martial_art/vkutet species_restriction = list(SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_ATTENDANT, SPECIES_VAURCA_BREEDER, SPECIES_VAURCA_BULWARK) #undef PIERCING_STRIKE #undef SWIFT_BITE #undef CRUSHING_JAWS