mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
NEO: Reckoner Shakedown and BranchEffect upgrade
This commit is contained in:
committed by
Michael Kamensky
parent
39c49b2315
commit
00ceefa8d9
@@ -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");
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user