mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
SpellAbility & CardTraitBase: move hasParam and getParam into CardTraitBase
add CardTraitPredicates as base for SpellAbilityPredicates
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -300,6 +300,7 @@ forge-game/.settings/org.eclipse.m2e.core.prefs -text
|
||||
forge-game/pom.xml -text
|
||||
forge-game/src/main/java/forge/GameCommand.java svneol=native#text/plain
|
||||
forge-game/src/main/java/forge/game/CardTraitBase.java -text
|
||||
forge-game/src/main/java/forge/game/CardTraitPredicates.java -text svneol=unset#text/plain
|
||||
forge-game/src/main/java/forge/game/Direction.java -text
|
||||
forge-game/src/main/java/forge/game/Game.java -text
|
||||
forge-game/src/main/java/forge/game/GameAction.java svneol=native#text/plain
|
||||
|
||||
@@ -1596,7 +1596,7 @@ public class AiController {
|
||||
}
|
||||
|
||||
// TODO move to more common place
|
||||
private <T> List<T> filterList(List<T> input, Predicate<T> pred) {
|
||||
private <T> List<T> filterList(List<T> input, Predicate<? super T> pred) {
|
||||
List<T> filtered = Lists.newArrayList(Iterables.filter(input, pred));
|
||||
input.removeAll(filtered);
|
||||
return filtered;
|
||||
|
||||
@@ -80,7 +80,18 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView {
|
||||
public final Map<String, String> getMapParams() {
|
||||
return this.mapParams;
|
||||
}
|
||||
|
||||
|
||||
public final String getParamOrDefault(String key, String defaultValue) {
|
||||
return hasParam(key) ? getParam(key) : defaultValue;
|
||||
}
|
||||
|
||||
public String getParam(String key) {
|
||||
return mapParams.get(key);
|
||||
}
|
||||
|
||||
public boolean hasParam(String key) {
|
||||
return mapParams.containsKey(key);
|
||||
}
|
||||
/**
|
||||
* <p>
|
||||
* Getter for the field <code>mapParams</code>.
|
||||
|
||||
27
forge-game/src/main/java/forge/game/CardTraitPredicates.java
Normal file
27
forge-game/src/main/java/forge/game/CardTraitPredicates.java
Normal file
@@ -0,0 +1,27 @@
|
||||
package forge.game;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
|
||||
public class CardTraitPredicates {
|
||||
|
||||
public static final Predicate<CardTraitBase> hasParam(final String name) {
|
||||
return new Predicate<CardTraitBase>() {
|
||||
@Override
|
||||
public boolean apply(final CardTraitBase sa) {
|
||||
return sa.hasParam(name);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static final Predicate<CardTraitBase> hasParam(final String name, final String val) {
|
||||
return new Predicate<CardTraitBase>() {
|
||||
@Override
|
||||
public boolean apply(final CardTraitBase sa) {
|
||||
if (!sa.hasParam(name)) {
|
||||
return false;
|
||||
}
|
||||
return val.equals(sa.getParam(name));
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -398,17 +398,6 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
|
||||
this.mayPlayOriginal = mayPlayOriginal;
|
||||
}
|
||||
|
||||
public String getParamOrDefault(String key, String defaultValue) {
|
||||
return mapParams.containsKey(key) ? mapParams.get(key) : defaultValue;
|
||||
}
|
||||
|
||||
public String getParam(String key) {
|
||||
return mapParams.get(key);
|
||||
}
|
||||
public boolean hasParam(String key) {
|
||||
return mapParams.containsKey(key);
|
||||
}
|
||||
|
||||
// If this is not null, then ability was made in a factory
|
||||
public ApiType getApi() {
|
||||
return api;
|
||||
|
||||
@@ -2,9 +2,10 @@ package forge.game.spellability;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
|
||||
import forge.game.CardTraitPredicates;
|
||||
import forge.game.ability.ApiType;
|
||||
|
||||
public final class SpellAbilityPredicates {
|
||||
public final class SpellAbilityPredicates extends CardTraitPredicates {
|
||||
public static final Predicate<SpellAbility> isApi(final ApiType type) {
|
||||
return new Predicate<SpellAbility>() {
|
||||
@Override
|
||||
@@ -23,15 +24,6 @@ public final class SpellAbilityPredicates {
|
||||
};
|
||||
}
|
||||
|
||||
public static final Predicate<SpellAbility> hasParam(final String name) {
|
||||
return new Predicate<SpellAbility>() {
|
||||
@Override
|
||||
public boolean apply(final SpellAbility sa) {
|
||||
return sa.hasParam(name);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static final Predicate<SpellAbility> isMandatory() {
|
||||
return new Predicate<SpellAbility>() {
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user