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;
|
namespace Craftimizer.Simulator.Actions;
|
||||||
|
|
||||||
internal class FinalAppraisal : BaseAction
|
internal class FinalAppraisal : BaseBuffAction
|
||||||
{
|
{
|
||||||
public FinalAppraisal(Simulation simulation) : base(simulation) { }
|
public FinalAppraisal(Simulation simulation) : base(simulation) { }
|
||||||
|
|
||||||
@@ -9,9 +9,8 @@ internal class FinalAppraisal : BaseAction
|
|||||||
public override int ActionId => 19012;
|
public override int ActionId => 19012;
|
||||||
|
|
||||||
public override int CPCost => 1;
|
public override int CPCost => 1;
|
||||||
public override int DurabilityCost => 0;
|
|
||||||
public override bool IncreasesStepCount => false;
|
public override bool IncreasesStepCount => false;
|
||||||
|
|
||||||
public override void UseSuccess() =>
|
public override Effect Effect => Effect.FinalAppraisal;
|
||||||
Simulation.AddEffect(Effect.FinalAppraisal, 5);
|
public override int EffectDuration => 5;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
namespace Craftimizer.Simulator.Actions;
|
namespace Craftimizer.Simulator.Actions;
|
||||||
|
|
||||||
internal class GreatStrides : BaseAction
|
internal class GreatStrides : BaseBuffAction
|
||||||
{
|
{
|
||||||
public GreatStrides(Simulation simulation) : base(simulation) { }
|
public GreatStrides(Simulation simulation) : base(simulation) { }
|
||||||
|
|
||||||
@@ -9,8 +9,7 @@ internal class GreatStrides : BaseAction
|
|||||||
public override int ActionId => 260;
|
public override int ActionId => 260;
|
||||||
|
|
||||||
public override int CPCost => 32;
|
public override int CPCost => 32;
|
||||||
public override int DurabilityCost => 0;
|
|
||||||
|
|
||||||
public override void UseSuccess() =>
|
public override Effect Effect => Effect.GreatStrides;
|
||||||
Simulation.AddEffect(Effect.GreatStrides, 3);
|
public override int EffectDuration => 3;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
namespace Craftimizer.Simulator.Actions;
|
namespace Craftimizer.Simulator.Actions;
|
||||||
|
|
||||||
internal class Innovation : BaseAction
|
internal class Innovation : BaseBuffAction
|
||||||
{
|
{
|
||||||
public Innovation(Simulation simulation) : base(simulation) { }
|
public Innovation(Simulation simulation) : base(simulation) { }
|
||||||
|
|
||||||
@@ -9,8 +9,7 @@ internal class Innovation : BaseAction
|
|||||||
public override int ActionId => 19004;
|
public override int ActionId => 19004;
|
||||||
|
|
||||||
public override int CPCost => 18;
|
public override int CPCost => 18;
|
||||||
public override int DurabilityCost => 0;
|
|
||||||
|
|
||||||
public override void UseSuccess() =>
|
public override Effect Effect => Effect.Innovation;
|
||||||
Simulation.AddEffect(Effect.Innovation, 4);
|
public override int EffectDuration => 4;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
namespace Craftimizer.Simulator.Actions;
|
namespace Craftimizer.Simulator.Actions;
|
||||||
|
|
||||||
internal class Manipulation : BaseAction
|
internal class Manipulation : BaseBuffAction
|
||||||
{
|
{
|
||||||
public Manipulation(Simulation simulation) : base(simulation) { }
|
public Manipulation(Simulation simulation) : base(simulation) { }
|
||||||
|
|
||||||
@@ -9,8 +9,7 @@ internal class Manipulation : BaseAction
|
|||||||
public override int ActionId => 4574;
|
public override int ActionId => 4574;
|
||||||
|
|
||||||
public override int CPCost => 96;
|
public override int CPCost => 96;
|
||||||
public override int DurabilityCost => 0;
|
|
||||||
|
|
||||||
public override void UseSuccess() =>
|
public override Effect Effect => Effect.Manipulation;
|
||||||
Simulation.AddEffect(Effect.Manipulation, 8);
|
public override int EffectDuration => 8;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
namespace Craftimizer.Simulator.Actions;
|
namespace Craftimizer.Simulator.Actions;
|
||||||
|
|
||||||
internal class Veneration : BaseAction
|
internal class Veneration : BaseBuffAction
|
||||||
{
|
{
|
||||||
public Veneration(Simulation simulation) : base(simulation) { }
|
public Veneration(Simulation simulation) : base(simulation) { }
|
||||||
|
|
||||||
@@ -11,6 +11,6 @@ internal class Veneration : BaseAction
|
|||||||
public override int CPCost => 18;
|
public override int CPCost => 18;
|
||||||
public override int DurabilityCost => 0;
|
public override int DurabilityCost => 0;
|
||||||
|
|
||||||
public override void UseSuccess() =>
|
public override Effect Effect => Effect.Veneration;
|
||||||
Simulation.AddEffect(Effect.Veneration, 4);
|
public override int EffectDuration => 4;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
namespace Craftimizer.Simulator.Actions;
|
namespace Craftimizer.Simulator.Actions;
|
||||||
|
|
||||||
internal class WasteNot : BaseAction
|
internal class WasteNot : BaseBuffAction
|
||||||
{
|
{
|
||||||
public WasteNot(Simulation simulation) : base(simulation) { }
|
public WasteNot(Simulation simulation) : base(simulation) { }
|
||||||
|
|
||||||
@@ -9,11 +9,8 @@ internal class WasteNot : BaseAction
|
|||||||
public override int ActionId => 4631;
|
public override int ActionId => 4631;
|
||||||
|
|
||||||
public override int CPCost => 56;
|
public override int CPCost => 56;
|
||||||
public override int DurabilityCost => 0;
|
|
||||||
|
|
||||||
public override void UseSuccess()
|
public override Effect Effect => Effect.WasteNot;
|
||||||
{
|
public override int EffectDuration => 4;
|
||||||
Simulation.RemoveEffect(Effect.WasteNot2);
|
public override Effect[] ConflictingEffects => new[] { Effect.WasteNot2 };
|
||||||
Simulation.AddEffect(Effect.WasteNot, 4);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
namespace Craftimizer.Simulator.Actions;
|
namespace Craftimizer.Simulator.Actions;
|
||||||
|
|
||||||
internal class WasteNot2 : BaseAction
|
internal class WasteNot2 : BaseBuffAction
|
||||||
{
|
{
|
||||||
public WasteNot2(Simulation simulation) : base(simulation) { }
|
public WasteNot2(Simulation simulation) : base(simulation) { }
|
||||||
|
|
||||||
@@ -9,11 +9,8 @@ internal class WasteNot2 : BaseAction
|
|||||||
public override int ActionId => 4639;
|
public override int ActionId => 4639;
|
||||||
|
|
||||||
public override int CPCost => 98;
|
public override int CPCost => 98;
|
||||||
public override int DurabilityCost => 0;
|
|
||||||
|
|
||||||
public override void UseSuccess()
|
public override Effect Effect => Effect.WasteNot2;
|
||||||
{
|
public override int EffectDuration => 8;
|
||||||
Simulation.RemoveEffect(Effect.WasteNot);
|
public override Effect[] ConflictingEffects => new[] { Effect.WasteNot };
|
||||||
Simulation.AddEffect(Effect.WasteNot2, 8);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user