- Fixed AI of Victimize.

This commit is contained in:
Sloth
2012-10-07 20:07:13 +00:00
parent abd9f2415d
commit 72ead42cc7

View File

@@ -22,6 +22,8 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
import com.google.common.base.Predicate;
import forge.AllZone; import forge.AllZone;
import forge.AllZoneUtil; import forge.AllZoneUtil;
import forge.Card; import forge.Card;
@@ -408,6 +410,7 @@ public class AbilityFactorySacrifice {
} }
final String defined = params.get("Defined"); final String defined = params.get("Defined");
final String valid = params.get("SacValid");
if (defined == null) { if (defined == null) {
// Self Sacrifice. // Self Sacrifice.
} else if (defined.equals("Each") } else if (defined.equals("Each")
@@ -417,7 +420,6 @@ public class AbilityFactorySacrifice {
// Only cast it if AI doesn't have the full amount of Valid // Only cast it if AI doesn't have the full amount of Valid
// TODO: Cast if the type is favorable: my "worst" valid is // TODO: Cast if the type is favorable: my "worst" valid is
// worse than his "worst" valid // worse than his "worst" valid
final String valid = params.get("SacValid");
final String num = params.containsKey("Amount") ? params.get("Amount") : "1"; final String num = params.containsKey("Amount") ? params.get("Amount") : "1";
int amount = AbilityFactory.calculateAmount(card, num, sa); int amount = AbilityFactory.calculateAmount(card, num, sa);
@@ -440,6 +442,15 @@ public class AbilityFactorySacrifice {
if (humanList.size() < amount) { if (humanList.size() < amount) {
return false; return false;
} }
} else if (defined.equals("You")) {
List<Card> computerList = ai.getCardsIn(ZoneType.Battlefield);
computerList = CardLists.getValidCards(computerList, valid.split(","), sa.getActivatingPlayer(), sa.getSourceCard());
for (Card c : computerList) {
if (!c.getSVar("SacMe").equals("") || CardFactoryUtil.evaluateCreature(c) <= 135) {
return true;
}
}
return false;
} }
return true; return true;