public void MercenaryOverridesPlayer()
        {
            var cr = new CharacterResolver();

            cr.SetPlayer("Bob");
            cr.SetMercenary("Bob");

            Assert.AreEqual(CharacterResolver.Type.Mercenary, cr.WhichType("Bob"));
        }
        public void PlayerStickyResistsOverrideToMercenary()
        {
            var cr = new CharacterResolver();

            cr.SetPlayer("Bob", true);
            cr.SetMercenary("Bob");

            Assert.AreEqual(CharacterResolver.Type.Player, cr.WhichType("Bob"));
        }
        public void PetOverridesPlayer()
        {
            var cr = new CharacterResolver();

            cr.SetPlayer("Bob");
            cr.SetPet("Bob");

            Assert.AreEqual(CharacterResolver.Type.Pet, cr.WhichType("Bob"));
        }
        public void AddPCGetPC()
        {
            var k  = new Character("Khadaji");
            var cr = new CharacterResolver();

            cr.SetPlayer(k);
            Assert.AreEqual(CharacterResolver.Type.Player, cr.WhichType(k));
            Assert.AreEqual(CharacterResolver.Type.Player, cr.WhichType("Khadaji"));
        }
        public void PlayerNotOverwrittenByMercenary()
        {
            var cr = new CharacterResolver();

            cr.SetPlayer("Bob");
            cr.SetMercenary("Bob", overwrite: false);

            Assert.AreEqual(CharacterResolver.Type.Player, cr.WhichType("Bob"));
        }
        public void PlayerNonStickyGetsChangedToMercenary()
        {
            var cr = new CharacterResolver();

            cr.SetPlayer("Bob");
            cr.SetMercenary("Bob");

            Assert.AreEqual(CharacterResolver.Type.Mercenary, cr.WhichType("Bob"));
        }
        public void AddVarietyOfNamesGetThemBackCorrectly()
        {
            var cr = new CharacterResolver();

            cr.SetPlayer("Khadaji");
            cr.SetMercenary("Movanna");
            cr.SetPet("Khadaji`s pet");
            cr.SetPet("Jabantik");
            cr.SetNonPlayer("Gomphus");

            Assert.AreEqual(CharacterResolver.Type.Player, cr.WhichType("Khadaji"));
            Assert.AreEqual(CharacterResolver.Type.Mercenary, cr.WhichType("Movanna"));
            Assert.AreEqual(CharacterResolver.Type.Pet, cr.WhichType("Khadaji`s pet"));
            Assert.AreEqual(CharacterResolver.Type.Pet, cr.WhichType("Jabantik"));
            Assert.AreEqual(CharacterResolver.Type.NonPlayerCharacter, cr.WhichType("Gomphus"));
        }
 private CharacterTracker SetupNewTracker(out CharacterResolver charResolver)
 {
     charResolver = new CharacterResolver();
     charResolver.SetPlayer(YouAre.Name); // This is normally done at the start of a Battle
     return(new CharacterTracker(YouAre, charResolver));
 }