Simulator changes
This commit is contained in:
@@ -10,11 +10,11 @@ public sealed class SimulationInput
|
||||
public int BaseProgressGain { get; }
|
||||
public int BaseQualityGain { get; }
|
||||
|
||||
public SimulationInput(CharacterStats stats, RecipeInfo recipe, int startingQuality = 0, int? seed = null)
|
||||
public SimulationInput(CharacterStats stats, RecipeInfo recipe, int startingQuality, Random random)
|
||||
{
|
||||
Stats = stats;
|
||||
Recipe = recipe;
|
||||
Random = seed == null ? new() : new(seed.Value);
|
||||
Random = random;
|
||||
StartingQuality = startingQuality;
|
||||
|
||||
// https://github.com/NotRanged/NotRanged.github.io/blob/0f4aee074f969fb05aad34feaba605057c08ffd1/app/js/ffxivcraftmodel.js#L88
|
||||
@@ -32,5 +32,10 @@ public sealed class SimulationInput
|
||||
}
|
||||
}
|
||||
|
||||
public SimulationInput(CharacterStats stats, RecipeInfo recipe, int startingQuality = 0, int? seed = null) : this(stats, recipe, startingQuality, seed == null ? new Random() : new Random(seed.Value))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public Condition[] AvailableConditions => ConditionUtils.GetPossibleConditions(Recipe.ConditionsFlag);
|
||||
}
|
||||
|
||||
@@ -55,6 +55,8 @@ public class Simulator
|
||||
{
|
||||
if (baseAction.Level > Input.Stats.Level)
|
||||
return ActionResponse.ActionNotUnlocked;
|
||||
if (action == ActionType.Manipulation && !Input.Stats.CanUseManipulation)
|
||||
return ActionResponse.ActionNotUnlocked;
|
||||
if (baseAction.CPCost(this) > CP)
|
||||
return ActionResponse.NotEnoughCP;
|
||||
return ActionResponse.CannotUseAction;
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace Craftimizer.Simulator;
|
||||
|
||||
public class SimulatorNoRandom : Simulator
|
||||
{
|
||||
public SimulatorNoRandom(SimulationState state) : base(state)
|
||||
{
|
||||
}
|
||||
|
||||
public sealed override bool RollSuccessRaw(float successRate) => successRate == 1;
|
||||
public sealed override void StepCondition() { }
|
||||
}
|
||||
@@ -2,11 +2,10 @@ using Craftimizer.Simulator;
|
||||
using Craftimizer.Simulator.Actions;
|
||||
using System.Diagnostics.Contracts;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Sim = Craftimizer.Simulator.Simulator;
|
||||
|
||||
namespace Craftimizer.Solver.Crafty;
|
||||
|
||||
public sealed class Simulator : Sim
|
||||
public sealed class Simulator : SimulatorNoRandom
|
||||
{
|
||||
private readonly int maxStepCount;
|
||||
|
||||
@@ -21,10 +20,6 @@ public sealed class Simulator : Sim
|
||||
this.maxStepCount = maxStepCount;
|
||||
}
|
||||
|
||||
// Disable randomization
|
||||
public override bool RollSuccessRaw(float successRate) => successRate == 1;
|
||||
public override void StepCondition() { }
|
||||
|
||||
public static readonly ActionType[] AcceptedActions = new[]
|
||||
{
|
||||
ActionType.TrainedFinesse,
|
||||
|
||||
Reference in New Issue
Block a user