Remove ConditionalTriggeredAbility and add trigger condition into triggered abilities (#13656)

* remove ConditionalTriggeredAbility

* a few small fixes

* merge fix

* simplify phrase handling

* add documentation

* a few text fixes

* update wording
This commit is contained in:
Evan Kranzler 2025-05-23 07:03:14 -04:00 committed by GitHub
parent c42c58c67d
commit 8f83a807f5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
47 changed files with 332 additions and 544 deletions

View file

@ -66,10 +66,35 @@ public interface TriggeredAbility extends Ability {
*/
TriggeredAbility withRuleTextReplacement(boolean replaceRuleText);
/**
* 603.4. A triggered ability may read "When/Whenever/At [trigger event], if [condition], [effect]."
* When the trigger event occurs, the ability checks whether the stated condition is true.
* The ability triggers only if it is; otherwise it does nothing. If the ability triggers,
* it checks the stated condition again as it resolves. If the condition isn't true at that time,
* the ability is removed from the stack and does nothing. Note that this mirrors the check for legal targets.
* This rule is referred to as the "intervening 'if' clause" rule.
* (The word "if" has only its normal English meaning anywhere else in the text of a card;
* this rule only applies to an "if" that immediately follows a trigger condition.)
*
* @param condition the condition to be checked
* @return
*/
TriggeredAbility withInterveningIf(Condition condition);
boolean checkInterveningIfClause(Game game);
/**
* Unlike intervening if, this is for a condition that's checked only on trigger and not also on resolution.
*
* @param condition the condition to be checked
* @return
*/
TriggeredAbility withTriggerCondition(Condition condition);
Condition getTriggerCondition();
boolean checkTriggerCondition(Game game);
boolean isOptional();
TriggeredAbility setOptional();