mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-10 06:33:42 +01:00
e7232d04fc
Don't let the large file size scare you, it's just mostly splitting stuff into contained sprites and putting them in the correct place. Anyway, resprites most non-resprited devices in devices.dmi, and puts them in contained sprites. Also puts any related /obj/item/device into contained sprites too. That's basically the long and short of it.
79 lines
2.5 KiB
Plaintext
79 lines
2.5 KiB
Plaintext
/obj/item/device/augment_implanter
|
|
name = "augment implanter"
|
|
desc = "A complex single use injector that is used to implant augments without the need for surgery."
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
origin_tech = list(TECH_BIO = 5, TECH_MATERIAL = 2)
|
|
icon = 'icons/obj/guns/decloner.dmi'
|
|
icon_state = "decloner"
|
|
item_state = "decloner"
|
|
var/obj/item/organ/augment_type
|
|
var/new_augment
|
|
|
|
/obj/item/device/augment_implanter/Initialize()
|
|
. = ..()
|
|
if(!augment_type)
|
|
augment_type = new new_augment(src)
|
|
|
|
/obj/item/device/augment_implanter/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
|
|
. = ..()
|
|
if(augment_type)
|
|
. += FONT_SMALL(SPAN_NOTICE("\The [augment_type] can be seen floating inside \the [src]'s biogel."))
|
|
else
|
|
. += FONT_SMALL(SPAN_WARNING("It is spent."))
|
|
|
|
/obj/item/device/augment_implanter/afterattack(mob/living/L, mob/user, proximity)
|
|
if(!proximity)
|
|
return
|
|
|
|
if(!augment_type)
|
|
to_chat(user, SPAN_WARNING("\The [src] is empty!"))
|
|
return
|
|
|
|
if(!ishuman(L))
|
|
to_chat(user, SPAN_WARNING("\The [src] has no effect on \the [L]."))
|
|
return
|
|
|
|
var/mob/living/carbon/human/H = L
|
|
|
|
if(!(H.species.name in augment_type.species_restricted))
|
|
to_chat(user, SPAN_WARNING("\The [augment_type] is not compatible with \the [H]'s body."))
|
|
return
|
|
|
|
if(H.internal_organs_by_name[augment_type.organ_tag])
|
|
to_chat(user, SPAN_WARNING("\The [H] already has a [augment_type]."))
|
|
return
|
|
|
|
if(!do_mob(user, H, 4 SECONDS))
|
|
return
|
|
|
|
var/obj/item/organ/external/affected = H.get_organ(augment_type.parent_organ)
|
|
|
|
augment_type.replaced(H, affected)
|
|
H.update_body()
|
|
H.updatehealth()
|
|
H.UpdateDamageIcon()
|
|
augment_type = null
|
|
|
|
user.visible_message(SPAN_WARNING("\The [user] thrusts \the [src] deep into \the [H], injecting something!"))
|
|
|
|
/obj/item/device/augment_implanter/advanced_tesla
|
|
new_augment = /obj/item/organ/internal/augment/tesla/advanced
|
|
|
|
/obj/item/device/augment_implanter/advanced_suspension
|
|
new_augment = /obj/item/organ/internal/augment/suspension/advanced
|
|
|
|
/obj/item/device/augment_implanter/combitool
|
|
new_augment = /obj/item/organ/internal/augment/tool/combitool
|
|
|
|
/obj/item/device/augment_implanter/health_scanner
|
|
new_augment = /obj/item/organ/internal/augment/health_scanner
|
|
|
|
/obj/item/device/augment_implanter/hivenet_shield
|
|
new_augment = /obj/item/organ/internal/augment/hiveshield
|
|
|
|
/obj/item/device/augment_implanter/hivenet_advanced_shield
|
|
new_augment = /obj/item/organ/internal/augment/hiveshield/advanced
|
|
|
|
/obj/item/device/augment_implanter/hivenet_warfare
|
|
new_augment = /obj/item/organ/internal/augment/hiveshield/warfare
|