public void Reset()
{
// Remove all visible blocks
foreach (var visibleBlock in this.visibleBlocks)
{
visibleBlock.Reset();
visibleBlock.Owner.Enabled = false;
this.avaibleBlocks.Add(visibleBlock);
}
this.visibleBlocks.Clear();
float screenHeight;
screenHeight = this.vm.BottomEdge - this.vm.TopEdge;
// Add initial blocks
for (int i = 0; i < MAX_VISIBLE_BLOCKS; i++)
{
var selectedBlock = this.avaibleBlocks[WaveServices.Random.Next(this.avaibleBlocks.Count)];
this.avaibleBlocks.Remove(selectedBlock);
selectedBlock.Transform2D.Y = -screenHeight * (i + 1);
this.visibleBlocks.Add(selectedBlock);
selectedBlock.Owner.Enabled = true;
}
}