Merge branch 'neo_rs' into 'master'

NEO: Reckoner Shakedown and BranchEffect upgrade

See merge request core-developers/forge!6240
This commit is contained in:
Michael Kamensky
2022-02-18 19:42:44 +00:00
5 changed files with 42 additions and 12 deletions

View File

@@ -13,18 +13,23 @@ public class BranchEffect extends SpellAbilityEffect {
// TODO Reuse SpellAbilityCondition and areMet() here instead of repeating each
// For now branch conditions will only be an Svar Compare
String branchSVar = sa.getParam("BranchConditionSVar");
int value = 0;
if (sa.hasParam("BranchCondition")) {
if (sa.getParam("BranchCondition").equals("ChosenCard")) {
value = host.getChosenCards().size();
}
} else {
value = AbilityUtils.calculateAmount(host, sa.getParam("BranchConditionSVar"), sa);
}
String branchCompare = sa.getParamOrDefault("BranchConditionSVarCompare", "GE1");
String operator = branchCompare.substring(0, 2);
String operand = branchCompare.substring(2);
final int svarValue = AbilityUtils.calculateAmount(host, branchSVar, sa);
final int operandValue = AbilityUtils.calculateAmount(host, operand, sa);
SpellAbility sub = null;
if (Expressions.compare(svarValue, operator, operandValue)) {
if (Expressions.compare(value, operator, operandValue)) {
sub = sa.getAdditionalAbility("TrueSubAbility");
} else {
sub = sa.getAdditionalAbility("FalseSubAbility");

View File

@@ -32,11 +32,22 @@ public class ChooseCardEffect extends SpellAbilityEffect {
@Override
protected String getStackDescription(SpellAbility sa) {
final StringBuilder sb = new StringBuilder();
final int numCards = sa.hasParam("Amount") ?
AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("Amount"), sa) : 1;
for (final Player p : getTargetPlayers(sa)) {
sb.append(p).append(" ");
sb.append(Lang.joinHomogenous(getTargetPlayers(sa))).append(" ");
if (sa.hasParam("Mandatory")) {
sb.append(getTargetPlayers(sa).size() == 1 ? "chooses " : "choose ");
} else {
sb.append("may choose ");
}
sb.append("chooses a card.");
String desc = sa.getParamOrDefault("ChoiceDesc", "");
desc = desc.isEmpty() ? "card" : desc + " card";
sb.append(Lang.nounWithNumeralExceptOne(numCards, desc));
if (sa.hasParam("FromDesc")) {
sb.append(" ").append(sa.getParam("FromDesc"));
}
sb.append(".");
return sb.toString();
}

View File

@@ -97,6 +97,7 @@ public class MillEffect extends SpellAbilityEffect {
sb.append("antes ");
}
sb.append(Lang.nounWithNumeralExceptOne(numCards, "card")).append(".");
sb.append(numCards == 1 ? "a card" : (Lang.getNumeral(numCards) + " cards")).append(".");
return sb.toString();