public void ApplySpell(SpellStackInfo info) { switch (info.Spell) { case Spells.Maximize: magnifyStacks++; if (magnifyStacks > maxMagnifyStacks) { magnifyStacks = maxMinimizeStacks; return; } break; case Spells.Minimize: minimizeStacks++; if (minimizeStacks > maxMinimizeStacks) { minimizeStacks = maxMinimizeStacks; return; } break; default: Debug.LogWarning($"Attempted to pass non-resize spell {info.Spell} to Resizable script."); return; } stacks.Add(info); StartCoroutine(RemoveStack(info)); RecalculateScale(); }
private IEnumerator RemoveStack(SpellStackInfo info) { yield return(new WaitForSeconds(info.Duration)); stacks.Remove(info); DecreaseStackCount(info); RecalculateScale(); }
private void DecreaseStackCount(SpellStackInfo stack) { switch (stack.Spell) { case Spells.Maximize: magnifyStacks--; break; case Spells.Minimize: minimizeStacks--; break; } }