cleanup EntersBattlefieldAllTriggeredAbility and subclasses (#11372)

* comment out rule override to use generated text instead

* new ETB Opponent trigger class

* text improvements

* update ETB cast trigger

* remove controlledtext parameter

* more text improvements

* more fixes

* lots of other fixes

* most of the remaining fixes

* fix halana text

* fix smoke shroud text

* improve text gen

* remove rule param from constructors

* minor adjustments

* whenever a player puts

* final fixes

* standardize when/whenever phrase generation
This commit is contained in:
xenohedron 2023-10-31 21:00:45 -04:00 committed by GitHub
parent c53db0810d
commit ebf71941a9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
161 changed files with 504 additions and 839 deletions

View file

@ -2,7 +2,7 @@ package mage.abilities;
import mage.MageObject;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DoIfCostPaid;
import mage.abilities.effects.common.*;
import mage.constants.AbilityType;
import mage.constants.AbilityWord;
import mage.constants.Zone;
@ -257,6 +257,19 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
|| ruleLow.startsWith("untap");
}
/**
* For use in generating trigger phrases with correct text
* @return "When " for an effect that always removes the source from the battlefield, otherwise "Whenever "
*/
protected final String getWhen() {
return (!optional && getAllEffects().stream().anyMatch(
effect -> effect instanceof SacrificeSourceEffect
|| effect instanceof ReturnToHandSourceEffect
|| effect instanceof ShuffleIntoLibrarySourceEffect
|| effect instanceof ExileSourceEffect
) ? "When " : "Whenever ");
}
@Override
public boolean isInUseableZone(Game game, MageObject source, GameEvent event) {