mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-06 15:02:29 +00:00
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns Edit: Most left out ones are in mecha which should be done in mecha refactor already Oh my look how clean it is Co-authored-by: TiviPlus <TiviPlus> Co-authored-by: Couls <coul422@gmail.com> Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com> Co-authored-by: Couls <coul422@gmail.com>
71 lines
2.8 KiB
Plaintext
71 lines
2.8 KiB
Plaintext
/datum/martial_art/boxing
|
|
name = "Boxing"
|
|
id = MARTIALART_BOXING
|
|
|
|
/datum/martial_art/boxing/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
|
to_chat(A, "<span class='warning'>Can't disarm while boxing!</span>")
|
|
return 1
|
|
|
|
/datum/martial_art/boxing/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
|
to_chat(A, "<span class='warning'>Can't grab while boxing!</span>")
|
|
return 1
|
|
|
|
/datum/martial_art/boxing/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
|
|
|
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
|
|
|
|
var/atk_verb = pick("left hook","right hook","straight punch")
|
|
|
|
var/damage = rand(5, 8) + A.dna.species.punchdamagelow
|
|
if(!damage)
|
|
playsound(D.loc, A.dna.species.miss_sound, 25, TRUE, -1)
|
|
D.visible_message("<span class='warning'>[A]'s [atk_verb] misses [D]!</span>", \
|
|
"<span class='danger'>You avoid [A]'s [atk_verb]!</span>", "<span class='hear'>You hear a swoosh!</span>", COMBAT_MESSAGE_RANGE, A)
|
|
to_chat(A, "<span class='warning'>Your [atk_verb] misses [D]!</span>")
|
|
log_combat(A, D, "attempted to hit", atk_verb)
|
|
return FALSE
|
|
|
|
|
|
var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected))
|
|
var/armor_block = D.run_armor_check(affecting, MELEE)
|
|
|
|
playsound(D.loc, A.dna.species.attack_sound, 25, TRUE, -1)
|
|
|
|
D.visible_message("<span class='danger'>[A] [atk_verb]ed [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>", COMBAT_MESSAGE_RANGE, A)
|
|
to_chat(A, "<span class='danger'>You [atk_verb]ed [D]!</span>")
|
|
|
|
D.apply_damage(damage, STAMINA, affecting, armor_block)
|
|
log_combat(A, D, "punched (boxing) ")
|
|
if(D.getStaminaLoss() > 50 && istype(D.mind?.martial_art, /datum/martial_art/boxing))
|
|
var/knockout_prob = D.getStaminaLoss() + rand(-15,15)
|
|
if((D.stat != DEAD) && prob(knockout_prob))
|
|
D.visible_message("<span class='danger'>[A] knocks [D] out with a haymaker!</span>", \
|
|
"<span class='userdanger'>You're knocked unconscious by [A]!</span>", "<span class='hear'>You hear a sickening sound of flesh hitting flesh!</span>", COMBAT_MESSAGE_RANGE, A)
|
|
to_chat(A, "<span class='danger'>You knock [D] out with a haymaker!</span>")
|
|
D.apply_effect(200,EFFECT_KNOCKDOWN,armor_block)
|
|
D.SetSleeping(100)
|
|
log_combat(A, D, "knocked out (boxing) ")
|
|
return TRUE
|
|
|
|
/obj/item/clothing/gloves/boxing
|
|
var/datum/martial_art/boxing/style = new
|
|
|
|
/obj/item/clothing/gloves/boxing/equipped(mob/user, slot)
|
|
. = ..()
|
|
if(!ishuman(user))
|
|
return
|
|
if(slot == ITEM_SLOT_GLOVES)
|
|
var/mob/living/carbon/human/H = user
|
|
style.teach(H,1)
|
|
return
|
|
|
|
/obj/item/clothing/gloves/boxing/dropped(mob/user)
|
|
. = ..()
|
|
if(!ishuman(user))
|
|
return
|
|
var/mob/living/carbon/human/H = user
|
|
if(H.get_item_by_slot(ITEM_SLOT_GLOVES) == src)
|
|
style.remove(H)
|
|
return
|