mirror of
https://github.com/magefree/mage.git
synced 2025-12-30 07:22:03 -08:00
Remove custom multitarget handling from ReturnToHandTargetEffect (use EachTargetPointer instead)
This commit is contained in:
parent
dc33531792
commit
7c2f76b46b
19 changed files with 63 additions and 146 deletions
|
|
@ -46,24 +46,7 @@ public class ReturnFromGraveyardToHandTargetEffect extends OneShotEffect {
|
|||
if (staticText != null && !staticText.isEmpty()) {
|
||||
return staticText;
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
Target target = mode.getTargets().get(0);
|
||||
sb.append("return ");
|
||||
if (target.getMaxNumberOfTargets() != target.getNumberOfTargets()) {
|
||||
sb.append("up to ");
|
||||
sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())).append(' ');
|
||||
} else if (target.getMaxNumberOfTargets() > 1) {
|
||||
sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())).append(' ');
|
||||
}
|
||||
if (!target.getTargetName().startsWith("another")) {
|
||||
sb.append("target ");
|
||||
}
|
||||
sb.append(target.getTargetName());
|
||||
if (!target.getTargetName().endsWith("graveyard")) {
|
||||
sb.append(" from your graveyard");
|
||||
}
|
||||
sb.append(" to your hand");
|
||||
return sb.toString();
|
||||
String targetDescription = getTargetPointer().describeTargets(mode.getTargets(), "");
|
||||
return "return " + targetDescription + (targetDescription.contains("graveyard") ? " to your hand" : " from your graveyard to your hand");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,20 +20,12 @@ import java.util.*;
|
|||
*/
|
||||
public class ReturnToHandTargetEffect extends OneShotEffect {
|
||||
|
||||
protected boolean multitargetHandling;
|
||||
|
||||
public ReturnToHandTargetEffect() {
|
||||
this(false);
|
||||
}
|
||||
|
||||
public ReturnToHandTargetEffect(boolean multitargetHandling) {
|
||||
super(Outcome.ReturnToHand);
|
||||
this.multitargetHandling = multitargetHandling;
|
||||
}
|
||||
|
||||
public ReturnToHandTargetEffect(final ReturnToHandTargetEffect effect) {
|
||||
super(effect);
|
||||
this.multitargetHandling = effect.multitargetHandling;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -49,18 +41,6 @@ public class ReturnToHandTargetEffect extends OneShotEffect {
|
|||
}
|
||||
List<UUID> copyIds = new ArrayList<>();
|
||||
Set<Card> cards = new LinkedHashSet<>();
|
||||
if (multitargetHandling) {
|
||||
for (Target target : source.getTargets()) {
|
||||
for (UUID targetId : target.getTargets()) {
|
||||
MageObject mageObject = game.getObject(targetId);
|
||||
if (mageObject instanceof Spell && mageObject.isCopy()) {
|
||||
copyIds.add(targetId);
|
||||
} else if (mageObject instanceof Card) {
|
||||
cards.add((Card) mageObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (UUID targetId : targetPointer.getTargets(game, source)) {
|
||||
MageObject mageObject = game.getObject(targetId);
|
||||
if (mageObject != null) {
|
||||
|
|
@ -72,7 +52,6 @@ public class ReturnToHandTargetEffect extends OneShotEffect {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (UUID copyId : copyIds) {
|
||||
game.getStack().remove(game.getSpell(copyId), game);
|
||||
}
|
||||
|
|
@ -80,35 +59,12 @@ public class ReturnToHandTargetEffect extends OneShotEffect {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getText(Mode mode
|
||||
) {
|
||||
public String getText(Mode mode)
|
||||
{
|
||||
if (staticText != null && !staticText.isEmpty()) {
|
||||
return staticText;
|
||||
}
|
||||
if (mode.getTargets().size() < 1) {
|
||||
return "";
|
||||
}
|
||||
Target target = mode.getTargets().get(0);
|
||||
StringBuilder sb = new StringBuilder("return ");
|
||||
if (target.getMinNumberOfTargets() == 0 && target.getMaxNumberOfTargets() >= 1) {
|
||||
sb.append("up to ");
|
||||
sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())).append(" ");
|
||||
} else if (!(target.getMinNumberOfTargets() == 1 || target.getMaxNumberOfTargets() == 1)) {
|
||||
sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())).append(" ");
|
||||
}
|
||||
if (!target.getTargetName().contains("target")) {
|
||||
sb.append("target ");
|
||||
}
|
||||
sb.append(target.getTargetName());
|
||||
if (target.getMaxNumberOfTargets() > 1 && !target.getTargetName().endsWith("s") && !target.getTargetName().endsWith("control")) {
|
||||
sb.append('s');
|
||||
}
|
||||
if (target.getMaxNumberOfTargets() > 1) {
|
||||
sb.append(" to their owners' hands");
|
||||
} else {
|
||||
sb.append(" to its owner's hand");
|
||||
}
|
||||
return sb.toString();
|
||||
return "return " + getTargetPointer().describeTargets(mode.getTargets(), "") +
|
||||
(getTargetPointer().isPlural(mode.getTargets()) ? " to their owners' hands" : " to its owner's hand");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue