コード例 #1
0
        protected override IEnumerable <Targets> SelectTargets(TargetingRuleParameters p)
        {
            var effectCandidates = PreventNextDamage.GetCandidates(_amount, p, Game);

            if (effectCandidates.Count == 0)
            {
                return(None <Targets>());
            }

            var costCandidates = p.Candidates <Card>()
                                 .OrderBy(x => x.Score)
                                 .Take(1).Cast <ITarget>()
                                 .ToList();

            return(Group(costCandidates, effectCandidates,
                         add1: (t, trgs) => trgs.AddCost(t),
                         add2: (t, trgs) => trgs.AddEffect(t)));
        }
コード例 #2
0
        public static IList <ITarget> GetCandidates(int amount, TargetingRuleParameters p, Game game)
        {
            var preventNextDamage = new PreventNextDamage(amount, p, game);

            return(preventNextDamage.GetCandidates());
        }
コード例 #3
0
 public static IList<ITarget> GetCandidates(int amount, TargetingRuleParameters p, Game game)
 {
     var preventNextDamage = new PreventNextDamage(amount, p, game);
       return preventNextDamage.GetCandidates();
 }
コード例 #4
0
        protected override IEnumerable <Targets> SelectTargets(TargetingRuleParameters p)
        {
            var candidates = PreventNextDamage.GetCandidates(_amount, p, Game);

            return(Group(candidates, p.MinTargetCount(), p.MaxTargetCount()));
        }