/datum/martial_art/psychotic_brawling name = "Psychotic Brawling" id = MARTIALART_PSYCHOBRAWL /datum/martial_art/psychotic_brawling/disarm_act(mob/living/A, mob/living/D) return psycho_attack(A,D) /datum/martial_art/psychotic_brawling/grab_act(mob/living/A, mob/living/D) return psycho_attack(A,D, TRUE) /datum/martial_art/psychotic_brawling/harm_act(mob/living/A, mob/living/D) return psycho_attack(A,D) /datum/martial_art/psychotic_brawling/proc/psycho_attack(mob/living/A, mob/living/D, grab_attack) var/atk_verb switch(rand(1,8)) if(1) if (iscarbon(D) && iscarbon(A)) var/mob/living/carbon/defender = D defender.help_shake_act(A) atk_verb = "helped" if(2) A.emote("cry") A.Stun(20) atk_verb = "cried looking at" if(3) if(A.grab_state >= GRAB_AGGRESSIVE) D.grabbedby(A, 1) else A.start_pulling(D, supress_message = TRUE) if(A.pulling) D.drop_all_held_items() D.stop_pulling() if(grab_attack) log_combat(A, D, "grabbed", addition="aggressively") D.visible_message("[A] violently grabs [D]!", \ "You're violently grabbed by [A]!", "You hear sounds of aggressive fondling!", null, A) to_chat(A, "You violently grab [D]!") A.setGrabState(GRAB_AGGRESSIVE) //Instant aggressive grab else log_combat(A, D, "grabbed", addition="passively") A.setGrabState(GRAB_PASSIVE) if(4) A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) atk_verb = "headbutt" D.visible_message("[A] [atk_verb]s [D]!", \ "You're [atk_verb]ed by [A]!", "You hear a sickening sound of flesh hitting flesh!", null, A) to_chat(A, "You [atk_verb] [D]!") playsound(get_turf(D), 'sound/weapons/punch1.ogg', 40, TRUE, -1) D.apply_damage(rand(5,10), A.get_attack_type(), BODY_ZONE_HEAD) A.apply_damage(rand(5,10), A.get_attack_type(), BODY_ZONE_HEAD) if (iscarbon(D)) var/mob/living/carbon/defender = D if(!istype(defender.head,/obj/item/clothing/head/helmet/) && !istype(defender.head,/obj/item/clothing/head/hardhat)) defender.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5) A.Stun(rand(10,45)) D.Stun(rand(5,30)) if(5,6) A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) atk_verb = pick("kick", "hit", "slam") D.visible_message("[A] [atk_verb]s [D] with such inhuman strength that it sends [D.p_them()] flying backwards!", \ "You're [atk_verb]ed by [A] with such inhuman strength that it sends you flying backwards!", "You hear a sickening sound of flesh hitting flesh!", null, A) to_chat(A, "You [atk_verb] [D] with such inhuman strength that it sends [D.p_them()] flying backwards!") D.apply_damage(rand(15,30), A.get_attack_type()) playsound(get_turf(D), 'sound/effects/meteorimpact.ogg', 25, TRUE, -1) var/throwtarget = get_edge_target_turf(A, get_dir(A, get_step_away(D, A))) D.throw_at(throwtarget, 4, 2, A)//So stuff gets tossed around at the same time. D.Paralyze(60) if(7,8) return FALSE //Resume default behaviour if(atk_verb) log_combat(A, D, "[atk_verb] (Psychotic Brawling)") return TRUE