mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
- Implemented AI for Crater's Claws
This commit is contained in:
@@ -51,11 +51,15 @@ public class DamageDealAi extends DamageAiBase {
|
||||
final String damage = sa.getParam("NumDmg");
|
||||
int dmg = AbilityUtils.calculateAmount(sa.getHostCard(), damage, sa);
|
||||
|
||||
if (damage.equals("X") && sa.getSVar(damage).equals("Count$xPaid")) {
|
||||
if ((damage.equals("X") && sa.getSVar(damage).equals("Count$xPaid") ||
|
||||
sa.getHostCard().getName().equals("Crater's Claws"))) {
|
||||
// Set PayX here to maximum value.
|
||||
dmg = ComputerUtilMana.determineLeftoverMana(sa, ai);
|
||||
source.setSVar("PayX", Integer.toString(dmg));
|
||||
}
|
||||
if (sa.getHostCard().getName().equals("Crater's Claws") && ai.hasFerocious()) {
|
||||
dmg += 2;
|
||||
}
|
||||
String logic = sa.getParam("AILogic");
|
||||
|
||||
if ("DiscardLands".equals(logic)) {
|
||||
@@ -95,7 +99,8 @@ public class DamageDealAi extends DamageAiBase {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (damage.equals("X") && source.getSVar(damage).equals("Count$xPaid")) {
|
||||
if ((damage.equals("X") && source.getSVar(damage).equals("Count$xPaid")) ||
|
||||
sa.getHostCard().getName().equals("Crater's Claws")){
|
||||
// If I can kill my target by paying less mana, do it
|
||||
if (sa.usesTargeting() && !sa.getTargets().isTargetingAnyPlayer() && !sa.hasParam("DividedAsYouChoose")) {
|
||||
int actualPay = 0;
|
||||
@@ -106,6 +111,9 @@ public class DamageDealAi extends DamageAiBase {
|
||||
actualPay = adjDamage;
|
||||
}
|
||||
}
|
||||
if (sa.getHostCard().getName().equals("Crater's Claws") && ai.hasFerocious()) {
|
||||
actualPay = actualPay > 2 ? actualPay - 2 : 0;
|
||||
}
|
||||
source.setSVar("PayX", Integer.toString(actualPay));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2348,6 +2348,25 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* hasFerocious.
|
||||
* </p>
|
||||
*
|
||||
* @return a boolean.
|
||||
*/
|
||||
public boolean hasFerocious() {
|
||||
final List<Card> list = this.getCreaturesInPlay();
|
||||
final List<Card> ferocious = CardLists.filter(list, new Predicate<Card>() {
|
||||
@Override
|
||||
public boolean apply(final Card c) {
|
||||
return c.getNetAttack() > 3;
|
||||
}
|
||||
});
|
||||
return !ferocious.isEmpty();
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* getBloodthirstAmount.
|
||||
|
||||
Reference in New Issue
Block a user