foul-magics/Mage/src/main/java/mage/abilities/condition/CompoundCondition.java
2020-02-05 02:17:00 +04:00

41 lines
955 B
Java

package mage.abilities.condition;
import mage.abilities.Ability;
import mage.game.Game;
import java.util.ArrayList;
import java.util.Arrays;
/**
* Combines conditions to one compound conditon, all single conditons must be
* true to return true for the compound condtion.
*
* @author LevelX2
*/
public class CompoundCondition implements Condition {
private final ArrayList<Condition> conditions = new ArrayList<>();
private final String text;
public CompoundCondition(Condition... conditions) {
this("", conditions);
}
public CompoundCondition(String text, Condition... conditions) {
this.conditions.addAll(Arrays.asList(conditions));
this.text = text;
}
@Override
public boolean apply(Game game, Ability source) {
return conditions.stream().allMatch(condition -> condition.apply(game, source));
}
@Override
public String toString() {
return text;
}
}