Exemple #1
0
 public CharacterSheetSaver(string characterSheetFullPath, CharacterSheetData characterSheet)
 {
     this.characterSheetFullPath = characterSheetFullPath;
     this.characterSheet         = characterSheet;
 }
        //when save button is clicked. add form data to data object and save to json file
        private void SaveButton_Click(object sender, EventArgs e)
        {
            //parse integers for all of the scores
            Int32.TryParse(StrengthScoreControl.CstmTxt_BaseAbilityScoreText, out int strengthBaseScore);
            Int32.TryParse(StrengthScoreControl.CstmTxt_EnhancementScoreText, out int strengthEnhancementScore);
            Int32.TryParse(StrengthScoreControl.CstmTxt_InherentScoreText, out int strengthInherentScore);
            Int32.TryParse(StrengthScoreControl.CstmTxt_TempScoreText, out int strengthTempScore);
            Int32.TryParse(StrengthScoreControl.CstmTxt_PenaltyScoreText, out int strengthPenaltyScore);

            Int32.TryParse(DexterityScoreControl.CstmTxt_BaseAbilityScoreText, out int dexterityBaseScore);
            Int32.TryParse(DexterityScoreControl.CstmTxt_EnhancementScoreText, out int dexterityEnhancementScore);
            Int32.TryParse(DexterityScoreControl.CstmTxt_InherentScoreText, out int dexterityInherentScore);
            Int32.TryParse(DexterityScoreControl.CstmTxt_TempScoreText, out int dexterityTempScore);
            Int32.TryParse(DexterityScoreControl.CstmTxt_PenaltyScoreText, out int dexterityPenaltyScore);

            Int32.TryParse(ConstitutionScoreControl.CstmTxt_BaseAbilityScoreText, out int constitutionBaseScore);
            Int32.TryParse(ConstitutionScoreControl.CstmTxt_EnhancementScoreText, out int constitutionEnhancementScore);
            Int32.TryParse(ConstitutionScoreControl.CstmTxt_InherentScoreText, out int constitutionInherentScore);
            Int32.TryParse(ConstitutionScoreControl.CstmTxt_TempScoreText, out int constitutionTempScore);
            Int32.TryParse(ConstitutionScoreControl.CstmTxt_PenaltyScoreText, out int constitutionPenaltyScore);

            Int32.TryParse(IntelligenceScoreControl.CstmTxt_BaseAbilityScoreText, out int intelligenceBaseScore);
            Int32.TryParse(IntelligenceScoreControl.CstmTxt_EnhancementScoreText, out int intelligenceEnhancementScore);
            Int32.TryParse(IntelligenceScoreControl.CstmTxt_InherentScoreText, out int intelligenceInherentScore);
            Int32.TryParse(IntelligenceScoreControl.CstmTxt_TempScoreText, out int intelligenceTempScore);
            Int32.TryParse(IntelligenceScoreControl.CstmTxt_PenaltyScoreText, out int intelligencePenaltyScore);

            Int32.TryParse(WisdomScoreControl.CstmTxt_BaseAbilityScoreText, out int wisdomBaseScore);
            Int32.TryParse(WisdomScoreControl.CstmTxt_EnhancementScoreText, out int wisdomEnhancementScore);
            Int32.TryParse(WisdomScoreControl.CstmTxt_InherentScoreText, out int wisdomInherentScore);
            Int32.TryParse(WisdomScoreControl.CstmTxt_TempScoreText, out int wisdomTempScore);
            Int32.TryParse(WisdomScoreControl.CstmTxt_PenaltyScoreText, out int wisdomPenaltyScore);

            Int32.TryParse(CharismaScoreControl.CstmTxt_BaseAbilityScoreText, out int charismaBaseScore);
            Int32.TryParse(CharismaScoreControl.CstmTxt_EnhancementScoreText, out int charismaEnhancementScore);
            Int32.TryParse(CharismaScoreControl.CstmTxt_InherentScoreText, out int charismaInherentScore);
            Int32.TryParse(CharismaScoreControl.CstmTxt_TempScoreText, out int charismaTempScore);
            Int32.TryParse(CharismaScoreControl.CstmTxt_PenaltyScoreText, out int charismaPenaltyScore);

            Int32.TryParse(DamageTakenTextBox.Text, out int damageTaken);
            Int32.TryParse(lblClass1HealthFromLevel.Text, out int maxHealth);
            Int32.TryParse(tbClass1Level.Text, out int classLevel);
            Int32.TryParse(tbClass1FavoredClassSkills.Text, out int favoredClassSkillCount);
            Int32.TryParse(tbClass1FavoredClassHitPoints.Text, out int favoredClassHitPointsCount);
            Int32.TryParse(tbClass1FavoredClassOther.Text, out int favoredClassOtherCount);


            //create character sheet data object to generate a file
            CharacterSheetData characterSheet = new CharacterSheetData();

            characterSheet.PlayerClassName         = cbClassNames1.GetItemText(item: cbClassNames1.SelectedItem);
            characterSheet.DamageTaken             = damageTaken;
            characterSheet.MaxHealth               = maxHealth;
            characterSheet.PlayerClassLevel        = classLevel;
            characterSheet.FavoredClassSkillCount  = favoredClassSkillCount;
            characterSheet.FavoredClassHealthCount = favoredClassHitPointsCount;
            characterSheet.FavoredClassOtherCount  = favoredClassOtherCount;

            characterSheet.Strength = new AbilityData()
            {
                AbilityName      = CoreAttributes.STRENGTH,
                BaseScore        = strengthBaseScore,
                EnhancementScore = strengthEnhancementScore,
                InherentScore    = strengthInherentScore,
                TempScore        = strengthTempScore,
                PenaltyScore     = strengthPenaltyScore
            };

            characterSheet.Dexterity = new AbilityData()
            {
                AbilityName      = CoreAttributes.DEXTERITY,
                BaseScore        = dexterityBaseScore,
                EnhancementScore = dexterityEnhancementScore,
                InherentScore    = dexterityInherentScore,
                TempScore        = dexterityTempScore,
                PenaltyScore     = dexterityPenaltyScore
            };

            characterSheet.Constitution = new AbilityData()
            {
                AbilityName      = CoreAttributes.CONSTITUTION,
                BaseScore        = constitutionBaseScore,
                EnhancementScore = constitutionEnhancementScore,
                InherentScore    = constitutionInherentScore,
                TempScore        = constitutionTempScore,
                PenaltyScore     = constitutionPenaltyScore
            };

            characterSheet.Intelligence = new AbilityData()
            {
                AbilityName      = CoreAttributes.INTELLIGENCE,
                BaseScore        = intelligenceBaseScore,
                EnhancementScore = intelligenceEnhancementScore,
                InherentScore    = intelligenceInherentScore,
                TempScore        = intelligenceTempScore,
                PenaltyScore     = intelligencePenaltyScore
            };

            characterSheet.Wisdom = new AbilityData()
            {
                AbilityName      = CoreAttributes.WISDOM,
                BaseScore        = wisdomBaseScore,
                EnhancementScore = wisdomEnhancementScore,
                InherentScore    = wisdomInherentScore,
                TempScore        = wisdomTempScore,
                PenaltyScore     = wisdomPenaltyScore
            };

            characterSheet.Charisma = new AbilityData()
            {
                AbilityName      = CoreAttributes.CHARISMA,
                BaseScore        = charismaBaseScore,
                EnhancementScore = charismaEnhancementScore,
                InherentScore    = charismaInherentScore,
                TempScore        = charismaTempScore,
                PenaltyScore     = charismaPenaltyScore
            };


            // creating a new thread when saving a file
            Thread saveThread = new Thread(new ThreadStart(() =>
            {
                new CharacterSheetSaver(characterSheetFullPath, characterSheet).SaveCharacterSheet();
            }));

            saveThread.Start();
            //savedFileTimestamp.Text = "Last Saved Time: " + DateTime.Now.ToString();
        }