really surprised this wasn't done earlier

This commit is contained in:
Kraseo
2020-05-04 18:30:27 +02:00
parent e36bd50ad9
commit c79ece7449
9 changed files with 56 additions and 21 deletions

View File

@@ -34,6 +34,8 @@
#define STATUS_EFFECT_HIPPOCRATIC_OATH /datum/status_effect/hippocraticOath //Gives you an aura of healing as well as regrowing the Rod of Asclepius if lost #define STATUS_EFFECT_HIPPOCRATIC_OATH /datum/status_effect/hippocraticOath //Gives you an aura of healing as well as regrowing the Rod of Asclepius if lost
#define STATUS_EFFECT_REGENERATIVE_CORE /datum/status_effect/regenerative_core //removes damage slowdown while giving a slow regenerating effect
///////////// /////////////
// DEBUFFS // // DEBUFFS //
///////////// /////////////

View File

@@ -78,6 +78,7 @@
#define TRAIT_MONKEYLIKE "monkeylike" //sets IsAdvancedToolUser to FALSE #define TRAIT_MONKEYLIKE "monkeylike" //sets IsAdvancedToolUser to FALSE
#define TRAIT_PACIFISM "pacifism" #define TRAIT_PACIFISM "pacifism"
#define TRAIT_IGNORESLOWDOWN "ignoreslow" #define TRAIT_IGNORESLOWDOWN "ignoreslow"
#define TRAIT_IGNOREDAMAGESLOWDOWN "ignoredamageslowdown"
#define TRAIT_DEATHCOMA "deathcoma" //Causes death-like unconsciousness #define TRAIT_DEATHCOMA "deathcoma" //Causes death-like unconsciousness
#define TRAIT_FAKEDEATH "fakedeath" //Makes the owner appear as dead to most forms of medical examination #define TRAIT_FAKEDEATH "fakedeath" //Makes the owner appear as dead to most forms of medical examination
#define TRAIT_DISFIGURED "disfigured" #define TRAIT_DISFIGURED "disfigured"
@@ -187,7 +188,7 @@
#define TRAIT_NO_INTERNALS "no-internals" #define TRAIT_NO_INTERNALS "no-internals"
#define TRAIT_NO_ALCOHOL "alcohol_intolerance" #define TRAIT_NO_ALCOHOL "alcohol_intolerance"
#define TRAIT_MUTATION_STASIS "mutation_stasis" //Prevents processed genetics mutations from processing. #define TRAIT_MUTATION_STASIS "mutation_stasis" //Prevents processed genetics mutations from processing.
#define TRAIT_FAST_PUMP "fast_pump" #define TRAIT_FAST_PUMP "fast_pump"
// mobility flag traits // mobility flag traits
// IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it) // IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it)

View File

@@ -550,3 +550,27 @@
else if(isanimal(L)) else if(isanimal(L))
var/mob/living/simple_animal/SM = L var/mob/living/simple_animal/SM = L
SM.adjustHealth(-3.5, forced = TRUE) SM.adjustHealth(-3.5, forced = TRUE)
/obj/screen/alert/status_effect/regenerative_core
name = "Reinforcing Tendrils"
desc = "You can move faster than your broken body could normally handle!"
icon_state = "regenerative_core"
name = "Regenerative Core Tendrils"
/datum/status_effect/regenerative_core
id = "Regenerative Core"
duration = 1 MINUTES
status_type = STATUS_EFFECT_REPLACE
alert_type = /obj/screen/alert/status_effect/regenerative_core
/datum/status_effect/regenerative_core/on_apply()
ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, "regenerative_core")
owner.adjustBruteLoss(-25)
if(!AmBloodsucker(owner)) //use your coffin you lazy bastard
owner.adjustFireLoss(-25)
owner.remove_CC()
owner.bodytemperature = BODYTEMP_NORMAL
return TRUE
/datum/status_effect/regenerative_core/on_remove()
REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, "regenerative_core")

View File

@@ -85,15 +85,12 @@
to_chat(user, "<span class='notice'>[src] are useless on the dead.</span>") to_chat(user, "<span class='notice'>[src] are useless on the dead.</span>")
return return
if(H != user) if(H != user)
H.visible_message("[user] forces [H] to apply [src]... [H.p_they()] quickly regenerate all injuries!") H.visible_message("[user] forces [H] to apply [src]... Black tendrils entangle and reinforce [H.p_them()]!")
SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other")) SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other"))
else else
to_chat(user, "<span class='notice'>You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments.</span>") to_chat(user, "<span class='notice'>You start to smear [src] on yourself. Disgusting tendrils hold you together and allow you to keep moving, but for how long?</span>")
SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self")) SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self"))
if(AmBloodsucker(H)) H.apply_status_effect(STATUS_EFFECT_REGENERATIVE_CORE)
H.revive(full_heal = FALSE)
else
H.revive(full_heal = TRUE)
qdel(src) qdel(src)
user.log_message("[user] used [src] to heal [H == user ? "[H.p_them()]self" : H]! Wake the fuck up, Samurai!", LOG_ATTACK, color="green") //Logging for 'old' style legion core use, when clicking on a sprite of yourself or another. user.log_message("[user] used [src] to heal [H == user ? "[H.p_them()]self" : H]! Wake the fuck up, Samurai!", LOG_ATTACK, color="green") //Logging for 'old' style legion core use, when clicking on a sprite of yourself or another.

View File

@@ -1049,15 +1049,16 @@
/mob/living/carbon/human/updatehealth() /mob/living/carbon/human/updatehealth()
. = ..() . = ..()
if(HAS_TRAIT(src, TRAIT_IGNORESLOWDOWN)) if(HAS_TRAIT(src, TRAIT_IGNORESLOWDOWN)) //if we want to ignore slowdown from damage and equipment
remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown)
remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying)
return return
var/stambufferinfluence = (bufferedstam*(100/stambuffer))*0.2 //CIT CHANGE - makes stamina buffer influence movedelay var/stambufferinfluence = (bufferedstam*(100/stambuffer))*0.2 //CIT CHANGE - makes stamina buffer influence movedelay
var/health_deficiency = ((100 + stambufferinfluence) - health + (getStaminaLoss()*0.75))//CIT CHANGE - reduces the impact of staminaloss and makes stamina buffer influence it if(!HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN)) //if we want to ignore slowdown from damage, but not from equipment
if(health_deficiency >= 40) var/health_deficiency = ((maxHealth + stambufferinfluence) - health + (getStaminaLoss()*0.75))//CIT CHANGE - reduces the impact of staminaloss and makes stamina buffer influence it
add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown, TRUE, (health_deficiency-39) / 75) if(health_deficiency >= 40)
add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying, TRUE, (health_deficiency-39) / 25) add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown, TRUE, (health_deficiency-39) / 75)
add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying, TRUE, (health_deficiency-39) / 25)
else else
remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown)
remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying)

View File

@@ -74,9 +74,10 @@
/mob/living/carbon/monkey/updatehealth() /mob/living/carbon/monkey/updatehealth()
. = ..() . = ..()
var/slow = 0 var/slow = 0
var/health_deficiency = (100 - health) if(!HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN))
if(health_deficiency >= 45) var/health_deficiency = (maxHealth - health)
slow += (health_deficiency / 25) if(health_deficiency >= 45)
slow += (health_deficiency / 25)
add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/monkey_health_speedmod, TRUE, slow) add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/monkey_health_speedmod, TRUE, slow)
/mob/living/carbon/monkey/adjust_bodytemperature(amount) /mob/living/carbon/monkey/adjust_bodytemperature(amount)

View File

@@ -502,8 +502,16 @@
var/obj/effect/proc_holder/spell/spell = S var/obj/effect/proc_holder/spell/spell = S
spell.updateButtonIcon() spell.updateButtonIcon()
//proc used to remove all immobilisation effects + reset stamina
/mob/living/proc/remove_CC(should_update_mobility = TRUE)
SetAllImmobility(0, FALSE)
setStaminaLoss(0)
SetUnconscious(0, FALSE)
if(should_update_mobility)
update_mobility()
//proc used to completely heal a mob. //proc used to completely heal a mob.
/mob/living/proc/fully_heal(admin_revive = 0) /mob/living/proc/fully_heal(admin_revive = FALSE)
restore_blood() restore_blood()
setToxLoss(0, 0) //zero as second argument not automatically call updatehealth(). setToxLoss(0, 0) //zero as second argument not automatically call updatehealth().
setOxyLoss(0, 0) setOxyLoss(0, 0)

View File

@@ -159,12 +159,13 @@
/mob/living/simple_animal/slime/updatehealth() /mob/living/simple_animal/slime/updatehealth()
. = ..() . = ..()
remove_movespeed_modifier(/datum/movespeed_modifier/slime_healthmod) remove_movespeed_modifier(/datum/movespeed_modifier/slime_healthmod)
var/health_deficiency = (100 - health)
var/mod = 0 var/mod = 0
if(health_deficiency >= 45) if(!HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN))
mod += (health_deficiency / 25) var/health_deficiency = (maxHealth - health)
if(health <= 0) if(health_deficiency >= 45)
mod += 2 mod += (health_deficiency / 25)
if(health <= 0)
mod += 2
add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/slime_healthmod, multiplicative_slowdown = mod) add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/slime_healthmod, multiplicative_slowdown = mod)
/mob/living/simple_animal/slime/adjust_bodytemperature() /mob/living/simple_animal/slime/adjust_bodytemperature()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 106 KiB