public static OrCondition Or(this BoardCondition leftCondition, BoardCondition rightCondition)
        {
            List <BoardCondition> conditions = new List <BoardCondition>();

            if (leftCondition is OrCondition leftOrConditions)
            {
                conditions.AddRange(leftOrConditions.Conditions);
            }
            else
            {
                conditions.Add(leftCondition);
            }

            if (rightCondition is OrCondition rightOrConditions)
            {
                conditions.AddRange(rightOrConditions.Conditions);
            }
            else
            {
                conditions.Add(rightCondition);
            }

            return(new OrCondition(conditions));
        }
示例#2
0
 public static Ability YouMay(BoardCondition @if, CardAction then)
 => new Ability(@if, null, then, true);
示例#3
0
 public static Ability OncePerTurn(BoardCondition @if, CardAction then)
 => new Ability(@if, null, then, false);
示例#4
0
 public static Ability YouMay(BoardCondition @if, ResourceList pay, CardAction then)
 => new Ability(@if, pay, then, true);
示例#5
0
 public static Ability OncePerTurn(BoardCondition @if, ResourceList pay, CardAction then)
 => new Ability(@if, pay, then, false);
 public ConditionalAction(CardAction action, BoardCondition condition)
 {
     Action    = action;
     Condition = condition;
 }
示例#7
0
 public static ConditionalAction Conditional(BoardCondition @if, CardAction then)
 => new ConditionalAction(then, @if);