forked from External/mage
refactor: improved ETB rules generations, fixed some cards/abilities (related to #12791)
This commit is contained in:
parent
0d0661cc92
commit
19269b22b0
24 changed files with 129 additions and 41 deletions
|
|
@ -4,6 +4,7 @@ import mage.MageObject;
|
|||
import mage.MageObjectImpl;
|
||||
import mage.Mana;
|
||||
import mage.abilities.*;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.continuous.HasSubtypesSourceEffect;
|
||||
import mage.abilities.keyword.ChangelingAbility;
|
||||
|
|
@ -344,19 +345,18 @@ public abstract class CardImpl extends MageObjectImpl implements Card {
|
|||
}
|
||||
}
|
||||
|
||||
// rules fix: workaround to add text auto-replacement for creature's ETB
|
||||
if (this.isCreature() && ability.getRule().startsWith("When {this} enters") && ability instanceof TriggeredAbility) {
|
||||
TriggeredAbility triggeredAbility = ((TriggeredAbility) ability);
|
||||
if (triggeredAbility.getTriggerPhrase() != null) {
|
||||
// TODO: delete or enable after wizards update all cards, not last sets only, see https://github.com/magefree/mage/issues/12791
|
||||
//triggeredAbility.setTriggerPhrase(triggeredAbility.getTriggerPhrase().replace("{this}", "this creature"));
|
||||
// rules fix: workaround to fix "When {this} enters" into "When this xxx enters"
|
||||
if (EntersBattlefieldTriggeredAbility.ENABLE_TRIGGER_PHRASE_AUTO_FIX) {
|
||||
if (ability instanceof TriggeredAbility) {
|
||||
TriggeredAbility triggeredAbility = ((TriggeredAbility) ability);
|
||||
if (triggeredAbility.getTriggerPhrase() != null && triggeredAbility.getTriggerPhrase().startsWith("When {this} enters")) {
|
||||
// there are old sets with old oracle, but it's ok for newer sets, so keep that rules fix
|
||||
// see https://github.com/magefree/mage/issues/12791
|
||||
String etbDescription = EntersBattlefieldTriggeredAbility.getThisObjectDescription(this);
|
||||
triggeredAbility.setTriggerPhrase(triggeredAbility.getTriggerPhrase().replace("{this}", etbDescription));
|
||||
}
|
||||
}
|
||||
}
|
||||
// verify check: all creatures with ETB must use "When this creature enters" instead "When {this} enters"
|
||||
if (this.isCreature() && ability.getRule().startsWith("When {this} enters")) {
|
||||
// see above
|
||||
//throw new IllegalArgumentException("Wrong code usage: creature's ETB ability must use text like \"When this creature enters\"");
|
||||
}
|
||||
}
|
||||
|
||||
protected void addAbility(Ability ability, Watcher watcher) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue