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; }
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)); }
public abstract int GetRepetitionCount(RepetitionRuleParameters p);