CardFactoryUtil: makeEtbCounter now works without SVar

This commit is contained in:
Hanmac
2016-07-23 14:20:41 +00:00
parent 74cb0ef297
commit c4059005df

View File

@@ -2860,24 +2860,27 @@ public class CardFactoryUtil {
desc = !splitkw[4].equals("no desc") ? splitkw[4] : ""; desc = !splitkw[4].equals("no desc") ? splitkw[4] : "";
} }
String abStr = "DB$ PutCounter | Defined$ Self | CounterType$ " + splitkw[1] String abStr = "DB$ PutCounter | Defined$ Self | CounterType$ " + splitkw[1]
+ " | ETB$ True | CounterNum$ " + amount + " | SubAbility$ ETBCounterDBSVar"; + " | ETB$ True | CounterNum$ " + amount;
String dbStr = "DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Battlefield"
+ "| Defined$ ReplacedCard"; if (!StringUtils.isNumeric(amount)) {
try {
Integer.parseInt(amount);
}
catch (NumberFormatException ignored) {
abStr += " | References$ " + amount; abStr += " | References$ " + amount;
} }
card.setSVar("ETBCounterSVar", abStr);
card.setSVar("ETBCounterDBSVar", dbStr); SpellAbility sa = AbilityFactory.getAbility(abStr, card);
SpellAbility sub = setupETBReplacementAbility(sa);
if (!intrinsic) {
sa.setIntrinsic(false);
sub.setIntrinsic(false);
}
String repeffstr = "Event$ Moved | ValidCard$ Card.Self | Destination$ Battlefield " String repeffstr = "Event$ Moved | ValidCard$ Card.Self | Destination$ Battlefield "
+ "| ReplaceWith$ ETBCounterSVar | Description$ " + desc + (!extraparams.equals("") ? " | " + extraparams : ""); + "| Description$ " + desc + (!extraparams.equals("") ? " | " + extraparams : "");
ReplacementEffect re = ReplacementHandler.parseReplacement(repeffstr, card, intrinsic); ReplacementEffect re = ReplacementHandler.parseReplacement(repeffstr, card, intrinsic);
re.setLayer(ReplacementLayer.Other); re.setLayer(ReplacementLayer.Other);
re.setOverridingAbility(sa);
return card.addReplacementEffect(re); return card.addReplacementEffect(re);
} }
@@ -3437,8 +3440,10 @@ public class CardFactoryUtil {
} }
private static final Map<String,String> emptyMap = new TreeMap<String,String>(); private static final Map<String,String> emptyMap = new TreeMap<String,String>();
public static void setupETBReplacementAbility(SpellAbility sa) { public static SpellAbility setupETBReplacementAbility(SpellAbility sa) {
sa.appendSubAbility(new AbilitySub(ApiType.InternalEtbReplacement, sa.getHostCard(), null, emptyMap)); AbilitySub as = new AbilitySub(ApiType.InternalEtbReplacement, sa.getHostCard(), null, emptyMap);
sa.appendSubAbility(as);
return as;
// ETBReplacementMove(sa.getHostCard(), null)); // ETBReplacementMove(sa.getHostCard(), null));
} }