Standardize more action code
This commit is contained in:
@@ -10,7 +10,5 @@ internal class AdvancedTouch : BaseAction
|
||||
|
||||
public override int CPCost => Simulation.GetPreviousAction() is StandardTouch && Simulation.GetPreviousAction(2) is BasicTouch ? 18 : 46;
|
||||
public override float Efficiency => 1.50f;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseQuality(Efficiency);
|
||||
public override bool IncreasesQuality => true;
|
||||
}
|
||||
|
||||
@@ -25,9 +25,12 @@ public abstract class BaseAction
|
||||
public abstract int ActionId { get; }
|
||||
|
||||
public abstract int CPCost { get; }
|
||||
public abstract float Efficiency { get; }
|
||||
public virtual float Efficiency => 0f;
|
||||
public virtual bool IncreasesProgress => false;
|
||||
public virtual bool IncreasesQuality => false;
|
||||
public virtual float SuccessRate => 1f;
|
||||
public virtual int DurabilityCost => 10;
|
||||
public virtual bool IncreasesStepCount => true;
|
||||
|
||||
private (CraftAction? CraftAction, Action? Action) GetActionRow(ClassJob classJob)
|
||||
{
|
||||
@@ -95,5 +98,14 @@ public abstract class BaseAction
|
||||
UseSuccess();
|
||||
}
|
||||
|
||||
public abstract void UseSuccess();
|
||||
public virtual void UseSuccess()
|
||||
{
|
||||
if (Efficiency != 0f)
|
||||
{
|
||||
if (IncreasesProgress)
|
||||
Simulation.IncreaseProgress(Efficiency);
|
||||
if (IncreasesQuality)
|
||||
Simulation.IncreaseQuality(Efficiency);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,5 @@ internal class BasicSynthesis : BaseAction
|
||||
public override int CPCost => 0;
|
||||
// Basic Synthesis Mastery Trait
|
||||
public override float Efficiency => Simulation.Stats.Level >= 31 ? 1.20f : 1.00f;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseProgress(Efficiency);
|
||||
public override bool IncreasesProgress => true;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,5 @@ internal class BasicTouch : BaseAction
|
||||
|
||||
public override int CPCost => 18;
|
||||
public override float Efficiency => 1.00f;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseQuality(Efficiency);
|
||||
public override bool IncreasesQuality => true;
|
||||
}
|
||||
|
||||
@@ -9,13 +9,14 @@ internal class ByregotsBlessing : BaseAction
|
||||
public override int ActionId => 100339;
|
||||
|
||||
public override int CPCost => 24;
|
||||
public override float Efficiency => 1.00f + 0.20f * (Simulation.GetEffect(Effect.InnerQuiet)?.Strength ?? 0);
|
||||
public override float Efficiency => 1.00f + (0.20f * (Simulation.GetEffect(Effect.InnerQuiet)?.Strength ?? 0));
|
||||
public override bool IncreasesQuality => true;
|
||||
|
||||
public override bool CanUse => Simulation.HasEffect(Effect.InnerQuiet) && base.CanUse;
|
||||
|
||||
public override void UseSuccess()
|
||||
{
|
||||
Simulation.IncreaseQuality(Efficiency);
|
||||
base.UseSuccess();
|
||||
Simulation.RemoveEffect(Effect.InnerQuiet);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,5 @@ internal class CarefulSynthesis : BaseAction
|
||||
public override int CPCost => 7;
|
||||
// Careful Synthesis Mastery Trait
|
||||
public override float Efficiency => Simulation.Stats.Level >= 82 ? 1.80f : 1.50f;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseProgress(Efficiency);
|
||||
public override bool IncreasesProgress => true;
|
||||
}
|
||||
|
||||
@@ -10,10 +10,6 @@ internal class DelicateSynthesis : BaseAction
|
||||
|
||||
public override int CPCost => 32;
|
||||
public override float Efficiency => 1.00f;
|
||||
|
||||
public override void UseSuccess()
|
||||
{
|
||||
Simulation.IncreaseQuality(Efficiency);
|
||||
Simulation.IncreaseProgress(Efficiency);
|
||||
}
|
||||
public override bool IncreasesProgress => true;
|
||||
public override bool IncreasesQuality => true;
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@ internal class FinalAppraisal : BaseAction
|
||||
public override int ActionId => 19012;
|
||||
|
||||
public override int CPCost => 1;
|
||||
public override float Efficiency => 0f;
|
||||
public override int DurabilityCost => 0;
|
||||
public override bool IncreasesStepCount => false;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.AddEffect(Effect.FinalAppraisal, 5);
|
||||
|
||||
@@ -10,8 +10,6 @@ internal class FocusedSynthesis : BaseAction
|
||||
|
||||
public override int CPCost => 5;
|
||||
public override float Efficiency => 2.00f;
|
||||
public override bool IncreasesProgress => true;
|
||||
public override float SuccessRate => Simulation.GetPreviousAction() is Observe ? 1.00f : 0.50f;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseProgress(Efficiency);
|
||||
}
|
||||
|
||||
@@ -10,8 +10,6 @@ internal class FocusedTouch : BaseAction
|
||||
|
||||
public override int CPCost => 18;
|
||||
public override float Efficiency => 1.50f;
|
||||
public override bool IncreasesQuality => true;
|
||||
public override float SuccessRate => Simulation.GetPreviousAction() is Observe ? 1.00f : 0.50f;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseQuality(Efficiency);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ internal class GreatStrides : BaseAction
|
||||
public override int ActionId => 260;
|
||||
|
||||
public override int CPCost => 32;
|
||||
public override float Efficiency => 0f;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
|
||||
@@ -10,9 +10,14 @@ internal class Groundwork : BaseAction
|
||||
|
||||
public override int CPCost => 18;
|
||||
// Groundwork Mastery Trait
|
||||
public override float Efficiency => Simulation.Stats.Level >= 86 ? 3.60f : 3.00f;
|
||||
public override int DurabilityCost => 20;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseProgress(Efficiency);
|
||||
public override float Efficiency
|
||||
{
|
||||
get
|
||||
{
|
||||
var ret = Simulation.Stats.Level >= 86 ? 3.60f : 3.00f;
|
||||
return Simulation.Durability < DurabilityCost ? ret / 2 : ret;
|
||||
}
|
||||
}
|
||||
public override bool IncreasesProgress => true;
|
||||
public override int DurabilityCost => 20;
|
||||
}
|
||||
|
||||
@@ -10,8 +10,6 @@ internal class HastyTouch : BaseAction
|
||||
|
||||
public override int CPCost => 0;
|
||||
public override float Efficiency => 1.00f;
|
||||
public override bool IncreasesQuality => true;
|
||||
public override float SuccessRate => 0.60f;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseQuality(Efficiency);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ internal class Innovation : BaseAction
|
||||
public override int ActionId => 19004;
|
||||
|
||||
public override int CPCost => 18;
|
||||
public override float Efficiency => 0f;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
|
||||
@@ -10,11 +10,9 @@ internal class IntensiveSynthesis : BaseAction
|
||||
|
||||
public override int CPCost => 6;
|
||||
public override float Efficiency => 4.00f;
|
||||
public override bool IncreasesProgress => true;
|
||||
|
||||
public override bool CanUse =>
|
||||
(Simulation.Condition == Condition.Good || Simulation.Condition == Condition.Excellent)
|
||||
&& base.CanUse;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseProgress(Efficiency);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ internal class Manipulation : BaseAction
|
||||
public override int ActionId => 4574;
|
||||
|
||||
public override int CPCost => 96;
|
||||
public override float Efficiency => 0f;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
|
||||
@@ -9,7 +9,6 @@ internal class MastersMend : BaseAction
|
||||
public override int ActionId => 100003;
|
||||
|
||||
public override int CPCost => 88;
|
||||
public override float Efficiency => 0f;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
|
||||
@@ -10,12 +10,13 @@ internal class MuscleMemory : BaseAction
|
||||
|
||||
public override int CPCost => 6;
|
||||
public override float Efficiency => 3.00f;
|
||||
public override bool IncreasesProgress => true;
|
||||
|
||||
public override bool CanUse => Simulation.IsFirstStep && base.CanUse;
|
||||
|
||||
public override void UseSuccess()
|
||||
{
|
||||
Simulation.IncreaseProgress(Efficiency);
|
||||
base.UseSuccess();
|
||||
Simulation.AddEffect(Effect.MuscleMemory, 5);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,8 +9,5 @@ internal class Observe : BaseAction
|
||||
public override int ActionId => 100010;
|
||||
|
||||
public override int CPCost => 7;
|
||||
public override float Efficiency => 0f;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess() { }
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ internal class PreciseTouch : BaseAction
|
||||
|
||||
public override int CPCost => 18;
|
||||
public override float Efficiency => 1.50f;
|
||||
public override bool IncreasesQuality => true;
|
||||
|
||||
public override bool CanUse =>
|
||||
(Simulation.Condition == Condition.Good || Simulation.Condition == Condition.Excellent)
|
||||
@@ -17,7 +18,7 @@ internal class PreciseTouch : BaseAction
|
||||
|
||||
public override void UseSuccess()
|
||||
{
|
||||
Simulation.IncreaseQuality(Efficiency);
|
||||
base.UseSuccess();
|
||||
Simulation.StrengthenEffect(Effect.InnerQuiet);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,11 +10,12 @@ internal class PreparatoryTouch : BaseAction
|
||||
|
||||
public override int CPCost => 40;
|
||||
public override float Efficiency => 2.00f;
|
||||
public override bool IncreasesQuality => true;
|
||||
public override int DurabilityCost => 20;
|
||||
|
||||
public override void UseSuccess()
|
||||
{
|
||||
Simulation.IncreaseQuality(Efficiency);
|
||||
base.UseSuccess();
|
||||
Simulation.StrengthenEffect(Effect.InnerQuiet);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,12 +10,10 @@ internal class PrudentSynthesis : BaseAction
|
||||
|
||||
public override int CPCost => 18;
|
||||
public override float Efficiency => 1.80f;
|
||||
public override bool IncreasesProgress => true;
|
||||
public override int DurabilityCost => base.DurabilityCost / 2;
|
||||
|
||||
public override bool CanUse =>
|
||||
!(Simulation.HasEffect(Effect.WasteNot) || Simulation.HasEffect(Effect.WasteNot2))
|
||||
&& base.CanUse;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseProgress(Efficiency);
|
||||
}
|
||||
|
||||
@@ -10,12 +10,10 @@ internal class PrudentTouch : BaseAction
|
||||
|
||||
public override int CPCost => 25;
|
||||
public override float Efficiency => 1.00f;
|
||||
public override bool IncreasesQuality => true;
|
||||
public override int DurabilityCost => base.DurabilityCost / 2;
|
||||
|
||||
public override bool CanUse =>
|
||||
!(Simulation.HasEffect(Effect.WasteNot) || Simulation.HasEffect(Effect.WasteNot2))
|
||||
&& base.CanUse;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseQuality(Efficiency);
|
||||
}
|
||||
|
||||
@@ -11,8 +11,6 @@ internal class RapidSynthesis : BaseAction
|
||||
public override int CPCost => 0;
|
||||
// Rapid Synthesis Mastery Trait
|
||||
public override float Efficiency => Simulation.Stats.Level >= 63 ? 5.00f : 2.50f;
|
||||
public override bool IncreasesProgress => true;
|
||||
public override float SuccessRate => 0.50f;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseProgress(Efficiency);
|
||||
}
|
||||
|
||||
@@ -10,12 +10,13 @@ internal class Reflect : BaseAction
|
||||
|
||||
public override int CPCost => 6;
|
||||
public override float Efficiency => 1.00f;
|
||||
public override bool IncreasesQuality => true;
|
||||
|
||||
public override bool CanUse => Simulation.IsFirstStep && base.CanUse;
|
||||
|
||||
public override void UseSuccess()
|
||||
{
|
||||
Simulation.IncreaseQuality(Efficiency);
|
||||
base.UseSuccess();
|
||||
Simulation.StrengthenEffect(Effect.InnerQuiet);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,5 @@ internal class StandardTouch : BaseAction
|
||||
|
||||
public override int CPCost => Simulation.GetPreviousAction() is BasicTouch ? 18 : 32;
|
||||
public override float Efficiency => 1.25f;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseQuality(Efficiency);
|
||||
public override bool IncreasesQuality => true;
|
||||
}
|
||||
|
||||
@@ -9,10 +9,10 @@ internal class TrainedEye : BaseAction
|
||||
public override int ActionId => 100283;
|
||||
|
||||
public override int CPCost => 250;
|
||||
public override float Efficiency => 0f;
|
||||
public override bool IncreasesQuality => true;
|
||||
|
||||
public override bool CanUse => Simulation.IsFirstStep && base.CanUse;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseQuality(float.PositiveInfinity);
|
||||
Simulation.IncreaseQualityRaw(Simulation.MaxQuality - Simulation.Quality);
|
||||
}
|
||||
|
||||
@@ -10,12 +10,10 @@ internal class TrainedFinesse : BaseAction
|
||||
|
||||
public override int CPCost => 32;
|
||||
public override float Efficiency => 1.00f;
|
||||
public override bool IncreasesQuality => true;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override bool CanUse =>
|
||||
(Simulation.GetEffect(Effect.InnerQuiet)?.Strength ?? 0) == 10
|
||||
&& base.CanUse;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
Simulation.IncreaseProgress(Efficiency);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ internal class TricksOfTheTrade : BaseAction
|
||||
public override int ActionId => 100371;
|
||||
|
||||
public override int CPCost => 0;
|
||||
public override float Efficiency => 0f;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override bool CanUse =>
|
||||
|
||||
@@ -9,7 +9,6 @@ internal class Veneration : BaseAction
|
||||
public override int ActionId => 19297;
|
||||
|
||||
public override int CPCost => 18;
|
||||
public override float Efficiency => 0f;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess() =>
|
||||
|
||||
@@ -9,7 +9,6 @@ internal class WasteNot : BaseAction
|
||||
public override int ActionId => 4631;
|
||||
|
||||
public override int CPCost => 56;
|
||||
public override float Efficiency => 0f;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess()
|
||||
|
||||
@@ -9,7 +9,6 @@ internal class WasteNot2 : BaseAction
|
||||
public override int ActionId => 4639;
|
||||
|
||||
public override int CPCost => 98;
|
||||
public override float Efficiency => 0f;
|
||||
public override int DurabilityCost => 0;
|
||||
|
||||
public override void UseSuccess()
|
||||
|
||||
Reference in New Issue
Block a user