Exemple #1
0
        public void Process(ActivationContext c)
        {
            if (c.HasTargets == false)
            {
                var p = new RepetitionRuleParameters(c.Card, c.MaxRepetitions.Value);
                c.Repeat = Math.Min(p.MaxRepetitions, GetRepetitionCount(p));

                if (c.Repeat == 0)
                {
                    c.CancelActivation = true;
                }

                return;
            }

            var targetsCombinations = c.TargetsCombinations().ToList();

            foreach (var targetsCombination in targetsCombinations)
            {
                var p = new RepetitionRuleParameters(c.Card, c.MaxRepetitions.Value, targetsCombination.Targets);
                targetsCombination.Repeat = Math.Min(p.MaxRepetitions, GetRepetitionCount(p));

                if (targetsCombination.Repeat == 0)
                {
                    c.RemoveTargetCombination(targetsCombination);
                }
            }
        }
        public void Process(ActivationContext c)
        {
            if (c.HasTargets == false)
              {
            var p = new RepetitionRuleParameters(c.Card, c.MaxRepetitions.Value);
            c.Repeat = Math.Min(p.MaxRepetitions, GetRepetitionCount(p));

            if (c.Repeat == 0)
              c.CancelActivation = true;

            return;
              }

              var targetsCombinations = c.TargetsCombinations().ToList();

              foreach (var targetsCombination in targetsCombinations)
              {
            var p = new RepetitionRuleParameters(c.Card, c.MaxRepetitions.Value, targetsCombination.Targets);
            targetsCombination.Repeat = Math.Min(p.MaxRepetitions, GetRepetitionCount(p));

            if (targetsCombination.Repeat == 0)
            {
              c.RemoveTargetCombination(targetsCombination);
            }
              }
        }
        public override int GetRepetitionCount(RepetitionRuleParameters p)
        {
            var max = _max(p);

              return max.HasValue
            ? Math.Min(max.Value, p.MaxRepetitions)
            : p.MaxRepetitions;
        }
Exemple #4
0
        public override int GetRepetitionCount(RepetitionRuleParameters p)
        {
            var max = _max(p);

            return(max.HasValue
        ? Math.Min(max.Value, p.MaxRepetitions)
        : p.MaxRepetitions);
        }
        public override int GetRepetitionCount(RepetitionRuleParameters p)
        {
            var opponent = p.Card.Controller.Opponent;
              var controller = p.Card.Controller;

              var maxToTry = Math.Min(controller.Life, p.MaxRepetitions);
              var result = MassRemovalParameterOptimizer.CalculateOptimalDamage(controller, opponent, maxToTry);
              return result;
        }
        public override int GetRepetitionCount(RepetitionRuleParameters p)
        {
            var opponent   = p.Card.Controller.Opponent;
            var controller = p.Card.Controller;

            var maxToTry = Math.Min(controller.Life, p.MaxRepetitions);
            var result   = MassRemovalParameterOptimizer.CalculateOptimalDamage(controller, opponent, maxToTry);

            return(result);
        }
        public override int GetRepetitionCount(RepetitionRuleParameters p)
        {
            if (p.Targets.Effect[0].IsPlayer())
              {
            return p.MaxRepetitions;
              }

              var lifepoints = p.Targets.Effect[0].Life();
              return Math.Min(lifepoints, p.MaxRepetitions);
        }
        public override int GetRepetitionCount(RepetitionRuleParameters p)
        {
            if (p.Targets.Effect[0].IsPlayer())
            {
                return(p.MaxRepetitions);
            }

            var lifepoints = p.Targets.Effect[0].Life();

            return(Math.Min(lifepoints, p.MaxRepetitions));
        }
Exemple #9
0
 public abstract int GetRepetitionCount(RepetitionRuleParameters p);
 public abstract int GetRepetitionCount(RepetitionRuleParameters p);