#define MIMECHUCKS_COMBO "DH" #define MIMESMOKE_COMBO "DD" #define MIMEPALM_COMBO "GD" /datum/martial_art/mimejutsu name = "Mimejutsu" help_verb = /mob/living/carbon/human/proc/mimejutsu_help /datum/martial_art/mimejutsu/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) if(findtext(streak,MIMECHUCKS_COMBO)) streak = "" mimeChuck(A,D) return 1 if(findtext(streak,MIMESMOKE_COMBO)) streak = "" mimeSmoke(A,D) return 1 if(findtext(streak,MIMEPALM_COMBO)) streak = "" mimePalm(A,D) return 1 return 0 /datum/martial_art/mimejutsu/proc/mimeChuck(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) if(!D.stat && !D.stunned && !D.weakened) var/damage = rand(5, 8) + A.species.punchdamagelow if(!damage) playsound(D.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) D.visible_message("[A] swings invisible nunchcuks at [D]..and misses?") return 0 var/obj/item/organ/external/affecting = D.get_organ(ran_zone(A.zone_sel.selecting)) var/armor_block = D.run_armor_check(affecting, "melee") D.visible_message("[A] has hit [D] with invisible nuncucks!", \ "[A] has hit [D] with a with invisible nuncuck!") playsound(get_turf(A), 'sound/weapons/thudswoosh.ogg', 50, 1, -1) D.apply_damage(damage, STAMINA, affecting, armor_block) add_logs(A, D, "mimechucked") return 1 return basic_hit(A,D) /datum/martial_art/mimejutsu/proc/mimeSmoke(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) D.visible_message("[A] throws an invisible smoke bomb!!") var/datum/effect/system/bad_smoke_spread/smoke = new /datum/effect/system/bad_smoke_spread() smoke.set_up(5, 0, D.loc) smoke.start() return basic_hit(A,D) /datum/martial_art/mimejutsu/proc/mimePalm(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) if(!D.stat && !D.stunned && !D.weakened) D.visible_message("[A] has barely touched [D] with their palm!", \ "[A] hovers their palm over your face!") var/atom/throw_target = get_edge_target_turf(D, get_dir(D, get_step_away(D, A))) D.throw_at(throw_target, 200, 4,A) return basic_hit(A,D) /datum/martial_art/mimejutsu/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 return ..() /datum/martial_art/mimejutsu/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 return 1 /datum/martial_art/mimejutsu/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 A.do_attack_animation(D) return 1 /obj/item/weapon/mimejutsu_scroll name = "Mimejutsu 'scroll'" desc = "Its a beret with a note stapled to it..." icon = 'icons/obj/clothing/hats.dmi' icon_state = "beret" var/used = 0 /obj/item/weapon/mimejutsu_scroll/attack_self(mob/user as mob) if(!ishuman(user)) return if(!used) var/mob/living/carbon/human/H = user var/datum/martial_art/mimejutsu/F = new/datum/martial_art/mimejutsu(null) F.teach(H) to_chat(H, "You have learned the ancient martial art of mimes.") used = 1 desc = "It used to have something stapled to it..the staple is still there." name = "beret with staple" icon_state = "beret" /mob/living/carbon/human/proc/mimejutsu_help() set name = "Recall Ancient Mimeing" set desc = "Remember the martial techniques of Mimejutsu." set category = "Mimejutsu" to_chat(usr, "You make a invisible box around yourself and recall the teachings of Mimejutsu...") to_chat(usr, "Mimechucks: Disarm Harm. Hits the opponent with invisible nunchucks.") to_chat(usr, "Smokebomb: Disarm Disarm. Drops a mime smokebomb.") to_chat(usr, "Silent Palm: Grab Disarm. Using mime energy throw someone back.")