From 41f1afca1e9c01c62373616f502626ba0c454889 Mon Sep 17 00:00:00 2001 From: Tom Herbert <18316812+taherbert@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:17:22 -0800 Subject: [PATCH] Fix Doomsayer trigger asymmetric buff expiration The doomsayer_trigger_t guard checks both doomsayer_in_combat and doomsayer_out_of_combat buffs, but only expires doomsayer_in_combat. If the out_of_combat buff were active when the trigger fires, it would not be consumed, allowing a double trigger on the next attack. Expire both buffs unconditionally (expire() is a no-op on inactive buffs). --- engine/class_modules/sc_demon_hunter.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/engine/class_modules/sc_demon_hunter.cpp b/engine/class_modules/sc_demon_hunter.cpp index efd9c7267cb..c1d76953801 100644 --- a/engine/class_modules/sc_demon_hunter.cpp +++ b/engine/class_modules/sc_demon_hunter.cpp @@ -3170,6 +3170,7 @@ struct doomsayer_trigger_t : public BASE } BASE::p()->buff.doomsayer_in_combat->expire(); + BASE::p()->buff.doomsayer_out_of_combat->expire(); for ( int i = 0; i < meteors_to_trigger; ++i ) {