28 lines
803 B
C#
28 lines
803 B
C#
using System.Text;
|
|
|
|
namespace Craftimizer.Simulator.Actions;
|
|
|
|
internal abstract class BaseBuffAction : BaseAction
|
|
{
|
|
public abstract EffectType Effect { get; }
|
|
public virtual byte Duration => 1;
|
|
public virtual EffectType[] ConflictingEffects => Array.Empty<EffectType>();
|
|
|
|
public override int DurabilityCost => 0;
|
|
|
|
public override void UseSuccess()
|
|
{
|
|
if (ConflictingEffects.Length != 0)
|
|
foreach(var effect in ConflictingEffects)
|
|
Simulation.RemoveEffect(effect);
|
|
Simulation.AddEffect(Effect, Duration);
|
|
}
|
|
|
|
public override string GetTooltip(bool addUsability)
|
|
{
|
|
var builder = new StringBuilder(base.GetTooltip(addUsability));
|
|
builder.AppendLine($"{Duration} Steps");
|
|
return builder.ToString();
|
|
}
|
|
}
|