mirror of
https://github.com/magefree/mage.git
synced 2025-12-24 20:41:58 -08:00
* Fixed that not all Equip abilities were correctly identified for abilities that changed Equip timig (e.g. Leonin Shikari - fixes #6907).
This commit is contained in:
parent
ffa837ae95
commit
7cfe39ae21
9 changed files with 87 additions and 51 deletions
|
|
@ -19,7 +19,7 @@ import mage.game.Game;
|
|||
*/
|
||||
public class ActivateAbilitiesAnyTimeYouCouldCastInstantEffect extends AsThoughEffectImpl {
|
||||
|
||||
private Class activatedAbility;
|
||||
private final Class activatedAbility;
|
||||
|
||||
public ActivateAbilitiesAnyTimeYouCouldCastInstantEffect(Class activatedAbility, String activatedAbilityName) {
|
||||
super(AsThoughEffectType.ACTIVATE_AS_INSTANT, Duration.EndOfGame, Outcome.Benefit);
|
||||
|
|
@ -45,7 +45,7 @@ public class ActivateAbilitiesAnyTimeYouCouldCastInstantEffect extends AsThoughE
|
|||
@Override
|
||||
public boolean applies(UUID objectId, Ability affectedAbility, Ability source, Game game, UUID playerId) {
|
||||
return affectedAbility.isControlledBy(source.getControllerId())
|
||||
&& activatedAbility.isInstance(affectedAbility);
|
||||
&& activatedAbility.isAssignableFrom(affectedAbility.getClass());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import mage.target.common.TargetControlledCreaturePermanent;
|
|||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
public class EquipAbility extends ActivatedAbilityImpl {
|
||||
|
||||
|
||||
public EquipAbility(int cost) {
|
||||
this(Outcome.AddAbility, new GenericManaCost(cost));
|
||||
}
|
||||
|
|
@ -26,7 +26,7 @@ public class EquipAbility extends ActivatedAbilityImpl {
|
|||
public EquipAbility(Outcome outcome, Cost cost, Target target) {
|
||||
super(Zone.BATTLEFIELD, new EquipEffect(outcome), cost);
|
||||
this.addTarget(target);
|
||||
this.timing = TimingRule.SORCERY;
|
||||
this.timing = TimingRule.SORCERY;
|
||||
}
|
||||
|
||||
public EquipAbility(final EquipAbility ability) {
|
||||
|
|
@ -40,7 +40,13 @@ public class EquipAbility extends ActivatedAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Equip " + costs.getText() + manaCosts.getText() + " <i>(" + manaCosts.getText() + ": Attach to target creature you control. Equip only as a sorcery.)</i>";
|
||||
String targetText = getTargets().get(0) != null ? getTargets().get(0).getFilter().getMessage() : "creature";
|
||||
|
||||
return "Equip "
|
||||
+ (targetText.equals("creature you control") ? "" : targetText + " ")
|
||||
+ costs.getText()
|
||||
+ manaCosts.getText()
|
||||
+ " <i>(" + manaCosts.getText() + ": Attach to target " + targetText + " you control. Equip only as a sorcery. This card enters the battlefield unattached and stays on the battlefield if the creature leaves.)</i>";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,40 +0,0 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.abilities.ActivatedAbilityImpl;
|
||||
import mage.abilities.costs.Cost;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.TimingRule;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public class EquipFilterAbility extends ActivatedAbilityImpl {
|
||||
|
||||
private final FilterControlledCreaturePermanent filter;
|
||||
|
||||
public EquipFilterAbility(FilterControlledCreaturePermanent filter, Cost cost) {
|
||||
super(Zone.BATTLEFIELD, new AttachEffect(Outcome.AddAbility, "Equip"), cost);
|
||||
this.addTarget(new TargetControlledCreaturePermanent(filter));
|
||||
this.filter = filter;
|
||||
this.timing = TimingRule.SORCERY;
|
||||
}
|
||||
|
||||
private EquipFilterAbility(final EquipFilterAbility ability) {
|
||||
super(ability);
|
||||
this.filter = ability.filter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EquipFilterAbility copy() {
|
||||
return new EquipFilterAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Equip " + filter.getMessage() + costs.getText() + manaCosts.getText();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue