diff --git a/src/forge/AbilityFactory_DealDamage.java b/src/forge/AbilityFactory_DealDamage.java index 9a30d7738af..2a792fd2d6b 100644 --- a/src/forge/AbilityFactory_DealDamage.java +++ b/src/forge/AbilityFactory_DealDamage.java @@ -174,6 +174,10 @@ import java.util.Random; } private boolean shouldTgtP(int d) { + + if (AllZone.HumanPlayer.reducePlayerDamageToZero(AF.getHostCard(), false) + || !AllZone.HumanPlayer.canTarget(AF.getHostCard())) return false; + PlayerZone compHand = AllZone.getZone(Constant.Zone.Hand, AllZone.ComputerPlayer); CardList hand = new CardList(compHand.getCards()); @@ -227,7 +231,7 @@ import java.util.Random; } if (AF.getAbCost().getSubCounter()) { // +1/+1 counters only if damage from this ability would kill the human, otherwise ok - if(AllZone.HumanPlayer.getLife() - damage > 0 || !AF.getAbCost().getCounterType().equals(Counters.P1P1)) + if(AllZone.HumanPlayer.getLife() - damage > 0 && AF.getAbCost().getCounterType().equals(Counters.P1P1)) return false; } if (AF.getAbCost().getLifeCost()) { diff --git a/src/forge/AbilityFactory_Pump.java b/src/forge/AbilityFactory_Pump.java index 1fc4f53cf08..0a101e5d156 100644 --- a/src/forge/AbilityFactory_Pump.java +++ b/src/forge/AbilityFactory_Pump.java @@ -268,7 +268,7 @@ public class AbilityFactory_Pump { if (addsKeywords) { list = list.filter(new CardListFilter() { public boolean addCard(Card c) { - return c.hasAnyKeyword(KWs); // don't add duplicate negative keywords + return !c.hasAnyKeyword(KWs); // don't add duplicate negative keywords } }); } diff --git a/src/forge/Player.java b/src/forge/Player.java index a57014549d5..80d5bd01d8e 100644 --- a/src/forge/Player.java +++ b/src/forge/Player.java @@ -211,7 +211,7 @@ public abstract class Player extends MyObservable{ GameActionUtil.executePlayerDamageEffects(this, source, damageToDo, false); } - private boolean reducePlayerDamageToZero(final Card source, final boolean isCombat) { + public boolean reducePlayerDamageToZero(final Card source, final boolean isCombat) { boolean reduce = false; if(isCombat) { //for future use