Exemplo n.º 1
0
        public void TestItemEquipMod()
        {
            ItemViewModel ringOfLeaping    = TestStorageHelper.GetExistingItem("Ring of the Faithful Leap");
            Character     testWizard       = CharacterBuilder.BuildTestWizard();
            const int     initialDexterity = 12;
            const int     initialStrength  = 11;
            const int     initialSpeed     = 30;

            testWizard.baseDexterity    = initialDexterity;
            testWizard.baseStrength     = initialStrength;
            testWizard.baseWalkingSpeed = initialSpeed;
            Assert.AreEqual(VantageKind.Normal, testWizard.GetSkillCheckDice(Skills.athletics));
            Assert.AreEqual(VantageKind.Normal, testWizard.GetSkillCheckDice(Skills.acrobatics));
            Assert.AreEqual(initialDexterity, testWizard.Dexterity);
            Assert.AreEqual(initialStrength, testWizard.Strength);
            Assert.AreEqual(initialSpeed, testWizard.WalkingSpeed);
            testWizard.Equip(ringOfLeaping);
            Assert.AreEqual(initialDexterity + 1, testWizard.Dexterity);
            Assert.AreEqual(initialStrength + 1, testWizard.Strength);
            Assert.AreEqual(initialSpeed + 5, testWizard.WalkingSpeed);
            Assert.AreEqual(VantageKind.Advantage, testWizard.GetSkillCheckDice(Skills.athletics));
            Assert.AreEqual(VantageKind.Advantage, testWizard.GetSkillCheckDice(Skills.acrobatics));

            testWizard.Unequip(ringOfLeaping);

            Assert.AreEqual(VantageKind.Normal, testWizard.GetSkillCheckDice(Skills.athletics));
            Assert.AreEqual(VantageKind.Normal, testWizard.GetSkillCheckDice(Skills.acrobatics));
            Assert.AreEqual(initialDexterity, testWizard.Dexterity);
            Assert.AreEqual(initialStrength, testWizard.Strength);
            Assert.AreEqual(initialSpeed, testWizard.WalkingSpeed);
        }
Exemplo n.º 2
0
        public void TestConditionalGrapple()
        {
            Monster   vineBlight = MonsterBuilder.BuildVineBlight();
            Character barbarian1 = CharacterBuilder.BuildTestBarbarian();
            Character barbarian2 = CharacterBuilder.BuildTestBarbarian();
            Character elf        = CharacterBuilder.BuildTestElf();
            Character druid      = CharacterBuilder.BuildTestDruid();

            elf.creatureSize        = CreatureSize.Small;
            barbarian1.creatureSize = CreatureSize.Huge;
            Assert.IsFalse(barbarian1.HasCondition(Conditions.Grappled));
            Assert.IsFalse(elf.HasCondition(Conditions.Grappled));
            Assert.IsFalse(druid.HasCondition(Conditions.Grappled));
            int attackRoll = vineBlight.GetAttackRoll(12, AttackNames.Constrict);

            Assert.AreEqual(16, attackRoll);
            barbarian1.baseArmorClass = 13;
            barbarian2.baseArmorClass = 17;
            DamageResult elfDamage        = vineBlight.GetDamageFromAttack(elf, AttackNames.Constrict, 10, attackRoll);
            DamageResult barbarian1Damage = vineBlight.GetDamageFromAttack(barbarian1, AttackNames.Constrict, 10, attackRoll);
            DamageResult barbarian2Damage = vineBlight.GetDamageFromAttack(barbarian2, AttackNames.Constrict, 10, attackRoll);

            Assert.IsNull(barbarian2Damage);              // Barbarian 2's AC is 17, which should result in a miss - no damage.
            DamageResult druidDamage = vineBlight.GetDamageFromAttack(druid, AttackNames.Constrict, 12, attackRoll);

            Assert.IsFalse(barbarian1Damage.HasCondition(Conditions.Grappled));         // barbarian 1 is huge => no damage.
            Assert.IsTrue(elfDamage.HasCondition(Conditions.Grappled));
            Assert.IsFalse(druidDamage.HasCondition(Conditions.Grappled));              // druid saving throw avoids the grapple.
            Assert.AreEqual(-9, elfDamage.hitPointChange);
            Assert.AreEqual(-9, barbarian1Damage.hitPointChange);
            Assert.AreEqual(-9, druidDamage.hitPointChange);
            Assert.AreEqual(DamageType.Bludgeoning | DamageType.Condition, elfDamage.damageTypes);
            Assert.AreEqual(DamageType.Bludgeoning, barbarian1Damage.damageTypes);
            Assert.AreEqual(DamageType.Bludgeoning, druidDamage.damageTypes);
        }
Exemplo n.º 3
0
        public void TestModifierCalculation()
        {
            Character barbarian = CharacterBuilder.BuildTestBarbarian("Joe");

            barbarian.SetAbilities(16, 11, 14, 8, 8, 18);
            Assert.AreEqual(3, barbarian.GetAttackingAbilityModifier(WeaponProperties.Finesse, AttackType.Range));
            Assert.AreEqual(3, barbarian.GetAttackingAbilityModifier(WeaponProperties.Martial | WeaponProperties.Versatile, AttackType.Melee));
            Assert.AreEqual(3, barbarian.GetAttackingAbilityModifier(WeaponProperties.Martial | WeaponProperties.TwoHanded | WeaponProperties.Heavy, AttackType.Melee));
        }
        public void TestDamageImmunity()
        {
            Monster   vrock  = MonsterBuilder.BuildVrock();
            Character wizard = CharacterBuilder.BuildTestWizard();
            Attack    beak   = vrock.attacks.Find(x => x.Name == "Beak");

            Assert.IsTrue(wizard.CanBeAffectedBy(beak));
            wizard.AddDamageImmunity(DamageType.Piercing, AttackKind.Any);
            Assert.IsFalse(wizard.CanBeAffectedBy(beak));
        }
        public void TestStunnedImmunity()
        {
            Monster   vrock           = MonsterBuilder.BuildVrock();
            Character wizard          = CharacterBuilder.BuildTestWizard();
            Attack    stunningScreech = vrock.attacks.Find(x => x.Name == AttackNames.StunningScreech);

            Assert.IsTrue(wizard.CanBeAffectedBy(stunningScreech));
            wizard.conditionImmunities = Conditions.Stunned;
            Assert.IsFalse(wizard.CanBeAffectedBy(stunningScreech));
        }
        public void TestDeafnessImmunity()
        {
            Monster   vrock           = MonsterBuilder.BuildVrock();
            Character wizard          = CharacterBuilder.BuildTestWizard();
            Attack    stunningScreech = vrock.attacks.Find(x => x.Name == AttackNames.StunningScreech);

            Assert.IsTrue(wizard.CanBeAffectedBy(stunningScreech));
            wizard.ManuallyAddedConditions |= Conditions.Deafened;
            Assert.IsFalse(wizard.CanBeAffectedBy(stunningScreech));
        }
Exemplo n.º 7
0
        public void TestBasicDamage()
        {
            Character player     = CharacterBuilder.BuildTestDruid();
            Weapon    shortSword = Weapon.buildShortSword();

            player.hitPoints = 100;
            shortSword.Attack(AttackNames.Stab, player);
            Assert.AreEqual(96.5, player.hitPoints);
            Assert.AreEqual(3.5, player.LastDamagePointsTaken);
            Assert.AreEqual(DamageType.Piercing, player.LastDamageTaken);
        }
Exemplo n.º 8
0
        public void TestNoResistance()
        {
            Character    player            = CharacterBuilder.BuildTestDruid();
            Weapon       shortSword        = Weapon.buildShortSword();
            const double startingHitPoints = 100;

            player.hitPoints = startingHitPoints;
            player.AddDamageResistance(DamageType.Lightning, AttackKind.Magical | AttackKind.NonMagical);
            shortSword.Attack(AttackNames.Stab, player);
            const double expectedDamage = 3.5;

            Assert.AreEqual(startingHitPoints - expectedDamage, player.hitPoints);
            Assert.AreEqual(expectedDamage, player.LastDamagePointsTaken);
        }
Exemplo n.º 9
0
        public void TestImmunities()
        {
            Character    player            = CharacterBuilder.BuildTestDruid();
            Weapon       shortSword        = Weapon.buildShortSword();
            const double startingHitPoints = 100;

            player.hitPoints = startingHitPoints;
            player.AddDamageImmunity(DamageType.Piercing, AttackKind.Any);
            shortSword.Attack(AttackNames.Stab, player);
            shortSword.Attack(AttackNames.Stab, player);
            shortSword.Attack(AttackNames.Stab, player);
            shortSword.Attack(AttackNames.Stab, player);
            Assert.AreEqual(startingHitPoints, player.hitPoints);
            Assert.AreEqual(0, player.LastDamagePointsTaken);
            Assert.AreEqual(DamageType.None, player.LastDamageTaken);
        }
Exemplo n.º 10
0
        public void TestNonMagicalShortswordImmunity()
        {
            Weapon shortsword = Weapon.buildShortSword();
            // vs.
            Character    player            = CharacterBuilder.BuildTestDruid();
            const double startingHitPoints = 100;

            player.hitPoints = startingHitPoints;
            player.AddDamageImmunity(DamageType.Piercing, AttackKind.NonMagical);
            shortsword.Attack(AttackNames.Stab, player);
            const double expectedDamage = 0;

            Assert.AreEqual(startingHitPoints - expectedDamage, player.hitPoints);
            Assert.AreEqual(expectedDamage, player.LastDamagePointsTaken);
            Assert.AreEqual(DamageType.None, player.LastDamageTaken);
        }
Exemplo n.º 11
0
        public void TestLowMods()
        {
            Character player = CharacterBuilder.BuildTestWizard();

            player.baseIntelligence = 6;
            player.baseStrength     = 5;
            player.baseCharisma     = 4;
            player.baseDexterity    = 3;
            player.baseConstitution = 2;
            player.baseWisdom       = 1;
            Assert.AreEqual(-2, player.intelligenceMod);
            Assert.AreEqual(-3, player.strengthMod);
            Assert.AreEqual(-3, player.charismaMod);
            Assert.AreEqual(-4, player.dexterityMod);
            Assert.AreEqual(-4, player.constitutionMod);
            Assert.AreEqual(-5, player.wisdomMod);
        }
Exemplo n.º 12
0
        public void TestMiddleMods()
        {
            Character player = CharacterBuilder.BuildTestWizard();

            player.baseIntelligence = 12;
            player.baseStrength     = 11;
            player.baseCharisma     = 10;
            player.baseDexterity    = 9;
            player.baseConstitution = 8;
            player.baseWisdom       = 7;
            Assert.AreEqual(1, player.intelligenceMod);
            Assert.AreEqual(0, player.strengthMod);
            Assert.AreEqual(0, player.charismaMod);
            Assert.AreEqual(-1, player.dexterityMod);
            Assert.AreEqual(-1, player.constitutionMod);
            Assert.AreEqual(-2, player.wisdomMod);
        }
Exemplo n.º 13
0
        public void TestHighMods()
        {
            Character player = CharacterBuilder.BuildTestWizard();

            player.baseIntelligence = 18;
            player.baseStrength     = 17;
            player.baseCharisma     = 16;
            player.baseDexterity    = 15;
            player.baseConstitution = 14;
            player.baseWisdom       = 13;
            Assert.AreEqual(4, player.intelligenceMod);
            Assert.AreEqual(3, player.strengthMod);
            Assert.AreEqual(3, player.charismaMod);
            Assert.AreEqual(2, player.dexterityMod);
            Assert.AreEqual(2, player.constitutionMod);
            Assert.AreEqual(1, player.wisdomMod);
        }
Exemplo n.º 14
0
        public void TestPositionCreatures()
        {
            DndGame game = DndGame.Instance;

            game.GetReadyToPlay();
            Character alice   = game.AddPlayer(CharacterBuilder.BuildTestBarbarian("a"));
            Character betty   = game.AddPlayer(CharacterBuilder.BuildTestDruid("b"));
            Character charlie = game.AddPlayer(CharacterBuilder.BuildTestElf("c"));
            Character david   = game.AddPlayer(CharacterBuilder.BuildTestWizard("d"));
            DndMap    map     = game.AddMap(new DndMap("Caves of the Wandering Winds"));
            DndRoom   dndRoom = map.AddRoom(new DndRoom("Wizard's Workshop"));

            Assert.AreEqual(new Vector(0, 0), alice.Location);
            Assert.AreEqual(Vector.zero, betty.Location);
            dndRoom.PositionCreatures(@"
┌───────────────┐
│               │
│               │
│    a          │
│            c  │
│               └───────────────┐
│       b                       │
│                                       │
│                               │
│                               │
│               ┌───────────────┘
│           d   │
│               │
│    e          │
│               │
│               │
└───────────────┘");
            game.ActivateMap(map);
            game.ActivateRoom(dndRoom);
            Assert.AreEqual(new Vector(DndMap.SquareSide * 5, DndMap.SquareSide * 3), alice.Location);
            Assert.AreEqual(new Vector(DndMap.SquareSide * 8, DndMap.SquareSide * 6), betty.Location);
            Assert.AreEqual(new Vector(DndMap.SquareSide * 13, DndMap.SquareSide * 4), charlie.Location);
            Assert.AreEqual(new Vector(DndMap.SquareSide * 12, DndMap.SquareSide * 11), david.Location);

            //dndGame.EnterCombat(true);
            //ergo.QueueAction(new ActionAttack(alice, AttackNames.Constrict));
        }
Exemplo n.º 15
0
        public void TestBreastplate()
        {
            ItemViewModel breastplate = TestStorageHelper.GetExistingItem("Breastplate");

            Assert.IsNotNull(breastplate);
            Character    testBarbarian     = CharacterBuilder.BuildTestBarbarian();
            const double initialArmorClass = 12;

            testBarbarian.baseDexterity = 12;
            double dexterityMod = (testBarbarian.Dexterity - 10) / 2;

            testBarbarian.baseArmorClass = initialArmorClass;
            Assert.AreEqual(initialArmorClass, testBarbarian.ArmorClass);

            testBarbarian.Equip(breastplate);

            const double breastplateAbsoluteAC = 15;

            Assert.AreEqual(breastplateAbsoluteAC + Math.Min(dexterityMod, 2), testBarbarian.ArmorClass);

            testBarbarian.Unequip(breastplate);

            Assert.AreEqual(initialArmorClass, testBarbarian.ArmorClass);

            testBarbarian.baseDexterity = 14;
            dexterityMod = (testBarbarian.Dexterity - 10) / 2;
            testBarbarian.Equip(breastplate);

            Assert.AreEqual(breastplateAbsoluteAC + Math.Min(dexterityMod, 2), testBarbarian.ArmorClass);


            testBarbarian.Unequip(breastplate);

            Assert.AreEqual(initialArmorClass, testBarbarian.ArmorClass);

            testBarbarian.baseDexterity = 16;
            dexterityMod = (testBarbarian.Dexterity - 10) / 2;
            Assert.IsTrue(dexterityMod >= 3);
            testBarbarian.Equip(breastplate);

            Assert.AreEqual(breastplateAbsoluteAC + Math.Min(dexterityMod, 2), testBarbarian.ArmorClass);
        }
Exemplo n.º 16
0
        public void TestPositionCreatures()
        {
            DndGame   dndGame = new DndGame();
            Character alice   = dndGame.AddPlayer(CharacterBuilder.BuildTestBarbarian("a"));
            Character betty   = dndGame.AddPlayer(CharacterBuilder.BuildTestDruid("b"));
            Character charlie = dndGame.AddPlayer(CharacterBuilder.BuildTestElf("c"));
            Character david   = dndGame.AddPlayer(CharacterBuilder.BuildTestWizard("d"));
            DndMap    map     = dndGame.AddMap(new DndMap("Caves of the Wandering Winds"));
            DndRoom   dndRoom = map.AddRoom(new DndRoom("Wizard's Workshop"));

            Assert.AreEqual(new Vector(0, 0), alice.WorldPosition);
            Assert.AreEqual(Vector.zero, betty.WorldPosition);
            dndRoom.PositionCreatures(@"
┌───────────────┐
│               │
│               │
│    a          │
│            c  │
│               └───────────────┐
│       b                       │
│                                       │
│                               │
│                               │
│               ┌───────────────┘
│           d   │
│               │
│    e          │
│               │
│               │
└───────────────┘");
            dndGame.ActivateMap(map);
            dndGame.ActivateRoom(dndRoom);
            Assert.AreEqual(new Vector(5, 3), alice.WorldPosition);
            Assert.AreEqual(new Vector(8, 6), betty.WorldPosition);
            Assert.AreEqual(new Vector(13, 4), charlie.WorldPosition);
            Assert.AreEqual(new Vector(12, 11), david.WorldPosition);

            //dndGame.EnterCombat(true);
            //ergo.QueueAction(new ActionAttack(alice, AttackNames.Constrict));
        }
Exemplo n.º 17
0
        public void TestMultiShortswordsAnyImmunity()
        {
            Weapon magicalShortsword = Weapon.buildMagicalShortSword();
            Weapon shortsword        = Weapon.buildShortSword();
            // vs.
            Character    player            = CharacterBuilder.BuildTestDruid();
            const double startingHitPoints = 100;

            player.hitPoints = startingHitPoints;
            player.AddDamageImmunity(DamageType.Piercing, AttackKind.Any);
            Assert.IsTrue(player.IsImmuneTo(DamageType.Piercing, AttackKind.Magical));
            Assert.IsTrue(player.IsImmuneTo(DamageType.Piercing, AttackKind.NonMagical));
            Assert.IsTrue(player.IsImmuneTo(DamageType.Piercing, AttackKind.Any));
            Assert.IsFalse(player.IsImmuneTo(DamageType.Poison, AttackKind.Any));
            Assert.IsFalse(player.IsImmuneTo(DamageType.Psychic, AttackKind.Magical));
            Assert.IsFalse(player.IsImmuneTo(DamageType.Radiant, AttackKind.NonMagical));
            shortsword.Attack(AttackNames.Stab, player);
            magicalShortsword.Attack(AttackNames.Stab, player);
            const double expectedDamage = 0;

            Assert.AreEqual(startingHitPoints - expectedDamage, player.hitPoints);
            Assert.AreEqual(expectedDamage, player.LastDamagePointsTaken);
            Assert.AreEqual(DamageType.None, player.LastDamageTaken);
        }
Exemplo n.º 18
0
        public void TestCharacterSaveLoad()
        {
            Character    originalTestWizard = CharacterBuilder.BuildTestWizard();
            const string localTestFileName  = "Delete_TestCharacterSaveLoad.json";
            string       fullPathToFile     = Storage.GetDataFileName(localTestFileName);

            DeleteIfExists(fullPathToFile);
            Storage.Save(localTestFileName, originalTestWizard);
            Character loadedCharacter = Storage.Load <Character>(localTestFileName);

            Assert.AreEqual(originalTestWizard.name, loadedCharacter.name);
            Assert.AreEqual(originalTestWizard.offTurnActions, loadedCharacter.offTurnActions);
            Assert.AreEqual(originalTestWizard.onTurnActions, loadedCharacter.onTurnActions);
            Assert.AreEqual(originalTestWizard.maxHitPoints, loadedCharacter.maxHitPoints);
            Assert.AreEqual(originalTestWizard.load, loadedCharacter.load);
            Assert.AreEqual(originalTestWizard.ClassLevelStr, loadedCharacter.ClassLevelStr);
            Assert.AreEqual(originalTestWizard.languagesUnderstood, loadedCharacter.languagesUnderstood);
            Assert.AreEqual(originalTestWizard.languagesSpoken, loadedCharacter.languagesSpoken);
            Assert.AreEqual(originalTestWizard.kind, loadedCharacter.kind);
            Assert.AreEqual(originalTestWizard.Intelligence, loadedCharacter.Intelligence);
            Assert.AreEqual(originalTestWizard.inspiration, loadedCharacter.inspiration);
            Assert.AreEqual(originalTestWizard.initiative, loadedCharacter.initiative);
            Assert.AreEqual(originalTestWizard.HitPoints, loadedCharacter.HitPoints);
            Assert.AreEqual(originalTestWizard.goldPieces, loadedCharacter.goldPieces);
            Assert.AreEqual(originalTestWizard.flyingSpeed, loadedCharacter.flyingSpeed);
            Assert.AreEqual(originalTestWizard.experiencePoints, loadedCharacter.experiencePoints);
            Assert.AreEqual(originalTestWizard.Dexterity, loadedCharacter.Dexterity);
            Assert.AreEqual(originalTestWizard.deathSaveLife3, loadedCharacter.deathSaveLife3);
            Assert.AreEqual(originalTestWizard.deathSaveLife2, loadedCharacter.deathSaveLife2);
            Assert.AreEqual(originalTestWizard.deathSaveLife1, loadedCharacter.deathSaveLife1);
            Assert.AreEqual(originalTestWizard.deathSaveDeath3, loadedCharacter.deathSaveDeath3);
            Assert.AreEqual(originalTestWizard.deathSaveDeath2, loadedCharacter.deathSaveDeath2);
            Assert.AreEqual(originalTestWizard.deathSaveDeath1, loadedCharacter.deathSaveDeath1);
            Assert.AreEqual(originalTestWizard.darkvisionRadius, loadedCharacter.darkvisionRadius);
            Assert.AreEqual(originalTestWizard.creatureSize, loadedCharacter.creatureSize);
            Assert.AreEqual(originalTestWizard.Constitution, loadedCharacter.Constitution);
            Assert.AreEqual(originalTestWizard.conditionImmunities, loadedCharacter.conditionImmunities);
            Assert.AreEqual(originalTestWizard.climbingSpeed, loadedCharacter.climbingSpeed);
            Assert.AreEqual(originalTestWizard.Charisma, loadedCharacter.Charisma);
            Assert.AreEqual(originalTestWizard.burrowingSpeed, loadedCharacter.burrowingSpeed);
            Assert.AreEqual(originalTestWizard.blindsightRadius, loadedCharacter.blindsightRadius);
            Assert.AreEqual(originalTestWizard.ArmorClass, loadedCharacter.ArmorClass);
            Assert.AreEqual(originalTestWizard.alignmentStr, loadedCharacter.alignmentStr);
            Assert.AreEqual(originalTestWizard.advantages, loadedCharacter.advantages);
            Assert.AreEqual(originalTestWizard.proficiencyBonus, loadedCharacter.proficiencyBonus);
            Assert.AreEqual(originalTestWizard.proficientSkills, loadedCharacter.proficientSkills);
            Assert.AreEqual(originalTestWizard.halfProficiency, loadedCharacter.halfProficiency);
            Assert.AreEqual(originalTestWizard.doubleProficiency, loadedCharacter.doubleProficiency);
            Assert.AreEqual(originalTestWizard.race, loadedCharacter.race);
            Assert.AreEqual(originalTestWizard.remainingHitDice, loadedCharacter.remainingHitDice);
            Assert.AreEqual(originalTestWizard.savingThrowProficiency, loadedCharacter.savingThrowProficiency);
            Assert.AreEqual(originalTestWizard.spellCastingAbility, loadedCharacter.spellCastingAbility);
            Assert.AreEqual(originalTestWizard.senses, loadedCharacter.senses);
            Assert.AreEqual(originalTestWizard.WalkingSpeed, loadedCharacter.WalkingSpeed);
            Assert.AreEqual(originalTestWizard.Strength, loadedCharacter.Strength);
            Assert.AreEqual(originalTestWizard.swimmingSpeed, loadedCharacter.swimmingSpeed);
            Assert.AreEqual(originalTestWizard.telepathyRadius, loadedCharacter.telepathyRadius);
            Assert.AreEqual(originalTestWizard.tempAcrobaticsMod, loadedCharacter.tempAcrobaticsMod);
            Assert.AreEqual(originalTestWizard.tempAnimalHandlingMod, loadedCharacter.tempAnimalHandlingMod);
            Assert.AreEqual(originalTestWizard.tempArcanaMod, loadedCharacter.tempArcanaMod);
            Assert.AreEqual(originalTestWizard.tempAthleticsMod, loadedCharacter.tempAthleticsMod);
            Assert.AreEqual(originalTestWizard.tempDeceptionMod, loadedCharacter.tempDeceptionMod);
            Assert.AreEqual(originalTestWizard.tempHistoryMod, loadedCharacter.tempHistoryMod);
            Assert.AreEqual(originalTestWizard.tempHitPoints, loadedCharacter.tempHitPoints);
            Assert.AreEqual(originalTestWizard.tempInsightMod, loadedCharacter.tempInsightMod);
            Assert.AreEqual(originalTestWizard.tempIntimidationMod, loadedCharacter.tempIntimidationMod);
            Assert.AreEqual(originalTestWizard.tempInvestigationMod, loadedCharacter.tempInvestigationMod);
            Assert.AreEqual(originalTestWizard.tempMedicineMod, loadedCharacter.tempMedicineMod);
            Assert.AreEqual(originalTestWizard.tempNatureMod, loadedCharacter.tempNatureMod);
            Assert.AreEqual(originalTestWizard.tempPerceptionMod, loadedCharacter.tempPerceptionMod);
            Assert.AreEqual(originalTestWizard.tempPerformanceMod, loadedCharacter.tempPerformanceMod);
            Assert.AreEqual(originalTestWizard.tempPersuasionMod, loadedCharacter.tempPersuasionMod);
            Assert.AreEqual(originalTestWizard.tempReligionMod, loadedCharacter.tempReligionMod);
            Assert.AreEqual(originalTestWizard.tempSavingThrowModCharisma, loadedCharacter.tempSavingThrowModCharisma);
            Assert.AreEqual(originalTestWizard.tempSavingThrowModConstitution, loadedCharacter.tempSavingThrowModConstitution);
            Assert.AreEqual(originalTestWizard.tempSavingThrowModDexterity, loadedCharacter.tempSavingThrowModDexterity);
            Assert.AreEqual(originalTestWizard.tempSavingThrowModIntelligence, loadedCharacter.tempSavingThrowModIntelligence);
            Assert.AreEqual(originalTestWizard.tempSavingThrowModStrength, loadedCharacter.tempSavingThrowModStrength);
            Assert.AreEqual(originalTestWizard.tempSavingThrowModWisdom, loadedCharacter.tempSavingThrowModWisdom);
            Assert.AreEqual(originalTestWizard.tempSleightOfHandMod, loadedCharacter.tempSleightOfHandMod);
            Assert.AreEqual(originalTestWizard.tempStealthMod, loadedCharacter.tempStealthMod);
            Assert.AreEqual(originalTestWizard.tempSurvivalMod, loadedCharacter.tempSurvivalMod);
            Assert.AreEqual(originalTestWizard.totalHitDice, loadedCharacter.totalHitDice);
            Assert.AreEqual(originalTestWizard.tremorSenseRadius, loadedCharacter.tremorSenseRadius);
            Assert.AreEqual(originalTestWizard.truesightRadius, loadedCharacter.truesightRadius);
            Assert.AreEqual(originalTestWizard.weight, loadedCharacter.weight);
            Assert.AreEqual(originalTestWizard.Wisdom, loadedCharacter.Wisdom);

            // TODO: Check these lists for equivalency:
            //Assert.AreEqual(originalTestWizard.equipment, loadedCharacter.equipment);
            //Assert.AreEqual(originalTestWizard.disadvantages, loadedCharacter.disadvantages);
            //Assert.AreEqual(originalTestWizard.cursesAndBlessings, loadedCharacter.cursesAndBlessings);
            //Assert.AreEqual(originalTestWizard.damageVulnerability, loadedCharacter.damageVulnerability);
            //Assert.AreEqual(originalTestWizard.damageResistance, loadedCharacter.damageResistance);
            //Assert.AreEqual(originalTestWizard.damageImmunities, loadedCharacter.damageImmunities);

            DeleteIfExists(fullPathToFile);
        }