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();
|
||||
|
||||
final List<Card> humanList = this.getKillableCreatures(sa, opp, dmg);
|
||||
List<Card> computerList = this.getKillableCreatures(sa, ai, dmg);
|
||||
|
||||
|
||||
final Target tgt = sa.getTarget();
|
||||
if (tgt != null && sa.canTarget(opp)) {
|
||||
tgt.resetTargets();
|
||||
@@ -165,31 +163,36 @@ public class DamageAllAi extends SpellAiLogic {
|
||||
validP = sa.getParam("ValidPlayers");
|
||||
}
|
||||
|
||||
// Evaluate creatures getting killed
|
||||
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();
|
||||
if (tgt == null) {
|
||||
// If it's not mandatory check a few things
|
||||
if (mandatory) {
|
||||
return true;
|
||||
}
|
||||
// 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 ((validP.contains("Each") || validP.contains("EachOpponent") || validP.contains("Targeted"))
|
||||
&& (enemy.getLife() <= enemy.predictDamage(dmg, source, false))) {
|
||||
return true;
|
||||
}
|
||||
if (tgt != null && sa.canTarget(enemy)) {
|
||||
tgt.resetTargets();
|
||||
sa.getTarget().addTarget(enemy);
|
||||
computerList.clear();
|
||||
}
|
||||
|
||||
// Evaluate creatures getting killed
|
||||
final List<Card> humanList = this.getKillableCreatures(sa, enemy, dmg);
|
||||
final List<Card> computerList = this.getKillableCreatures(sa, ai, dmg);
|
||||
if (!computerList.isEmpty() && CardFactoryUtil.evaluateCreatureList(computerList) + 50 >= CardFactoryUtil
|
||||
.evaluateCreatureList(humanList)) {
|
||||
return false;
|
||||
}
|
||||
// If it's not mandatory check a few things
|
||||
if (mandatory) {
|
||||
return true;
|
||||
}
|
||||
// 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 ((validP.contains("Each") || validP.contains("EachOpponent") || validP.contains("Targeted"))
|
||||
&& (enemy.getLife() <= enemy.predictDamage(dmg, source, false))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!computerList.isEmpty() && CardFactoryUtil.evaluateCreatureList(computerList) + 50 >= CardFactoryUtil
|
||||
.evaluateCreatureList(humanList)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user