[CMM] Implement Omarthis, Ghostfire Initiate (#10681)

ManifestEffect now takes a DynamicValue
This commit is contained in:
Susucre 2023-07-29 03:27:29 +02:00 committed by GitHub
parent 2b3f775aaf
commit 286696800e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 117 additions and 14 deletions

View file

@ -39,16 +39,17 @@ public class PutCounterOnCreatureTriggeredAbility extends TriggeredAbilityImpl {
}
public PutCounterOnCreatureTriggeredAbility(Effect effect, Counter counter, FilterPermanent filter, boolean setTargetPointer) {
super(Zone.BATTLEFIELD, effect);
this(effect, counter, filter, setTargetPointer, false);
}
public PutCounterOnCreatureTriggeredAbility(Effect effect, Counter counter, FilterPermanent filter, boolean setTargetPointer, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
this.counterType = counter;
this.filter = filter;
this.setTargetPointer = setTargetPointer;
if (counter == null) {
setTriggerPhrase("Whenever you put one or more counters on a " + filter.getMessage() + ", ");
}
else {
setTriggerPhrase("Whenever you put one or more " + counter.getName() + " counters on a " + filter.getMessage() + ", ");
}
setFilterMessage();
}
public PutCounterOnCreatureTriggeredAbility(final PutCounterOnCreatureTriggeredAbility ability) {
@ -89,4 +90,17 @@ public class PutCounterOnCreatureTriggeredAbility extends TriggeredAbilityImpl {
getEffects().setValue("countersAdded", event.getAmount());
return true;
}
private void setFilterMessage() {
String filterMessage = filter.getMessage();
if (!filterMessage.startsWith("another")) {
filterMessage = "a " + filterMessage;
}
if (this.counterType == null) {
setTriggerPhrase("Whenever you put one or more counters on " + filterMessage + ", ");
} else {
setTriggerPhrase("Whenever you put one or more " + this.counterType.getName() + " counters on " + filterMessage + ", ");
}
}
}