示例#1
0
        public void AttackedByPlayer(IGamePlayer i_player)
        {
            int playerAttackPower = Mathf.Max(i_player.GetAttackPowerForType(DefenseType), 0);
            int damage            = Mathf.Max(playerAttackPower - Defense, 1);

            RemainingHP -= damage;
            SendModelChangedEvent();
        }
示例#2
0
        public void WhenAttackedByPlayer_ExpectedDamageRemovedFromRemainingHP(int i_playerAttackPower, int i_monsterDefense, int i_expectedDamage)
        {
            IGamePlayer mockPlayer = Substitute.For <IGamePlayer>();

            mockPlayer.GetAttackPowerForType(Arg.Any <int>()).Returns(i_playerAttackPower);

            IMonsterData mockMonsterData = Substitute.For <IMonsterData>();

            mockMonsterData.GetMaxHP().Returns(100);
            mockMonsterData.GetDefense().Returns(i_monsterDefense);

            GameMonster systemUnderTest = new GameMonster(mockMonsterData);

            systemUnderTest.AttackedByPlayer(mockPlayer);

            int expectedHP = 100 - i_expectedDamage;

            Assert.AreEqual(expectedHP, systemUnderTest.RemainingHP);
        }