Add damage class and tests
All checks were successful
MANDATORY: Build project (Pflib Net) TeamCity build finished

This commit is contained in:
Malachy Byrne 2024-06-15 23:18:19 +01:00
parent d5bf64532c
commit f6197068ef
Signed by: malmal200
GPG Key ID: EC21443030A655D9
2 changed files with 66 additions and 0 deletions

View File

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

View File

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