newlon/addons/floatmodifiers/FloatModifiers.cs
2025-06-22 23:28:43 +05:00

59 lines
1.2 KiB
C#

using Godot;
[GlobalClass] [Tool]
public partial class FloatModifiers : Resource
{
[Export] private float flat_value;
[Export] private float percentage_value;
[Export] private float mult_value;
public static FloatModifiers Instantiate(float flat = 0.0f, float per = 0.0f, float mult = 1.0f)
{
FloatModifiers mod = new()
{
flat_value = flat,
percentage_value = per,
mult_value = mult
};
return mod;
}
public float GetValue() => flat_value * mult_value * (1.0f + percentage_value);
public float GetFlat() => flat_value;
public float GetPercentage() => percentage_value;
public float GetMult() => mult_value;
public void SetFlat(float value)
{
flat_value = value;
}
public void SetPercentage(float value)
{
percentage_value = value;
}
public void SetMult(float value)
{
mult_value = value;
}
public void ChangeFlat(float amount)
{
flat_value += amount;
}
public void ChangePercentage(float amount)
{
percentage_value += amount;
}
public void ChangeMult(float amount)
{
mult_value *= amount;
}
}