mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
optional cost minor refactor
This commit is contained in:
@@ -92,7 +92,7 @@ public abstract class SpellAbility implements ISpellAbility {
|
|||||||
|
|
||||||
private final ArrayList<Mana> payingMana = new ArrayList<Mana>();
|
private final ArrayList<Mana> payingMana = new ArrayList<Mana>();
|
||||||
private final List<SpellAbility> paidAbilities = new ArrayList<SpellAbility>();
|
private final List<SpellAbility> paidAbilities = new ArrayList<SpellAbility>();
|
||||||
private ArrayList<String> optionalAdditionalCosts = new ArrayList<String>();
|
private List<String> optionalAdditionalCosts = new ArrayList<String>();
|
||||||
|
|
||||||
private HashMap<String, List<Card>> paidLists = new HashMap<String, List<Card>>();
|
private HashMap<String, List<Card>> paidLists = new HashMap<String, List<Card>>();
|
||||||
|
|
||||||
@@ -671,14 +671,14 @@ public abstract class SpellAbility implements ISpellAbility {
|
|||||||
/**
|
/**
|
||||||
* @return the optionalAdditionalCosts
|
* @return the optionalAdditionalCosts
|
||||||
*/
|
*/
|
||||||
public ArrayList<String> getOptionalAdditionalCosts() {
|
public List<String> getOptionalAdditionalCosts() {
|
||||||
return optionalAdditionalCosts;
|
return optionalAdditionalCosts;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param costs the optionalAdditionalCosts to set
|
* @param costs the optionalAdditionalCosts to set
|
||||||
*/
|
*/
|
||||||
public final void setOptionalAdditionalCosts(ArrayList<String> costs) {
|
public final void setOptionalAdditionalCosts(List<String> costs) {
|
||||||
this.optionalAdditionalCosts = costs;
|
this.optionalAdditionalCosts = costs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1287,9 +1287,9 @@ public final class GameActionUtil {
|
|||||||
* the original sa
|
* the original sa
|
||||||
* @return an ArrayList<SpellAbility>.
|
* @return an ArrayList<SpellAbility>.
|
||||||
*/
|
*/
|
||||||
public static ArrayList<SpellAbility> getOptionalAdditionalCosts(final SpellAbility original) {
|
public static List<SpellAbility> getOptionalAdditionalCosts(final SpellAbility original) {
|
||||||
final ArrayList<SpellAbility> abilities = new ArrayList<SpellAbility>();
|
final List<SpellAbility> abilities = new ArrayList<SpellAbility>();
|
||||||
final ArrayList<SpellAbility> newAbilities = new ArrayList<SpellAbility>();
|
final List<SpellAbility> newAbilities = new ArrayList<SpellAbility>();
|
||||||
final Card source = original.getSourceCard();
|
final Card source = original.getSourceCard();
|
||||||
abilities.add(original);
|
abilities.add(original);
|
||||||
if (!original.isSpell()) {
|
if (!original.isSpell()) {
|
||||||
@@ -1304,12 +1304,12 @@ public final class GameActionUtil {
|
|||||||
newSA.setBasicSpell(false);
|
newSA.setBasicSpell(false);
|
||||||
newSA.setPayCosts(new Cost(keyword.substring(8), false).add(newSA.getPayCosts()));
|
newSA.setPayCosts(new Cost(keyword.substring(8), false).add(newSA.getPayCosts()));
|
||||||
newSA.setDescription(sa.getDescription() + " (with Buyback)");
|
newSA.setDescription(sa.getDescription() + " (with Buyback)");
|
||||||
ArrayList<String> newoacs = new ArrayList<String>();
|
|
||||||
newoacs.addAll(sa.getOptionalAdditionalCosts());
|
ArrayList<String> newoacs = new ArrayList<String>(sa.getOptionalAdditionalCosts());
|
||||||
|
newoacs.add(keyword);
|
||||||
newSA.setOptionalAdditionalCosts(newoacs);
|
newSA.setOptionalAdditionalCosts(newoacs);
|
||||||
newSA.addOptionalAdditionalCosts(keyword);
|
|
||||||
if (newSA.canPlay()) {
|
if (newSA.canPlay()) {
|
||||||
newAbilities.add(newAbilities.size(), newSA);
|
newAbilities.add(newSA);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
abilities.addAll(0, newAbilities);
|
abilities.addAll(0, newAbilities);
|
||||||
@@ -1321,12 +1321,12 @@ public final class GameActionUtil {
|
|||||||
final Cost cost = new Cost(keyword.substring(7), false);
|
final Cost cost = new Cost(keyword.substring(7), false);
|
||||||
newSA.setDescription(sa.getDescription() + " (Kicker " + cost.toSimpleString() + ")");
|
newSA.setDescription(sa.getDescription() + " (Kicker " + cost.toSimpleString() + ")");
|
||||||
newSA.setPayCosts(cost.add(newSA.getPayCosts()));
|
newSA.setPayCosts(cost.add(newSA.getPayCosts()));
|
||||||
ArrayList<String> newoacs = new ArrayList<String>();
|
|
||||||
newoacs.addAll(sa.getOptionalAdditionalCosts());
|
ArrayList<String> newoacs = new ArrayList<String>(sa.getOptionalAdditionalCosts());
|
||||||
|
newoacs.add(keyword);
|
||||||
newSA.setOptionalAdditionalCosts(newoacs);
|
newSA.setOptionalAdditionalCosts(newoacs);
|
||||||
newSA.addOptionalAdditionalCosts(keyword);
|
|
||||||
if (newSA.canPlay()) {
|
if (newSA.canPlay()) {
|
||||||
newAbilities.add(newAbilities.size(), newSA);
|
newAbilities.add(newSA);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
abilities.addAll(0, newAbilities);
|
abilities.addAll(0, newAbilities);
|
||||||
@@ -1337,24 +1337,23 @@ public final class GameActionUtil {
|
|||||||
for (SpellAbility sa : abilities) {
|
for (SpellAbility sa : abilities) {
|
||||||
final SpellAbility newSA = sa.copy();
|
final SpellAbility newSA = sa.copy();
|
||||||
newSA.setBasicSpell(false);
|
newSA.setBasicSpell(false);
|
||||||
newSA.setPayCosts(new Cost(costString1, false).add(newSA.getPayCosts()));
|
|
||||||
final Cost cost1 = new Cost(costString1, false);
|
final Cost cost1 = new Cost(costString1, false);
|
||||||
newSA.setDescription(sa.getDescription() + " (Additional cost " + cost1.toSimpleString() + ")");
|
newSA.setDescription(sa.getDescription() + " (Additional cost " + cost1.toSimpleString() + ")");
|
||||||
ArrayList<String> newoacs = new ArrayList<String>();
|
newSA.setPayCosts(cost1.add(sa.getPayCosts()));
|
||||||
newoacs.addAll(sa.getOptionalAdditionalCosts());
|
newSA.setOptionalAdditionalCosts(new ArrayList<String>(sa.getOptionalAdditionalCosts()));
|
||||||
newSA.setOptionalAdditionalCosts(newoacs);
|
|
||||||
if (newSA.canPlay()) {
|
if (newSA.canPlay()) {
|
||||||
newAbilities.add(newAbilities.size(), newSA);
|
newAbilities.add(newSA);
|
||||||
}
|
}
|
||||||
|
|
||||||
//second option
|
//second option
|
||||||
final SpellAbility newSA2 = sa.copy();
|
final SpellAbility newSA2 = sa.copy();
|
||||||
newSA2.setBasicSpell(false);
|
newSA2.setBasicSpell(false);
|
||||||
newSA.setPayCosts(new Cost(costString2, false).add(newSA.getPayCosts()));
|
|
||||||
final Cost cost2 = new Cost(costString2, false);
|
final Cost cost2 = new Cost(costString2, false);
|
||||||
newSA2.setDescription(sa.getDescription() + " (Additional cost " + cost2.toSimpleString() + ")");
|
newSA2.setDescription(sa.getDescription() + " (Additional cost " + cost2.toSimpleString() + ")");
|
||||||
ArrayList<String> newoacs2 = new ArrayList<String>();
|
newSA2.setPayCosts(cost2.add(sa.getPayCosts()));
|
||||||
newoacs.addAll(sa.getOptionalAdditionalCosts());
|
newSA2.setOptionalAdditionalCosts(new ArrayList<String>(sa.getOptionalAdditionalCosts()));
|
||||||
newSA2.setOptionalAdditionalCosts(newoacs2);
|
|
||||||
if (newSA2.canPlay()) {
|
if (newSA2.canPlay()) {
|
||||||
newAbilities.add(newAbilities.size(), newSA2);
|
newAbilities.add(newAbilities.size(), newSA2);
|
||||||
}
|
}
|
||||||
@@ -1370,10 +1369,10 @@ public final class GameActionUtil {
|
|||||||
+ " that shares a color with " + source.getName() + ">";
|
+ " that shares a color with " + source.getName() + ">";
|
||||||
newSA.setPayCosts(new Cost(conspireCost, false).add(newSA.getPayCosts()));
|
newSA.setPayCosts(new Cost(conspireCost, false).add(newSA.getPayCosts()));
|
||||||
newSA.setDescription(sa.getDescription() + " (Conspire)");
|
newSA.setDescription(sa.getDescription() + " (Conspire)");
|
||||||
ArrayList<String> newoacs = new ArrayList<String>();
|
|
||||||
newoacs.addAll(sa.getOptionalAdditionalCosts());
|
ArrayList<String> newoacs = new ArrayList<String>(sa.getOptionalAdditionalCosts());
|
||||||
|
newoacs.add(keyword);
|
||||||
newSA.setOptionalAdditionalCosts(newoacs);
|
newSA.setOptionalAdditionalCosts(newoacs);
|
||||||
newSA.addOptionalAdditionalCosts(keyword);
|
|
||||||
if (newSA.canPlay()) {
|
if (newSA.canPlay()) {
|
||||||
newAbilities.add(newAbilities.size(), newSA);
|
newAbilities.add(newAbilities.size(), newSA);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
*/
|
*/
|
||||||
package forge.game.player;
|
package forge.game.player;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import forge.Card;
|
import forge.Card;
|
||||||
@@ -218,7 +217,7 @@ public class HumanPlayer extends Player {
|
|||||||
*/
|
*/
|
||||||
public SpellAbility chooseOptionalAdditionalCosts(final SpellAbility original) {
|
public SpellAbility chooseOptionalAdditionalCosts(final SpellAbility original) {
|
||||||
//final HashMap<String, SpellAbility> map = new HashMap<String, SpellAbility>();
|
//final HashMap<String, SpellAbility> map = new HashMap<String, SpellAbility>();
|
||||||
final ArrayList<SpellAbility> abilities = GameActionUtil.getOptionalAdditionalCosts(original);
|
final List<SpellAbility> abilities = GameActionUtil.getOptionalAdditionalCosts(original);
|
||||||
|
|
||||||
if (!original.isSpell()) {
|
if (!original.isSpell()) {
|
||||||
return original;
|
return original;
|
||||||
|
|||||||
Reference in New Issue
Block a user