From 256f539cb0e67748dd8047a897c61bce45030fe8 Mon Sep 17 00:00:00 2001 From: Agetian Date: Thu, 29 Dec 2016 15:51:33 +0000 Subject: [PATCH] - Fixing additional abilities not working for Mana Clash, Fiery Gambit et al. (not created for Repeat/RepeatEach APIs) --- .../src/main/java/forge/game/ability/AbilityFactory.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityFactory.java b/forge-game/src/main/java/forge/game/ability/AbilityFactory.java index fb5e2d01f44..0aab0446b6e 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityFactory.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityFactory.java @@ -31,6 +31,8 @@ import java.util.Map; import com.google.common.base.Function; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import java.util.ArrayList; +import java.util.Arrays; /** *

@@ -240,7 +242,11 @@ public final class AbilityFactory { } } - if (type != AbilityRecordType.SubAbility || parent == null || parent.getApi() == ApiType.Charm) { + // FIXME: this is a list of APIs that fail to work unless additional abilities are created for them below. + // Is there are reason we are not just creating additional abilities by default for all APIs? + List apiList = new ArrayList<>(Arrays.asList(ApiType.Charm, ApiType.Repeat, ApiType.RepeatEach)); + + if (type != AbilityRecordType.SubAbility || parent == null || apiList.contains(parent.getApi())) { for (final String key : additionalAbilityKeys) { if (mapParams.containsKey(key) && spellAbility.getAdditonalAbility(key) == null) { spellAbility.setAdditionalAbility(key, getSubAbility(hostCard, mapParams.get(key), spellAbility));