Fix timed out buffs not calling onExpire

This commit is contained in:
gsemaj 2022-07-19 09:14:38 -07:00
parent ad9bf2a9e3
commit 0e054e21b6

View File

@ -12,8 +12,12 @@ void Buff::tick() {
if(stack.durationTicks > 0) stack.durationTicks--;
if(stack.durationTicks == 0) {
// erase() destroys the callbacks
// with the stack struct, so we need
// to copy it first.
BuffStack deadStack = stack;
it = stacks.erase(it);
if(stack.onExpire) stack.onExpire(self, &stack);
if(deadStack.onExpire) deadStack.onExpire(self, &deadStack);
} else it++;
}
}