mirror of
https://github.com/magefree/mage.git
synced 2025-12-30 07:22:03 -08:00
* Trickbind and Stiffle - Fixed that the spells could wronly also counter spells.
This commit is contained in:
parent
f0e8041906
commit
2326fcc0d1
4 changed files with 21 additions and 21 deletions
|
|
@ -33,8 +33,7 @@ import java.util.Set;
|
|||
import java.util.UUID;
|
||||
import mage.constants.Zone;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.ActivatedAbility;
|
||||
import mage.abilities.TriggeredAbility;
|
||||
import mage.constants.AbilityType;
|
||||
import mage.filter.Filter;
|
||||
import mage.filter.FilterAbility;
|
||||
import mage.game.Game;
|
||||
|
|
@ -69,10 +68,7 @@ public class TargetActivatedOrTriggeredAbility extends TargetObject {
|
|||
}
|
||||
|
||||
StackObject stackObject = game.getStack().getStackObject(id);
|
||||
if (stackObject.getStackAbility() != null && (stackObject.getStackAbility() instanceof ActivatedAbility || stackObject.getStackAbility() instanceof TriggeredAbility)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return isActivatedOrTriggeredAbility(stackObject);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -82,11 +78,11 @@ public class TargetActivatedOrTriggeredAbility extends TargetObject {
|
|||
|
||||
@Override
|
||||
public boolean canChoose(UUID sourceControllerId, Game game) {
|
||||
for (StackObject stackObject : game.getStack()) {
|
||||
if (stackObject.getStackAbility() != null && (stackObject.getStackAbility() instanceof ActivatedAbility || stackObject.getStackAbility() instanceof TriggeredAbility) && game.getPlayer(sourceControllerId).getInRange().contains(stackObject.getStackAbility().getControllerId())) {
|
||||
return true;
|
||||
}
|
||||
for (StackObject stackObject : game.getStack()) {
|
||||
if (isActivatedOrTriggeredAbility(stackObject)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -99,7 +95,7 @@ public class TargetActivatedOrTriggeredAbility extends TargetObject {
|
|||
public Set<UUID> possibleTargets(UUID sourceControllerId, Game game) {
|
||||
Set<UUID> possibleTargets = new HashSet<>();
|
||||
for (StackObject stackObject : game.getStack()) {
|
||||
if (stackObject.getStackAbility() != null && (stackObject.getStackAbility() instanceof ActivatedAbility || stackObject.getStackAbility() instanceof TriggeredAbility) && game.getPlayer(sourceControllerId).getInRange().contains(stackObject.getStackAbility().getControllerId())) {
|
||||
if (isActivatedOrTriggeredAbility(stackObject)) {
|
||||
possibleTargets.add(stackObject.getStackAbility().getId());
|
||||
}
|
||||
}
|
||||
|
|
@ -116,4 +112,15 @@ public class TargetActivatedOrTriggeredAbility extends TargetObject {
|
|||
return new FilterAbility();
|
||||
}
|
||||
|
||||
static boolean isActivatedOrTriggeredAbility(StackObject stackObject) {
|
||||
if (stackObject == null) {
|
||||
return false;
|
||||
}
|
||||
if (stackObject instanceof Ability) {
|
||||
Ability ability = (Ability)stackObject;
|
||||
return ability.getAbilityType().equals(AbilityType.TRIGGERED)
|
||||
|| ability.getAbilityType().equals(AbilityType.ACTIVATED);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue