コード例 #1
0
        public void ApplyBacklashVariantSuffixes(BatchSubtracter leftLifeSubstracter, BatchSubtracter rightLifeSubstracter,
                                                 BatchSubtracter leftPillzSubstracter, BatchSubtracter rightPillzSubstracter,
                                                 Poison poisonToLeft, Poison poisonToRight,
                                                 CanceledModifiers leftCanceledModifiers, CanceledModifiers rightCanceledModifiers)
        {
            for (int i = 0; i < 4; i++)
            {
                bool isLeft = IsLeft(i);
                // Backlash has some distinctions so we treat it in an individual loop
                if (skills[i].Prefix == SkillPrefix.Backlash)
                {
                    switch (skills[i].Suffix)
                    {
                    case SkillSuffix.DecreaseLifeXMinY:
                        if (isLeft)
                        {
                            if (!leftCanceledModifiers.Life())
                            {
                                leftLifeSubstracter.InsertSubstraction(skills[i].X, skills[i].Y);
                            }
                        }
                        else
                        {
                            if (!rightCanceledModifiers.Life())
                            {
                                rightLifeSubstracter.InsertSubstraction(skills[i].X, skills[i].Y);
                            }
                        }
                        break;

                    case SkillSuffix.DecreasePillzXMinY:
                        if (isLeft)
                        {
                            if (!leftCanceledModifiers.Pillz())
                            {
                                leftPillzSubstracter.InsertSubstraction(skills[i].X, skills[i].Y);
                            }
                        }
                        else
                        {
                            if (!rightCanceledModifiers.Pillz())
                            {
                                rightPillzSubstracter.InsertSubstraction(skills[i].X, skills[i].Y);
                            }
                        }
                        break;

                    case SkillSuffix.PoisonXMinY:
                        if (isLeft)
                        {
                            if (!leftCanceledModifiers.Life())
                            {
                                poisonToLeft = new Poison(skills[i]);
                            }
                        }
                        else
                        {
                            if (!rightCanceledModifiers.Life())
                            {
                                poisonToRight = new Poison(skills[i]);
                            }
                        }
                        break;
                    }
                }
            }
        }