forked from External/mage
[LTC] Implement Banquet Guests (#10706)
* make a StaticFilter for "a food" * [LTC] Implement Banquet Guests Made a Static Filters for controlled food, with the next eldraine set we'll certaintly see more of that. * future proof static text for mulitplier > 2
This commit is contained in:
parent
53b270fc36
commit
fbc0cd61dd
14 changed files with 122 additions and 47 deletions
78
Mage.Sets/src/mage/cards/b/BanquetGuests.java
Normal file
78
Mage.Sets/src/mage/cards/b/BanquetGuests.java
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.common.SacrificeTargetCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||
import mage.abilities.effects.common.AffinityEffect;
|
||||
import mage.abilities.effects.common.EntersBattlefieldWithXCountersEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.hint.Hint;
|
||||
import mage.abilities.hint.ValueHint;
|
||||
import mage.abilities.keyword.IndestructibleAbility;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author Susucr
|
||||
*/
|
||||
public final class BanquetGuests extends CardImpl {
|
||||
|
||||
private static final Hint hint = new ValueHint("Food you control", new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_FOOD));
|
||||
|
||||
public BanquetGuests(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{X}{G}{W}");
|
||||
|
||||
this.subtype.add(SubType.HALFLING);
|
||||
this.subtype.add(SubType.CITIZEN);
|
||||
this.power = new MageInt(0);
|
||||
this.toughness = new MageInt(0);
|
||||
|
||||
// Affinity for Food
|
||||
this.addAbility(
|
||||
new SimpleStaticAbility(
|
||||
Zone.ALL,
|
||||
new AffinityEffect(StaticFilters.FILTER_CONTROLLED_FOOD)
|
||||
).addHint(hint)
|
||||
);
|
||||
|
||||
// Trample
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// Banquet Guests enters the battlefield with twice X +1/+1 counters on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(
|
||||
new EntersBattlefieldWithXCountersEffect(CounterType.P1P1.createInstance(), 2)
|
||||
));
|
||||
|
||||
// {2}, Sacrifice a Food: Banquet Guests gains indestructible until end of turn.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn),
|
||||
new GenericManaCost(2)
|
||||
);
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_FOOD)));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private BanquetGuests(final BanquetGuests card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BanquetGuests copy() {
|
||||
return new BanquetGuests(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -30,8 +30,6 @@ import mage.target.common.TargetControlledPermanent;
|
|||
*/
|
||||
public final class BillThePony extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent foodFilter = new FilterControlledPermanent(SubType.FOOD, "a Food");;
|
||||
|
||||
public BillThePony(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}");
|
||||
|
||||
|
|
@ -46,7 +44,7 @@ public final class BillThePony extends CardImpl {
|
|||
// Sacrifice a Food: Until end of turn, target creature you control assigns combat damage equal to its toughness rather than its power.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new BillThePonyEffect(),
|
||||
new SacrificeTargetCost(new TargetControlledPermanent(foodFilter))
|
||||
new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_FOOD))
|
||||
);
|
||||
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CONTROLLED_CREATURE));
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
|
@ -23,8 +23,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class BogNaughty extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.FOOD, "a Food");
|
||||
|
||||
public BogNaughty(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{B}");
|
||||
|
||||
|
|
@ -39,7 +37,7 @@ public final class BogNaughty extends CardImpl {
|
|||
Ability ability = new SimpleActivatedAbility(
|
||||
new BoostTargetEffect(-3, -3, Duration.EndOfTurn), new ManaCostsImpl<>("{2}{B}")
|
||||
);
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_FOOD)));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -23,8 +23,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class CauldronFamiliar extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.FOOD, "a Food");
|
||||
|
||||
public CauldronFamiliar(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
|
||||
|
|
@ -41,7 +39,7 @@ public final class CauldronFamiliar extends CardImpl {
|
|||
this.addAbility(new SimpleActivatedAbility(
|
||||
Zone.GRAVEYARD,
|
||||
new ReturnSourceFromGraveyardToBattlefieldEffect(false, false),
|
||||
new SacrificeTargetCost(new TargetControlledPermanent(filter))
|
||||
new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_FOOD))
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.FoodToken;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
|
|
@ -27,13 +27,7 @@ import java.util.UUID;
|
|||
*/
|
||||
|
||||
public final class GildedGoose extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("a Food");
|
||||
|
||||
static {
|
||||
filter.add(SubType.FOOD.getPredicate());
|
||||
}
|
||||
|
||||
|
||||
public GildedGoose(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}");
|
||||
this.subtype.add(SubType.BIRD);
|
||||
|
|
@ -54,7 +48,7 @@ public final class GildedGoose extends CardImpl {
|
|||
|
||||
// {T}, Sacrifice a Food: Add one mana of any color.
|
||||
ActivatedManaAbilityImpl ability1 = new AnyColorManaAbility(new TapSourceCost());
|
||||
ability1.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
|
||||
ability1.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_FOOD)));
|
||||
this.addAbility(ability1);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import mage.abilities.keyword.TrampleAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.EntersTheBattlefieldEvent;
|
||||
import mage.game.events.GameEvent;
|
||||
|
|
@ -39,7 +39,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class GyomeMasterChef extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.FOOD, "a Food");
|
||||
private static final Hint hint = new ValueHint("Nontoken creatures entered this turn", GyomeMasterChefValue.instance);
|
||||
|
||||
public GyomeMasterChef(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
@ -67,7 +66,7 @@ public final class GyomeMasterChef extends CardImpl {
|
|||
Ability ability = new SimpleActivatedAbility(new GainAbilityTargetEffect(
|
||||
IndestructibleAbility.getInstance(), Duration.EndOfTurn
|
||||
), new GenericManaCost(1));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_FOOD)));
|
||||
ability.addEffect(new TapTargetEffect("tap it"));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -7,8 +7,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
|
@ -19,8 +18,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class InsatiableAppetite extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.FOOD, "a Food");
|
||||
|
||||
public InsatiableAppetite(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}");
|
||||
|
||||
|
|
@ -28,7 +25,7 @@ public final class InsatiableAppetite extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new DoIfCostPaid(
|
||||
new BoostTargetEffect(5, 5, Duration.EndOfTurn),
|
||||
new BoostTargetEffect(3, 3, Duration.EndOfTurn),
|
||||
new SacrificeTargetCost(new TargetControlledPermanent(filter))
|
||||
new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_FOOD))
|
||||
).setText("You may sacrifice a Food. If you do, target creature gets +5/+5 until end of turn. " +
|
||||
"Otherwise, that creature gets +3/+3 until end of turn."));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
|
@ -20,8 +20,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class MaraleafRider extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.FOOD, "a Food");
|
||||
|
||||
public MaraleafRider(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}");
|
||||
|
||||
|
|
@ -32,7 +30,7 @@ public final class MaraleafRider extends CardImpl {
|
|||
|
||||
// Sacrifice a Food: Target creature blocks Maraleaf Rider this turn if able.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new MustBeBlockedByTargetSourceEffect(), new SacrificeTargetCost(new TargetControlledPermanent(filter))
|
||||
new MustBeBlockedByTargetSourceEffect(), new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_FOOD))
|
||||
);
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -22,8 +22,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class MushroomWatchdogs extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.FOOD, "a Food");
|
||||
|
||||
public MushroomWatchdogs(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}");
|
||||
|
||||
|
|
@ -33,7 +31,7 @@ public final class MushroomWatchdogs extends CardImpl {
|
|||
|
||||
// Sacrifice a Food: Put a +1/+1 counter on Mushroom Watchdogs. It gains vigilance until end of turn. Activate only as a sorcery.
|
||||
Ability ability = new ActivateAsSorceryActivatedAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new SacrificeTargetCost(filter)
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_FOOD)
|
||||
);
|
||||
ability.addEffect(new GainAbilitySourceEffect(
|
||||
VigilanceAbility.getInstance(), Duration.EndOfTurn
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.FoodToken;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
|
@ -25,8 +25,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class TemptingWitch extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.FOOD, "a Food");
|
||||
|
||||
public TemptingWitch(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}");
|
||||
|
||||
|
|
@ -43,7 +41,7 @@ public final class TemptingWitch extends CardImpl {
|
|||
new LoseLifeTargetEffect(3), new GenericManaCost(2)
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_FOOD)));
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ import mage.constants.Duration;
|
|||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
|
|
@ -28,9 +27,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class WickedWolf extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter
|
||||
= new FilterControlledPermanent(SubType.FOOD, "a Food");
|
||||
|
||||
public WickedWolf(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}");
|
||||
|
||||
|
|
@ -48,7 +44,7 @@ public final class WickedWolf extends CardImpl {
|
|||
// Sacrifice a Food: Put a +1/+1 counter on Wicked Wolf. It gains indestructible until end of turn. Tap it.
|
||||
ability = new SimpleActivatedAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance()),
|
||||
new SacrificeTargetCost(new TargetControlledPermanent(filter))
|
||||
new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_FOOD))
|
||||
);
|
||||
ability.addEffect(new GainAbilitySourceEffect(
|
||||
IndestructibleAbility.getInstance(), Duration.EndOfTurn
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ public final class TalesOfMiddleEarthCommander extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Asceticism", 233, Rarity.RARE, mage.cards.a.Asceticism.class));
|
||||
cards.add(new SetCardInfo("Ash Barrens", 295, Rarity.UNCOMMON, mage.cards.a.AshBarrens.class));
|
||||
cards.add(new SetCardInfo("Banishing Light", 161, Rarity.UNCOMMON, mage.cards.b.BanishingLight.class));
|
||||
cards.add(new SetCardInfo("Banquet Guests", 47, Rarity.RARE, mage.cards.b.BanquetGuests.class));
|
||||
cards.add(new SetCardInfo("Basalt Monolith", 274, Rarity.UNCOMMON, mage.cards.b.BasaltMonolith.class));
|
||||
cards.add(new SetCardInfo("Bastion Protector", 162, Rarity.RARE, mage.cards.b.BastionProtector.class));
|
||||
cards.add(new SetCardInfo("Battlefield Forge", 296, Rarity.RARE, mage.cards.b.BattlefieldForge.class));
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import mage.constants.Outcome;
|
|||
import mage.counters.Counter;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -22,16 +23,31 @@ import java.util.UUID;
|
|||
public class EntersBattlefieldWithXCountersEffect extends OneShotEffect {
|
||||
|
||||
protected final Counter counter;
|
||||
private final int multiplier;
|
||||
|
||||
public EntersBattlefieldWithXCountersEffect(Counter counter) {
|
||||
this(counter, 1);
|
||||
}
|
||||
|
||||
public EntersBattlefieldWithXCountersEffect(Counter counter, int multiplier) {
|
||||
super(Outcome.BoostCreature);
|
||||
this.counter = counter;
|
||||
staticText = "with X " + counter.getName() + " counters on it";
|
||||
this.multiplier = multiplier;
|
||||
|
||||
String countText = "X";
|
||||
if (multiplier == 2) {
|
||||
countText = "twice " + countText;
|
||||
}
|
||||
if (multiplier > 2) {
|
||||
countText = CardUtil.numberToText(multiplier) + " times " + countText;
|
||||
}
|
||||
staticText = "with " + countText + " " + counter.getName() + " counters on it";
|
||||
}
|
||||
|
||||
public EntersBattlefieldWithXCountersEffect(final EntersBattlefieldWithXCountersEffect effect) {
|
||||
super(effect);
|
||||
this.counter = effect.counter.copy();
|
||||
this.multiplier = effect.multiplier;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -48,7 +64,7 @@ public class EntersBattlefieldWithXCountersEffect extends OneShotEffect {
|
|||
&& spellAbility.getSourceId().equals(source.getSourceId())
|
||||
&& permanent.getZoneChangeCounter(game) == spellAbility.getSourceObjectZoneChangeCounter()) {
|
||||
if (spellAbility.getSourceId().equals(source.getSourceId())) { // put into play by normal cast
|
||||
int amount = spellAbility.getManaCostsToPay().getX();
|
||||
int amount = spellAbility.getManaCostsToPay().getX() * this.multiplier;
|
||||
if (amount > 0) {
|
||||
Counter counterToAdd = counter.copy();
|
||||
counterToAdd.add(amount - counter.getCount());
|
||||
|
|
|
|||
|
|
@ -1202,4 +1202,10 @@ public final class StaticFilters {
|
|||
FILTER_PLAYER_CONTROLLER.add(TargetController.YOU.getPlayerPredicate());
|
||||
FILTER_PLAYER_CONTROLLER.setLockedFilter(true);
|
||||
}
|
||||
|
||||
public static final FilterControlledPermanent FILTER_CONTROLLED_FOOD = new FilterControlledPermanent(SubType.FOOD, "Food");
|
||||
|
||||
static {
|
||||
FILTER_CONTROLLED_FOOD.setLockedFilter(true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue