From 09f2594c37e6ba3648e71a9e19dd4558495273a9 Mon Sep 17 00:00:00 2001 From: Artur Date: Tue, 28 Jul 2020 22:58:13 +0300 Subject: [PATCH 1/2] Plugs bloodsucker LifeTick into BiologicalLife --- code/modules/antagonists/bloodsucker/bloodsucker_life.dm | 1 - code/modules/antagonists/bloodsucker/datum_bloodsucker.dm | 1 - code/modules/mob/living/carbon/life.dm | 8 ++++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index 47a98623db..cb6b2d8685 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -11,7 +11,6 @@ // Show as dead when... /datum/antagonist/bloodsucker/proc/LifeTick()// Should probably run from life.dm, same as handle_changeling, but will be an utter pain to move - set waitfor = FALSE // Don't make on_gain() wait for this function to finish. This lets this code run on the side. var/notice_healing while(owner && !AmFinalDeath()) // owner.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) == src if(owner.current.stat == CONSCIOUS && !poweron_feed && !HAS_TRAIT(owner.current, TRAIT_FAKEDEATH)) // Deduct Blood diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index 888db8193b..e111ca97ea 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -50,7 +50,6 @@ AssignStarterPowersAndStats()// Give Powers & Stats forge_bloodsucker_objectives()// Objectives & Team update_bloodsucker_icons_added(owner.current, "bloodsucker") // Add Antag HUD - LifeTick() // Run Life Function . = ..() diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 725feb214c..000fcd59c2 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -1,6 +1,8 @@ /mob/living/carbon/BiologicalLife(seconds, times_fired) //Updates the number of stored chemicals for powers handle_changeling() + //Handles the unique mentabolism of bloodsuckers, look at /datum/antagonist/bloodsucker/proc/LifeTick() + handle_bloodsucker() //Reagent processing needs to come before breathing, to prevent edge cases. handle_organs() . = ..() // if . is false, we are dead. @@ -422,6 +424,12 @@ hud_used.lingchemdisplay.invisibility = INVISIBILITY_ABSTRACT +/mob/living/carbon/proc/handle_bloodsucker() + if(mind && AmBloodsucker(src)) + var/datum/antagonist/bloodsucker/B + B.LifeTick + + /mob/living/carbon/handle_mutations_and_radiation() if(dna && dna.temporary_mutations.len) for(var/mut in dna.temporary_mutations) From e0d9c7972d27d1d561363d7ff804c8838e237b02 Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 29 Jul 2020 01:50:40 +0300 Subject: [PATCH 2/2] Makes it actually work --- code/modules/mob/living/carbon/life.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 000fcd59c2..e29c6b9ffe 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -426,8 +426,8 @@ /mob/living/carbon/proc/handle_bloodsucker() if(mind && AmBloodsucker(src)) - var/datum/antagonist/bloodsucker/B - B.LifeTick + var/datum/antagonist/bloodsucker/B = mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) + B.LifeTick() /mob/living/carbon/handle_mutations_and_radiation()