diff --git a/src/types/triggers/auratrigger.lua b/src/types/triggers/auratrigger.lua index 36d0ddb..73dcace 100644 --- a/src/types/triggers/auratrigger.lua +++ b/src/types/triggers/auratrigger.lua @@ -51,7 +51,7 @@ end --- Reset the AuraTrigger to the default state function AuraTrigger:Reset() self.count = 0 - self:SetState(self.count >= self.requiredCount) + self:SetState(self.count >= self.requiredCount, nil, false) end ---Check if a given aura matches this AuraTrigger @@ -73,7 +73,7 @@ function AuraTrigger:AddAura(aura) return end self.count = self.count + 1 - self:SetState(self.count >= self.requiredCount, {stacks=aura.applications}) + self:SetState(self.count >= self.requiredCount, {stacks=aura.applications}, false) end ---Inform the trigger about an updated aura @@ -92,5 +92,5 @@ function AuraTrigger:RemoveAura(aura) return end self.count = self.count - 1 - self:SetState(self.count >= self.requiredCount) + self:SetState(self.count >= self.requiredCount, nil, false) end diff --git a/src/types/triggers/statustrigger.lua b/src/types/triggers/statustrigger.lua index a537ca6..7c2e188 100644 --- a/src/types/triggers/statustrigger.lua +++ b/src/types/triggers/statustrigger.lua @@ -49,5 +49,5 @@ end -- status: -- Must be a valid UnitAuraInfo function StatusTrigger:UpdateStatus(count) - self:SetState(count >= self.requiredCount) + self:SetState(count >= self.requiredCount, nil, false) end diff --git a/src/types/triggers/trigger.lua b/src/types/triggers/trigger.lua index f991963..cb13da4 100644 --- a/src/types/triggers/trigger.lua +++ b/src/types/triggers/trigger.lua @@ -48,9 +48,8 @@ end ---Set the state of the trigger. Will activate the indicator if needed. ---@param data table | nil ---@param state boolean -function Trigger:SetState(state, data) +function Trigger:SetState(state, data, doUpdate) state = state ~= self.invert -- state xor inverted - if self.active ~= state then if state then self.indicator:Show(data) @@ -58,12 +57,14 @@ function Trigger:SetState(state, data) self.indicator:Hide() end self.active = state + elseif doUpdate and self.active then + self.indicator:Update(data) end end -- Reset the trigger to the default state. If this changes the activation of the -- trigger then the target will be notified. function Trigger:Reset() - self:SetState(false) + self:SetState(false, nil, false) end