[LTR] Implement Radagast the Brown; also resolves #9419 (#10568)

* Fix #9419 bug with EntersBattlefieldThisOrAnotherTriggeredAbility
* Add test for Radagast as well as Risen Reef and Caldaia Guardian
* Minor associated cleanup for EntersBattlefieldAllTriggeredAbility
* New PermanentEnteringBattlefieldManaValue
This commit is contained in:
Bobby McCann 2023-07-10 03:04:45 +01:00 committed by GitHub
parent 39904d0ca3
commit 73104f6705
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 344 additions and 46 deletions

View file

@ -21,7 +21,6 @@ public class EntersBattlefieldAllTriggeredAbility extends TriggeredAbilityImpl {
protected String rule;
protected boolean controlledText;
protected SetTargetPointer setTargetPointer;
protected final boolean thisOrAnother;
/**
* zone = BATTLEFIELD optional = false
@ -54,16 +53,11 @@ public class EntersBattlefieldAllTriggeredAbility extends TriggeredAbilityImpl {
}
public EntersBattlefieldAllTriggeredAbility(Zone zone, Effect effect, FilterPermanent filter, boolean optional, SetTargetPointer setTargetPointer, String rule, boolean controlledText) {
this(zone, effect, filter, optional, setTargetPointer, rule, controlledText, false);
}
protected EntersBattlefieldAllTriggeredAbility(Zone zone, Effect effect, FilterPermanent filter, boolean optional, SetTargetPointer setTargetPointer, String rule, boolean controlledText, boolean thisOrAnother) {
super(zone, effect, optional);
this.filter = filter;
this.rule = rule;
this.controlledText = controlledText;
this.setTargetPointer = setTargetPointer;
this.thisOrAnother = thisOrAnother;
setTriggerPhrase(generateTriggerPhrase());
}
@ -73,7 +67,6 @@ public class EntersBattlefieldAllTriggeredAbility extends TriggeredAbilityImpl {
this.rule = ability.rule;
this.controlledText = ability.controlledText;
this.setTargetPointer = ability.setTargetPointer;
this.thisOrAnother = ability.thisOrAnother;
}
@Override
@ -93,12 +86,13 @@ public class EntersBattlefieldAllTriggeredAbility extends TriggeredAbilityImpl {
switch (setTargetPointer) {
case PLAYER:
this.getEffects().setTargetPointer(new FixedTarget(permanent.getControllerId()));
return true;
break;
case PERMANENT:
this.getEffects().setTargetPointer(new FixedTarget(permanent, game));
break;
default:
return true;
}
return true;
}
@Override
@ -111,9 +105,6 @@ public class EntersBattlefieldAllTriggeredAbility extends TriggeredAbilityImpl {
protected String generateTriggerPhrase() {
StringBuilder sb = new StringBuilder("Whenever ");
if (thisOrAnother) {
sb.append("{this} or another ");
}
sb.append(filter.getMessage());
if (filter.getMessage().startsWith("one or more")) {
sb.append(" enter the battlefield");