[ACR] Implement 4x Equipment-related cards (#12593)

* Assassin Gauntlet

* Fix many minor mistakes in ACR cards

* Battlefield Improvisation

* Phantom Blade

* Misthios's Fury

* Fix unset target tag, missing damage amount text

* Remove now-unneeded setText calls for DamageTargetControllerEffect
This commit is contained in:
ssk97 2024-07-22 23:20:18 -07:00 committed by GitHub
parent 88443f5fb4
commit 3933364e6e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 318 additions and 61 deletions

View file

@ -15,13 +15,18 @@ import mage.players.Player;
*/
public class DamageTargetControllerEffect extends OneShotEffect {
protected DynamicValue amount;
protected boolean preventable;
protected final DynamicValue amount;
protected final boolean preventable;
protected final String name;
public DamageTargetControllerEffect(int amount) {
this(StaticValue.get(amount), true);
}
public DamageTargetControllerEffect(int amount, String name) {
this(StaticValue.get(amount), true, name);
}
public DamageTargetControllerEffect(int amount, boolean preventable) {
this(StaticValue.get(amount), preventable);
}
@ -30,16 +35,26 @@ public class DamageTargetControllerEffect extends OneShotEffect {
this(amount, true);
}
public DamageTargetControllerEffect(DynamicValue amount, String name) {
this(amount, true, name);
}
public DamageTargetControllerEffect(DynamicValue amount, boolean preventable) {
this(amount, preventable, "creature");
}
public DamageTargetControllerEffect(DynamicValue amount, boolean preventable, String name) {
super(Outcome.Damage);
this.amount = amount;
this.preventable = preventable;
this.name = name;
}
protected DamageTargetControllerEffect(final DamageTargetControllerEffect effect) {
super(effect);
amount = effect.amount.copy();
preventable = effect.preventable;
this.amount = effect.amount.copy();
this.preventable = effect.preventable;
this.name = effect.name;
}
@Override
@ -65,9 +80,12 @@ public class DamageTargetControllerEffect extends OneShotEffect {
if (staticText != null && !staticText.isEmpty()) {
return staticText;
}
return "{this} deals " + amount.getMessage() + " damage to "
+ getTargetPointer().describeTargets(mode.getTargets(), "that creature")
+ "'s controller"
String message = amount.getMessage();
if (message.isEmpty()) {
message = amount.toString();
}
return "{this} deals " + message + " damage to that "
+ name + "'s controller"
+ (preventable ? "" : ". The damage can't be prevented");
}
}

View file

@ -11,7 +11,7 @@ import mage.constants.SubType;
public final class AssassinMenaceToken extends TokenImpl {
public AssassinMenaceToken() {
super("Assassin Token", "1/1 black Assassin creature token menace");
super("Assassin Token", "1/1 black Assassin creature token with menace");
cardType.add(CardType.CREATURE);
color.setBlack(true);
subtype.add(SubType.ASSASSIN);