mirror of
https://github.com/correl/mage.git
synced 2024-12-28 11:14:13 +00:00
Fix Haunted Plate Mail
This commit is contained in:
parent
515672bb53
commit
d7fc52daea
2 changed files with 17 additions and 5 deletions
|
@ -37,7 +37,7 @@ public final class HauntedPlateMail extends CardImpl {
|
||||||
// {0}: Until end of turn, Haunted Plate Mail becomes a 4/4 Spirit artifact creature that's no longer an Equipment. Activate this ability only if you control no creatures.
|
// {0}: Until end of turn, Haunted Plate Mail becomes a 4/4 Spirit artifact creature that's no longer an Equipment. Activate this ability only if you control no creatures.
|
||||||
Ability ability = new ConditionalActivatedAbility(
|
Ability ability = new ConditionalActivatedAbility(
|
||||||
Zone.BATTLEFIELD,
|
Zone.BATTLEFIELD,
|
||||||
new BecomesCreatureSourceEffect(new HauntedPlateMailToken(), CardType.ARTIFACT, Duration.EndOfTurn),
|
new BecomesCreatureSourceEffect(new HauntedPlateMailToken(), CardType.ARTIFACT, Duration.EndOfTurn).andNotEquipment(true),
|
||||||
new ManaCostsImpl<>("{0}"),
|
new ManaCostsImpl<>("{0}"),
|
||||||
new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_PERMANENT_CREATURE, ComparisonType.EQUAL_TO, 0),
|
new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_PERMANENT_CREATURE, ComparisonType.EQUAL_TO, 0),
|
||||||
"{0}: Until end of turn, Haunted Plate Mail becomes a 4/4 Spirit artifact creature that's no longer an Equipment. Activate only if you control no creatures.");
|
"{0}: Until end of turn, Haunted Plate Mail becomes a 4/4 Spirit artifact creature that's no longer an Equipment. Activate only if you control no creatures.");
|
||||||
|
|
|
@ -12,7 +12,7 @@ import mage.game.permanent.Permanent;
|
||||||
import mage.game.permanent.token.Token;
|
import mage.game.permanent.token.Token;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author BetaSteward_at_googlemail.com
|
* @author BetaSteward_at_googlemail.com, xenohedron
|
||||||
*/
|
*/
|
||||||
public class BecomesCreatureSourceEffect extends ContinuousEffectImpl implements SourceEffect {
|
public class BecomesCreatureSourceEffect extends ContinuousEffectImpl implements SourceEffect {
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ public class BecomesCreatureSourceEffect extends ContinuousEffectImpl implements
|
||||||
protected Token token;
|
protected Token token;
|
||||||
protected CardType retainType; // if null, loses previous types
|
protected CardType retainType; // if null, loses previous types
|
||||||
protected boolean loseAbilities = false;
|
protected boolean loseAbilities = false;
|
||||||
|
protected boolean loseEquipmentType = false;
|
||||||
protected DynamicValue power = null;
|
protected DynamicValue power = null;
|
||||||
protected DynamicValue toughness = null;
|
protected DynamicValue toughness = null;
|
||||||
protected boolean durationRuleAtStart; // put duration rule at the start of the rules text rather than the end
|
protected boolean durationRuleAtStart; // put duration rule at the start of the rules text rather than the end
|
||||||
|
@ -65,6 +66,7 @@ public class BecomesCreatureSourceEffect extends ContinuousEffectImpl implements
|
||||||
this.token = effect.token.copy();
|
this.token = effect.token.copy();
|
||||||
this.retainType = effect.retainType;
|
this.retainType = effect.retainType;
|
||||||
this.loseAbilities = effect.loseAbilities;
|
this.loseAbilities = effect.loseAbilities;
|
||||||
|
this.loseEquipmentType = effect.loseEquipmentType;
|
||||||
if (effect.power != null) {
|
if (effect.power != null) {
|
||||||
this.power = effect.power.copy();
|
this.power = effect.power.copy();
|
||||||
}
|
}
|
||||||
|
@ -111,6 +113,9 @@ public class BecomesCreatureSourceEffect extends ContinuousEffectImpl implements
|
||||||
for (CardType cardType : token.getCardType(game)) {
|
for (CardType cardType : token.getCardType(game)) {
|
||||||
permanent.addCardType(game, cardType);
|
permanent.addCardType(game, cardType);
|
||||||
}
|
}
|
||||||
|
if (loseEquipmentType) {
|
||||||
|
permanent.removeSubType(game, SubType.EQUIPMENT);
|
||||||
|
}
|
||||||
if (retainType == CardType.CREATURE || retainType == CardType.ARTIFACT) {
|
if (retainType == CardType.CREATURE || retainType == CardType.ARTIFACT) {
|
||||||
permanent.removeAllCreatureTypes(game);
|
permanent.removeAllCreatureTypes(game);
|
||||||
}
|
}
|
||||||
|
@ -163,14 +168,21 @@ public class BecomesCreatureSourceEffect extends ContinuousEffectImpl implements
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Source loses all other abilities as part of the effect
|
* Source loses all other abilities as part of the effect. Need to set text elsewhere.
|
||||||
* Note: need to set text manually
|
|
||||||
*/
|
*/
|
||||||
public BecomesCreatureSourceEffect andLoseAbilities(boolean loseAbilities) {
|
public BecomesCreatureSourceEffect andLoseAbilities(boolean loseAbilities) {
|
||||||
this.loseAbilities = loseAbilities;
|
this.loseAbilities = loseAbilities;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Source loses Equipment subtype as part of the effect. Need to set text manually.
|
||||||
|
*/
|
||||||
|
public BecomesCreatureSourceEffect andNotEquipment(boolean notEquipment) {
|
||||||
|
this.loseEquipmentType = notEquipment;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public BecomesCreatureSourceEffect withDurationRuleAtStart(boolean durationRuleAtStart) {
|
public BecomesCreatureSourceEffect withDurationRuleAtStart(boolean durationRuleAtStart) {
|
||||||
this.durationRuleAtStart = durationRuleAtStart;
|
this.durationRuleAtStart = durationRuleAtStart;
|
||||||
setText();
|
setText();
|
||||||
|
|
Loading…
Reference in a new issue