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)); }
public static Ability YouMay(BoardCondition @if, CardAction then) => new Ability(@if, null, then, true);
public static Ability OncePerTurn(BoardCondition @if, CardAction then) => new Ability(@if, null, then, false);
public static Ability YouMay(BoardCondition @if, ResourceList pay, CardAction then) => new Ability(@if, pay, then, true);
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; }
public static ConditionalAction Conditional(BoardCondition @if, CardAction then) => new ConditionalAction(then, @if);