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/pom.xml -text
|
||||||
forge-game/src/main/java/forge/GameCommand.java svneol=native#text/plain
|
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/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/Direction.java -text
|
||||||
forge-game/src/main/java/forge/game/Game.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
|
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
|
// 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));
|
List<T> filtered = Lists.newArrayList(Iterables.filter(input, pred));
|
||||||
input.removeAll(filtered);
|
input.removeAll(filtered);
|
||||||
return filtered;
|
return filtered;
|
||||||
|
|||||||
@@ -80,7 +80,18 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView {
|
|||||||
public final Map<String, String> getMapParams() {
|
public final Map<String, String> getMapParams() {
|
||||||
return this.mapParams;
|
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>
|
* <p>
|
||||||
* Getter for the field <code>mapParams</code>.
|
* 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;
|
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
|
// If this is not null, then ability was made in a factory
|
||||||
public ApiType getApi() {
|
public ApiType getApi() {
|
||||||
return api;
|
return api;
|
||||||
|
|||||||
@@ -2,9 +2,10 @@ package forge.game.spellability;
|
|||||||
|
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
|
|
||||||
|
import forge.game.CardTraitPredicates;
|
||||||
import forge.game.ability.ApiType;
|
import forge.game.ability.ApiType;
|
||||||
|
|
||||||
public final class SpellAbilityPredicates {
|
public final class SpellAbilityPredicates extends CardTraitPredicates {
|
||||||
public static final Predicate<SpellAbility> isApi(final ApiType type) {
|
public static final Predicate<SpellAbility> isApi(final ApiType type) {
|
||||||
return new Predicate<SpellAbility>() {
|
return new Predicate<SpellAbility>() {
|
||||||
@Override
|
@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() {
|
public static final Predicate<SpellAbility> isMandatory() {
|
||||||
return new Predicate<SpellAbility>() {
|
return new Predicate<SpellAbility>() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user