Files
Bubberstation/code/game/objects/items/devices/anomaly_releaser.dm
SkyratBot b540aaf8ab [MIRROR] Afterattack is dead, long live Afterattack (#28128)
* Afterattack is dead, long live Afterattack

* wew

* fixes

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2024-06-15 04:02:11 +02:00

47 lines
1.5 KiB
Plaintext

///Use on an anomaly core to "awake" the anomaly and stabilize it
/obj/item/anomaly_releaser
name = "anomaly releaser"
desc = "Single-use injector that releases and stabilizes anomalies by injecting an unknown substance."
icon = 'icons/obj/devices/syndie_gadget.dmi'
icon_state = "anomaly_releaser"
inhand_icon_state = "stimpen"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
throwforce = 0
w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
throw_range = 5
///icon state after being used up
var/used_icon_state = "anomaly_releaser_used"
///are we used? if used we can't be used again
var/used = FALSE
///Can we be used infinitely?
var/infinite = FALSE
/obj/item/anomaly_releaser/interact_with_atom(atom/target, mob/living/user, list/modifiers)
if(!istype(target, /obj/item/assembly/signaler/anomaly))
return NONE
if(used)
return ITEM_INTERACT_BLOCKING
if(!do_after(user, 3 SECONDS, target))
return ITEM_INTERACT_BLOCKING
if(used)
return ITEM_INTERACT_BLOCKING
var/obj/item/assembly/signaler/anomaly/core = target
if(!core.anomaly_type)
return ITEM_INTERACT_BLOCKING
var/obj/effect/anomaly/anomaly = new core.anomaly_type(get_turf(core))
anomaly.stabilize()
log_combat(user, anomaly, "released", object = src, addition = "in [get_area(target)].")
if(!infinite)
icon_state = used_icon_state
used = TRUE
name = "used " + name
qdel(core)
return ITEM_INTERACT_SUCCESS