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); }
public override int CalculateX(CostRuleParameters p) { return p.MaxX; }
public override int CalculateX(CostRuleParameters p) { return(p.Controller.Graveyard.Count); }
public override int CalculateX(CostRuleParameters p) { var x = p.MaxX + _modifier; return(x > 0 ? x : 0); }
public override int CalculateX(CostRuleParameters p) { const int maxXToTry = 6; return(MassRemovalParameterOptimizer.CalculateOptimalDamage(p.Controller, p.Controller.Opponent, maxXToTry)); }
public override int CalculateX(CostRuleParameters p) { return(p.MaxX); }
public override int CalculateX(CostRuleParameters p) { const int maxXToTry = 6; return MassRemovalParameterOptimizer.CalculateOptimalDamage(p.Controller, p.Controller.Opponent, maxXToTry); }