mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 10:40:06 -08:00
add ConditionalActivatedAbility code to ActivateIfConditionActivatedAbility
This commit is contained in:
parent
fe1b01114f
commit
f89efd226a
1 changed files with 25 additions and 2 deletions
|
|
@ -5,14 +5,21 @@ import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.InvertCondition;
|
import mage.abilities.condition.InvertCondition;
|
||||||
import mage.abilities.costs.Cost;
|
import mage.abilities.costs.Cost;
|
||||||
import mage.abilities.effects.Effect;
|
import mage.abilities.effects.Effect;
|
||||||
|
import mage.abilities.effects.Effects;
|
||||||
|
import mage.constants.EffectType;
|
||||||
import mage.constants.TimingRule;
|
import mage.constants.TimingRule;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
|
import mage.game.Game;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl {
|
public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl {
|
||||||
|
|
||||||
|
private static final Effects emptyEffects = new Effects();
|
||||||
|
|
||||||
|
private String conditionText = null;
|
||||||
|
|
||||||
public ActivateIfConditionActivatedAbility(Effect effect, Cost cost, Condition condition) {
|
public ActivateIfConditionActivatedAbility(Effect effect, Cost cost, Condition condition) {
|
||||||
this(Zone.BATTLEFIELD, effect, cost, condition);
|
this(Zone.BATTLEFIELD, effect, cost, condition);
|
||||||
}
|
}
|
||||||
|
|
@ -24,6 +31,24 @@ public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl {
|
||||||
|
|
||||||
protected ActivateIfConditionActivatedAbility(final ActivateIfConditionActivatedAbility ability) {
|
protected ActivateIfConditionActivatedAbility(final ActivateIfConditionActivatedAbility ability) {
|
||||||
super(ability);
|
super(ability);
|
||||||
|
this.conditionText = ability.conditionText;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Effects getEffects(Game game, EffectType effectType) {
|
||||||
|
if (!condition.apply(game, this)) {
|
||||||
|
return emptyEffects;
|
||||||
|
}
|
||||||
|
return super.getEffects(game, effectType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ActivateIfConditionActivatedAbility hideCondition() {
|
||||||
|
return withConditionText("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public ActivateIfConditionActivatedAbility withConditionText(String conditionText) {
|
||||||
|
this.conditionText = conditionText;
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -48,7 +73,6 @@ public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl {
|
||||||
sb.append(" and only as a sorcery");
|
sb.append(" and only as a sorcery");
|
||||||
}
|
}
|
||||||
sb.append('.');
|
sb.append('.');
|
||||||
|
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -56,5 +80,4 @@ public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl {
|
||||||
public ActivateIfConditionActivatedAbility copy() {
|
public ActivateIfConditionActivatedAbility copy() {
|
||||||
return new ActivateIfConditionActivatedAbility(this);
|
return new ActivateIfConditionActivatedAbility(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue