30 lines
840 B
Java
30 lines
840 B
Java
package tc.oc.pgm.score;
|
|
|
|
import java.util.Map;
|
|
import java.util.Optional;
|
|
|
|
import tc.oc.pgm.match.Competitor;
|
|
import tc.oc.pgm.match.Match;
|
|
import tc.oc.pgm.victory.AbstractVictoryCondition;
|
|
|
|
public class ScoreVictoryCondition extends AbstractVictoryCondition {
|
|
|
|
private final Optional<Integer> scoreLimit;
|
|
private final Map<Competitor, Double> scores;
|
|
|
|
public ScoreVictoryCondition(Optional<Integer> scoreLimit, Map<Competitor, Double> scores) {
|
|
super(Priority.SCORE, new ScoreMatchResult());
|
|
this.scoreLimit = scoreLimit;
|
|
this.scores = scores;
|
|
}
|
|
|
|
@Override
|
|
public boolean isCompleted() {
|
|
return scoreLimit.filter(
|
|
limit -> scores.values()
|
|
.stream()
|
|
.anyMatch(score -> score >= limit)
|
|
).isPresent();
|
|
}
|
|
}
|