mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-27 10:32:08 +00:00
57 lines
1.4 KiB
Plaintext
57 lines
1.4 KiB
Plaintext
/obj/item/psychic_power
|
|
name = "psychic power"
|
|
icon = 'icons/obj/psychic_powers.dmi'
|
|
flags = 0
|
|
anchored = TRUE
|
|
throwforce = 0 //Just to be on the safe side
|
|
throw_range = 0
|
|
throw_speed = 0
|
|
var/maintain_cost = 3
|
|
var/mob/living/owner
|
|
|
|
/obj/item/psychic_power/New(var/mob/living/_owner)
|
|
owner = _owner
|
|
if(!istype(owner))
|
|
qdel(src)
|
|
return
|
|
START_PROCESSING(SSprocessing, src)
|
|
..()
|
|
|
|
/obj/item/psychic_power/Destroy()
|
|
if(istype(owner) && owner.psi)
|
|
LAZYREMOVE(owner.psi.manifested_items, src)
|
|
UNSETEMPTY(owner.psi.manifested_items)
|
|
STOP_PROCESSING(SSprocessing, src)
|
|
. = ..()
|
|
|
|
/obj/item/psychic_power/get_storage_cost()
|
|
return 5
|
|
|
|
/obj/item/psychic_power/attack_self(var/mob/user)
|
|
sound_to(owner, 'sound/effects/psi/power_fail.ogg')
|
|
user.drop_from_inventory(src)
|
|
|
|
/obj/item/psychic_power/dropped()
|
|
..()
|
|
QDEL_IN(src, 1)
|
|
|
|
/obj/item/psychic_power/on_give()
|
|
qdel(src)
|
|
|
|
/obj/item/psychic_power/process()
|
|
if(istype(owner))
|
|
owner.psi.spend_power(maintain_cost)
|
|
if(!owner || loc != owner || (owner.l_hand != src && owner.r_hand != src))
|
|
if(istype(loc,/mob/living))
|
|
var/mob/living/carbon/human/host = loc
|
|
if(istype(host))
|
|
for(var/obj/item/organ/external/organ in host.organs)
|
|
for(var/obj/item/O in organ.implants)
|
|
if(O == src)
|
|
organ.implants -= src
|
|
host.pinned -= src
|
|
host.embedded -= src
|
|
host.drop_from_inventory(src)
|
|
else
|
|
qdel(src)
|