Files
Yogstation/code/datums/martial/mushpunch.dm
tattax c278cf30cf moves atom/target in do_after() forward (#14161)
* wowzers

* s2

Co-authored-by: Maxim Nikitin <mnmaxim@gmail.com>

* s3

Co-authored-by: Maxim Nikitin <mnmaxim@gmail.com>

Co-authored-by: Maxim Nikitin <mnmaxim@gmail.com>
Co-authored-by: Jamie D <993128+JamieD1@users.noreply.github.com>
2022-05-30 21:25:59 +01:00

39 lines
1.8 KiB
Plaintext

/datum/martial_art/mushpunch
name = "Mushroom Punch"
id = MARTIALART_MUSHPUNCH
/datum/martial_art/mushpunch/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
var/atk_verb
to_chat(A, span_spider("You begin to wind up an attack..."))
if(!do_after(A, 2.5 SECONDS, D))
to_chat(A, span_spider("<b>Your attack was interrupted!</b>"))
return TRUE //martial art code was a mistake
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
atk_verb = pick("punches", "smashes", "ruptures", "cracks")
D.visible_message(span_danger("[A] [atk_verb] [D] with inhuman strength, sending [D.p_them()] flying backwards!"), \
span_userdanger("[A] [atk_verb] you with inhuman strength, sending you flying backwards!"))
D.apply_damage(rand(15,30), A.dna.species.attack_type)
playsound(D, 'sound/effects/meteorimpact.ogg', 25, 1, -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(20)
if(atk_verb)
log_combat(A, D, "[atk_verb] (Mushroom Punch)")
return TRUE
/obj/item/mushpunch
name = "odd mushroom"
desc = "<I>Sapienza Ophioglossoides</I>:An odd mushroom from the flesh of a mushroom person. It has apparently retained some innate power of its owner, as it quivers with barely-contained POWER!"
icon = 'icons/obj/hydroponics/seeds.dmi'
icon_state = "mycelium-angel"
/obj/item/mushpunch/attack_self(mob/living/carbon/human/user)
if(!istype(user) || !user)
return
var/message = span_spider("You devour [src], and a confluence of skill and power from the mushroom enhances your punches! You do need a short moment to charge these powerful punches.")
to_chat(user, message)
var/datum/martial_art/mushpunch/mush = new(null)
mush.teach(user)
qdel(src)
visible_message(span_warning("[user] devours [src]."))