Files
RPGLibrary/RPGLibrary.Implementation/StrengthBasedDamageCalculator.cs
2023-02-28 19:15:03 -08:00

16 lines
560 B
C#

using RPGLibrary.Abstraction.Character;
using RPGLibrary.Abstraction.Services;
namespace RPGLibrary.Implementation
{
public class StrengthBasedDamageCalculator : IDamageCalculator<StrengthAttackData>
{
public double Calculate(ICharacter target, StrengthAttackData attackData)
=> CalculateInternal((dynamic)target, attackData);
private double CalculateInternal(Character target, StrengthAttackData attackData)
=> Math.Clamp(attackData.Strength.Value - target.Defense.Value, RPGConstants.MinDamage, RPGConstants.MaxDamage);
}
}