This commit is contained in:
SandPoot
2024-04-05 17:57:54 -03:00
parent bd7040a50d
commit 68fa21d602
34 changed files with 223 additions and 126 deletions
+16 -15
View File
@@ -422,13 +422,13 @@
embedding = list("embedded_pain_multiplier" = 4, "embed_chance" = 100, "embedded_fall_chance" = 0)
w_class = WEIGHT_CLASS_SMALL
sharpness = SHARP_POINTY
var/mob/living/carbon/human/fired_by
var/datum/weakref/fired_by
/// if we missed our target
var/missed = TRUE
/obj/item/hardened_spike/Initialize(mapload, firedby)
. = ..()
fired_by = firedby
fired_by = WEAKREF(firedby)
addtimer(CALLBACK(src, PROC_REF(checkembedded)), 5 SECONDS)
/obj/item/hardened_spike/proc/checkembedded()
@@ -478,13 +478,16 @@
return
been_places = TRUE
chems = new
chems.transfered = embedded_mob
chems.spikey = src
to_chat(fired_by, "<span class='notice'>Link established! Use the \"Transfer Chemicals\" ability to send your chemicals to the linked target!</span>")
chems.Grant(fired_by)
chems.transfered = WEAKREF(embedded_mob)
var/mob/fired_by_mob = fired_by.resolve()
if(fired_by_mob)
to_chat(fired_by_mob, span_notice("Link established! Use the \"Transfer Chemicals\" ability to send your chemicals to the linked target!"))
chems.Grant(fired_by_mob)
/obj/item/hardened_spike/chem/unembedded()
to_chat(fired_by, "<span class='warning'>Link lost!</span>")
var/mob/fired_by_mob = fired_by.resolve()
if(fired_by_mob)
to_chat(fired_by_mob, span_warning("Link lost!"))
QDEL_NULL(chems)
..()
@@ -496,19 +499,17 @@
name = "Transfer Chemicals"
desc = "Send all of your reagents into whomever the chem spike is embedded in. One use."
var/obj/item/hardened_spike/chem/spikey
var/mob/living/carbon/human/transfered
var/datum/weakref/transfered
/datum/action/innate/send_chems/Activate()
if(!ishuman(transfered) || !ishuman(owner))
var/mob/living/carbon/human/transfered_mob = transfered?.resolve()
if(!ishuman(transfered_mob) || !ishuman(owner))
return
var/mob/living/carbon/human/transferer = owner
to_chat(transfered, "<span class='warning'>You feel a tiny prick!</span>")
transferer.reagents.trans_to(transfered, transferer.reagents.total_volume, 1, 1, 0)
to_chat(transfered_mob, span_warning("You feel a tiny prick!"))
owner.reagents.trans_to(transfered_mob, owner.reagents.total_volume, 1, 1, 0)
var/obj/item/bodypart/L = spikey.checkembedded()
//this is where it would deal damage, if it transfers chems it removes itself so no damage
spikey.forceMove(get_turf(L))
transfered.visible_message("<span class='notice'>[spikey] falls out of [transfered]!</span>")
transfered_mob.visible_message(span_notice("[spikey] falls out of [transfered_mob]!"))
+1 -2
View File
@@ -28,8 +28,7 @@
/datum/mutation/human/antenna/on_losing(mob/living/carbon/human/owner)
if(..())
return
if(linked_radio)
linked_radio.Destroy()
QDEL_NULL(linked_radio)
/datum/mutation/human/antenna/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut)
..()