modified spells' canPlayAi, doTrigger and playFromEffect methods used by AI to include aiPlayer as 1st parameter

This commit is contained in:
Maxmtg
2013-11-24 10:02:58 +00:00
parent fcb8c4bdd6
commit e96ff73b50
118 changed files with 174 additions and 174 deletions

2
.gitattributes vendored
View File

@@ -14698,6 +14698,7 @@ forge-gui/src/main/java/forge/ai/ComputerUtilCard.java -text
forge-gui/src/main/java/forge/ai/ComputerUtilCombat.java -text
forge-gui/src/main/java/forge/ai/ComputerUtilCost.java -text
forge-gui/src/main/java/forge/ai/ComputerUtilMana.java -text
forge-gui/src/main/java/forge/ai/SpellAbilityAi.java -text
forge-gui/src/main/java/forge/ai/ability/AddPhaseAi.java -text
forge-gui/src/main/java/forge/ai/ability/AddTurnAi.java svneol=native#text/plain
forge-gui/src/main/java/forge/ai/ability/AlwaysPlayAi.java -text
@@ -14848,7 +14849,6 @@ forge-gui/src/main/java/forge/game/ability/AbilityFactory.java svneol=native#tex
forge-gui/src/main/java/forge/game/ability/AbilityUtils.java -text
forge-gui/src/main/java/forge/game/ability/ApiType.java -text
forge-gui/src/main/java/forge/game/ability/SaTargetRoutines.java -text
forge-gui/src/main/java/forge/game/ability/SpellAbilityAi.java -text
forge-gui/src/main/java/forge/game/ability/SpellAbilityEffect.java -text
forge-gui/src/main/java/forge/game/ability/SpellApiBased.java -text
forge-gui/src/main/java/forge/game/ability/effects/AbandonEffect.java -text

View File

@@ -476,7 +476,7 @@ public class AiController {
return false;
}
//System.out.printf("Ai thinks of %s @ %s >>> ", sa, sa.getActivatingPlayer().getGame().getPhaseHandler().debugPrintState());
if (!sa.canPlayAI()) {
if (!sa.canPlayAI(player)) {
return false;
}
//System.out.printf("wouldPlay: %s, canPay: %s%n", aiWouldPlay, canPay);
@@ -713,11 +713,11 @@ public class AiController {
sa.setActivatingPlayer(player);
//Spells
if (sa instanceof Spell) {
if (!((Spell) sa).canPlayFromEffectAI(mandatory, withoutPayingManaCost)) {
if (!((Spell) sa).canPlayFromEffectAI(player, mandatory, withoutPayingManaCost)) {
continue;
}
} else {
if (sa.canPlayAI()) {
if (sa.canPlayAI(player)) {
continue;
}
}

View File

@@ -1,4 +1,4 @@
package forge.game.ability;
package forge.ai;
import java.util.Collection;
@@ -6,8 +6,7 @@ import java.util.List;
import com.google.common.collect.Iterables;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCost;
import forge.game.ability.SaTargetRoutines;
import forge.game.card.Card;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;

View File

@@ -1,6 +1,6 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -19,8 +19,8 @@ package forge.ai.ability;
import java.util.List;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -1,7 +1,7 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -4,9 +4,9 @@ import java.util.List;
import com.google.common.collect.Iterables;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardPredicates;
import forge.game.phase.PhaseHandler;

View File

@@ -1,6 +1,6 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -15,10 +15,10 @@ import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.GameObject;
import forge.game.ability.AbilityUtils;
import forge.game.ability.ApiType;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardFactoryUtil;
import forge.game.card.CardLists;

View File

@@ -2,7 +2,7 @@ package forge.ai.ability;
import java.util.List;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;

View File

@@ -4,8 +4,8 @@ package forge.ai.ability;
import java.util.List;
import forge.ai.ComputerUtilCard;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.phase.PhaseType;

View File

@@ -20,7 +20,7 @@ package forge.ai.ability;
import java.util.Collection;
import forge.ai.ComputerUtilCard;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -3,7 +3,7 @@ package forge.ai.ability;
import java.util.List;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -1,7 +1,7 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -1,6 +1,6 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -17,6 +17,7 @@ import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.card.CardCharacteristicName;
import forge.card.MagicColor;
import forge.game.Game;
@@ -25,7 +26,6 @@ import forge.game.GameObject;
import forge.game.GlobalRuleChange;
import forge.game.ability.AbilityUtils;
import forge.game.ability.ApiType;
import forge.game.ability.SpellAbilityAi;
import forge.game.ability.effects.AttachEffect;
import forge.game.card.Card;
import forge.game.card.CardLists;

View File

@@ -5,8 +5,8 @@ import java.util.Random;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.cost.Cost;

View File

@@ -4,7 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.ability.effects.CharmEffect;
import forge.game.player.Player;
import forge.game.spellability.AbilitySub;
@@ -49,7 +49,7 @@ public class CharmAi extends SpellAbilityAi {
AbilitySub thisPick = null;
for (SpellAbility sub : choices) {
sub.setActivatingPlayer(ai);
if (!playNow && sub.canPlayAI()) {
if (!playNow && sub.canPlayAI(ai)) {
thisPick = (AbilitySub) sub;
choices.remove(sub);
playNow = true;

View File

@@ -8,8 +8,8 @@ import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates.Presets;

View File

@@ -2,7 +2,7 @@ package forge.ai.ability;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilMana;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.phase.PhaseType;
import forge.game.player.Player;

View File

@@ -1,6 +1,6 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
import forge.util.MyRandom;

View File

@@ -3,7 +3,7 @@ package forge.ai.ability;
import java.util.List;
import forge.ai.ComputerUtil;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType;

View File

@@ -6,11 +6,11 @@ import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.GameObject;
import forge.game.ability.AbilityUtils;
import forge.game.ability.ApiType;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.combat.Combat;

View File

@@ -1,7 +1,7 @@
package forge.ai.ability;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -1,7 +1,7 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions;

View File

@@ -2,9 +2,9 @@ package forge.ai.ability;
import java.util.List;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;

View File

@@ -6,8 +6,8 @@ import java.util.Map;
import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.player.Player;

View File

@@ -24,9 +24,9 @@ import java.util.Map;
import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.combat.CombatUtil;

View File

@@ -8,7 +8,7 @@ import java.util.Random;
import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates.Presets;

View File

@@ -2,9 +2,9 @@ package forge.ai.ability;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardFactoryUtil;
import forge.game.cost.Cost;

View File

@@ -4,8 +4,8 @@ import java.util.List;
import java.util.Random;
import forge.ai.ComputerUtilCard;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CounterType;

View File

@@ -5,7 +5,7 @@ import java.util.List;
import com.google.common.base.Predicate;
import forge.ai.ComputerUtil;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CounterType;

View File

@@ -10,8 +10,8 @@ import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CounterType;

View File

@@ -7,8 +7,8 @@ import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.cost.Cost;

View File

@@ -21,7 +21,7 @@ import java.util.List;
import com.google.common.base.Predicate;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.player.Player;

View File

@@ -2,7 +2,7 @@ package forge.ai.ability;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCost;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CounterType;
import forge.game.cost.Cost;

View File

@@ -5,8 +5,8 @@ import java.util.List;
import com.google.common.collect.Iterables;
import forge.ai.ComputerUtilCombat;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardPredicates;
import forge.game.phase.PhaseType;

View File

@@ -10,8 +10,8 @@ import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.cost.Cost;

View File

@@ -11,10 +11,10 @@ import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.GameObject;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;

View File

@@ -7,10 +7,10 @@ import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.GameObject;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;

View File

@@ -2,7 +2,7 @@ package forge.ai.ability;
import forge.ai.ComputerUtilCost;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.cost.Cost;
import forge.game.phase.PhaseType;

View File

@@ -10,9 +10,9 @@ import com.google.common.collect.Lists;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.combat.Combat;

View File

@@ -5,7 +5,7 @@ import java.util.Random;
import com.google.common.base.Predicate;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.combat.CombatUtil;

View File

@@ -1,7 +1,7 @@
package forge.ai.ability;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityFactory;
import forge.game.ability.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.AbilitySub;
import forge.game.spellability.SpellAbility;
@@ -17,7 +17,7 @@ public class DelayedTriggerAi extends SpellAbilityAi {
if (trigsa instanceof AbilitySub) {
return ((AbilitySub) trigsa).getAi().chkDrawbackWithSubs(ai, (AbilitySub)trigsa);
} else {
return trigsa.canPlayAI();
return trigsa.canPlayAI(ai);
}
}
@@ -39,7 +39,7 @@ public class DelayedTriggerAi extends SpellAbilityAi {
final String svarName = sa.getParam("Execute");
final SpellAbility trigsa = AbilityFactory.getAbility(sa.getSourceCard().getSVar(svarName), sa.getSourceCard());
trigsa.setActivatingPlayer(ai);
return trigsa.canPlayAI();
return trigsa.canPlayAI(ai);
}
}

View File

@@ -9,8 +9,8 @@ import com.google.common.base.Predicate;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CounterType;

View File

@@ -8,7 +8,7 @@ import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.cost.Cost;

View File

@@ -3,8 +3,8 @@ package forge.ai.ability;
import java.util.Random;
import forge.ai.ComputerUtil;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.phase.PhaseType;
import forge.game.player.Player;

View File

@@ -4,7 +4,7 @@ import java.util.List;
import java.util.Random;
import forge.ai.ComputerUtilMana;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;

View File

@@ -6,8 +6,8 @@ import java.util.Random;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.cost.Cost;
import forge.game.phase.PhaseType;

View File

@@ -3,8 +3,8 @@ package forge.ai.ability;
import java.util.List;
import java.util.Random;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -21,9 +21,9 @@ package forge.ai.ability;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.cost.Cost;
import forge.game.cost.CostDiscard;

View File

@@ -8,9 +8,9 @@ import com.google.common.collect.Iterables;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.ApiType;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.combat.CombatUtil;

View File

@@ -23,7 +23,7 @@ import java.util.List;
import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.combat.CombatUtil;

View File

@@ -1,7 +1,7 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -6,8 +6,8 @@ import java.util.Random;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.player.Player;

View File

@@ -1,6 +1,6 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -2,8 +2,8 @@ package forge.ai.ability;
import forge.ai.ComputerUtilCombat;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.SpellAbilityAi;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -1,6 +1,6 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions;

View File

@@ -1,7 +1,7 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -4,7 +4,7 @@ import java.util.Collection;
import com.google.common.collect.Iterables;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -2,7 +2,7 @@ package forge.ai.ability;
import java.util.Random;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions;

View File

@@ -4,9 +4,9 @@ import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.cost.Cost;
import forge.game.phase.PhaseType;

View File

@@ -5,8 +5,8 @@ import java.util.List;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.cost.Cost;
import forge.game.phase.PhaseType;

View File

@@ -3,8 +3,8 @@ package forge.ai.ability;
import java.util.Random;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CounterType;
import forge.game.phase.PhaseType;

View File

@@ -2,7 +2,7 @@ package forge.ai.ability;
import forge.ai.ComputerUtil;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -5,8 +5,8 @@ import java.util.List;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.cost.Cost;
import forge.game.phase.PhaseType;

View File

@@ -1,7 +1,7 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -6,8 +6,8 @@ import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;

View File

@@ -1,6 +1,6 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.player.PlayerActionConfirmMode;
import forge.game.spellability.AbilitySub;

View File

@@ -6,8 +6,8 @@ import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
import forge.ai.ComputerUtil;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardPredicates;
import forge.game.phase.PhaseType;

View File

@@ -1,7 +1,7 @@
package forge.ai.ability;
import forge.ai.ComputerUtil;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -3,9 +3,9 @@ package forge.ai.ability;
import java.util.List;
import java.util.Random;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.player.Player;

View File

@@ -9,8 +9,8 @@ import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.cost.Cost;
@@ -121,7 +121,7 @@ public class PlayAi extends SpellAbilityAi {
Spell spell = (Spell) s;
s.setActivatingPlayer(ai);
// timing restrictions still apply
if (s.getRestrictions().checkTimingRestrictions(c, s) && spell.canPlayFromEffectAI(false, true)) {
if (s.getRestrictions().checkTimingRestrictions(c, s) && spell.canPlayFromEffectAI(ai, false, true)) {
return true;
}
}

View File

@@ -4,8 +4,8 @@ import java.util.List;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCost;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.cost.Cost;
import forge.game.phase.PhaseType;

View File

@@ -7,8 +7,8 @@ import java.util.Map;
import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.player.Player;

View File

@@ -9,10 +9,10 @@ import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost;
import forge.ai.SpellAbilityAi;
import forge.card.MagicColor;
import forge.game.Game;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.ability.effects.ProtectEffect;
import forge.game.card.Card;
import forge.game.card.CardLists;

View File

@@ -2,7 +2,7 @@ package forge.ai.ability;
import forge.ai.ComputerUtilCost;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.cost.Cost;
import forge.game.player.Player;

View File

@@ -8,9 +8,9 @@ import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates.Presets;

View File

@@ -10,8 +10,8 @@ import com.google.common.collect.Iterables;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;

View File

@@ -1,7 +1,7 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions;

View File

@@ -24,10 +24,10 @@ import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.GameObject;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;

View File

@@ -5,9 +5,9 @@ import java.util.List;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.GameObject;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;

View File

@@ -1,7 +1,7 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -1,8 +1,8 @@
package forge.ai.ability;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityFactory;
import forge.game.ability.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.player.PlayerActionConfirmMode;
import forge.game.spellability.AbilitySub;

View File

@@ -5,7 +5,7 @@ import java.util.List;
import com.google.common.base.Predicate;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CounterType;

View File

@@ -1,6 +1,6 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -3,7 +3,7 @@ package forge.ai.ability;
import java.util.Random;
import forge.ai.ComputerUtilCost;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.cost.Cost;
import forge.game.player.Player;

View File

@@ -1,7 +1,7 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions;

View File

@@ -3,7 +3,7 @@ package forge.ai.ability;
import java.util.Random;
import forge.ai.ComputerUtilCost;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.cost.Cost;
import forge.game.player.Player;

View File

@@ -2,7 +2,7 @@ package forge.ai.ability;
import forge.ai.AiController;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.ai.AiProps;
import forge.game.card.Card;
import forge.game.phase.PhaseType;

View File

@@ -4,8 +4,8 @@ import java.util.List;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;

View File

@@ -6,7 +6,7 @@ import java.util.Random;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.cost.Cost;

View File

@@ -2,7 +2,7 @@ package forge.ai.ability;
import java.util.Random;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions;

View File

@@ -1,7 +1,7 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

View File

@@ -1,6 +1,6 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.player.PlayerActionConfirmMode;
import forge.game.spellability.SpellAbility;

View File

@@ -6,8 +6,8 @@ import java.util.List;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates.Presets;

View File

@@ -3,8 +3,8 @@ package forge.ai.ability;
import java.util.List;
import forge.ai.ComputerUtil;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;

View File

@@ -7,8 +7,8 @@ import com.google.common.collect.Iterables;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;

View File

@@ -6,8 +6,8 @@ import java.util.Random;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
import forge.game.ability.SpellAbilityAi;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates.Presets;

View File

@@ -1,6 +1,6 @@
package forge.ai.ability;
import forge.game.ability.SpellAbilityAi;
import forge.ai.SpellAbilityAi;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;

Some files were not shown because too many files have changed in this diff Show More