Add damage class and tests #3
38
pflib-net.Tests/damage/DamageTest.cs
Normal file
38
pflib-net.Tests/damage/DamageTest.cs
Normal 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"));
|
||||
}
|
||||
}
|
||||
28
pflib-net/damage/Damage.cs
Normal file
28
pflib-net/damage/Damage.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user