mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-23 13:05:44 +01:00
Extraction Tweaks (#10289)
This commit is contained in:
@@ -31,8 +31,8 @@
|
||||
M = user
|
||||
return eyestab(M,user)
|
||||
|
||||
/obj/item/material/knife/verb/extract_shrapnel(var/mob/living/carbon/human/H as mob in view(1))
|
||||
set name = "Extract Shrapnel"
|
||||
/obj/item/material/knife/verb/extract_embedded(var/mob/living/carbon/human/H as mob in view(1))
|
||||
set name = "Extract Embedded Item"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
@@ -42,16 +42,23 @@
|
||||
if(!istype(H))
|
||||
return
|
||||
|
||||
if(!H.get_visible_implants(1))
|
||||
to_chat(usr, "<span class='warning'>There's nothing large enough to remove!</span>")
|
||||
var/list/available_organs = list()
|
||||
for(var/thing in H.organs)
|
||||
var/obj/item/organ/external/O = thing
|
||||
available_organs[capitalize_first_letters(O.name)] = O
|
||||
var/choice = input(usr, "Select an external organ to extract any embedded or implanted item from.", "Organ Selection") as null|anything in available_organs
|
||||
if(!choice)
|
||||
return
|
||||
|
||||
for(var/obj/item/material/shard/S in H.contents)
|
||||
visible_message("<span class='notice'>[usr] starts carefully digging out some of the shrapnel in [H == usr ? "themselves" : H]...</span>")
|
||||
var/obj/item/organ/external/O = available_organs[choice]
|
||||
for(var/thing in O.implants)
|
||||
var/obj/S = thing
|
||||
usr.visible_message("<span class='notice'>[usr] starts carefully digging out something in [H == usr ? "themselves" : H]...</span>")
|
||||
O.take_damage(8, 0, DAM_SHARP|DAM_EDGE, src)
|
||||
H.custom_pain("<font size=3><span class='danger'>It burns!</span></font>", 50)
|
||||
if(do_mob(usr, H, 100))
|
||||
H.remove_implant(S, FALSE)
|
||||
log_and_message_admins("has extracted shrapnel out of [key_name(H)]")
|
||||
log_and_message_admins("has extracted [S] out of [key_name(H)]")
|
||||
if(H.can_feel_pain())
|
||||
H.emote("scream")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user