- Improved ChooseSource AI handling spells.

This commit is contained in:
Sloth
2012-11-11 21:42:33 +00:00
parent d9af504717
commit 75a57bdf5a
2 changed files with 14 additions and 6 deletions

View File

@@ -77,10 +77,14 @@ public class ChooseSourceAi extends SpellAiLogic {
} else { } else {
objects.addAll(threatTgt.getTargetPlayers()); objects.addAll(threatTgt.getTargetPlayers());
} }
if (objects.contains(ai)) { if (!objects.contains(ai) || topStack.hasParam("NoPrevention")) {
return true; return false;
} }
return false; int dmg = AbilityFactory.calculateAmount(source, topStack.getParam("NumDmg"), topStack);
if (ai.predictDamage(dmg, source, false) <= 0) {
return false;
}
return true;
} }
if (!Singletons.getModel().getGame().getPhaseHandler().getPhase() if (!Singletons.getModel().getGame().getPhaseHandler().getPhase()
.equals(PhaseType.COMBAT_DECLARE_BLOCKERS_INSTANT_ABILITY)) { .equals(PhaseType.COMBAT_DECLARE_BLOCKERS_INSTANT_ABILITY)) {

View File

@@ -163,10 +163,14 @@ public class ChooseSourceEffect extends SpellEffect {
} else { } else {
objects.addAll(threatTgt.getTargetPlayers()); objects.addAll(threatTgt.getTargetPlayers());
} }
if (objects.contains(ai)) { if (!objects.contains(ai) || topStack.hasParam("NoPrevention")) {
chosen.add(topStack.getSourceCard()); break;
} }
break; int dmg = AbilityFactory.calculateAmount(source, topStack.getParam("NumDmg"), topStack);
if (ai.predictDamage(dmg, source, false) <= 0) {
break;
}
chosen.add(topStack.getSourceCard());
} else { } else {
sourcesToChooseFrom = CardLists.filter(sourcesToChooseFrom, new Predicate<Card>() { sourcesToChooseFrom = CardLists.filter(sourcesToChooseFrom, new Predicate<Card>() {
@Override @Override