[KHM] fixed Orvar, the All-Form triggered ability not working correctly

This commit is contained in:
Evan Kranzler 2021-02-05 11:33:42 -05:00
parent 25f929d70e
commit ece9108695
3 changed files with 37 additions and 8 deletions

View file

@ -1,5 +1,6 @@
package mage;
import mage.abilities.Ability;
import mage.cards.Card;
import mage.constants.Zone;
import mage.game.Game;
@ -52,6 +53,15 @@ public class MageObjectReference implements Comparable<MageObjectReference>, Ser
this.zoneChangeCounter = -1;
}
public MageObjectReference(Ability source) {
this(source, 0);
}
public MageObjectReference(Ability source, int modifier) {
this.sourceId = source.getSourceId();
this.zoneChangeCounter = source.getSourceObjectZoneChangeCounter() + modifier;
}
/**
* @param sourceId can be null
* @param game

View file

@ -31,8 +31,8 @@ public class ConditionalInterveningIfTriggeredAbility extends TriggeredAbilityIm
*
* @param ability
* @param condition
* @param text explicit rule text for the ability, if null or empty, the
* rule text generated by the triggered ability itself is used.
* @param text explicit rule text for the ability, if null or empty, the
* rule text generated by the triggered ability itself is used.
*/
public ConditionalInterveningIfTriggeredAbility(TriggeredAbility ability, Condition condition, String text) {
super(ability.getZone(), null);
@ -112,4 +112,14 @@ public class ConditionalInterveningIfTriggeredAbility extends TriggeredAbilityIm
public boolean isOptional() {
return ability.isOptional();
}
@Override
public void setSourceObjectZoneChangeCounter(int sourceObjectZoneChangeCounter) {
ability.setSourceObjectZoneChangeCounter(sourceObjectZoneChangeCounter);
}
@Override
public int getSourceObjectZoneChangeCounter() {
return ability.getSourceObjectZoneChangeCounter();
}
}