private void GiveBirthToAChild(int indexOfParent, ElementType et) { var adjacentSpots = GetAdjacentSpots(indexOfParent); var sands = adjacentSpots.Where(x => Items[x].ElementType == ElementType.Sand).ToList(); if (sands.Count == 0) { return; } Application.Current.Dispatcher.Invoke((Action) delegate { var randomIndex = sands[_rnd.Next(0, sands.Count)]; switch (et) { case ElementType.Coyote: Items[randomIndex] = new Coyote(); _coyoteIndexes.Add(randomIndex); break; case ElementType.PocketMouse: Items[randomIndex] = new PocketMouse(); _miceIndexes.Add(randomIndex); break; } }); }
private void SetPlayers() { var mice = PlayerSettings.CountOnDesertPocket; var coyotes = PlayerSettings.CountOnDesertCoyot; int index; for (int i = 0; i < mice; i++) { index = _rnd.Next(0, Rows * Columns); while (Items[index].Color != "peru" || Items[index].Name != "") { index = _rnd.Next(0, Rows * Columns); } _miceIndexes.Add(index); Items[index] = new PocketMouse(); } for (int i = 0; i < coyotes; i++) { index = _rnd.Next(0, Rows * Columns); while (Items[index].Color != "peru" || Items[index].Name != "") { index = _rnd.Next(0, Rows * Columns); } _coyoteIndexes.Add(index); Items[index] = new Coyote(); } }