CostTap change keyword check to static check

This commit is contained in:
Northmoc
2022-05-26 13:58:59 -04:00
parent a87ca115f1
commit a10e906ddb

View File

@@ -20,6 +20,7 @@ package forge.game.cost;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.staticability.StaticAbilityActivateAbilityAsIfHaste;
/** /**
* The Class CostTap. * The Class CostTap.
@@ -61,7 +62,7 @@ public class CostTap extends CostPart {
@Override @Override
public final boolean canPay(final SpellAbility ability, final Player payer, final boolean effect) { public final boolean canPay(final SpellAbility ability, final Player payer, final boolean effect) {
final Card source = ability.getHostCard(); final Card source = ability.getHostCard();
return source.isUntapped() && (!source.isSick() || source.hasKeyword("CARDNAME may activate abilities as though it has haste.")); return source.isUntapped() && !isAbilitySick(source);
} }
@Override @Override
@@ -74,4 +75,10 @@ public class CostTap extends CostPart {
return visitor.visit(this); return visitor.visit(this);
} }
public boolean isAbilitySick(final Card source) {
if (!source.isSick()) {
return false;
}
return !StaticAbilityActivateAbilityAsIfHaste.canActivate(source);
}
} }