nanogel time
This commit is contained in:
@@ -472,3 +472,50 @@
|
||||
return TRUE
|
||||
|
||||
to_chat(user, "<span class='warning'>You can't heal [M] with the \the [src]!</span>")
|
||||
|
||||
/obj/item/stack/medical/nanogel
|
||||
name = "nanogel"
|
||||
singular_name = "nanogel"
|
||||
desc = "A highly advanced gel that when applied on a sufficiently repaired robotic limb will neutralize internal damage if present, allowing further repairs without the need for surgery."
|
||||
self_delay = 150 //Agonizingly slow if used on self, but, not completely forbidden because antags with robolimbs need a way to handle their thresholds.
|
||||
other_delay = 30 //Pretty fast if used on others.
|
||||
amount = 12
|
||||
max_amount = 12 //Two synths worth of fixing, if every single bodypart of them has internal damage. Usually, probably more like 6-12.
|
||||
icon_state = "nanogel"
|
||||
var/being_applied = FALSE //No doafter stacking.
|
||||
|
||||
/obj/item/stack/medical/nanogel/try_heal(mob/living/M, mob/user, silent = FALSE)
|
||||
if(being_applied)
|
||||
to_chat(user, "<span class='warning'>You are already applying [src]!</span>")
|
||||
return
|
||||
if(!iscarbon(M))
|
||||
to_chat(user, "<span class='warning'>This won't work on [M]!</span>")
|
||||
return
|
||||
being_applied = TRUE
|
||||
..()
|
||||
being_applied = FALSE
|
||||
|
||||
/obj/item/stack/medical/nanogel/heal(mob/living/M, mob/user)
|
||||
var/mob/living/carbon/C = M //Only carbons should be able to get here
|
||||
if(!C)
|
||||
return
|
||||
var/obj/item/bodypart/affecting = C.get_bodypart(check_zone(user.zone_selected))
|
||||
if(!affecting) //Missing limb?
|
||||
to_chat(user, "<span class='warning'>[C] doesn't have \a [parse_zone(user.zone_selected)]!</span>")
|
||||
return
|
||||
if(!affecting.is_robotic_limb())
|
||||
to_chat(user, "<span class='warning'>This won't work on nonrobotic limbs!</span>")
|
||||
return
|
||||
if(!affecting.threshhold_brute_passed && !affecting.threshhold_burn_passed)
|
||||
to_chat(user, "<span class='warning'>There is no need to use this on [affecting]</span>")
|
||||
if(affecting.threshhold_brute_passed && affecting.brute_dam == affecting.threshhold_passed_mindamage)
|
||||
. = TRUE
|
||||
affecting.threshhold_brute_passed = FALSE
|
||||
if(affecting.threshhold_burn_passed && affecting.burn_dam == affecting.threshhold_passed_mindamage)
|
||||
. = TRUE
|
||||
affecting.threshhold_burn_passed = FALSE
|
||||
if(.)
|
||||
user.visible_message("<span class='green'>The nanogel gets to work on [C], repairing [affecting]'s internal damage.</span>", "<span_class='green'>You watch as the nanogel gets to work on fixing the internal damage in [affecting]</span>")
|
||||
return
|
||||
//If it gets here: It failed, lets tell the user why.
|
||||
to_chat(user, "<span class='warning'>[src] fails to work on [affecting] due to residual [(affecting.threshhold_burn_passed && affecting.threshhold_burn_passed) ? "brute and burn" : "[affecting.threshhold_burn_passed ? "burn" : "brute"]"] damage! Perform some external repairs before using this.</span>")
|
||||
|
||||
Reference in New Issue
Block a user