- Added some AI code for casting Bonfire of the Damned via Miracle.

This commit is contained in:
Sloth
2012-11-28 06:33:31 +00:00
parent 3dd3d49827
commit e4f4830e99

View File

@@ -48,11 +48,9 @@ public class DamageAllAi extends SpellAiLogic {
} }
Player opp = ai.getOpponent(); Player opp = ai.getOpponent();
final List<Card> humanList = this.getKillableCreatures(sa, opp, dmg); final List<Card> humanList = this.getKillableCreatures(sa, opp, dmg);
List<Card> computerList = this.getKillableCreatures(sa, ai, dmg); List<Card> computerList = this.getKillableCreatures(sa, ai, dmg);
final Target tgt = sa.getTarget(); final Target tgt = sa.getTarget();
if (tgt != null && sa.canTarget(opp)) { if (tgt != null && sa.canTarget(opp)) {
tgt.resetTargets(); tgt.resetTargets();
@@ -165,31 +163,36 @@ public class DamageAllAi extends SpellAiLogic {
validP = sa.getParam("ValidPlayers"); validP = sa.getParam("ValidPlayers");
} }
// Evaluate creatures getting killed
Player enemy = ai.getOpponent(); Player enemy = ai.getOpponent();
final List<Card> humanList = this.getKillableCreatures(sa, enemy, dmg);
List<Card> computerList = this.getKillableCreatures(sa, ai, dmg);
final Target tgt = sa.getTarget(); final Target tgt = sa.getTarget();
if (tgt == null) {
// If it's not mandatory check a few things if (tgt != null && sa.canTarget(enemy)) {
if (mandatory) { tgt.resetTargets();
return true; sa.getTarget().addTarget(enemy);
} computerList.clear();
// Don't get yourself killed }
if (validP.contains("Each") && (ai.getLife() <= ai.predictDamage(dmg, source, false))) {
return false;
}
// if we can kill human, do it // If it's not mandatory check a few things
if ((validP.contains("Each") || validP.contains("EachOpponent") || validP.contains("Targeted")) if (mandatory) {
&& (enemy.getLife() <= enemy.predictDamage(dmg, source, false))) { return true;
return true; }
} // Don't get yourself killed
if (validP.contains("Each") && (ai.getLife() <= ai.predictDamage(dmg, source, false))) {
return false;
}
// Evaluate creatures getting killed // if we can kill human, do it
final List<Card> humanList = this.getKillableCreatures(sa, enemy, dmg); if ((validP.contains("Each") || validP.contains("EachOpponent") || validP.contains("Targeted"))
final List<Card> computerList = this.getKillableCreatures(sa, ai, dmg); && (enemy.getLife() <= enemy.predictDamage(dmg, source, false))) {
if (!computerList.isEmpty() && CardFactoryUtil.evaluateCreatureList(computerList) + 50 >= CardFactoryUtil return true;
.evaluateCreatureList(humanList)) { }
return false;
} if (!computerList.isEmpty() && CardFactoryUtil.evaluateCreatureList(computerList) + 50 >= CardFactoryUtil
.evaluateCreatureList(humanList)) {
return false;
} }
return true; return true;