Makes proteans gib on death

This commit is contained in:
Heroman
2021-12-04 06:29:04 +10:00
parent 68fe0fbcc3
commit 2ead07ed2d
4 changed files with 19 additions and 16 deletions
@@ -1,13 +1,14 @@
/mob/living/carbon/human/gib()
//Drop the NIF, they're expensive, why not recover them? Also important for prometheans.
//Drop the NIF, they're expensive, why not recover them?
if(nif)
var/obj/item/device/nif/deadnif = nif //Unimplant removes the reference on the mob
deadnif.unimplant(src)
deadnif.forceMove(drop_location())
deadnif.throw_at(get_edge_target_turf(src,pick(alldirs)), rand(1,3), round(30/deadnif.w_class))
deadnif.wear(10) //Presumably it's gone through some shit if they got gibbed?
if(!deadnif.gib_nodrop)
deadnif.unimplant(src)
deadnif.forceMove(drop_location())
deadnif.throw_at(get_edge_target_turf(src,pick(alldirs)), rand(1,3), round(30/deadnif.w_class))
deadnif.wear(10) //Presumably it's gone through some shit if they got gibbed?
. = ..()
//Surprisingly this is only called for humans, but whatever!
@@ -15,10 +16,10 @@
//Not in a belly? Well, too bad!
if(!isbelly(H.loc))
return TRUE
//What belly!
var/obj/belly/B = H.loc
//Were they digesting and we have a mind you can update?
//Technically allows metagaming by allowing buddies to turn on digestion for like 2 seconds
// to finish off critically wounded friends to avoid resleeving sickness, but like
@@ -172,13 +172,9 @@
to_chat(H, "<span class='warning'>You died as a Protean. Please sit out of the round for at least 60 minutes before respawning, to represent the time it would take to ship a new-you to the station.</span>")
for(var/obj/item/organ/I in H.internal_organs)
I.removed()
for(var/obj/item/I in H.contents)
H.drop_from_inventory(I)
qdel(H)
spawn(1)
if(H)
H.gib()
/datum/species/protean/handle_environment_special(var/mob/living/carbon/human/H)
if((H.getActualBruteLoss() + H.getActualFireLoss()) > H.maxHealth*0.5 && isturf(H.loc)) //So, only if we're not a blob (we're in nullspace) or in someone (or a locker, really, but whatever)
+2
View File
@@ -28,6 +28,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable
var/durability = 100 // Durability remaining
var/bioadap = FALSE // If it'll work in fancy species
var/gib_nodrop = FALSE // NIF self-destructs when owner is gibbed
var/tmp/power_usage = 0 // Nifsoft adds to this
var/tmp/mob/living/carbon/human/human // Our owner!
@@ -613,6 +614,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable
desc = "A NIF that is part of a protean's body structure. Where did you get that anyway?"
durability = 25
bioadap = TRUE
gib_nodrop = TRUE
////////////////////////////////
// Special Promethean """surgery"""
@@ -139,6 +139,10 @@
//Replace this with a VORE setting so all types of posibrains can/can't be digested on a whim
return FALSE
/obj/item/organ/internal/nano/digest_act(atom/movable/item_storage = null)
//Make proteans recoverable too
return FALSE
// Gradual damage measurement
/obj/item
var/digest_stage = null