public virtual void SetStepSetting(int step, CraftingSimStepSettings settings) { if (settings == null) { StepSettings[step].RecipeCondition = RecipeCondition.Normal; return; } StepSettings[step] = settings; }
public CraftingSim() { CraftingActions = new CraftingAction[MaxActions]; CraftingActionsLength = 0; CraftingBuffs = new List <CraftingBuff>(); StepSettings = new CraftingSimStepSettings[MaxActions]; for (int i = 0; i < MaxActions; i++) { StepSettings[i] = new CraftingSimStepSettings(); } }
public virtual int GetQualityIncrease(double efficiency) { double realEfficiency = efficiency; if (GreatStridesBuff != null) { realEfficiency += efficiency; } if (InnovationBuff != null) { realEfficiency += efficiency * 0.5; } CraftingSimStepSettings settings = GetStepSettings(); double conditionMultiplier = 1; if (settings.RecipeCondition == RecipeCondition.Good) { conditionMultiplier = 1.5; } if (settings.RecipeCondition == RecipeCondition.Excellent) { conditionMultiplier = 4; } if (settings.RecipeCondition == RecipeCondition.Poor) { conditionMultiplier = 0.5; } ActualControl = Control; if (InnerQuietBuff != null) { ActualControl += (InnerQuietBuff.Stack - 1) * 0.2 * Control; } double dValue = (ActualControl + 10000d) / (CurrentRecipe.RequiredControl + 10000d) * (ActualControl * 0.35 + 35) * LevelDifference.QualityFactor / 100d; int value = (int)(dValue * conditionMultiplier); return((int)(value * realEfficiency)); }