diff --git a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java index 4210b1e268a..a3e557d0571 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java @@ -1702,7 +1702,7 @@ public class ChangeZoneAi extends SpellAbilityAi { // A blink effect implemented using ChangeZone API return false; } else if (subApi == ApiType.DelayedTrigger) { - SpellAbility exec = causeSub.getAdditonalAbility("Execute"); + SpellAbility exec = causeSub.getAdditionalAbility("Execute"); if (exec != null && exec.getApi() == ApiType.ChangeZone) { if ("Exile".equals(exec.getParam("Origin")) && "Battlefield".equals(exec.getParam("Destination"))) { // A blink effect implemented using a delayed trigger diff --git a/forge-ai/src/main/java/forge/ai/ability/RepeatAi.java b/forge-ai/src/main/java/forge/ai/ability/RepeatAi.java index 4bbd8845756..e45936464cc 100644 --- a/forge-ai/src/main/java/forge/ai/ability/RepeatAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/RepeatAi.java @@ -56,7 +56,7 @@ public class RepeatAi extends SpellAbilityAi { } // setup subability to repeat - final SpellAbility repeat = sa.getAdditonalAbility("RepeatSubAbility"); + final SpellAbility repeat = sa.getAdditionalAbility("RepeatSubAbility"); if (repeat == null) { return mandatory; diff --git a/forge-ai/src/main/java/forge/ai/ability/RepeatEachAi.java b/forge-ai/src/main/java/forge/ai/ability/RepeatEachAi.java index dd1e9eac9ff..a4fa834385f 100644 --- a/forge-ai/src/main/java/forge/ai/ability/RepeatEachAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/RepeatEachAi.java @@ -1,9 +1,6 @@ package forge.ai.ability; -import java.util.List; - import com.google.common.base.Predicate; - import forge.ai.ComputerUtilCard; import forge.ai.SpellAbilityAi; import forge.game.ability.AbilityUtils; @@ -17,6 +14,8 @@ import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; import forge.util.TextUtil; +import java.util.List; + public class RepeatEachAi extends SpellAbilityAi { @@ -82,7 +81,7 @@ public class RepeatEachAi extends SpellAbilityAi { return false; } else if ("AllPlayerLoseLife".equals(logic)) { final Card source = sa.getHostCard(); - AbilitySub repeat = sa.getAdditonalAbility("RepeatSubAbility"); + AbilitySub repeat = sa.getAdditionalAbility("RepeatSubAbility"); String svar = repeat.getSVar(repeat.getParam("LifeAmount")); // replace RememberedPlayerCtrl with YouCtrl 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 4f55e5b6244..b60c5da858b 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityFactory.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityFactory.java @@ -17,6 +17,9 @@ */ package forge.game.ability; +import com.google.common.base.Function; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import forge.card.CardStateName; import forge.game.ability.effects.CharmEffect; import forge.game.card.Card; @@ -28,10 +31,6 @@ import forge.util.FileSection; import java.util.List; import java.util.Map; -import com.google.common.base.Function; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; - /** *

* AbilityFactory class. @@ -221,7 +220,7 @@ public final class AbilityFactory { SpellAbility p = parent; AbilitySub sub = null; while (p != null) { - sub = p.getAdditonalAbility(name); + sub = p.getAdditionalAbility(name); if (sub != null) { break; } @@ -235,7 +234,7 @@ public final class AbilityFactory { } for (final String key : additionalAbilityKeys) { - if (mapParams.containsKey(key) && spellAbility.getAdditonalAbility(key) == null) { + if (mapParams.containsKey(key) && spellAbility.getAdditionalAbility(key) == null) { spellAbility.setAdditionalAbility(key, getSubAbility(hostCard, mapParams.get(key), spellAbility)); } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/BranchEffect.java b/forge-game/src/main/java/forge/game/ability/effects/BranchEffect.java index 1e53f207aa6..464ecda8a53 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/BranchEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/BranchEffect.java @@ -26,9 +26,9 @@ public class BranchEffect extends SpellAbilityEffect { AbilitySub sub = null; if (Expressions.compare(svarValue, operator, operandValue)) { - sub = sa.getAdditonalAbility("TrueSubAbility"); + sub = sa.getAdditionalAbility("TrueSubAbility"); } else { - sub = sa.getAdditonalAbility("FalseSubAbility"); + sub = sa.getAdditionalAbility("FalseSubAbility"); } if (sub != null) { AbilityUtils.resolve(sub); diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChooseGenericEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChooseGenericEffect.java index 70003585c26..86a92971a64 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChooseGenericEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChooseGenericEffect.java @@ -1,5 +1,6 @@ package forge.game.ability.effects; +import com.google.common.collect.Lists; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; @@ -11,8 +12,6 @@ import forge.util.MyRandom; import java.util.List; -import com.google.common.collect.Lists; - public class ChooseGenericEffect extends SpellAbilityEffect { @Override @@ -32,7 +31,7 @@ public class ChooseGenericEffect extends SpellAbilityEffect { final Card host = sa.getHostCard(); final List abilities = Lists.newArrayList(sa.getAdditionalAbilityList("Choices")); - final SpellAbility fallback = sa.getAdditonalAbility("FallbackAbility"); + final SpellAbility fallback = sa.getAdditionalAbility("FallbackAbility"); final List tgtPlayers = getDefinedPlayersOrTargeted(sa); final TargetRestrictions tgt = sa.getTargetRestrictions(); diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChooseNumberEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChooseNumberEffect.java index 9a78bec051a..e8b934fe999 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChooseNumberEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChooseNumberEffect.java @@ -1,5 +1,7 @@ package forge.game.ability.effects; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; @@ -11,10 +13,6 @@ import forge.game.spellability.TargetRestrictions; import java.util.List; import java.util.Map; import java.util.Map.Entry; - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; - import java.util.Random; public class ChooseNumberEffect extends SpellAbilityEffect { @@ -107,7 +105,7 @@ public class ChooseNumberEffect extends SpellAbilityEffect { } card.getGame().getAction().nofityOfValue(sa, card, sb.toString(), null); if (sa.hasParam("ChooseNumberSubAbility")) { - AbilitySub sub = sa.getAdditonalAbility("ChooseNumberSubAbility"); + AbilitySub sub = sa.getAdditionalAbility("ChooseNumberSubAbility"); for (Player p : chooseMap.keySet()) { card.addRemembered(p); @@ -118,7 +116,7 @@ public class ChooseNumberEffect extends SpellAbilityEffect { } if (sa.hasParam("Lowest")) { - AbilitySub sub = sa.getAdditonalAbility("Lowest"); + AbilitySub sub = sa.getAdditionalAbility("Lowest"); for (Player p : lowestNum) { card.addRemembered(p); @@ -128,7 +126,7 @@ public class ChooseNumberEffect extends SpellAbilityEffect { } } if (sa.hasParam("Highest")) { - AbilitySub sub = sa.getAdditonalAbility("Highest"); + AbilitySub sub = sa.getAdditionalAbility("Highest"); for (Player p : highestNum) { card.addRemembered(p); diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChoosePlayerEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChoosePlayerEffect.java index 22fb11efd46..92e1965e4d5 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChoosePlayerEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChoosePlayerEffect.java @@ -62,7 +62,7 @@ public class ChoosePlayerEffect extends SpellAbilityEffect { } // SubAbility that only fires if a player is chosen - AbilitySub chosenSA = sa.getAdditonalAbility("ChooseSubAbility"); + AbilitySub chosenSA = sa.getAdditionalAbility("ChooseSubAbility"); if (chosenSA != null) { if (!chosenSA.getHostCard().equals(sa.getHostCard())) { System.out.println("Warning: ChooseSubAbility had the wrong host set (potentially after cloning the root SA), attempting to correct..."); @@ -72,7 +72,7 @@ public class ChoosePlayerEffect extends SpellAbilityEffect { } } else { // SubAbility that only fires if a player is not chosen - AbilitySub notChosenSA = sa.getAdditonalAbility("CantChooseSubAbility"); + AbilitySub notChosenSA = sa.getAdditionalAbility("CantChooseSubAbility"); if (notChosenSA != null) { if (!notChosenSA.getHostCard().equals(sa.getHostCard())) { System.out.println("Warning: CantChooseSubAbility had the wrong host set (potentially after cloning the root SA), attempting to correct..."); diff --git a/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java index 4e9cb93ef21..7570f27a7d3 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java @@ -36,14 +36,14 @@ public class ClashEffect extends SpellAbilityEffect { if (victory) { - AbilitySub sub = sa.getAdditonalAbility("WinSubAbility"); + AbilitySub sub = sa.getAdditionalAbility("WinSubAbility"); if (sub != null) { AbilityUtils.resolve(sub); } runParams.put("Won", "True"); } else { - AbilitySub sub = sa.getAdditonalAbility("OtherwiseSubAbility"); + AbilitySub sub = sa.getAdditionalAbility("OtherwiseSubAbility"); if (sub != null) { AbilityUtils.resolve(sub); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/DelayedTriggerEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DelayedTriggerEffect.java index 8c181d0c982..1e6b44171fb 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DelayedTriggerEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DelayedTriggerEffect.java @@ -1,5 +1,7 @@ package forge.game.ability.effects; +import com.google.common.collect.Iterables; +import com.google.common.collect.Maps; import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; import forge.game.ability.SpellAbilityEffect; @@ -10,9 +12,6 @@ import forge.game.trigger.TriggerHandler; import java.util.Map; -import com.google.common.collect.Iterables; -import com.google.common.collect.Maps; - public class DelayedTriggerEffect extends SpellAbilityEffect { /* (non-Javadoc) @@ -71,8 +70,8 @@ public class DelayedTriggerEffect extends SpellAbilityEffect { } } - if (mapParams.containsKey("Execute") || sa.hasAdditonalAbility("Execute")) { - SpellAbility overridingSA = sa.getAdditonalAbility("Execute"); + if (mapParams.containsKey("Execute") || sa.hasAdditionalAbility("Execute")) { + SpellAbility overridingSA = sa.getAdditionalAbility("Execute"); overridingSA.setActivatingPlayer(sa.getActivatingPlayer()); overridingSA.setDeltrigActivatingPlayer(sa.getActivatingPlayer()); // ensure that the original activator can be restored later // Set Transform timestamp when the delayed trigger is created diff --git a/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java b/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java index 62135d4fee8..90cfede221a 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java @@ -1,5 +1,6 @@ package forge.game.ability.effects; +import com.google.common.collect.Maps; import forge.game.GameObject; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; @@ -17,8 +18,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import com.google.common.collect.Maps; - public class FlipCoinEffect extends SpellAbilityEffect { public static boolean[] BOTH_CHOICES = new boolean[] {false, true}; @@ -78,12 +77,12 @@ public class FlipCoinEffect extends SpellAbilityEffect { } if (resultIsHeads) { - AbilitySub sub = sa.getAdditonalAbility("HeadsSubAbility"); + AbilitySub sub = sa.getAdditionalAbility("HeadsSubAbility"); if (sub != null) { AbilityUtils.resolve(sub); } } else { - AbilitySub sub = sa.getAdditonalAbility("TailsSubAbility"); + AbilitySub sub = sa.getAdditionalAbility("TailsSubAbility"); if (sub != null) { AbilityUtils.resolve(sub); } @@ -93,7 +92,7 @@ public class FlipCoinEffect extends SpellAbilityEffect { if (sa.getParam("RememberWinner") != null) { host.addRemembered(host); } - AbilitySub sub = sa.getAdditonalAbility("WinSubAbility"); + AbilitySub sub = sa.getAdditionalAbility("WinSubAbility"); if (sub != null) { AbilityUtils.resolve(sub); } @@ -103,7 +102,7 @@ public class FlipCoinEffect extends SpellAbilityEffect { host.addRemembered(host); } - AbilitySub sub = sa.getAdditonalAbility("LoseSubAbility"); + AbilitySub sub = sa.getAdditionalAbility("LoseSubAbility"); if (sub != null) { AbilityUtils.resolve(sub); } @@ -143,7 +142,7 @@ public class FlipCoinEffect extends SpellAbilityEffect { } while (sa.hasParam("FlipUntilYouLose") && result != false); if (sa.hasParam("FlipUntilYouLose")) { - sa.getAdditonalAbility("LoseSubAbility").setSVar(sa.hasParam("SaveNumFlipsToSVar") ? sa.getParam("SaveNumFlipsToSVar") : "X", "Number$" + numSuccesses); + sa.getAdditionalAbility("LoseSubAbility").setSVar(sa.hasParam("SaveNumFlipsToSVar") ? sa.getParam("SaveNumFlipsToSVar") : "X", "Number$" + numSuccesses); } return result; @@ -188,7 +187,7 @@ public class FlipCoinEffect extends SpellAbilityEffect { } while (sa.hasParam("FlipUntilYouLose") && wonFlip); if (sa.hasParam("FlipUntilYouLose")) { - sa.getAdditonalAbility("LoseSubAbility").setSVar(sa.hasParam("SaveNumFlipsToSVar") ? sa.getParam("SaveNumFlipsToSVar") : "X", "Number$" + numSuccesses); + sa.getAdditionalAbility("LoseSubAbility").setSVar(sa.hasParam("SaveNumFlipsToSVar") ? sa.getParam("SaveNumFlipsToSVar") : "X", "Number$" + numSuccesses); } return wonFlip; diff --git a/forge-game/src/main/java/forge/game/ability/effects/MultiplePilesEffect.java b/forge-game/src/main/java/forge/game/ability/effects/MultiplePilesEffect.java index 58c217fadea..98d737c70eb 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/MultiplePilesEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/MultiplePilesEffect.java @@ -3,7 +3,6 @@ package forge.game.ability.effects; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; - import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; @@ -104,7 +103,7 @@ public class MultiplePilesEffect extends SpellAbilityEffect { } } - AbilitySub sub = sa.getAdditonalAbility("ChosenPile"); + AbilitySub sub = sa.getAdditionalAbility("ChosenPile"); if (sub != null) { AbilityUtils.resolve(sub); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/RepeatEachEffect.java b/forge-game/src/main/java/forge/game/ability/effects/RepeatEachEffect.java index 536194a7991..e931b4d396f 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/RepeatEachEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/RepeatEachEffect.java @@ -1,20 +1,11 @@ package forge.game.ability.effects; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - import com.google.common.collect.Lists; import com.google.common.collect.Maps; - import forge.game.Game; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; -import forge.game.card.Card; -import forge.game.card.CardCollection; -import forge.game.card.CardCollectionView; -import forge.game.card.CardLists; -import forge.game.card.CounterType; +import forge.game.card.*; import forge.game.player.Player; import forge.game.spellability.AbilitySub; import forge.game.spellability.SpellAbility; @@ -22,6 +13,10 @@ import forge.game.zone.ZoneType; import forge.util.Aggregates; import forge.util.collect.FCollection; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + public class RepeatEachEffect extends SpellAbilityEffect { /* (non-Javadoc) @@ -31,7 +26,7 @@ public class RepeatEachEffect extends SpellAbilityEffect { public void resolve(SpellAbility sa) { Card source = sa.getHostCard(); - AbilitySub repeat = sa.getAdditonalAbility("RepeatSubAbility"); + AbilitySub repeat = sa.getAdditionalAbility("RepeatSubAbility"); if (repeat != null && !repeat.getHostCard().equals(source)) { // TODO: for some reason, the host card of the original additional SA is set to the cloned card when diff --git a/forge-game/src/main/java/forge/game/ability/effects/RepeatEffect.java b/forge-game/src/main/java/forge/game/ability/effects/RepeatEffect.java index 7e6d6d26c4b..e76d84c8b56 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/RepeatEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/RepeatEffect.java @@ -25,7 +25,7 @@ public class RepeatEffect extends SpellAbilityEffect { Card source = sa.getHostCard(); // setup subability to repeat - AbilitySub repeat = sa.getAdditonalAbility("RepeatSubAbility"); + AbilitySub repeat = sa.getAdditionalAbility("RepeatSubAbility"); if (repeat != null && !repeat.getHostCard().equals(source)) { // TODO: for some reason, the host card of the original additional SA is set to the cloned card when diff --git a/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java b/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java index 38c9883d234..c917e4a16d4 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java @@ -123,7 +123,7 @@ public class TwoPilesEffect extends SpellAbilityEffect { card.addRemembered(z); } - AbilitySub sub = sa.getAdditonalAbility("ChosenPile"); + AbilitySub sub = sa.getAdditionalAbility("ChosenPile"); if (sub != null) { AbilityUtils.resolve(sub); } @@ -136,7 +136,7 @@ public class TwoPilesEffect extends SpellAbilityEffect { card.addRemembered(z); } - AbilitySub sub = sa.getAdditonalAbility("UnchosenPile"); + AbilitySub sub = sa.getAdditionalAbility("UnchosenPile"); if (sub != null) { AbilityUtils.resolve(sub); } diff --git a/forge-game/src/main/java/forge/game/card/CardFactory.java b/forge-game/src/main/java/forge/game/card/CardFactory.java index 5d0f04040e6..491f29e2c64 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactory.java +++ b/forge-game/src/main/java/forge/game/card/CardFactory.java @@ -17,24 +17,15 @@ */ package forge.game.card; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; - import forge.ImageKeys; import forge.StaticData; -import forge.card.CardRules; -import forge.card.CardSplitType; -import forge.card.CardStateName; -import forge.card.CardType; +import forge.card.*; import forge.card.CardType.CoreType; -import forge.card.ICardFace; import forge.card.mana.ManaCost; import forge.game.Game; import forge.game.ability.AbilityFactory; @@ -53,6 +44,10 @@ import forge.game.zone.ZoneType; import forge.item.IPaperCard; import forge.item.PaperCard; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + /** *

* AbstractCardFactory class. @@ -667,7 +662,7 @@ public class CardFactory { if (from.getSubAbility() != null) { to.setSubAbility(from.getSubAbility().getCopy()); } - for (Map.Entry e : from.getAdditonalAbilities().entrySet()) { + for (Map.Entry e : from.getAdditionalAbilities().entrySet()) { to.setAdditionalAbility(e.getKey(), e.getValue().getCopy()); } for (Map.Entry> e : from.getAdditionalAbilityLists().entrySet()) { diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java index ebb64de0cbe..cc5bd0e46dd 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java @@ -21,15 +21,8 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; - import forge.card.mana.ManaCost; -import forge.game.CardTraitBase; -import forge.game.ForgeScript; -import forge.game.Game; -import forge.game.GameActionUtil; -import forge.game.GameEntity; -import forge.game.GameObject; -import forge.game.IIdentifiable; +import forge.game.*; import forge.game.ability.AbilityFactory; import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; @@ -48,7 +41,6 @@ import forge.game.trigger.TriggerType; import forge.game.trigger.WrappedAbility; import forge.util.Expressions; import forge.util.TextUtil; - import org.apache.commons.lang3.StringUtils; import java.util.*; @@ -708,17 +700,17 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit view.updateDescription(this); //description changes when sub-abilities change } - public Map getAdditonalAbilities() { + public Map getAdditionalAbilities() { return additionalAbilities; } - public AbilitySub getAdditonalAbility(final String name) { - if (hasAdditonalAbility(name)) { + public AbilitySub getAdditionalAbility(final String name) { + if (hasAdditionalAbility(name)) { return additionalAbilities.get(name); } return null; } - public boolean hasAdditonalAbility(final String name) { + public boolean hasAdditionalAbility(final String name) { return additionalAbilities.containsKey(name); }