From fd78663fca1b6fd6f905081d9e8d65d643918e7d Mon Sep 17 00:00:00 2001 From: ArsenalNut Date: Mon, 2 Jan 2012 18:23:20 +0000 Subject: [PATCH] add logic to make ManaNeededToAvoidNegativeEffect mana a mandatory part of the cost for the AI --- src/main/java/forge/ComputerUtil.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/forge/ComputerUtil.java b/src/main/java/forge/ComputerUtil.java index 4d3ce659bae..4128ca9ef36 100644 --- a/src/main/java/forge/ComputerUtil.java +++ b/src/main/java/forge/ComputerUtil.java @@ -612,17 +612,25 @@ public class ComputerUtil { } cost = manapool.subtractMana(sa, cost); - //ManaCost testCost = new ManaCost(cost.toString()); // temp variable for testing only if (card.getSVar("ManaNeededToAvoidNegativeEffect") != "") { String[] negEffects = card.getSVar("ManaNeededToAvoidNegativeEffect").split(","); + int amountAdded = 0; for (int nStr = 0; nStr < negEffects.length; nStr++) { // convert long color strings to short color strings if (negEffects[nStr].length() > 1) { negEffects[nStr] = InputPayManaCostUtil.getShortColorString(negEffects[nStr]); } + // make mana mandatory for AI + if (!cost.isColor(negEffects[nStr])) { + cost.combineManaCost(negEffects[nStr]); + amountAdded++; + } } cost.setManaNeededToAvoidNegativeEffect(negEffects); - //testCost.setManaNeededToAvoidNegativeEffect(negEffects); + //TODO: should it be an error condition if amountAdded is greater than the colorless + // in the original cost? (ArsenalNut - 120102) + // adjust colorless amount to account for added mana + cost.decreaseColorlessMana(amountAdded); } // get map of mana abilities @@ -637,8 +645,6 @@ public class ComputerUtil { foundAllSources = false; } else { - //TODO: Sort colorless sources based on ManaNeededToAvoidNegativeEffect - // (ArsenalNut - 111230) String[] shortColors = {"W", "U", "B" , "R", "G"}; // loop over cost parts for (int nPart = 0; nPart < costParts.length; nPart++) {