16 lines
560 B
C#
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);
|
|
|
|
}
|
|
|
|
} |