Files
Bubberstation/code/datums/elements/leeching_walk.dm
T
EnterTheJake 45a7a67c1f Reverts an unintended change to Leeching Walk. (#86295)
## About The Pull Request

Reverts an accidental change to leeching walk.

## Why It's Good For The Game
Few months ago, i reworked Rust Heretic and most of its skills.

https://github.com/tgstation/tgstation/pull/83006

One of the changes i pushed was a minor temperature regulation effect
being added to leeching walk.

This was accidentally reverted by Carlactg in his pr on Cult Vs Heretic

https://github.com/tgstation/tgstation/pull/82877

This change was not discussed nor alluded in the pr, and it wasn't even
remotely related to it, Carlact themsleves admitted it was their
mistake.

So i'm reverting it.

## Changelog

🆑
revert: Leeching walk has been granted it's intended temp regulation
effect back.
/🆑
2024-09-03 17:38:54 +02:00

60 lines
2.0 KiB
Plaintext

/// Buffs and heals the target while standing on rust.
/datum/element/leeching_walk
/datum/element/leeching_walk/Attach(datum/target)
. = ..()
if (!isliving(target))
return ELEMENT_INCOMPATIBLE
RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(on_move))
RegisterSignal(target, COMSIG_LIVING_LIFE, PROC_REF(on_life))
/datum/element/leeching_walk/Detach(datum/source)
. = ..()
UnregisterSignal(source, list(COMSIG_MOVABLE_MOVED, COMSIG_LIVING_LIFE))
/*
* Signal proc for [COMSIG_MOVABLE_MOVED].
*
* Checks if we should have baton resistance on the new turf.
*/
/datum/element/leeching_walk/proc/on_move(mob/source, atom/old_loc, dir, forced, list/old_locs)
SIGNAL_HANDLER
var/turf/mover_turf = get_turf(source)
if(HAS_TRAIT(mover_turf, TRAIT_RUSTY))
ADD_TRAIT(source, TRAIT_BATON_RESISTANCE, type)
return
REMOVE_TRAIT(source, TRAIT_BATON_RESISTANCE, type)
/**
* Signal proc for [COMSIG_LIVING_LIFE].
*
* Gradually heals the heretic ([source]) on rust,
* including baton knockdown and stamina damage.
*/
/datum/element/leeching_walk/proc/on_life(mob/living/source, seconds_per_tick, times_fired)
SIGNAL_HANDLER
var/turf/our_turf = get_turf(source)
if(!HAS_TRAIT(our_turf, TRAIT_RUSTY))
return
// Heals all damage + Stamina
var/need_mob_update = FALSE
need_mob_update += source.adjustBruteLoss(-3, updating_health = FALSE)
need_mob_update += source.adjustFireLoss(-3, updating_health = FALSE)
need_mob_update += source.adjustToxLoss(-3, updating_health = FALSE, forced = TRUE) // Slimes are people to
need_mob_update += source.adjustOxyLoss(-1.5, updating_health = FALSE)
need_mob_update += source.adjustStaminaLoss(-10, updating_stamina = FALSE)
if(need_mob_update)
source.updatehealth()
// Reduces duration of stuns/etc
source.AdjustAllImmobility(-0.5 SECONDS)
// Heals blood loss
if(source.blood_volume < BLOOD_VOLUME_NORMAL)
source.blood_volume += 2.5 * seconds_per_tick
// Slowly regulates your body temp
source.adjust_bodytemperature((source.get_body_temp_normal() - source.bodytemperature)/5)