[Fix] Limited Use Modifier
This commit is contained in:
@@ -195,6 +195,36 @@ namespace YachtDice.Modifiers.Runtime
|
||||
OnChanged?.Invoke();
|
||||
}
|
||||
|
||||
public void RemoveExpired()
|
||||
{
|
||||
var changed = false;
|
||||
var activeChanged = false;
|
||||
|
||||
for (var i = _instances.Count - 1; i >= 0; i--)
|
||||
{
|
||||
var instance = _instances[i];
|
||||
if (!instance.IsExpired)
|
||||
continue;
|
||||
|
||||
if (instance.IsActive)
|
||||
activeChanged = true;
|
||||
|
||||
instance.IsActive = false;
|
||||
_instances.RemoveAt(i);
|
||||
changed = true;
|
||||
}
|
||||
|
||||
if (!changed)
|
||||
return;
|
||||
|
||||
_activeCacheDirty = true;
|
||||
|
||||
if (activeChanged)
|
||||
OnActiveModifiersChanged?.Invoke(Active);
|
||||
|
||||
OnChanged?.Invoke();
|
||||
}
|
||||
|
||||
private void RebuildActiveCache()
|
||||
{
|
||||
_activeCache.Clear();
|
||||
|
||||
Reference in New Issue
Block a user