Change success rates to integers
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
|
||||
namespace Craftimizer.Simulator.Actions;
|
||||
@@ -9,7 +10,7 @@ public abstract class BaseAction(
|
||||
int durabilityCost = 10, bool increasesStepCount = true,
|
||||
int defaultCPCost = 0,
|
||||
int defaultEfficiency = 0,
|
||||
float defaultSuccessRate = 1)
|
||||
int defaultSuccessRate = 100)
|
||||
{
|
||||
// Non-instanced properties
|
||||
|
||||
@@ -31,16 +32,19 @@ public abstract class BaseAction(
|
||||
// Instanced properties
|
||||
public readonly int DefaultCPCost = defaultCPCost;
|
||||
public readonly int DefaultEfficiency = defaultEfficiency;
|
||||
public readonly float DefaultSuccessRate = defaultSuccessRate;
|
||||
public readonly int DefaultSuccessRate = defaultSuccessRate; // out of 100
|
||||
|
||||
// Instanced properties
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public virtual int CPCost(Simulator s) =>
|
||||
DefaultCPCost;
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public virtual int Efficiency(Simulator s) =>
|
||||
DefaultEfficiency;
|
||||
|
||||
public virtual float SuccessRate(Simulator s) =>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public virtual int SuccessRate(Simulator s) =>
|
||||
DefaultSuccessRate;
|
||||
|
||||
// Return true if it can be in the action pool now or in the future
|
||||
@@ -116,8 +120,8 @@ public abstract class BaseAction(
|
||||
}
|
||||
if (!IncreasesStepCount)
|
||||
builder.AppendLine($"Does Not Increase Step Count");
|
||||
if (success != 1)
|
||||
builder.AppendLine($"{s.CalculateSuccessRate(success) * 100:##}% Success Rate");
|
||||
if (success != 100)
|
||||
builder.AppendLine($"{s.CalculateSuccessRate(success)}% Success Rate");
|
||||
return builder.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ internal abstract class BaseBuffAction(
|
||||
int durabilityCost = 0, bool increasesStepCount = true,
|
||||
int defaultCPCost = 0,
|
||||
int defaultEfficiency = 0,
|
||||
float defaultSuccessRate = 1) :
|
||||
int defaultSuccessRate = 100) :
|
||||
BaseAction(
|
||||
category, level, actionId,
|
||||
macroWaitTime,
|
||||
|
||||
@@ -5,9 +5,9 @@ internal sealed class FocusedSynthesis() : BaseAction(
|
||||
increasesProgress: true,
|
||||
defaultCPCost: 5,
|
||||
defaultEfficiency: 200,
|
||||
defaultSuccessRate: 0.50f
|
||||
defaultSuccessRate: 50
|
||||
)
|
||||
{
|
||||
public override float SuccessRate(Simulator s) =>
|
||||
s.ActionStates.Observed ? 1.00f : 0.50f;
|
||||
public override int SuccessRate(Simulator s) =>
|
||||
s.ActionStates.Observed ? 100 : 50;
|
||||
}
|
||||
|
||||
@@ -5,9 +5,9 @@ internal sealed class FocusedTouch() : BaseAction(
|
||||
increasesQuality: true,
|
||||
defaultCPCost: 18,
|
||||
defaultEfficiency: 150,
|
||||
defaultSuccessRate: 0.50f
|
||||
defaultSuccessRate: 50
|
||||
)
|
||||
{
|
||||
public override float SuccessRate(Simulator s) =>
|
||||
s.ActionStates.Observed ? 1.00f : 0.50f;
|
||||
public override int SuccessRate(Simulator s) =>
|
||||
s.ActionStates.Observed ? 100 : 50;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ internal sealed class HastyTouch() : BaseAction(
|
||||
increasesQuality: true,
|
||||
defaultCPCost: 0,
|
||||
defaultEfficiency: 100,
|
||||
defaultSuccessRate: 0.60f
|
||||
defaultSuccessRate: 60
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ internal sealed class RapidSynthesis() : BaseAction(
|
||||
increasesProgress: true,
|
||||
defaultCPCost: 0,
|
||||
defaultEfficiency: 250,
|
||||
defaultSuccessRate: 0.50f
|
||||
defaultSuccessRate: 50
|
||||
)
|
||||
{
|
||||
// Rapid Synthesis Mastery Trait
|
||||
|
||||
Reference in New Issue
Block a user