diff --git a/forge-ai/src/main/java/forge/ai/ability/FogAi.java b/forge-ai/src/main/java/forge/ai/ability/FogAi.java index ee2961a2996..82b768181cf 100644 --- a/forge-ai/src/main/java/forge/ai/ability/FogAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/FogAi.java @@ -5,9 +5,12 @@ import forge.ai.ComputerUtil; import forge.ai.ComputerUtilCombat; import forge.ai.SpellAbilityAi; import forge.game.Game; +import forge.game.card.Card; +import forge.game.card.CardPredicates; import forge.game.phase.PhaseType; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.util.Aggregates; public class FogAi extends SpellAbilityAi { @@ -35,6 +38,25 @@ public class FogAi extends SpellAbilityAi { return false; } + if ("SeriousDamage".equals(sa.getParam("AILogic")) && game.getCombat() != null) { + int dmg = 0; + for (Card atk : game.getCombat().getAttackersOf(ai)) { + if (game.getCombat().isUnblocked(atk)) { + dmg += atk.getNetCombatDamage(); + } else if (atk.hasKeyword("Trample")) { + dmg += atk.getNetCombatDamage() - Aggregates.sum(game.getCombat().getBlockers(atk), CardPredicates.Accessors.fnGetNetToughness); + } + } + + if (dmg > ai.getLife() / 4) { + return true; + } else if (dmg >= 5) { + return true; + } else if (ai.getLife() < ai.getStartingLife() / 3) { + return true; + } + } + // Cast it if life is in danger return ComputerUtilCombat.lifeInDanger(ai, game.getCombat()); } diff --git a/forge-gui/res/cardsfolder/s/spike_weaver.txt b/forge-gui/res/cardsfolder/s/spike_weaver.txt index 2c38cc864e1..5937873b693 100644 --- a/forge-gui/res/cardsfolder/s/spike_weaver.txt +++ b/forge-gui/res/cardsfolder/s/spike_weaver.txt @@ -4,6 +4,6 @@ Types:Creature Spike PT:0/0 K:etbCounter:P1P1:3 A:AB$ PutCounter | Cost$ 2 SubCounter<1/P1P1> | ValidTgts$ Creature | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on target creature. -A:AB$ Fog | Cost$ 1 SubCounter<1/P1P1> | SpellDescription$ Prevent all combat damage that would be dealt this turn. +A:AB$ Fog | Cost$ 1 SubCounter<1/P1P1> | AILogic$ SeriousDamage | SpellDescription$ Prevent all combat damage that would be dealt this turn. SVar:Picture:http://www.wizards.com/global/images/magic/general/spike_weaver.jpg Oracle:Spike Weaver enters the battlefield with three +1/+1 counters on it.\n{2}, Remove a +1/+1 counter from Spike Weaver: Put a +1/+1 counter on target creature.\n{1}, Remove a +1/+1 counter from Spike Weaver: Prevent all combat damage that would be dealt this turn.