From 6a0b62c8ee75193a0d2ad2ec5dadfd0cd8dd6a6b Mon Sep 17 00:00:00 2001
From: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Date: Mon, 13 Dec 2021 05:49:45 -0500
Subject: [PATCH] CI Fix (It doesn't randomly disappear anymore) (#9872)
* make this handled by the actual overlay system
* eternal agony
---
.../indicators/code/combat_indicator.dm | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/modular_skyrat/modules/indicators/code/combat_indicator.dm b/modular_skyrat/modules/indicators/code/combat_indicator.dm
index 32810f87375..0c820c09647 100644
--- a/modular_skyrat/modules/indicators/code/combat_indicator.dm
+++ b/modular_skyrat/modules/indicators/code/combat_indicator.dm
@@ -10,8 +10,16 @@ GLOBAL_VAR_INIT(combat_indicator_overlay, GenerateCombatOverlay())
var/combat_indicator = FALSE
var/nextcombatpopup = 0
+/mob/living/update_overlays()
+ . = ..()
+ if(combat_indicator)
+ . += GLOB.combat_indicator_overlay
+
/mob/living/proc/combat_indicator_unconscious_signal()
SIGNAL_HANDLER
+ if(stat < UNCONSCIOUS) // sanity check because something is calling this signal improperly
+ stack_trace("Improper COMSIG_LIVING_STATUS_UNCONSCIOUS sent; mob is not unconscious")
+ return
set_combat_indicator(FALSE)
/mob/living/proc/set_combat_indicator(state)
@@ -47,17 +55,16 @@ GLOBAL_VAR_INIT(combat_indicator_overlay, GenerateCombatOverlay())
visible_message(span_boldwarning("[src] hisses in a terrifying stance, claws raised and ready for combat!"))
else
visible_message(span_boldwarning("[src] gets ready for combat!"))
- add_overlay(GLOB.combat_indicator_overlay)
combat_indicator = TRUE
- src.apply_status_effect(STATUS_EFFECT_SURRENDER, src)
- src.log_message("has turned ON the combat indicator!", LOG_ATTACK)
+ apply_status_effect(STATUS_EFFECT_SURRENDER, src)
+ log_message("has turned ON the combat indicator!", LOG_ATTACK)
RegisterSignal(src, COMSIG_LIVING_STATUS_UNCONSCIOUS, .proc/combat_indicator_unconscious_signal)
else
- cut_overlay(GLOB.combat_indicator_overlay)
combat_indicator = FALSE
- src.remove_status_effect(STATUS_EFFECT_SURRENDER, src)
- src.log_message("has turned OFF the combat indicator!", LOG_ATTACK)
+ remove_status_effect(STATUS_EFFECT_SURRENDER, src)
+ log_message("has turned OFF the combat indicator!", LOG_ATTACK)
UnregisterSignal(src, COMSIG_LIVING_STATUS_UNCONSCIOUS)
+ update_appearance(UPDATE_ICON|UPDATE_OVERLAYS)
/mob/living/proc/user_toggle_combat_indicator()
if(stat != CONSCIOUS)