Added buff action base class

This commit is contained in:
Asriel Camora
2023-06-14 10:45:21 -07:00
parent 0ac51b2002
commit bf74e14d19
8 changed files with 45 additions and 33 deletions
@@ -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;
}
+3 -4
View File
@@ -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;
}
+3 -3
View File
@@ -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;
}
+4 -7
View File
@@ -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 };
}
+4 -7
View File
@@ -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 };
}