Beispiel #1
0
        public static bool SaveDialog(CharSheetView model)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter           = "Json file (*.json) [recomended]|*.json"; //|Xml file (*.xml)|*.xml
            saveFileDialog.InitialDirectory = TheSavePath;
            if (saveFileDialog.ShowDialog() == false)
            {
                return(false);
            }

            return(ToJson(model, saveFileDialog.FileName));
        }
Beispiel #2
0
        public static bool LoadPic(CharSheetView model)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png) | *.jpg; *.jpeg; *.jpe; *.jfif; *.png";
            if (openFileDialog.ShowDialog() == false)
            {
                return(false);
            }

            model.CharImage.Source = new BitmapImage(new Uri(openFileDialog.FileName));

            return(true);
        }
Beispiel #3
0
        public static bool LoadDialog(CharSheetView model)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter           = "Json file (*.json)|*.json";
            openFileDialog.InitialDirectory = Save.TheSavePath;
            if (openFileDialog.ShowDialog() == false)
            {
                return(false);
            }

            JObject json = JObject.Parse(System.IO.File.ReadAllText(openFileDialog.FileName));

            return(FromJson(model, json));
        }
Beispiel #4
0
        public static bool ToJson(CharSheetView model, string path)
        {
            //json object for storing data
            JObject json = new JObject();

            //Add char info to json
            json.Add("Player_Name", model.PlayerName.Text);
            json.Add("Char_Name", model.CharacterName.Text);
            json.Add("Race", model.CharacterRace.Text);
            json.Add("Class", model.CharacterClass.Text);
            json.Add("Level", model.CharacterLevel.Text);

            //Add health block to json
            json.Add("HP", model.HP.Text);
            json.Add("Max_HP", model.MaxHP.Text);

            //Add stat block to json
            //STR
            json.Add("STR", model.STR_Score.Text);
            json.Add("STR_Mod", model.STR_Mod.Text);
            json.Add("STR_Temp", model.STR_TempScore.Text);
            json.Add("STR_Temp_Mod", model.STR_TempMod.Text);
            //DEX
            json.Add("DEX", model.DEX_Score.Text);
            json.Add("DEX_Mod", model.DEX_Mod.Text);
            json.Add("DEX_Temp", model.DEX_TempScore.Text);
            json.Add("DEX_Temp_Mod", model.DEX_TempMod.Text);
            //CON
            json.Add("CON", model.CON_Score.Text);
            json.Add("CON_Mod", model.CON_Mod.Text);
            json.Add("CON_Temp", model.CON_TempScore.Text);
            json.Add("CON_Temp_Mod", model.CON_TempMod.Text);
            //INT
            json.Add("INT", model.INT_Score.Text);
            json.Add("INT_Mod", model.INT_Mod.Text);
            json.Add("INT_Temp", model.INT_TempScore.Text);
            json.Add("INT_Temp_Mod", model.INT_TempMod.Text);
            //WIS
            json.Add("WIS", model.WIS_Score.Text);
            json.Add("WIS_Mod", model.WIS_Mod.Text);
            json.Add("WIS_Temp", model.WIS_TempScore.Text);
            json.Add("WIS_Temp_Mod", model.WIS_TempMod.Text);
            //CHA
            json.Add("CHA", model.CHA_Score.Text);
            json.Add("CHA_Mod", model.CHA_Mod.Text);
            json.Add("CHA_Temp", model.CHA_TempScore.Text);
            json.Add("CHA_Temp_Mod", model.CHA_TempMod.Text);

            //AC
            json.Add("AC", model.AC.Text);
            json.Add("AC_Armor", model.AC_ArmorBonus.Text);
            json.Add("AC_Dodge", model.AC_DodgeBonus.Text);
            json.Add("AC_Size", model.AC_SizeBonus.Text);
            json.Add("AC_Natural", model.AC_NaturalArmorBonus.Text);
            json.Add("AC_Deflect", model.AC_DeflectBonus.Text);
            json.Add("AC_Misc", model.AC_MiscBonus.Text);

            //Add Saves to json
            //Fort Save
            json.Add("FORT_Total", model.FORT_Total.Text);
            json.Add("FORT_Base", model.FORT_Base.Text);
            json.Add("FORT_Magic", model.FORT_MagicBonus.Text);
            json.Add("FORT_Misc", model.FORT_MiscBonus.Text);
            json.Add("FORT_Temp", model.FORT_TempBonus.Text);
            //Ref Save
            json.Add("REF_Total", model.REF_Total.Text);
            json.Add("REF_Base", model.REF_BaseBonus.Text);
            json.Add("REF_Magic", model.REF_MagicBonus.Text);
            json.Add("REF_Misc", model.REF_MiscBonus.Text);
            json.Add("REF_Temp", model.REF_TempBonus.Text);
            //Will Save
            json.Add("WILL_Total", model.WILL_Total.Text);
            json.Add("WILL_Base", model.WILL_BaseBonus.Text);
            json.Add("WILL_Magic", model.WILL_MagicBonus.Text);
            json.Add("WILL_Misc", model.WILL_MiscBonus.Text);
            json.Add("WILL_Temp", model.WILL_Temp.Text);

            //Add Attack Bonuses to json

            //MAB
            json.Add("MAB_Base", model.MAB_Base.Text);
            json.Add("MAB_Total", model.MAB_Total.Text);
            json.Add("MAB_Size", model.MAB_SizeBonus.Text);
            json.Add("MAB_Misc", model.MAB_MiscBonus.Text);
            json.Add("MAB_Temp", model.MAB_TempBonus.Text);
            //CMB
            json.Add("CMB_Base", model.CMB_Base.Text);
            json.Add("CMB_Total", model.CMB_Total.Text);
            json.Add("CMB_Size", model.CMB_SizeBonus.Text);
            json.Add("CMB_Misc", model.CMB_MiscBonus.Text);
            json.Add("CMB_Temp", model.CMB_TempBonus.Text);
            //RAB
            json.Add("RAB_Base", model.RAB_Base.Text);
            json.Add("RAB_Total", model.RAB_Total.Text);
            json.Add("RAB_Size", model.RAB_SizeBonus.Text);
            json.Add("RAB_Misc", model.RAB_MiscBonus.Text);
            json.Add("RAB_Temp", model.RAB_TempBonus.Text);

            //Init
            json.Add("INIT_Total", model.Init_Total.Text);
            json.Add("INIT_Misc", model.Init_MiscBonus.Text);

            //Add more

            //Add Image
            BitmapSource    src         = model.CharImage.Source as BitmapSource;
            WriteableBitmap bitmap      = new WriteableBitmap(src);
            int             width       = bitmap.PixelWidth;
            int             height      = bitmap.PixelHeight;
            int             stride      = width * ((bitmap.Format.BitsPerPixel + 7) / 8);
            double          dpiX        = bitmap.DpiX;
            double          dpiY        = bitmap.DpiY;
            string          pixelFormat = bitmap.Format.ToString();

            byte[] bitmapData = new byte[height * stride];
            bitmap.CopyPixels(bitmapData, stride, 0);
            string byteString = Convert.ToBase64String(bitmapData);

            json.Add("ImageWidth", width.ToString());
            json.Add("ImageHeight", height.ToString());
            json.Add("ImageFormat", pixelFormat);
            json.Add("ImageDpiX", dpiX.ToString());
            json.Add("ImageDpiY", dpiY.ToString());
            json.Add("Image", byteString);

            System.IO.File.WriteAllText(path, json.ToString());

            return(true);
        }
Beispiel #5
0
        public static void ImageProcess(CharSheetView model, JObject json)
        {
            JToken temp = "";

            bool        valid = true;
            int         width = -1, height = -1, bytesPerPixel = -1, stride = -1;
            double      dpiX = -1, dpiY = -1;
            PixelFormat pixelFormat = PixelFormats.Default;

            byte[] bitmapData = null;

            if (valid && json.TryGetValue("ImageWidth", out temp))
            {
                width = Convert.ToInt32(temp.ToString());
            }
            else
            {
                valid = false;
            }
            if (valid && json.TryGetValue("ImageHeight", out temp))
            {
                height = Convert.ToInt32(temp.ToString());
            }
            else
            {
                valid = false;
            }
            if (valid && json.TryGetValue("ImageFormat", out temp))
            {
                pixelFormat = PixelFromatFromString(temp.ToString());
            }
            else
            {
                valid = false;
            }
            if (valid && json.TryGetValue("ImageDpiX", out temp))
            {
                dpiX = Convert.ToDouble(temp.ToString());
            }
            else
            {
                valid = false;
            }
            if (valid && json.TryGetValue("ImageDpiY", out temp))
            {
                dpiY = Convert.ToDouble(temp.ToString());
            }
            else
            {
                valid = false;
            }
            if (valid && json.TryGetValue("Image", out temp))
            {
                bitmapData = Convert.FromBase64String(temp.ToString());
            }
            else
            {
                valid = false;
            }

            if (valid)
            {
                bytesPerPixel = (pixelFormat.BitsPerPixel + 7) / 8;
                stride        = bytesPerPixel * width;
                BitmapSource bitmap = BitmapSource.Create(width, height, dpiX, dpiY, pixelFormat, null, bitmapData, stride);
                model.CharImage.Source = bitmap;
            }
        }
Beispiel #6
0
        public static bool FromJson(CharSheetView model, JObject json)
        {
            JToken temp = "";

            //Load info
            if (json.TryGetValue("Player_Name", out temp))
            {
                model.PlayerName.Text = temp.ToString();
            }
            else
            {
                model.PlayerName.Text = "";
            }
            if (json.TryGetValue("Char_Name", out temp))
            {
                model.CharacterName.Text = temp.ToString();
            }
            else
            {
                model.CharacterName.Text = "";
            }
            if (json.TryGetValue("Race", out temp))
            {
                model.CharacterRace.Text = temp.ToString();
            }
            else
            {
                model.CharacterRace.Text = "";
            }
            if (json.TryGetValue("Class", out temp))
            {
                model.CharacterClass.Text = temp.ToString();
            }
            else
            {
                model.CharacterClass.Text = "";
            }
            if (json.TryGetValue("Level", out temp))
            {
                model.CharacterLevel.Text = temp.ToString();
            }
            else
            {
                model.CharacterLevel.Text = "";
            }

            //Load health
            if (json.TryGetValue("HP", out temp))
            {
                model.HP.Text = temp.ToString();
            }
            else
            {
                model.HP.Text = "";
            }
            if (json.TryGetValue("Max_HP", out temp))
            {
                model.MaxHP.Text = temp.ToString();
            }
            else
            {
                model.MaxHP.Text = "";
            }
            if (json.TryGetValue("AC", out temp))
            {
                model.AC.Text = temp.ToString();
            }
            else
            {
                model.AC.Text = "";
            }

            //Load stat block
            if (json.TryGetValue("STR", out temp))
            {
                model.STR_Score.Text = temp.ToString();
            }
            else
            {
                model.STR_Score.Text = "";
            }
            if (json.TryGetValue("DEX", out temp))
            {
                model.DEX_Score.Text = temp.ToString();
            }
            else
            {
                model.DEX_Score.Text = "";
            }
            if (json.TryGetValue("CON", out temp))
            {
                model.CON_Score.Text = temp.ToString();
            }
            else
            {
                model.CON_Score.Text = "";
            }
            if (json.TryGetValue("INT", out temp))
            {
                model.INT_Score.Text = temp.ToString();
            }
            else
            {
                model.INT_Score.Text = "";
            }
            if (json.TryGetValue("WIS", out temp))
            {
                model.WIS_Score.Text = temp.ToString();
            }
            else
            {
                model.WIS_Score.Text = "";
            }
            if (json.TryGetValue("CHA", out temp))
            {
                model.CHA_Score.Text = temp.ToString();
            }
            else
            {
                model.CHA_Score.Text = "";
            }

            //Load AC Stats
            if (json.TryGetValue("AC", out temp))
            {
                model.AC.Text = temp.ToString();
            }
            else
            {
                model.AC.Text = "";
            }
            if (json.TryGetValue("AC_Armor", out temp))
            {
                model.AC_ArmorBonus.Text = temp.ToString();
            }
            else
            {
                model.AC_ArmorBonus.Text = "";
            }
            if (json.TryGetValue("AC_Dodge", out temp))
            {
                model.AC_DodgeBonus.Text = temp.ToString();
            }
            else
            {
                model.AC_DodgeBonus.Text = "";
            }
            if (json.TryGetValue("AC_Size", out temp))
            {
                model.AC_SizeBonus.Text = temp.ToString();
            }
            else
            {
                model.AC_SizeBonus.Text = "";
            }
            if (json.TryGetValue("AC_Natural", out temp))
            {
                model.AC_NaturalArmorBonus.Text = temp.ToString();
            }
            else
            {
                model.AC_NaturalArmorBonus.Text = "";
            }
            if (json.TryGetValue("AC_Deflect", out temp))
            {
                model.AC_DeflectBonus.Text = temp.ToString();
            }
            else
            {
                model.AC_DeflectBonus.Text = "";
            }
            if (json.TryGetValue("AC_Misc", out temp))
            {
                model.AC_MiscBonus.Text = temp.ToString();
            }
            else
            {
                model.AC_MiscBonus.Text = "";
            }

            //Load Fort Stats
            if (json.TryGetValue("FORT_Total", out temp))
            {
                model.FORT_Total.Text = temp.ToString();
            }
            else
            {
                model.FORT_Total.Text = "";
            }
            if (json.TryGetValue("FORT_Base", out temp))
            {
                model.FORT_Base.Text = temp.ToString();
            }
            else
            {
                model.FORT_Base.Text = "";
            }
            if (json.TryGetValue("FORT_Magic", out temp))
            {
                model.FORT_MagicBonus.Text = temp.ToString();
            }
            else
            {
                model.FORT_MagicBonus.Text = "";
            }
            if (json.TryGetValue("FORT_Misc", out temp))
            {
                model.FORT_MiscBonus.Text = temp.ToString();
            }
            else
            {
                model.FORT_MiscBonus.Text = "";
            }
            if (json.TryGetValue("FORT_Temp", out temp))
            {
                model.FORT_TempBonus.Text = temp.ToString();
            }
            else
            {
                model.FORT_TempBonus.Text = "";
            }

            //Load Ref Stats
            if (json.TryGetValue("REF_Total", out temp))
            {
                model.REF_Total.Text = temp.ToString();
            }
            else
            {
                model.REF_Total.Text = "";
            }
            if (json.TryGetValue("REF_Base", out temp))
            {
                model.REF_BaseBonus.Text = temp.ToString();
            }
            else
            {
                model.REF_BaseBonus.Text = "";
            }
            if (json.TryGetValue("REF_Magic", out temp))
            {
                model.REF_MagicBonus.Text = temp.ToString();
            }
            else
            {
                model.REF_MagicBonus.Text = "";
            }
            if (json.TryGetValue("REF_Misc", out temp))
            {
                model.REF_MiscBonus.Text = temp.ToString();
            }
            else
            {
                model.REF_MiscBonus.Text = "";
            }
            if (json.TryGetValue("REF_Temp", out temp))
            {
                model.REF_TempBonus.Text = temp.ToString();
            }
            else
            {
                model.REF_TempBonus.Text = "";
            }

            //Load Will Stats
            if (json.TryGetValue("WILL_Total", out temp))
            {
                model.WILL_Total.Text = temp.ToString();
            }
            else
            {
                model.WILL_Total.Text = "";
            }
            if (json.TryGetValue("WILL_Base", out temp))
            {
                model.WILL_BaseBonus.Text = temp.ToString();
            }
            else
            {
                model.WILL_BaseBonus.Text = "";
            }
            if (json.TryGetValue("WILL_Magic", out temp))
            {
                model.WILL_MagicBonus.Text = temp.ToString();
            }
            else
            {
                model.WILL_MagicBonus.Text = "";
            }
            if (json.TryGetValue("WILL_Misc", out temp))
            {
                model.WILL_MiscBonus.Text = temp.ToString();
            }
            else
            {
                model.WILL_MiscBonus.Text = "";
            }
            if (json.TryGetValue("WILL_Temp", out temp))
            {
                model.WILL_Temp.Text = temp.ToString();
            }
            else
            {
                model.WILL_Temp.Text = "";
            }

            //Load MAB Stats
            if (json.TryGetValue("MAB_Base", out temp))
            {
                model.MAB_Base.Text = temp.ToString();
            }
            else
            {
                model.MAB_Base.Text = "";
            }
            if (json.TryGetValue("MAB_Total", out temp))
            {
                model.MAB_Total.Text = temp.ToString();
            }
            else
            {
                model.MAB_Total.Text = "";
            }
            if (json.TryGetValue("MAB_Size", out temp))
            {
                model.MAB_SizeBonus.Text = temp.ToString();
            }
            else
            {
                model.MAB_SizeBonus.Text = "";
            }
            if (json.TryGetValue("MAB_Misc", out temp))
            {
                model.MAB_MiscBonus.Text = temp.ToString();
            }
            else
            {
                model.MAB_MiscBonus.Text = "";
            }
            if (json.TryGetValue("MAB_Temp", out temp))
            {
                model.MAB_TempBonus.Text = temp.ToString();
            }
            else
            {
                model.MAB_TempBonus.Text = "";
            }

            //Load CMB Stats
            if (json.TryGetValue("CMB_Base", out temp))
            {
                model.CMB_Base.Text = temp.ToString();
            }
            else
            {
                model.CMB_Base.Text = "";
            }
            if (json.TryGetValue("CMB_Total", out temp))
            {
                model.CMB_Total.Text = temp.ToString();
            }
            else
            {
                model.CMB_Total.Text = "";
            }
            if (json.TryGetValue("CMB_Size", out temp))
            {
                model.CMB_SizeBonus.Text = temp.ToString();
            }
            else
            {
                model.CMB_SizeBonus.Text = "";
            }
            if (json.TryGetValue("CMB_Misc", out temp))
            {
                model.CMB_MiscBonus.Text = temp.ToString();
            }
            else
            {
                model.CMB_MiscBonus.Text = "";
            }
            if (json.TryGetValue("CMB_Temp", out temp))
            {
                model.CMB_TempBonus.Text = temp.ToString();
            }
            else
            {
                model.CMB_TempBonus.Text = "";
            }

            //Load RAB Stats
            if (json.TryGetValue("RAB_Base", out temp))
            {
                model.RAB_Base.Text = temp.ToString();
            }
            else
            {
                model.RAB_Base.Text = "";
            }
            if (json.TryGetValue("RAB_Total", out temp))
            {
                model.RAB_Total.Text = temp.ToString();
            }
            else
            {
                model.RAB_Total.Text = "";
            }
            if (json.TryGetValue("RAB_Size", out temp))
            {
                model.RAB_SizeBonus.Text = temp.ToString();
            }
            else
            {
                model.RAB_SizeBonus.Text = "";
            }
            if (json.TryGetValue("RAB_Misc", out temp))
            {
                model.RAB_MiscBonus.Text = temp.ToString();
            }
            else
            {
                model.RAB_MiscBonus.Text = "";
            }
            if (json.TryGetValue("RAB_Temp", out temp))
            {
                model.RAB_TempBonus.Text = temp.ToString();
            }
            else
            {
                model.RAB_TempBonus.Text = "";
            }

            //Load class tab
            model.setClassTab();
            model.ClassTab.Header = model.CharacterClass.Text;

            //Load Image
            Action action = delegate()
            {
                ImageProcess(model, json);
            };

            Dispatcher jeff;

            jeff = Dispatcher.CurrentDispatcher;
            jeff.Invoke(DispatcherPriority.Normal, action);

            return(true);
        }