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)); }