mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
Adds the bluespace anchor cybernetic implant (#26978)
* Anchor? I hardly know her! * biochip code my hated * yeah that's fair * Apply suggestions from code review Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com> --------- Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com> Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
This commit is contained in:
@@ -734,6 +734,51 @@
|
||||
if(H.stat == CONSCIOUS)
|
||||
to_chat(H, "<span class='notice'>You feel your heart beating again!</span>")
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/bluespace_anchor
|
||||
name = "bluespace anchor implant"
|
||||
desc = "This large cybernetic implant anchors you in bluespace, preventing almost any teleportation effects from working. It disrupts GPS systems however."
|
||||
icon_state = "bluespace_anchor"
|
||||
implant_overlay = null
|
||||
slot = "bluespace_anchor"
|
||||
origin_tech = "bluespace=6;biotech=4"
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/bluespace_anchor/insert(mob/living/carbon/M, special = FALSE)
|
||||
..()
|
||||
RegisterSignal(M, COMSIG_MOVABLE_TELEPORTING, PROC_REF(on_teleport))
|
||||
RegisterSignal(M, COMSIG_MOB_PRE_JAUNT, PROC_REF(on_jaunt))
|
||||
for(var/obj/item/bio_chip/tracking/T in M)
|
||||
if(T && T.implanted)
|
||||
qdel(T)
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/bluespace_anchor/remove(mob/living/carbon/M, special = FALSE)
|
||||
UnregisterSignal(M, COMSIG_MOVABLE_TELEPORTING)
|
||||
UnregisterSignal(M, COMSIG_MOB_PRE_JAUNT)
|
||||
return ..()
|
||||
|
||||
/// Blocks teleports and stuns the would-be-teleportee.
|
||||
/obj/item/organ/internal/cyberimp/chest/bluespace_anchor/proc/on_teleport(mob/living/teleportee, atom/destination, channel)
|
||||
SIGNAL_HANDLER // COMSIG_MOVABLE_TELEPORTED
|
||||
|
||||
to_chat(teleportee, "<span class='userdanger'>You feel yourself teleporting, but are suddenly flung back to where you just were!</span>")
|
||||
|
||||
teleportee.Weaken(5 SECONDS)
|
||||
var/datum/effect_system/spark_spread/spark_system = new()
|
||||
spark_system.set_up(5, TRUE, teleportee)
|
||||
spark_system.start()
|
||||
return COMPONENT_BLOCK_TELEPORT
|
||||
|
||||
/// Prevents a user from entering a jaunt.
|
||||
/obj/item/organ/internal/cyberimp/chest/bluespace_anchor/proc/on_jaunt(mob/living/jaunter)
|
||||
SIGNAL_HANDLER // COMSIG_MOB_PRE_JAUNT
|
||||
|
||||
to_chat(jaunter, "<span class='userdanger'>As you attempt to jaunt, you slam directly into the barrier between realities and are sent crashing back into corporeality!</span>")
|
||||
|
||||
jaunter.Weaken(5 SECONDS)
|
||||
var/datum/effect_system/spark_spread/spark_system = new()
|
||||
spark_system.set_up(5, TRUE, jaunter)
|
||||
spark_system.start()
|
||||
return COMPONENT_BLOCK_JAUNT
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/ipc_repair
|
||||
name = "Reactive Repair Implant"
|
||||
desc = "This implant reworks the IPC frame, in order to incorporate materials that return to their original shape after being damaged. Requires power to function."
|
||||
|
||||
Reference in New Issue
Block a user