mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 18:11:47 +00:00
@@ -111,7 +111,7 @@
|
|||||||
attack_verb_continuous = list("staked", "stabbed", "tore into")
|
attack_verb_continuous = list("staked", "stabbed", "tore into")
|
||||||
attack_verb_simple = list("staked", "stabbed", "tore into")
|
attack_verb_simple = list("staked", "stabbed", "tore into")
|
||||||
sharpness = SHARP_EDGED
|
sharpness = SHARP_EDGED
|
||||||
embed_data = /datum/embedding/stake
|
embed_type = /datum/embedding/stake
|
||||||
force = 6
|
force = 6
|
||||||
throwforce = 10
|
throwforce = 10
|
||||||
max_integrity = 30
|
max_integrity = 30
|
||||||
@@ -126,9 +126,6 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
if(.)
|
if(.)
|
||||||
return
|
return
|
||||||
// Invalid Target, or not targetting the chest?
|
|
||||||
if(check_zone(user.zone_selected) != BODY_ZONE_CHEST)
|
|
||||||
return
|
|
||||||
if(target == user)
|
if(target == user)
|
||||||
return
|
return
|
||||||
if(!target.can_be_staked()) // Oops! Can't.
|
if(!target.can_be_staked()) // Oops! Can't.
|
||||||
@@ -142,26 +139,27 @@
|
|||||||
playsound(user, 'sound/effects/magic/Demon_consume.ogg', 50, 1)
|
playsound(user, 'sound/effects/magic/Demon_consume.ogg', 50, 1)
|
||||||
if(!do_after(user, staketime, target, extra_checks = CALLBACK(target, TYPE_PROC_REF(/mob/living/carbon, can_be_staked)))) // user / target / time / uninterruptable / show progress bar / extra checks
|
if(!do_after(user, staketime, target, extra_checks = CALLBACK(target, TYPE_PROC_REF(/mob/living/carbon, can_be_staked)))) // user / target / time / uninterruptable / show progress bar / extra checks
|
||||||
return
|
return
|
||||||
|
playsound(get_turf(target), 'sound/effects/splat.ogg', 40, 1)
|
||||||
|
var/obj/item/bodypart/chest = target.get_bodypart(BODY_ZONE_CHEST)
|
||||||
|
get_embed()?.embed_into(victim = target, target_limb = chest)
|
||||||
// Drop & Embed Stake
|
// Drop & Embed Stake
|
||||||
user.visible_message(
|
user.visible_message(
|
||||||
span_danger("[user.name] drives the [src] into [target]'s chest!"),
|
span_danger("[user.name] drives the [src] into [target]'s chest!"),
|
||||||
span_danger("You drive the [src] into [target]'s chest!"),
|
span_danger("You drive the [src] into [target]'s chest!"),
|
||||||
)
|
)
|
||||||
playsound(get_turf(target), 'sound/effects/splat.ogg', 40, 1)
|
|
||||||
if(get_embed()?.try_embed(target.get_bodypart(BODY_ZONE_CHEST), TRUE, TRUE)) //and if it embeds successfully in their chest, cause a lot of pain
|
|
||||||
target.apply_damage(max(10, force * 1.2), BRUTE, BODY_ZONE_CHEST, wound_bonus = 0, sharpness = TRUE)
|
|
||||||
if(QDELETED(src)) // in case trying to embed it caused its deletion (say, if it's DROPDEL)
|
if(QDELETED(src)) // in case trying to embed it caused its deletion (say, if it's DROPDEL)
|
||||||
return
|
return
|
||||||
if(!target.mind)
|
if(!target.mind)
|
||||||
return
|
return
|
||||||
var/datum/antagonist/bloodsucker/bloodsuckerdatum = target.mind.has_antag_datum(/datum/antagonist/bloodsucker)
|
var/datum/antagonist/bloodsucker/bloodsuckerdatum = target.mind.has_antag_datum(/datum/antagonist/bloodsucker)
|
||||||
if(bloodsuckerdatum)
|
if(!bloodsuckerdatum)
|
||||||
// If DEAD or TORPID... Kill Bloodsucker!
|
return
|
||||||
if(target.StakeCanKillMe())
|
if(target.StakeCanKillMe())
|
||||||
bloodsuckerdatum.FinalDeath()
|
bloodsuckerdatum.FinalDeath()
|
||||||
else
|
else
|
||||||
to_chat(target, span_userdanger("You have been staked! Your powers are useless, your death forever, while it remains in place."))
|
to_chat(target, span_userdanger("You have been staked! Your powers are useless, your death forever, while it remains in place."))
|
||||||
target.balloon_alert(target, "you have been staked!")
|
target.balloon_alert(target, "you have been staked!")
|
||||||
|
|
||||||
///Can this target be staked? If someone stands up before this is complete, it fails. Best used on someone stationary.
|
///Can this target be staked? If someone stands up before this is complete, it fails. Best used on someone stationary.
|
||||||
/mob/living/proc/can_be_staked()
|
/mob/living/proc/can_be_staked()
|
||||||
|
|||||||
Reference in New Issue
Block a user