From 772c2d13fe1f204b5a0d70d0843acae3f4550d2a Mon Sep 17 00:00:00 2001 From: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com> Date: Tue, 27 Feb 2024 17:21:23 -0500 Subject: [PATCH] Revival nests description updated, heals hivenoded humans (#24299) * revival nests no longer lie and say they can turn humans into eggs * works on hivenode humans, no longer breaks down humans * no bitches --- .../stool_bed_chair_nest/alien_nests.dm | 64 +++++++------------ 1 file changed, 23 insertions(+), 41 deletions(-) diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm index 3313812d833..10a43fe214d 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm @@ -113,7 +113,7 @@ /obj/structure/bed/revival_nest name = "alien rejuvenation nest" - desc = "It's a gruesome pile of thick, sticky resin shaped like a flytrap. Heals damaged aliens and slowly revives the dead, breaks down non xenos and uses their genetic soup to make an alien egg." + desc = "It's a gruesome pile of thick, sticky resin shaped like a flytrap. Heals damaged aliens and slowly revives the dead." icon = 'icons/mob/alien.dmi' icon_state = "placeholder_rejuv_nest" max_integrity = 30 @@ -125,28 +125,7 @@ /obj/structure/bed/revival_nest/user_unbuckle_mob(mob/living/buckled_mob, mob/user) for(var/mob/living/M in buckled_mobs) //breaking a nest releases all the buckled mobs, because the nest isn't holding them down anymore - if(HAS_TRAIT(user, TRAIT_XENO_IMMUNE)) - unbuckle_mob(M) - add_fingerprint(user) - return - - if(M != user) - M.visible_message("[user] tears [M] out of the rejuvination pod!",\ - "[user] pulls you free from the rejuvination pod!",\ - "You hear squelching...") - else - M.visible_message("[M] struggles to break free from the rejuvination pod!",\ - "You struggle to break free from the rejuvination pod... (Stay still for 15 seconds.)",\ - "You hear squelching...") - if(!do_after(M, 15 SECONDS, target = src)) - if(M && M.buckled) - to_chat(M, "You fail to escape \the [src]!") - return - if(!M.buckled) - return - M.visible_message("[M] breaks free from the rejuvination pod!",\ - "You break free from the rejuvination pod!",\ - "You hear squelching...") + if(user.get_int_organ(/obj/item/organ/internal/alien/hivenode)) unbuckle_mob(M) add_fingerprint(user) @@ -157,24 +136,23 @@ /obj/structure/bed/revival_nest/process() for(var/mob/living/buckled_mob in buckled_mobs) processing_ticks++ - if(isalien(buckled_mob)) - buckled_mob.adjustBruteLoss(-5) - buckled_mob.adjustFireLoss(-5) - buckled_mob.adjustToxLoss(-5) - buckled_mob.adjustOxyLoss(-5) - buckled_mob.adjustCloneLoss(-5) - for(var/datum/disease/virus in buckled_mob.viruses) - if(virus.stage < 1 && processing_ticks >= 4) - virus.cure() - processing_ticks = 0 - if(virus.stage > 1 && processing_ticks >= 4) - virus.stage-- - processing_ticks = 0 - if(buckled_mob.stat == DEAD && !revive_or_decay_timer) - revive_or_decay_timer = addtimer(CALLBACK(src, PROC_REF(revive_dead_alien), buckled_mob), 40 SECONDS, TIMER_UNIQUE|TIMER_STOPPABLE) - else - buckled_mob.adjustBruteLoss(3) - buckled_mob.adjustFireLoss(3) + if(!buckled_mob.get_int_organ(/obj/item/organ/internal/alien/hivenode)) + continue + buckled_mob.adjustBruteLoss(-5) + buckled_mob.adjustFireLoss(-5) + buckled_mob.adjustToxLoss(-5) + buckled_mob.adjustOxyLoss(-5) + buckled_mob.adjustCloneLoss(-5) + for(var/datum/disease/virus in buckled_mob.viruses) + if(virus.stage < 1 && processing_ticks >= 4) + virus.cure() + processing_ticks = 0 + if(virus.stage > 1 && processing_ticks >= 4) + virus.stage-- + processing_ticks = 0 + if(buckled_mob.stat == DEAD && !revive_or_decay_timer && isalien(buckled_mob)) + revive_or_decay_timer = addtimer(CALLBACK(src, PROC_REF(revive_dead_alien), buckled_mob), 40 SECONDS, TIMER_UNIQUE|TIMER_STOPPABLE) + /obj/structure/bed/revival_nest/proc/revive_dead_alien(mob/living/carbon/alien/dead_alien) dead_alien.revive() @@ -212,6 +190,10 @@ if(has_buckled_mobs()) unbuckle_all_mobs() + if(!M.get_int_organ(/obj/item/organ/internal/alien/hivenode)) + to_chat(user, "[src] would be of no use to [M].") + return + if(buckle_mob(M)) M.visible_message("[user] secretes a thick vile goo, securing [M] into [src]!",\ "[user] drenches you in a foul-smelling resin, trapping you in [src]!",\