diff --git a/forge-ai/src/main/java/forge/ai/AiController.java b/forge-ai/src/main/java/forge/ai/AiController.java index 23c35622e3b..3277d21e936 100644 --- a/forge-ai/src/main/java/forge/ai/AiController.java +++ b/forge-ai/src/main/java/forge/ai/AiController.java @@ -340,7 +340,7 @@ public class AiController { } - private List getOriginalAndAltCostAbilities(final List originList) + private ArrayList getOriginalAndAltCostAbilities(final ArrayList originList) { final ArrayList newAbilities = new ArrayList(); for (SpellAbility sa : originList) { @@ -350,7 +350,7 @@ public class AiController { newAbilities.addAll(GameActionUtil.getAlternativeCosts(sa)); } - final List result = new ArrayList(); + final ArrayList result = new ArrayList(); for (SpellAbility sa : newAbilities) { sa.setActivatingPlayer(player); result.addAll(GameActionUtil.getOptionalCosts(sa)); @@ -588,7 +588,7 @@ public class AiController { * a {@link java.util.ArrayList} object. * @return a boolean. */ - private SpellAbility chooseCounterSpell(final List possibleCounters) { + private SpellAbility chooseCounterSpell(final ArrayList possibleCounters) { if ( possibleCounters == null || possibleCounters.isEmpty()) return null;; @@ -761,9 +761,9 @@ public class AiController { } // cast 0 mana cost spells first (might be a Mox) - if (a1 == 0) { + if (a1 == 0 && b1 > 0) { return -1; - } else if (b1 == 0) { + } else if (a1 > 0 && b1 == 0) { return 1; } @@ -1132,7 +1132,7 @@ public class AiController { return result; } - private SpellAbility chooseSpellAbilyToPlay(final List all, boolean skipCounter) { + private SpellAbility chooseSpellAbilyToPlay(final ArrayList all, boolean skipCounter) { if ( all == null || all.isEmpty() ) return null; diff --git a/forge-ai/src/main/java/forge/ai/ability/TokenAi.java b/forge-ai/src/main/java/forge/ai/ability/TokenAi.java index b95ce932138..22c3de5e6a3 100644 --- a/forge-ai/src/main/java/forge/ai/ability/TokenAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/TokenAi.java @@ -18,8 +18,6 @@ import forge.game.spellability.TargetRestrictions; import forge.game.zone.ZoneType; import forge.util.MyRandom; -import java.util.Random; - /** *

* AbilityFactory_Token class. @@ -85,7 +83,7 @@ public class TokenAi extends SpellAbilityAi { for (final String type : this.tokenTypes) { if (type.equals("Legendary")) { // Don't kill AIs Legendary tokens - if (ai.getCardsIn(ZoneType.Battlefield, this.tokenName).size() > 0) { + if (!ai.getCardsIn(ZoneType.Battlefield, this.tokenName).isEmpty()) { return false; } } @@ -126,8 +124,6 @@ public class TokenAi extends SpellAbilityAi { return false; } - // prevent run-away activations - first time will always return true - final Random r = MyRandom.getRandom(); final Card source = sa.getHostCard(); final TargetRestrictions tgt = sa.getTargetRestrictions(); @@ -181,7 +177,6 @@ public class TokenAi extends SpellAbilityAi { if (SpellAbilityAi.playReusable(ai, sa)) { return true; } - if (game.getPhaseHandler().is(PhaseType.COMBAT_DECLARE_ATTACKERS)) { return true; } @@ -189,7 +184,7 @@ public class TokenAi extends SpellAbilityAi { return true; } - return (r.nextFloat() < .8); + return MyRandom.getRandom().nextFloat() < .8; } @Override diff --git a/forge-gui/res/cardsfolder/g/grave_pact.txt b/forge-gui/res/cardsfolder/g/grave_pact.txt index 00d629d3101..5732ba3992e 100644 --- a/forge-gui/res/cardsfolder/g/grave_pact.txt +++ b/forge-gui/res/cardsfolder/g/grave_pact.txt @@ -1,7 +1,7 @@ Name:Grave Pact ManaCost:1 B B B Types:Enchantment -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ Whenever a creature you control is put into a graveyard from the battlefield, each other player sacrifices a creature. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ Whenever a creature you control dies, each other player sacrifices a creature. SVar:TrigSac:AB$ Sacrifice | Cost$ 0 | Defined$ Player.Other | SacValid$ Creature SVar:Picture:http://www.wizards.com/global/images/magic/general/grave_pact.jpg Oracle:Whenever a creature you control dies, each other player sacrifices a creature. \ No newline at end of file