From 8d251f15f365d1444bdb2069e058b0d2769dfdb6 Mon Sep 17 00:00:00 2001 From: Sol Date: Fri, 17 Apr 2015 13:48:02 +0000 Subject: [PATCH] - Fixed Blood Tribute completely not working when kicked --- .../main/java/forge/game/ability/AbilityUtils.java | 14 +++++++++++++- .../main/java/forge/game/card/CardFactoryUtil.java | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index 30842b1877a..7d2f44d7fad 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -1464,6 +1464,18 @@ public class AbilityUtils { } return count; } + + // Count$TargetedLifeTotal (targeted player's life total) + // Not optimal but since xCount doesn't take SAs, we need to replicate while we have it + // Probably would be best if xCount took an optional SA to use in these circumstances + if (sq[0].contains("TargetedLifeTotal")) { + final SpellAbility saTargeting = sa.getSATargetingPlayer(); + if (saTargeting != null) { + for (final Player tgtP : saTargeting.getTargets().getTargetPlayers()) { + return CardFactoryUtil.doXMath(tgtP.getLife(), expr, c); + } + } + } } } return CardFactoryUtil.xCount(c, s2); @@ -1514,7 +1526,7 @@ public class AbilityUtils { return sas; } - public static final String applyAbilityTextChangeEffects(final String def, final CardTraitBase ability) { + public static final String applyAbilityTextChangeEffects(final String def, final CardTraitBase ability) { if (ability == null || !ability.isIntrinsic() || ability.getMapParams().containsKey("LockInText")) { return def; } diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index bb5812a4f3a..9c61764a2c0 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1126,6 +1126,7 @@ public class CardFactoryUtil { // Count$TargetedLifeTotal (targeted player's life total) if (sq[0].contains("TargetedLifeTotal")) { + // This doesn't work in some circumstances, since the active SA isn't passed through for (final SpellAbility sa : c.getCurrentState().getNonManaAbilities()) { final SpellAbility saTargeting = sa.getSATargetingPlayer(); if (saTargeting != null) {