Adds Zombies (Admin-spawn) (#25381)

* fuck it good enough

* Apply suggestions from code review

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

* TRIPLE-REVIEW

* this should do it

* wow

* bruh

* FIX

* fix

* yeah

* sirryan review

* aaaaa

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

---------

Signed-off-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
This commit is contained in:
Contrabang
2024-05-31 02:17:31 +00:00
committed by GitHub
co-authored by Burzah DGamerL
parent 247e24ba9f
commit bc0c8344cf
62 changed files with 1326 additions and 148 deletions
+10 -4
View File
@@ -63,7 +63,7 @@
var/splinted_count = 0 //Time when this organ was last splinted
/obj/item/organ/external/necrotize(update_sprite=TRUE)
/obj/item/organ/external/necrotize(update_sprite=TRUE, ignore_vital_death = FALSE)
if(status & (ORGAN_ROBOT|ORGAN_DEAD))
return
status |= ORGAN_DEAD
@@ -72,7 +72,7 @@
if(owner)
to_chat(owner, "<span class='notice'>You can't feel your [name] anymore...</span>")
owner.update_body()
if(vital)
if(vital && !ignore_vital_death)
owner.death()
/obj/item/organ/external/Destroy()
@@ -384,13 +384,16 @@ This function completely restores a damaged organ to perfect condition.
surgeryize()
if(is_robotic()) //Robotic organs stay robotic.
status = ORGAN_ROBOT
else if(HAS_TRAIT(owner, TRAIT_I_WANT_BRAINS))
status = ORGAN_DEAD
else
status = 0
germ_level = 0
perma_injury = 0
brute_dam = 0
burn_dam = 0
open = ORGAN_CLOSED //Closing all wounds.
if(!HAS_TRAIT(owner, TRAIT_I_WANT_BRAINS)) // zombies's wounds don't close. Because thats cool.
open = ORGAN_CLOSED //Closing all wounds.
// handle internal organs
for(var/obj/item/organ/internal/current_organ in internal_organs)
@@ -666,9 +669,10 @@ Note that amputating the affected organ does in fact remove the infection from t
playsound(loc, 'sound/weapons/slice.ogg', 50, 1, -1)
user.visible_message("<span class='warning'>[user] begins to cut open [src].</span>",\
"<span class='notice'>You begin to cut open [src]...</span>")
if(do_after(user, 54, target = src))
if(do_after(user, 5.4 SECONDS, target = src))
drop_organs(user)
drop_embedded_objects()
open = ORGAN_ORGANIC_VIOLENT_OPEN
else
return ..()
@@ -817,6 +821,8 @@ Note that amputating the affected organ does in fact remove the infection from t
/obj/item/organ/external/proc/is_usable()
if((is_robotic() && get_damage() >= max_damage) && !tough) //robot limbs just become inoperable at max damage
return
if(owner && HAS_TRAIT(owner, TRAIT_I_WANT_BRAINS))
return TRUE
return !(status & (ORGAN_MUTATED|ORGAN_DEAD))
/obj/item/organ/external/proc/is_malfunctioning()