Added buff action base class
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
|
||||
namespace Craftimizer.Simulator.Actions;
|
||||
|
||||
public abstract class BaseBuffAction : BaseAction
|
||||
{
|
||||
public BaseBuffAction(Simulation simulation) : base(simulation) { }
|
||||
|
||||
public abstract Effect Effect { get; }
|
||||
public abstract int EffectDuration { get; }
|
||||
public virtual Effect[] ConflictingEffects => Array.Empty<Effect>();
|
||||
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess()
|
||||
{
|
||||
if (ConflictingEffects.Length != 0)
|
||||
foreach(var effect in ConflictingEffects)
|
||||
Simulation.RemoveEffect(effect);
|
||||
Simulation.AddEffect(Effect, EffectDuration);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace Craftimizer.Simulator.Actions;
|
||||
|
||||
internal class FinalAppraisal : BaseAction
|
||||
internal class FinalAppraisal : BaseBuffAction
|
||||
{
|
||||
public FinalAppraisal(Simulation simulation) : base(simulation) { }
|
||||
|
||||
@@ -9,9 +9,8 @@ internal class FinalAppraisal : BaseAction
|
||||
public override int ActionId => 19012;
|
||||
|
||||
public override int CPCost => 1;
|
||||
public override int DurabilityCost => 0;
|
||||
public override bool IncreasesStepCount => false;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.AddEffect(Effect.FinalAppraisal, 5);
|
||||
public override Effect Effect => Effect.FinalAppraisal;
|
||||
public override int EffectDuration => 5;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace Craftimizer.Simulator.Actions;
|
||||
|
||||
internal class GreatStrides : BaseAction
|
||||
internal class GreatStrides : BaseBuffAction
|
||||
{
|
||||
public GreatStrides(Simulation simulation) : base(simulation) { }
|
||||
|
||||
@@ -9,8 +9,7 @@ internal class GreatStrides : BaseAction
|
||||
public override int ActionId => 260;
|
||||
|
||||
public override int CPCost => 32;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.AddEffect(Effect.GreatStrides, 3);
|
||||
public override Effect Effect => Effect.GreatStrides;
|
||||
public override int EffectDuration => 3;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace Craftimizer.Simulator.Actions;
|
||||
|
||||
internal class Innovation : BaseAction
|
||||
internal class Innovation : BaseBuffAction
|
||||
{
|
||||
public Innovation(Simulation simulation) : base(simulation) { }
|
||||
|
||||
@@ -9,8 +9,7 @@ internal class Innovation : BaseAction
|
||||
public override int ActionId => 19004;
|
||||
|
||||
public override int CPCost => 18;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.AddEffect(Effect.Innovation, 4);
|
||||
public override Effect Effect => Effect.Innovation;
|
||||
public override int EffectDuration => 4;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace Craftimizer.Simulator.Actions;
|
||||
|
||||
internal class Manipulation : BaseAction
|
||||
internal class Manipulation : BaseBuffAction
|
||||
{
|
||||
public Manipulation(Simulation simulation) : base(simulation) { }
|
||||
|
||||
@@ -9,8 +9,7 @@ internal class Manipulation : BaseAction
|
||||
public override int ActionId => 4574;
|
||||
|
||||
public override int CPCost => 96;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.AddEffect(Effect.Manipulation, 8);
|
||||
public override Effect Effect => Effect.Manipulation;
|
||||
public override int EffectDuration => 8;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace Craftimizer.Simulator.Actions;
|
||||
|
||||
internal class Veneration : BaseAction
|
||||
internal class Veneration : BaseBuffAction
|
||||
{
|
||||
public Veneration(Simulation simulation) : base(simulation) { }
|
||||
|
||||
@@ -11,6 +11,6 @@ internal class Veneration : BaseAction
|
||||
public override int CPCost => 18;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.AddEffect(Effect.Veneration, 4);
|
||||
public override Effect Effect => Effect.Veneration;
|
||||
public override int EffectDuration => 4;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace Craftimizer.Simulator.Actions;
|
||||
|
||||
internal class WasteNot : BaseAction
|
||||
internal class WasteNot : BaseBuffAction
|
||||
{
|
||||
public WasteNot(Simulation simulation) : base(simulation) { }
|
||||
|
||||
@@ -9,11 +9,8 @@ internal class WasteNot : BaseAction
|
||||
public override int ActionId => 4631;
|
||||
|
||||
public override int CPCost => 56;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess()
|
||||
{
|
||||
Simulation.RemoveEffect(Effect.WasteNot2);
|
||||
Simulation.AddEffect(Effect.WasteNot, 4);
|
||||
}
|
||||
public override Effect Effect => Effect.WasteNot;
|
||||
public override int EffectDuration => 4;
|
||||
public override Effect[] ConflictingEffects => new[] { Effect.WasteNot2 };
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace Craftimizer.Simulator.Actions;
|
||||
|
||||
internal class WasteNot2 : BaseAction
|
||||
internal class WasteNot2 : BaseBuffAction
|
||||
{
|
||||
public WasteNot2(Simulation simulation) : base(simulation) { }
|
||||
|
||||
@@ -9,11 +9,8 @@ internal class WasteNot2 : BaseAction
|
||||
public override int ActionId => 4639;
|
||||
|
||||
public override int CPCost => 98;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess()
|
||||
{
|
||||
Simulation.RemoveEffect(Effect.WasteNot);
|
||||
Simulation.AddEffect(Effect.WasteNot2, 8);
|
||||
}
|
||||
public override Effect Effect => Effect.WasteNot2;
|
||||
public override int EffectDuration => 8;
|
||||
public override Effect[] ConflictingEffects => new[] { Effect.WasteNot };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user