private static bool SuccessOnAction(FailChanceByQuality failChanceByQuality, float skillFactor, Thing t)
        {
            //Log.Error("Begin SuccessChanceUtil.SuccessOnAction");
            QualityCategory qc;

            if (t.TryGetQuality(out qc))
            {
                int   r      = random.Next() % 101;
                float baseFc = failChanceByQuality[qc];
                float fc     = baseFc * skillFactor;
                bool  result = r >= fc;
                //Log.Warning("r: " + r + " baseFc: " + baseFc + " fc: " + fc + " result: " + result);
                //Log.Error("End SuccessChanceUtil.SuccessOnAction - Result: " + result);
                return(result);
            }
            //Log.Error("End SuccessChanceUtil.SuccessOnAction - true");
            return(true);
        }
예제 #2
0
 public TechLevelRange(TechLevel min, TechLevel max)
 {
     this.Min = min;
     this.Max = max;
     this.FailChanceByQuality = new FailChanceByQuality();
 }