示例#1
0
        public void Level_DecoratedOnce_LevelIsOne()
        {
            // Arrange
            ICharacter character = new Character();

            // Act
            character = new WizardDecorator(character);

            // Assert
            Assert.AreEqual(1, character.Level);
        }
示例#2
0
        public void Level_DecoratedTwiceWithDifferentClasses_LevelIsTwo()
        {
            // Arrange
            ICharacter character = new Character();

            // Act
            character = new WizardDecorator(character);
            character = new BarbarianDecorator(character);

            // Assert
            Assert.AreEqual(2, character.Level);
        }
示例#3
0
        public void Classes_DecoratedOnce_ShowsCorrectClass()
        {
            // Arrange
            ICharacter character = new Character();

            // Act
            character = new WizardDecorator(character);

            // Assert
            Assert.AreEqual(1, character.Classes.Count());
            Assert.AreEqual(1, character.Classes.Count(x => x.Name == "Wizard"));
        }
示例#4
0
        public void Level_DecoratedTwice_LevelIsTwo()
        {
            // Arrange
            ICharacter character = new Character();

            // Act
            character = new WizardDecorator(character);
            character = new WizardDecorator(character);

            // Assert
            Assert.AreEqual(2, character.Level);
        }
示例#5
0
        public void Classes_DecoratedTwiceWithDifferentClasses_ShowsCorrectClasses()
        {
            // Arrange
            ICharacter character = new Character();

            // Act
            character = new WizardDecorator(character);
            character = new BarbarianDecorator(character);

            // Assert
            Assert.AreEqual(2, character.Classes.Count());
            Assert.AreEqual(1, character.Classes.Count(x => x.Name == "Wizard"));
            Assert.AreEqual(1, character.Classes.Count(x => x.Name == "Barbarian"));
        }
示例#6
0
        private static ICharacter BuildCharacter()
        {
            ICharacter character = new Character
            {
                BaseStrength     = 17,
                BaseDexterity    = 8,
                BaseWisdom       = 10,
                BaseIntelligence = 14,
                BaseConstitution = 12,
                BaseCharisma     = 10,
            };

            character.SetRace(new HillDwarf());
            character = new WizardDecorator(character);

            return(character);
        }
示例#7
0
        public void PaintWorld(WorldLayer layer)
        {
            var players = Hud.Game.Players.Where(player => player.CoordinateKnown && (player.HeadStone == null));

            foreach (var player in players)
            {
                if (player.IsMe)
                {
                    MeDecorator.Paint(layer, null, player.FloorCoordinate, null);
                }
                else
                {
                    switch (player.HeroClassDefinition.HeroClass)
                    {
                    case HeroClass.Wizard:
                        WizardDecorator.Paint(layer, null, player.FloorCoordinate, null);
                        break;

                    case HeroClass.WitchDoctor:
                        WitchDoctorDecorator.Paint(layer, null, player.FloorCoordinate, null);
                        break;

                    case HeroClass.Barbarian:
                        BarbarianDecorator.Paint(layer, null, player.FloorCoordinate, null);
                        break;

                    case HeroClass.DemonHunter:
                        DemonHunterDecorator.Paint(layer, null, player.FloorCoordinate, null);
                        break;

                    case HeroClass.Crusader:
                        CrusaderDecorator.Paint(layer, null, player.FloorCoordinate, null);
                        break;

                    case HeroClass.Monk:
                        MonkDecorator.Paint(layer, null, player.FloorCoordinate, null);
                        break;

                    case HeroClass.Necromancer:
                        NecDecorator.Paint(layer, null, player.FloorCoordinate, null);
                        break;
                    }
                }
            }
        }