Refactor creature/s you control to use static filters and values

This commit is contained in:
Oleg Agafonov 2019-02-06 21:28:26 +04:00
parent f0c76eb529
commit cb289b1b04
30 changed files with 193 additions and 229 deletions

View file

@ -0,0 +1,35 @@
package mage.abilities.dynamicvalue.common;
import mage.abilities.Ability;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.effects.Effect;
import mage.filter.StaticFilters;
import mage.game.Game;
/**
* @author JayDi85
*/
public enum CreaturesYouControlCount implements DynamicValue {
instance;
@Override
public int calculate(Game game, Ability sourceAbility, Effect effect) {
return game.getBattlefield().count(StaticFilters.FILTER_CONTROLLED_CREATURES, sourceAbility.getSourceId(), sourceAbility.getControllerId(), game);
}
@Override
public CreaturesYouControlCount copy() {
return instance;
}
@Override
public String toString() {
return "X";
}
@Override
public String getMessage() {
return "creatures you control";
}
}

View file

@ -1,18 +1,15 @@
package mage.game.permanent.token;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.common.FilterControlledCreaturePermanent;
/**
*
* @author spjspj
*/
public final class VoiceOfResurgenceToken extends TokenImpl {
@ -28,8 +25,9 @@ public final class VoiceOfResurgenceToken extends TokenImpl {
power = new MageInt(0);
toughness = new MageInt(0);
// This creature's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(
new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent()), Duration.EndOfGame)));
CreaturesYouControlCount.instance, Duration.EndOfGame)));
}
public VoiceOfResurgenceToken(final VoiceOfResurgenceToken token) {