- Improved AI gaining Threshold.

This commit is contained in:
Sloth
2013-06-15 21:08:42 +00:00
parent 0d05da4e0a
commit 33981efab1
2 changed files with 16 additions and 5 deletions

View File

@@ -7,6 +7,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.ai.ComputerUtil;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.player.PlayerActionConfirmMode;
@@ -51,7 +52,7 @@ public class DigAi extends SpellAbilityAi {
// Don't use draw abilities before main 2 if possible
if (ai.getGame().getPhaseHandler().getPhase().isBefore(PhaseType.MAIN2) && !sa.hasParam("ActivationPhases")
&& !sa.hasParam("DestinationZone")) {
&& !sa.hasParam("DestinationZone") && !ComputerUtil.castSpellInMain1(ai, sa)) {
return false;
}

View File

@@ -49,6 +49,7 @@ import forge.card.spellability.AbilityStatic;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.SpellAbilityStackInstance;
import forge.card.spellability.Target;
import forge.card.staticability.StaticAbility;
import forge.error.BugReporter;
import forge.game.Game;
import forge.game.phase.Combat;
@@ -1099,14 +1100,23 @@ public class ComputerUtil {
}
}
final List<Card> buffed = ai.getCardsIn(ZoneType.Battlefield);
for (Card buffedcard : buffed) {
if (buffedcard.hasSVar("BuffedBy")) {
final String buffedby = buffedcard.getSVar("BuffedBy");
boolean checkThreshold = sa.isSpell() && !ai.hasThreshold() && !sa.getSourceCard().isInZone(ZoneType.Graveyard);
for (Card buffedCard : buffed) {
if (buffedCard.hasSVar("BuffedBy")) {
final String buffedby = buffedCard.getSVar("BuffedBy");
final String[] bffdby = buffedby.split(",");
if (source.isValid(bffdby, buffedcard.getController(), buffedcard)) {
if (source.isValid(bffdby, buffedCard.getController(), buffedCard)) {
return true;
}
}
//Fill the graveyard for Threshold
if (checkThreshold) {
for (StaticAbility stAb : buffedCard.getStaticAbilities()) {
if ("Threshold".equals(stAb.getMapParams().get("Condition"))) {
return true;
}
}
}
}
// get all cards the human controls with AntiBuffedBy