mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 09:54:52 +00:00
really surprised this wasn't done earlier
This commit is contained in:
@@ -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 //
|
||||||
/////////////
|
/////////////
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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")
|
||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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 |
Reference in New Issue
Block a user