public void GenerateField(int horzCellsCount, int vertCellsCount) { if (horzCellsCount > 0 && vertCellsCount > 0) { int vertOffset, horzOffset = 0; for (int i = 0; i < horzCellsCount; i++) { vertOffset = 0; for (int j = 0; j < vertCellsCount; j++) { var newCell = new GameFieldCell() { Width = _rectSize, Height = _rectSize }; newCell.PreviewMouseRightButtonUp += OnCellSelected; GameFieldCells.Add(newCell); Children.Add(newCell); SetTop(newCell, vertOffset); SetLeft(newCell, horzOffset); vertOffset += _rectSize; } horzOffset += _rectSize; } } }
private void AddUnitFromWidnowContext(AddUnitWindow addUnitWindow) { var addUnitWindowViewModel = addUnitWindow.DataContext as AddUnitWindowViewModel; UnitType unitType = addUnitWindowViewModel.SelectedUnitType; int numberOfUnits = addUnitWindowViewModel.NumberOfUnits; switch (unitType) { case UnitType.Swordsman: SelectedCell.UnitImage = SelectedPlayer.SwordsmanImage; break; case UnitType.Archer: SelectedCell.UnitImage = SelectedPlayer.ArcherImage; break; case UnitType.Peasant: SelectedCell.UnitImage = SelectedPlayer.PeasantImage; break; default: break; } SelectedPlayer.UnitStacks.Add(new UnitStack(unitType, numberOfUnits, SelectedCell)); SelectedPlayer.UnitStacks[SelectedPlayer.UnitStacks.Count - 1].CellIndex = GameFieldCells.IndexOf(SelectedCell); SelectedCell.UnitStack = SelectedPlayer.UnitStacks.Last(); }