コード例 #1
0
        public void TryCreateCharacterAndGenerateJson()
        {
            string    characterName = characterNameField.text;
            Race      race          = raceDropdownController.SelectedOption;
            Class     class_        = classDropdownController.SelectedOption;
            Alignment alignment     = alignmentDropdownController.SelectedOption;

            int.TryParse(highestRollFromHitDiceText.text, out var highestRollFromHitDice);
            int.TryParse(charismaText.text, out var charisma);
            int.TryParse(constitutionText.text, out var constitution);
            int.TryParse(dexterityText.text, out var dexterity);
            int.TryParse(intelligenceText.text, out var intelligence);
            int.TryParse(strengthText.text, out var strength);
            int.TryParse(wisdomText.text, out var wisdom);

            // Check for any invalid data
            if (string.IsNullOrEmpty(characterName) || highestRollFromHitDice == 0 || charisma == 0 ||
                constitution == 0 || dexterity == 0 || intelligence == 0 || strength == 0 || wisdom == 0)
            {
                jsonOutputField.text = EvaluationErrorMessage;
                return;
            }

            // Continue if everything is ok
            var characterModel = new CharacterSheetModel(characterName, race, class_, alignment,
                                                         highestRollFromHitDice, charisma, constitution, dexterity, intelligence, strength, wisdom);

            jsonOutputField.text = characterModel.ToJson();
            GameManager.Instance.SaveCharacterSheetModel(characterModel);
        }
コード例 #2
0
        public void ToJson_ValidProperties_CorrectJson()
        {
            // Arrange
            var sut = new CharacterSheetModel("Kasper Dissing", Race.HalfElf, Class.Barbarian,
                                              Alignment.ChaoticEvil, 3, 0, 1, 2,
                                              3, 4, 5);
            const string expected = @"{
                            ""CharacterName"": ""Kasper Dissing"",
                            ""AbilityCharisma"": 2,
                            ""AbilityConstitution"": 3,
                            ""AbilityDexterity"": 4,
                            ""AbilityIntelligence"": 5,
                            ""AbilityStrength"": 6,
                            ""AbilityWisdom"": 7,
                            ""Race"": ""Half-Elf"",
                            ""Class"": ""Barbarian"",
                            ""Alignment"": ""Chaotic Evil"",
                            ""ArmorClass"": 12,
                            ""ExperiencePoints"": 0,
                            ""CurrentHitPoints"": 5,
                            ""MaxHitPoints"": 5,
                            ""WalkingSpeed"": 12,
                            ""RunningSpeed"": 25,
                            ""RunningHighJump"": 9,
                            ""StandingHighJump"": 4,
                            ""Items"": []
                            }";

            // Act
            var actual = sut.ToJson();

            // Assert

            // Remove whitespace
            var cleanedActual   = Regex.Replace(actual, @"\s+", "");
            var cleanedExpected = Regex.Replace(expected, @"\s+", "");

            Assert.That(cleanedActual, Is.EqualTo(cleanedExpected));
        }