public void HandleOnStatusApplied(PawnStatus status) { StatusFrame existingFrame = statusFrames.FirstOrDefault(s => s.StatusName == status.Name); if (existingFrame != null) { existingFrame.IncrementStatusCount(); } else { // Get first inactive frame (if there's still some) StatusFrame firstEmptyFrame = statusFrames.FirstOrDefault(s => !s.gameObject.activeSelf); if (firstEmptyFrame != null) { firstEmptyFrame.SetStatus(status.GetType().Name); } } }