mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 22:50:26 +01:00
Autosurgeons can now be used on other people (#64440)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
This commit is contained in:
@@ -22,10 +22,12 @@
|
||||
var/organ_type = /obj/item/organ
|
||||
var/starting_organ
|
||||
var/obj/item/organ/storedorgan
|
||||
var/surgery_speed = 1
|
||||
|
||||
/obj/item/autosurgeon/organ/syndicate
|
||||
name = "suspicious implant autosurgeon"
|
||||
icon_state = "syndicate_autoimplanter"
|
||||
surgery_speed = 0.75
|
||||
|
||||
/obj/item/autosurgeon/organ/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -37,6 +39,14 @@
|
||||
item.forceMove(src)
|
||||
name = "[initial(name)] ([storedorgan.name])"
|
||||
|
||||
/obj/item/autosurgeon/organ/proc/use_autosurgeon()
|
||||
storedorgan = null
|
||||
name = initial(name)
|
||||
if(uses != INFINITE)
|
||||
uses--
|
||||
if(!uses)
|
||||
desc = "[initial(desc)] Looks like it's been used up."
|
||||
|
||||
/obj/item/autosurgeon/organ/attack_self(mob/user)//when the object it used...
|
||||
if(!uses)
|
||||
to_chat(user, span_alert("[src] has already been used. The tools are dull and won't reactivate."))
|
||||
@@ -47,12 +57,7 @@
|
||||
storedorgan.Insert(user)//insert stored organ into the user
|
||||
user.visible_message(span_notice("[user] presses a button on [src], and you hear a short mechanical noise."), span_notice("You feel a sharp sting as [src] plunges into your body."))
|
||||
playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 50, TRUE)
|
||||
storedorgan = null
|
||||
name = initial(name)
|
||||
if(uses != INFINITE)
|
||||
uses--
|
||||
if(!uses)
|
||||
desc = "[initial(desc)] Looks like it's been used up."
|
||||
use_autosurgeon()
|
||||
|
||||
/obj/item/autosurgeon/organ/attackby(obj/item/weapon, mob/user, params)
|
||||
if(istype(weapon, organ_type))
|
||||
@@ -69,6 +74,16 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/autosurgeon/organ/attack(mob/living/target, mob/living/user, params)
|
||||
add_fingerprint(user)
|
||||
user.balloon_alert_to_viewers("Prepares to use [src] on [target].", "You begin to prepare to use [src] on [target].")
|
||||
if(!do_after(user, (8 SECONDS * surgery_speed), target))
|
||||
return
|
||||
user.visible_message(span_notice("[user] presses a button on [src], and you hear a short mechanical noise."), span_notice("You press a button on [src] as it plunges into [target]'s body."))
|
||||
to_chat(target, span_notice("You feel a sharp sting as something plunges into your body!"))
|
||||
playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 50, vary = TRUE)
|
||||
use_autosurgeon()
|
||||
|
||||
/obj/item/autosurgeon/organ/screwdriver_act(mob/living/user, obj/item/screwtool)
|
||||
if(..())
|
||||
return TRUE
|
||||
@@ -81,11 +96,7 @@
|
||||
|
||||
to_chat(user, span_notice("You remove the [storedorgan] from [src]."))
|
||||
screwtool.play_tool_sound(src)
|
||||
storedorgan = null
|
||||
if(uses != INFINITE)
|
||||
uses--
|
||||
if(!uses)
|
||||
desc = "[initial(desc)] Looks like it's been used up."
|
||||
use_autosurgeon()
|
||||
return TRUE
|
||||
|
||||
/obj/item/autosurgeon/organ/cmo
|
||||
|
||||
Reference in New Issue
Block a user