mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 10:01:40 +00:00
@@ -111,7 +111,7 @@
|
||||
attack_verb_continuous = list("staked", "stabbed", "tore into")
|
||||
attack_verb_simple = list("staked", "stabbed", "tore into")
|
||||
sharpness = SHARP_EDGED
|
||||
embed_data = /datum/embedding/stake
|
||||
embed_type = /datum/embedding/stake
|
||||
force = 6
|
||||
throwforce = 10
|
||||
max_integrity = 30
|
||||
@@ -126,9 +126,6 @@
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
// Invalid Target, or not targetting the chest?
|
||||
if(check_zone(user.zone_selected) != BODY_ZONE_CHEST)
|
||||
return
|
||||
if(target == user)
|
||||
return
|
||||
if(!target.can_be_staked()) // Oops! Can't.
|
||||
@@ -142,21 +139,22 @@
|
||||
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
|
||||
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
|
||||
user.visible_message(
|
||||
span_danger("[user.name] drives 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)
|
||||
return
|
||||
if(!target.mind)
|
||||
return
|
||||
var/datum/antagonist/bloodsucker/bloodsuckerdatum = target.mind.has_antag_datum(/datum/antagonist/bloodsucker)
|
||||
if(bloodsuckerdatum)
|
||||
// If DEAD or TORPID... Kill Bloodsucker!
|
||||
if(!bloodsuckerdatum)
|
||||
return
|
||||
if(target.StakeCanKillMe())
|
||||
bloodsuckerdatum.FinalDeath()
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user