diff --git a/pflib-net.Tests/damage/DamageTest.cs b/pflib-net.Tests/damage/DamageTest.cs new file mode 100644 index 0000000..60c96ce --- /dev/null +++ b/pflib-net.Tests/damage/DamageTest.cs @@ -0,0 +1,38 @@ +using NUnit.Framework; +using pflib_net.damage; + +namespace pflib_net.Tests.damage; + +[TestFixture] +[TestOf(typeof(Damage))] +public class DamageTest +{ + + [Test] + public void GetDamageReturnsCorrectRegularAmount() + { + var damage = new Damage(10, "fire"); + Assert.That(damage.GetDamage(false), Is.EqualTo(10)); + } + + [Test] + public void GetDamageReturnsCriticalAmount() + { + var damage = new Damage(10, "fire", 30); + Assert.That(damage.GetDamage(true), Is.EqualTo(30)); + } + + [Test] + public void CriticalDamageIsDoubleRegular() + { + var damage = new Damage(10, "fire"); + Assert.That(damage.GetDamage(true), Is.EqualTo(20)); + } + + [Test] + public void GetDamageTypeReturnsCorrectType() + { + var damage = new Damage(0, "fire"); + Assert.That(damage.GetDamageType(), Is.EqualTo("fire")); + } +} \ No newline at end of file diff --git a/pflib-net/damage/Damage.cs b/pflib-net/damage/Damage.cs new file mode 100644 index 0000000..7a85049 --- /dev/null +++ b/pflib-net/damage/Damage.cs @@ -0,0 +1,28 @@ +namespace pflib_net.damage; + +public class Damage +{ + private int Regular { get; set; } + private int Critical { get; set; } + private string Type { get; set; } + + public Damage(int regular, string type, int? critical = null) + { + Regular = regular; + Type = type; + if (critical.HasValue) + Critical = critical.Value; + else + Critical = regular * 2; + } + + public int GetDamage(bool crit) + { + return crit ? Critical : Regular; + } + + public string GetDamageType() + { + return Type; + } +} \ No newline at end of file