mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
- Added some AI code for casting Bonfire of the Damned via Miracle.
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user