public static BattleField Clone(BattleField clonesource)
 {
     string jsonwrite = JsonConvert.SerializeObject(clonesource);
     BattleField clone = JsonConvert.DeserializeObject<BattleField>(jsonwrite);
     return clone;
 }
        private void Simulation_Part1_Next_Click(object sender, RoutedEventArgs e)
        {
            InitComboBoxesSourceItems();
            Simulate_Init_Part1.Visibility = Visibility.Collapsed;
            Simulate_Init_Part2.Visibility = Visibility.Visible;
            BattleField newBattleField = (BattleField)Simulation_Part1_BattlefieldSelect.SelectedItem;
            SimulationBattleField = new BattleField(randomizer,newBattleField.mapconfig);
            Grid BattlefieldGrid = GenerateBattleGrid(newBattleField.getDimensions());
            int height = newBattleField.getDimensions().Item2;
            int width = newBattleField.getDimensions().Item1;
            BattleField_Name.Text = newBattleField.sName;
            Battlefield_Container.Children.Clear();
            BattlefieldGrid.Name = "Battlefield_Simulation_Rendered";
            BattlefieldGrid.Width = Double.NaN;
            BattlefieldGrid.Height = Double.NaN;
            BattlefieldGrid.HorizontalAlignment = HorizontalAlignment.Left;
            BattlefieldGrid.VerticalAlignment = VerticalAlignment.Top;
            BattlefieldGrid.ShowGridLines = true;
            BattlefieldGrid.Background = new SolidColorBrush(Colors.LightSteelBlue);
            for (int w = 0; w < height; w++)
            {
                BattlefieldGrid.ColumnDefinitions.Add(new ColumnDefinition());
            }
            for (int h = 0; h < width; h++)
            {
                BattlefieldGrid.RowDefinitions.Add(new RowDefinition());
            }
            for (int w = 0; w < height; w++)
            {
                for (int h = 0; h < width; h++)
                {
                    if(newBattleField.mapconfig.Where(x=> x.Y == h && x.X == w).Count() > 0)
                    {
                        Button button = new Button();
                        button.Background = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
                        button.MinHeight = 50;
                        button.MinWidth = 50;
                        button.Name = "Field_" + w + "_" + h;
                        button.Click += new RoutedEventHandler(Simulation_Part2_Place_Character);
                        button.Content = "";
                        Grid.SetColumn(button, w);
                        Grid.SetRow(button, h);
                        BattlefieldGrid.Children.Add(button);
                    }
                }
            }

            Grid.SetColumn(BattlefieldGrid, 0);
            Grid.SetRow(BattlefieldGrid, 2);
            Simulate_Init_BattleMapGrid.Children.Add(BattlefieldGrid);

            CurrentBattleFieldGrid = BattlefieldGrid;

            CurrentBattlefieldbuild = new List<DandDBattleSimulator.Classes.Point>();
        }
 public void setBattlefield(BattleField _battlefield)
 {
     battlefield = _battlefield;
 }
 private void Battlefield_Save_Click(object sender, RoutedEventArgs e)
 {
     //Battlefields
     BattleField newBattlefield = new BattleField(randomizer, CurrentBattlefieldbuild);
     newBattlefield.sName = BattleField_Name.Text;
     Battlefields.Add(newBattlefield);
     Battlefield_Configs.Items.Refresh();
     string jsonwrite = JsonConvert.SerializeObject(newBattlefield);
     WriteJsonStringToFile(jsonwrite, "battlefield", newBattlefield.sName);
     UpdateUIElementsItems();
 }