コード例 #1
0
 public override void OnCalculate(ActionInfo info, ICalculatorBuilder calculatorBuilder)
 {
     calculatorBuilder.ForChance(chance =>
     {
         chance.Add(_increase);
     });
 }
コード例 #2
0
ファイル: WasteNotBuffBase.cs プロジェクト: Airex/CraftTable
 public override void OnCalculate(ActionInfo info, ICalculatorBuilder calculatorBuilder)
 {
     calculatorBuilder.ForDurability(durability =>
     {
         durability.AddPercent(-50);
     });
 }
コード例 #3
0
ファイル: InnovationBuff.cs プロジェクト: Airex/CraftTable
 public override void OnCalculate(ActionInfo info, ICalculatorBuilder calculatorBuilder)
 {
     calculatorBuilder.ForQuality((efficincy, control, s) =>
     {
         control.AddPercent(50);
     });
 }
コード例 #4
0
 public void BuildCalculator(ActionInfo info, ICalculatorBuilder calculatorBuilder)
 {
     foreach (var buff in _list)
     {
         buff.OnCalculate(info, calculatorBuilder);
     }
 }
コード例 #5
0
ファイル: ReclaimBuff.cs プロジェクト: Airex/CraftTable
 public void OnCalculate(ActionInfo info, ICalculatorBuilder calculatorBuilder)
 {
     calculatorBuilder.ForReclaimChance(action =>
     {
         action.Multiply(0);
         action.Add(90);
     });
 }
コード例 #6
0
 public override void OnCalculate(ActionInfo info, ICalculatorBuilder calculatorBuilder)
 {
     if (info.AbilityType == typeof(FlawlessSynthesis))
     {
         calculatorBuilder.ForDurability(durability => durability.Multiply(0));
         calculatorBuilder.ForCraftPoints(points => points.Multiply(0));
     }
 }
コード例 #7
0
 public override void OnCalculate(ActionInfo info, ICalculatorBuilder calculatorBuilder)
 {
     calculatorBuilder.ForConditionChance((condition, chance) =>
     {
         if (condition == Condition.Good)
         {
             chance.Add(0); // todo: get correct value for increase
         }
     });
 }
コード例 #8
0
 public override void OnCalculate(ActionInfo info, ICalculatorBuilder calculatorBuilder)
 {
     calculatorBuilder.ForQuality((efficiency, control, s) =>
     {
         efficiency.Multiply(2);
         if (s)
         {
             Kill();
         }
     });
 }
コード例 #9
0
 public override void OnCalculate(ActionInfo info, ICalculatorBuilder calculatorBuilder)
 {
     calculatorBuilder.ForRecipeLevel((level, action, service) =>
     {
         var lvl = _power == 1 ? service.MapInguenity1Level(level) : service.MapInguenity2Level(level);
         if (lvl.HasValue)
         {
             action.Add(lvl.Value);
         }
         else
         {
             action.Add((double)level - (_power == 1 ? 5 : 7));
         }
     });
 }
コード例 #10
0
ファイル: InnerQuietBuff.cs プロジェクト: Airex/CraftTable
        public void OnCalculate(ActionInfo info, ICalculatorBuilder calculatorBuilder)
        {
            int stacks = Stacks - 1;

            calculatorBuilder.ForQuality((efficiency, control, s) =>
            {
                if (info.AbilityType == typeof(ByregotsBlessing))
                {
                    Kill();
                    efficiency.Add(20 * stacks);
                }

                if (info.AbilityType == typeof(ByregotsMiracle))
                {
                    _stacks = (int)Math.Round((double)_stacks / 2);
                    efficiency.Add(10 * stacks);
                }

                if (info.AbilityType == typeof(ByregotsBrow))
                {
                    Kill();
                    efficiency.Add(10 * stacks);
                }

                control.AddPercent(20 * stacks);

                if (s)
                {
                    if (info.AbilityType == typeof(PreciseTouch))
                    {
                        Stacks++;
                    }
                    Stacks++;
                }
            });
        }
コード例 #11
0
        public void OnCalculate(ActionInfo info, ICalculatorBuilder calculatorBuilder)
        {
            int stacks = _stacks;

            calculatorBuilder.ForProgress((efficincy, craftmanship, s) =>
            {
                efficincy.AddPercent(stacks % 3 == 0 ? 50 : 0);
            });

            if (info.AbilityType == typeof(NymeiasWheel))
            {
                _postAction += Kill;
            }

            if (info.AbilityType == typeof(Satisfaction))
            {
                _postAction += () => _stacks--;
            }

            if (info.Condition.IsGoodOrExcellent())
            {
                _stacks--;
            }
        }
コード例 #12
0
 public override void OnCalculate(ActionInfo info, ICalculatorBuilder calculatorBuilder)
 {
 }
コード例 #13
0
ファイル: Tests.cs プロジェクト: mwyrodek/ATF
 public void SetUP()
 {
     _sut = new CalculatorBuilder(new BasicMath());
 }
コード例 #14
0
ファイル: CalculatorControler.cs プロジェクト: mwyrodek/ATF
 public CalculatorControler(ICalculatorBuilder builder, IInputParser parser)
 {
     Builder     = builder;
     this.parser = parser;
 }
コード例 #15
0
 public abstract void OnCalculate(ActionInfo info, ICalculatorBuilder calculatorBuilder);