Exemplo n.º 1
0
        public void MagicRelationshipCalculor_ReturnsCorrectRelationships()
        {
            foreach (var key in _strengths.Keys)
            {
                var value        = _strengths[key];
                var relationship = MagicRelationshipCalculator.GetRelationship(key, value);
                Assert.AreEqual(MagicRelationshipType.Strong, relationship, $"{key} should deal increased damage to {value}");

                relationship = MagicRelationshipCalculator.GetRelationship(value, key);
                Assert.AreEqual(MagicRelationshipType.Weak, relationship, $"{value} should deal reduced damage to {key}");
            }
        }
        public override int DecrementHealth(int damage, MagicType attackingType)
        {
            var relationship = MagicRelationshipCalculator.GetRelationship(attackingType, ElementalType);

            switch (relationship)
            {
            case MagicRelationshipType.Strong:
                damage *= 2;
                break;

            case MagicRelationshipType.Weak:
                damage /= 2;
                break;
            }

            return(base.DecrementHealth(damage, attackingType));
        }