public override int CalculateX(CostRuleParameters p)
        {
            if (Stack.IsEmpty || Stack.TopSpellOwner == p.Controller)
            return int.MaxValue;

              return p.Controller.Opponent.GetAvailableConvertedMana() + 1;
        }
        public override int CalculateX(CostRuleParameters p)
        {
            if (Stack.IsEmpty || Stack.TopSpellOwner == p.Controller)
            {
                return(int.MaxValue);
            }

            return(p.Controller.Opponent.GetAvailableConvertedMana() + 1);
        }
        public override int CalculateX(CostRuleParameters p)
        {
            if (Stack.IsEmpty || Stack.TopSpellOwner == p.Controller)
            {
                return(int.MaxValue);
            }

            return(p.Controller.Opponent.GetAvailableManaCount(
                       new ConvokeAndDelveOptions
            {
                CanUseConvoke = p.OwningCard.Has().Convoke,
                CanUseDelve = p.OwningCard.Has().Delve,
            }) + 1);
        }
Esempio n. 4
0
 public override int CalculateX(CostRuleParameters p)
 {
     return p.MaxX;
 }
 public override int CalculateX(CostRuleParameters p)
 {
     return(p.Controller.Graveyard.Count);
 }
Esempio n. 6
0
        public override int CalculateX(CostRuleParameters p)
        {
            var x = p.MaxX + _modifier;

            return(x > 0 ? x : 0);
        }
Esempio n. 7
0
        public override int CalculateX(CostRuleParameters p)
        {
            const int maxXToTry = 6;

            return(MassRemovalParameterOptimizer.CalculateOptimalDamage(p.Controller, p.Controller.Opponent, maxXToTry));
        }
Esempio n. 8
0
 public override int CalculateX(CostRuleParameters p)
 {
     return(p.MaxX);
 }
Esempio n. 9
0
 public override int CalculateX(CostRuleParameters p)
 {
     const int maxXToTry = 6;
       return MassRemovalParameterOptimizer.CalculateOptimalDamage(p.Controller, p.Controller.Opponent, maxXToTry);
 }