Files
2024-07-01 16:43:48 -07:00

39 lines
1.4 KiB
C#

using System.Text;
namespace Craftimizer.Simulator.Actions;
internal abstract class BaseBuffAction(
ActionCategory category, int level, uint actionId,
EffectType effect, int duration,
int macroWaitTime = 2,
bool increasesProgress = false, bool increasesQuality = false,
int durabilityCost = 0, bool increasesStepCount = true,
int defaultCPCost = 0,
int defaultEfficiency = 0,
int defaultSuccessRate = 100) :
BaseAction(
category, level, actionId,
macroWaitTime,
increasesProgress, increasesQuality,
durabilityCost, increasesStepCount,
defaultCPCost, defaultEfficiency, defaultSuccessRate)
{
// Non-instanced properties
public readonly EffectType Effect = effect;
public readonly int Duration = duration;
private readonly int trueDuration = increasesStepCount ? duration + 1 : duration;
public override void UseSuccess(Simulator s) =>
s.AddEffect(Effect, trueDuration);
public override string GetTooltip(Simulator s, bool addUsability)
{
var builder = new StringBuilder(base.GetTooltip(s, addUsability));
builder.AppendLine(Duration != 1 ? $"{Duration} Steps" : $"{Duration} Step");
return builder.ToString();
}
protected string GetBaseTooltip(Simulator s, bool addUsability) =>
base.GetTooltip(s, addUsability);
}