#define TORNADO_COMBO "HHD" #define THROWBACK_COMBO "DHD" #define PLASMA_COMBO "HDDDH" /datum/martial_art/plasma_fist name = "Plasma Fist" id = MARTIALART_PLASMAFIST help_verb = /mob/living/carbon/human/proc/plasma_fist_help pugilist = TRUE display_combos = TRUE /datum/martial_art/plasma_fist/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D) if(findtext(streak,TORNADO_COMBO)) streak = "" Tornado(A,D) return TRUE if(findtext(streak,THROWBACK_COMBO)) streak = "" Throwback(A,D) return TRUE if(findtext(streak,PLASMA_COMBO)) streak = "" Plasma(A,D) return TRUE return FALSE /datum/martial_art/plasma_fist/proc/TornadoAnimate(mob/living/carbon/human/A) set waitfor = FALSE for(var/i in list(NORTH,SOUTH,EAST,WEST,EAST,SOUTH,NORTH,SOUTH,EAST,WEST,EAST,SOUTH)) if(!A) break A.setDir(i) playsound(A.loc, 'sound/weapons/punch1.ogg', 15, 1, -1) sleep(1) /datum/martial_art/plasma_fist/proc/Tornado(mob/living/carbon/human/A, mob/living/carbon/human/D) A.say("TORNADO SWEEP!", forced="plasma fist") TornadoAnimate(A) var/obj/effect/proc_holder/spell/aoe_turf/repulse/R = new(null) var/list/turfs = list() for(var/turf/T in range(1,A)) turfs.Add(T) R.cast(turfs) log_combat(A, D, "tornado sweeped(Plasma Fist)") return /datum/martial_art/plasma_fist/proc/Throwback(mob/living/carbon/human/A, mob/living/carbon/human/D) var/damage = (damage_roll(A,D)*3) D.visible_message("[A] has hit [D] with Plasma Punch!", \ "[A] has hit [D] with Plasma Punch!") playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1) 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) D.apply_damage(damage, BRUTE) A.say("HYAH!", forced="plasma fist") log_combat(A, D, "threw back (Plasma Fist)") return /datum/martial_art/plasma_fist/proc/Plasma(mob/living/carbon/human/A, mob/living/carbon/human/D) A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1) A.say("PLASMA FIST!", forced="plasma fist") D.visible_message("[A] has hit [D] with THE PLASMA FIST TECHNIQUE!", \ "[A] has hit [D] with THE PLASMA FIST TECHNIQUE!") D.gib() log_combat(A, D, "gibbed (Plasma Fist)") return /datum/martial_art/plasma_fist/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) add_to_streak("H",D) if(check_streak(A,D)) return TRUE return FALSE /datum/martial_art/plasma_fist/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) add_to_streak("D",D) if(check_streak(A,D)) return TRUE return FALSE /datum/martial_art/plasma_fist/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) add_to_streak("G",D) if(check_streak(A,D)) return TRUE return FALSE /mob/living/carbon/human/proc/plasma_fist_help() set name = "Recall Teachings" set desc = "Remember the martial techniques of the Plasma Fist." set category = "Plasma Fist" to_chat(usr, "You clench your fists and have a flashback of knowledge...") to_chat(usr, "Tornado Sweep: Harm Harm Disarm. Repulses target and everyone back.") to_chat(usr, "Throwback: Disarm Harm Disarm. Throws the target and an item at them.") to_chat(usr, "The Plasma Fist: Harm Disarm Disarm Disarm Harm. Knocks the brain out of the opponent and gibs their body.")