mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-21 03:59:59 +01:00
* Replaces intents with combat mode * updates * a * Update living_defense.dm * https://github.com/tgstation/tgstation/pull/56638/files * gunsafety! Co-authored-by: Qustinnus <Floydje123@hotmail.com> Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
75 lines
3.3 KiB
Plaintext
75 lines
3.3 KiB
Plaintext
/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("<span class='warning'>[A] violently grabs [D]!</span>", \
|
|
"<span class='userdanger'>You're violently grabbed by [A]!</span>", "<span class='hear'>You hear sounds of aggressive fondling!</span>", null, A)
|
|
to_chat(A, "<span class='danger'>You violently grab [D]!</span>")
|
|
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("<span class='danger'>[A] [atk_verb]s [D]!</span>", \
|
|
"<span class='userdanger'>You're [atk_verb]ed by [A]!</span>", "<span class='hear'>You hear a sickening sound of flesh hitting flesh!</span>", null, A)
|
|
to_chat(A, "<span class='danger'>You [atk_verb] [D]!</span>")
|
|
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("<span class='danger'>[A] [atk_verb]s [D] with such inhuman strength that it sends [D.p_them()] flying backwards!</span>", \
|
|
"<span class='userdanger'>You're [atk_verb]ed by [A] with such inhuman strength that it sends you flying backwards!</span>", "<span class='hear'>You hear a sickening sound of flesh hitting flesh!</span>", null, A)
|
|
to_chat(A, "<span class='danger'>You [atk_verb] [D] with such inhuman strength that it sends [D.p_them()] flying backwards!</span>")
|
|
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
|