mirror of
https://github.com/correl/mage.git
synced 2024-12-26 11:09:27 +00:00
Fixed a bug of ZoneChangeAllTriggeredAbility trying to get permanent from battelfield if permanent left battlefield.
This commit is contained in:
parent
20a0e16604
commit
2259a534b2
2 changed files with 12 additions and 4 deletions
|
@ -75,7 +75,12 @@ public class ZoneChangeAllTriggeredAbility<T extends ZoneChangeAllTriggeredAbili
|
|||
if (event.getType() == EventType.ZONE_CHANGE) {
|
||||
ZoneChangeEvent zEvent = (ZoneChangeEvent)event;
|
||||
if ((fromZone == null || zEvent.getFromZone() == fromZone) && (toZone == null || zEvent.getToZone() == toZone)) {
|
||||
Permanent perm = game.getPermanent(event.getTargetId());
|
||||
Permanent perm;
|
||||
if (zEvent.getTarget() != null) {
|
||||
perm = zEvent.getTarget();
|
||||
} else {
|
||||
perm = game.getPermanent(event.getTargetId()); // LevelX2: maybe this part is not neccessary
|
||||
}
|
||||
if (perm != null && filter.match(perm, sourceId, controllerId, game)) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -67,18 +67,21 @@ public class ProtectionAbility extends StaticAbility<ProtectionAbility> {
|
|||
|
||||
public boolean canTarget(MageObject source, Game game) {
|
||||
if (filter instanceof FilterPermanent) {
|
||||
if (source instanceof Permanent)
|
||||
if (source instanceof Permanent) {
|
||||
return !filter.match(source, game);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (filter instanceof FilterSpell) {
|
||||
if (source instanceof Spell)
|
||||
if (source instanceof Spell) {
|
||||
return !filter.match(source, game);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (filter instanceof FilterCard) {
|
||||
if (source instanceof Card)
|
||||
if (source instanceof Card) {
|
||||
return !filter.match(source, game);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (filter instanceof FilterObject) {
|
||||
|
|
Loading…
Reference in a new issue