Merge pull request #12981 from Arturlang/bloodsucker_life
Bloodsucker life
This commit is contained in:
@@ -10,25 +10,24 @@
|
|||||||
//
|
//
|
||||||
// Show as dead when...
|
// 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
|
/datum/antagonist/bloodsucker/proc/LifeTick() //Runs from BiologicalLife, handles all the bloodsucker constant proccesses
|
||||||
var/notice_healing
|
if(!owner || AmFinalDeath())
|
||||||
while(owner && !AmFinalDeath()) // owner.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) == src
|
return
|
||||||
if(owner.current.stat == CONSCIOUS && !poweron_feed && !HAS_TRAIT(owner.current, TRAIT_FAKEDEATH)) // Deduct Blood
|
if(owner.current.stat == CONSCIOUS && !poweron_feed && !HAS_TRAIT(owner.current, TRAIT_FAKEDEATH)) // Deduct Blood
|
||||||
AddBloodVolume(passive_blood_drain) // -.1 currently
|
AddBloodVolume(passive_blood_drain) // -.1 currently
|
||||||
if(HandleHealing(1)) // Heal
|
if(HandleHealing(1)) // Heal
|
||||||
if(!notice_healing && owner.current.blood_volume > 0)
|
if(!notice_healing && owner.current.blood_volume > 0)
|
||||||
to_chat(owner, "<span class='notice'>The power of your blood begins knitting your wounds...</span>")
|
to_chat(owner, "<span class='notice'>The power of your blood begins knitting your wounds...</span>")
|
||||||
notice_healing = TRUE
|
notice_healing = TRUE
|
||||||
else if(notice_healing == TRUE)
|
else if(notice_healing)
|
||||||
notice_healing = FALSE // Apply Low Blood Effects
|
notice_healing = FALSE // Apply Low Blood Effects
|
||||||
HandleStarving() // Death
|
HandleStarving() // Death
|
||||||
HandleDeath() // Standard Update
|
HandleDeath() // Standard Update
|
||||||
update_hud()// Daytime Sleep in Coffin
|
update_hud()// Daytime Sleep in Coffin
|
||||||
if(SSticker.mode.is_daylight() && !HAS_TRAIT_FROM(owner.current, TRAIT_FAKEDEATH, "bloodsucker"))
|
if(SSticker.mode.is_daylight() && !HAS_TRAIT_FROM(owner.current, TRAIT_FAKEDEATH, "bloodsucker"))
|
||||||
if(istype(owner.current.loc, /obj/structure/closet/crate/coffin))
|
if(istype(owner.current.loc, /obj/structure/closet/crate/coffin))
|
||||||
Torpor_Begin()
|
Torpor_Begin()
|
||||||
// Wait before next pass
|
// Wait before next pass
|
||||||
sleep(10)
|
|
||||||
FreeAllVassals() // Free my Vassals! (if I haven't yet)
|
FreeAllVassals() // Free my Vassals! (if I haven't yet)
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
var/had_toxlover
|
var/had_toxlover
|
||||||
var/level_bloodcost
|
var/level_bloodcost
|
||||||
var/passive_blood_drain = -0.1 //The amount of blood we loose each bloodsucker life() tick
|
var/passive_blood_drain = -0.1 //The amount of blood we loose each bloodsucker life() tick
|
||||||
|
var/notice_healing //Var to see if you are healing for preventing spam of the chat message inform the user of such
|
||||||
// LISTS
|
// LISTS
|
||||||
var/static/list/defaultTraits = list (TRAIT_STABLEHEART, TRAIT_NOBREATH, TRAIT_SLEEPIMMUNE, TRAIT_NOCRITDAMAGE, TRAIT_RESISTCOLD, TRAIT_RADIMMUNE, TRAIT_NIGHT_VISION, \
|
var/static/list/defaultTraits = list (TRAIT_STABLEHEART, TRAIT_NOBREATH, TRAIT_SLEEPIMMUNE, TRAIT_NOCRITDAMAGE, TRAIT_RESISTCOLD, TRAIT_RADIMMUNE, TRAIT_NIGHT_VISION, \
|
||||||
TRAIT_NOSOFTCRIT, TRAIT_NOHARDCRIT, TRAIT_AGEUSIA, TRAIT_COLDBLOODED, TRAIT_NONATURALHEAL, TRAIT_NOMARROW, TRAIT_NOPULSE, TRAIT_VIRUSIMMUNE, TRAIT_NODECAP, TRAIT_NOGUT)
|
TRAIT_NOSOFTCRIT, TRAIT_NOHARDCRIT, TRAIT_AGEUSIA, TRAIT_COLDBLOODED, TRAIT_NONATURALHEAL, TRAIT_NOMARROW, TRAIT_NOPULSE, TRAIT_VIRUSIMMUNE, TRAIT_NODECAP, TRAIT_NOGUT)
|
||||||
|
|||||||
Reference in New Issue
Block a user