public void addCharacter(Character character, int _x = -1, int _y = -1)
 {
     if(Characters == null)
     {
         Characters = new List<Character>();
     }
     if (_x == -1 && _y == -1)
     {
         if (Characters.Count > 0)
         {
             bool positionoccupied = false;
             Point position = null;
             while (true)
             {
                 position = MapConfig.ElementAt(randomenerator.Next(MapConfig.Count));
                 foreach (Character Character in Characters)
                 {
                     if (Character.isOccupied(position))
                     {
                         positionoccupied = true;
                     }
                 }
                 if (!positionoccupied)
                 {
                     break;
                 }
             }
             character.setPosition(position);
             character.setBattlefield(this);
             Characters.Add(character);
         }
         else
         {
             character.setPosition(MapConfig.ElementAt(randomenerator.Next(MapConfig.Count)));
             character.setBattlefield(this);
             Characters.Add(character);
         }
     }
     else
     {
         Point pos = new Point(_x, _y);
         character.setPosition(pos);
         character.setBattlefield(this);
         Characters.Add(character);
     }
 }
 public static Character Clone(Character clonesource)
 {
     string jsonwrite = JsonConvert.SerializeObject(clonesource);
     Character clone = JsonConvert.DeserializeObject<Character>(jsonwrite);
     return clone;
 }
        private void Character_Save(object sender, RoutedEventArgs e)
        {
            #region Character_Stats_Data
            string name = Character_Name.Text;
            if (name == "")
            {
                MessageBox.Show("You must enter a name for the weapon");
                return;
            }
            int Health = 0;
            if (!Int32.TryParse(Character_HP.Text, out Health))
            {
                MessageBox.Show("You must enter a value for Health");
                return;
            }
            int Strength = 0;
            if (!Int32.TryParse(Character_STR.Text, out Strength))
            {
                MessageBox.Show("You must enter a value for Strength");
                return;
            }
            int Dexterity = 0;
            if (!Int32.TryParse(Character_Dex.Text, out Dexterity))
            {
                MessageBox.Show("You must enter a value for Dexterity");
                return;
            }
            int Constitution = 0;
            if (!Int32.TryParse(Character_Con.Text, out Constitution))
            {
                MessageBox.Show("You must enter a value for Constitution");
                return;
            }
            int Intelligence = 0;
            if (!Int32.TryParse(Character_Int.Text, out Intelligence))
            {
                MessageBox.Show("You must enter a value for Intelligence");
                return;
            }
            int Wisdom = 0;
            if (!Int32.TryParse(Character_Wis.Text, out Wisdom))
            {
                MessageBox.Show("You must enter a value for Wisdom");
                return;
            }
            int Charisma = 0;
            if (!Int32.TryParse(Character_Cha.Text, out Charisma))
            {
                MessageBox.Show("You must enter a value for Charisma");
                return;
            }
            int Will_Save = 0;
            if (!Int32.TryParse(Character_WillSave.Text, out Will_Save))
            {
                MessageBox.Show("You must enter a value for Will Save");
                return;
            }
            int Fortitude_Save = 0;
            if (!Int32.TryParse(Character_FortSave.Text, out Fortitude_Save))
            {
                MessageBox.Show("You must enter a value for Fortitude Save");
                return;
            }
            int Reflex_Save = 0;
            if (!Int32.TryParse(Character_ReflexSave.Text, out Reflex_Save))
            {
                MessageBox.Show("You must enter a value for Reflex Save");
                return;
            }
            int Death_Save = 0;
            if (!Int32.TryParse(Character_DeathSave.Text, out Death_Save))
            {
                MessageBox.Show("You must enter a value for Death Save");
                return;
            }
            int Movement_Range = 0;
            if (!Int32.TryParse(Character_MoveMentrate.Text, out Movement_Range))
            {
                MessageBox.Show("You must enter a value for Movement Range");
                return;
            }
            #endregion
            #region Character
            //TODO integrate choice if wanting to update character (Combobox)
            Character Character;
            if (Character_CharacterList.SelectedItem != null)
            {
                Character = (Character) Character_CharacterList.SelectedItem;
            }
            else
            {
               Character = new Character();
            }

            Character.Name = name;
            Character.Health = Health;
            Character.Strength = Strength;
            Character.Dexterity = Dexterity;
            Character.Constitution = Constitution;
            Character.Intelligence = Intelligence;
            Character.Wisdom = Wisdom;
            Character.Charisma = Charisma;
            Character.Willsave = Will_Save;
            Character.Fortitudesave = Fortitude_Save;
            Character.Reflexsave = Reflex_Save;
            Character.Deathsave = Death_Save;
            Character.MovementRate = Movement_Range;
            Character.Weapons = tempWeaponList;
            Character.Armors = tempArmorList;

            string jsonstring = JsonConvert.SerializeObject(Character);
            WriteJsonStringToFile(jsonstring, "character", Character.Name);
            Characters.Add(Character);
            Character_CharacterList.Items.Refresh();
            #endregion
        }