public void SetStates(int timeInMiliseconds) { var lastIndexToActivate = (timeInMiliseconds / Settings.PeriodTimeMiliseconds) % Settings.ModuloDivisor; Pieces = Pieces.OrderByDescending(x => x.Index).ToList(); foreach (IRowPiece piece in Pieces) { if (piece.Index <= lastIndexToActivate) { piece.State = true; } else { piece.State = false; } } }