From 227264cd4d5ae5c70b17d3af08fa5cf04472d79d Mon Sep 17 00:00:00 2001 From: TemporalOroboros Date: Thu, 17 Mar 2022 02:48:24 -0700 Subject: [PATCH] Fixes unarmed telekinesis breaking chameleon. (#65505) Apparently whoever implemented the signal handler forgot to pass the signal source so it was reading the thing clicked on as whether the thing clicked on was adjacent. As datums are truthy this resulted in all clicks breaking chameleon. --- code/datums/mutations/chameleon.dm | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/code/datums/mutations/chameleon.dm b/code/datums/mutations/chameleon.dm index 1b23026d378..6d185e475e9 100644 --- a/code/datums/mutations/chameleon.dm +++ b/code/datums/mutations/chameleon.dm @@ -19,12 +19,31 @@ /datum/mutation/human/chameleon/on_life(delta_time, times_fired) owner.alpha = max(owner.alpha - (12.5 * delta_time), 0) -/datum/mutation/human/chameleon/proc/on_move() +/** + * Resets the alpha of the host to the chameleon default if they move. + * + * Arguments: + * - [source][/atom/movable]: The source of the signal. Presumably the host mob. + * - [old_loc][/atom]: The location the host mob used to be in. + * - move_dir: The direction the host mob moved in. + * - forced: Whether the movement was caused by a forceMove or moveToNullspace. + * - [old_locs][/list/atom]: The locations the host mob used to be in. + */ +/datum/mutation/human/chameleon/proc/on_move(atom/movable/source, atom/old_loc, move_dir, forced, list/atom/old_locs) SIGNAL_HANDLER owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY -/datum/mutation/human/chameleon/proc/on_attack_hand(atom/target, proximity) +/** + * Resets the alpha of the host if they click on something nearby. + * + * Arguments: + * - [source][/mob/living/carbon/human]: The host mob that just clicked on something. + * - [target][/atom]: The thing the host mob clicked on. + * - proximity: Whether the host mob can physically reach the thing that they clicked on. + * - [modifiers][/list]: The set of click modifiers associated with this attack chain call. + */ +/datum/mutation/human/chameleon/proc/on_attack_hand(mob/living/carbon/human/source, atom/target, proximity, list/modifiers) SIGNAL_HANDLER if(!proximity) //stops tk from breaking chameleon