Created class for reflexive triggered abilities (Ready for review) (#6500)

* added class for reflexive triggered abilities

* added DoWhenCostPaid

* a few more refactors

* some more refactoring

* almost all refactors done

* finished refactoring

* updated text generation

* Delete SendOptionUsedEventEffect.java

* fixed Wildborn Preserver text
This commit is contained in:
Evan Kranzler 2020-05-04 20:51:38 -04:00 committed by GitHub
parent 8a3ba6729f
commit bde65d6279
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 505 additions and 1278 deletions

View file

@ -6,6 +6,7 @@ import mage.abilities.*;
import mage.abilities.common.AttachableToRestrictedAbility;
import mage.abilities.common.CantHaveMoreThanAmountCountersSourceAbility;
import mage.abilities.common.SagaAbility;
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.ContinuousEffects;
import mage.abilities.effects.Effect;
@ -1748,6 +1749,13 @@ public abstract class GameImpl implements Game, Serializable {
return newAbility.getId();
}
@Override
public UUID fireReflexiveTriggeredAbility(ReflexiveTriggeredAbility reflexiveAbility, Ability source) {
UUID uuid = this.addDelayedTriggeredAbility(reflexiveAbility, source);
this.fireEvent(GameEvent.getEvent(GameEvent.EventType.OPTION_USED, source.getOriginalId(), source.getSourceId(), source.getControllerId()));
return uuid;
}
/**
* 116.5. Each time a player would get priority, the game first performs all
* applicable state-based actions as a single event (see rule 704,