Files
Craftimizer/Simulator/Actions/BaseBuffAction.cs
T
Asriel Camora 2c0978f76b API10 updates
2024-06-30 18:33:57 -07:00

39 lines
1.3 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} Steps");
return builder.ToString();
}
protected string GetBaseTooltip(Simulator s, bool addUsability) =>
base.GetTooltip(s, addUsability);
}