private void RecalculateActiveSprites() { ActiveSprites.Clear(); for (int i = 0; i < Sprites.Count; i++) { EnemyStatusSprite sprite = Sprites[i]; if (sprite.IsActive && !ActiveSprites.Contains(sprite)) { ActiveSprites.Add(sprite); } } }
protected void SetAndRecalculate(EnemyStatusSprite sprite, int newValue) { int oldValue = sprite.Value; bool previouslyActive = sprite.IsActive; if (oldValue != newValue) { bool nowActive = newValue > 0; if (nowActive && !previouslyActive) { sprite.Value = newValue; RecalculateStatusBar(); } else { sprite.Value = newValue; } } }