private void OnGameTick() { activeBrick.MoveDown(); timer.RequestLevelTick(level); if (!ActiveBrickPositionValid()) { activeBrick.UndoMove(); DissolveActiveBrick(); if (squares.AnyRowFull()) { state = GameState.RowClearing; timer.RequestGameMessageTick(); } else { PrepareNewBrick(); } } }