mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +00:00
Refactored Grand Architect.
This commit is contained in:
parent
0c3feda6dd
commit
fe4376ea71
2 changed files with 24 additions and 55 deletions
|
@ -79,29 +79,6 @@ class EldraziTempleManaAbility extends BasicManaAbility<EldraziTempleManaAbility
|
|||
super(ability);
|
||||
}
|
||||
|
||||
/*@Override
|
||||
public boolean canActivate(UUID playerId, Game game) {
|
||||
boolean eldraziSpellBeingCast = false;
|
||||
|
||||
SpellStack stack = game.getStack();
|
||||
for ( int idx = 0; idx < stack.size(); idx++ ) {
|
||||
StackObject stackObject = stack.get(idx);
|
||||
if ( stackObject.getControllerId().equals(playerId) ) {
|
||||
eldraziSpellBeingCast |= stackObject.getSubtype().contains("Eldrazi");
|
||||
MageObject source = game.getObject(stackObject.getSourceId());
|
||||
if (source != null)
|
||||
eldraziSpellBeingCast |= source.getSubtype().contains("Eldrazi");
|
||||
}
|
||||
}
|
||||
|
||||
return super.canActivate(playerId, game) && eldraziSpellBeingCast;
|
||||
}*/
|
||||
|
||||
@Override
|
||||
public String getRule(String source) {
|
||||
return super.getRule(source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EldraziTempleManaAbility copy ( ) {
|
||||
return new EldraziTempleManaAbility(this);
|
||||
|
|
|
@ -30,6 +30,7 @@ package mage.sets.scarsofmirrodin;
|
|||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.ConditionalMana;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Duration;
|
||||
import mage.Constants.Layer;
|
||||
|
@ -43,6 +44,7 @@ import mage.Mana;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.costs.common.TapTargetCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.ContinuousEffectImpl;
|
||||
|
@ -137,8 +139,6 @@ class GrandArchitectEffect extends ContinuousEffectImpl<GrandArchitectEffect> {
|
|||
|
||||
class GrandArchitectManaAbility extends ManaAbility<GrandArchitectManaAbility> {
|
||||
|
||||
private static final String abilityText = "Spend this mana only to cast artifact spells or activate abilities of artifacts. "
|
||||
+ "<b>(Mage Tip: This ability can only be activated when an artifact spell or ability is on the stack.)</b>";
|
||||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("untapped blue creature");
|
||||
|
||||
static {
|
||||
|
@ -149,7 +149,7 @@ class GrandArchitectManaAbility extends ManaAbility<GrandArchitectManaAbility> {
|
|||
}
|
||||
|
||||
GrandArchitectManaAbility ( ) {
|
||||
super(Zone.BATTLEFIELD, new BasicManaEffect(Mana.ColorlessMana(2)), new TapTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, true)));
|
||||
super(Zone.BATTLEFIELD, new BasicManaEffect(new GrandArchitectConditionalMana()), new TapTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, true)));
|
||||
this.netMana.setColorless(2);
|
||||
}
|
||||
|
||||
|
@ -157,36 +157,28 @@ class GrandArchitectManaAbility extends ManaAbility<GrandArchitectManaAbility> {
|
|||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canActivate(UUID playerId, Game game) {
|
||||
boolean artifactSpellBeingCast = false;
|
||||
|
||||
SpellStack stack = game.getStack();
|
||||
for ( int idx = 0; idx < stack.size(); idx++ ) {
|
||||
StackObject stackObject = stack.get(idx);
|
||||
if ( stackObject.getControllerId().equals(playerId) ) {
|
||||
artifactSpellBeingCast |= stackObject.getCardType().contains(CardType.ARTIFACT);
|
||||
MageObject source = game.getObject(stackObject.getSourceId());
|
||||
if (source != null)
|
||||
artifactSpellBeingCast |= source.getCardType().contains(CardType.ARTIFACT);
|
||||
}
|
||||
}
|
||||
|
||||
return super.canActivate(playerId, game) && artifactSpellBeingCast;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return super.getRule() + " " + abilityText;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule(String source) {
|
||||
return super.getRule(source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GrandArchitectManaAbility copy ( ) {
|
||||
return new GrandArchitectManaAbility(this);
|
||||
}
|
||||
}
|
||||
|
||||
class GrandArchitectConditionalMana extends ConditionalMana {
|
||||
|
||||
public GrandArchitectConditionalMana() {
|
||||
super(Mana.ColorlessMana(2));
|
||||
staticText = "Spend this mana only to cast artifact spells or activate abilities of artifacts";
|
||||
addCondition(new GrandArchitectManaCondition());
|
||||
}
|
||||
}
|
||||
|
||||
class GrandArchitectManaCondition implements Condition {
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
MageObject object = game.getObject(source.getSourceId());
|
||||
if (object != null && object.getCardType().contains(CardType.ARTIFACT)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue