コード例 #1
0
 public virtual void SetStepSetting(int step, CraftingSimStepSettings settings)
 {
     if (settings == null)
     {
         StepSettings[step].RecipeCondition = RecipeCondition.Normal;
         return;
     }
     StepSettings[step] = settings;
 }
コード例 #2
0
 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();
     }
 }
コード例 #3
0
        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));
        }