renamed base classes in SpellAbility factory

This commit is contained in:
Maxmtg
2013-02-19 05:33:10 +00:00
parent 4cd9db6711
commit bb1896cc08
202 changed files with 442 additions and 442 deletions

8
.gitattributes vendored
View File

@@ -13646,13 +13646,13 @@ src/main/java/forge/card/SpellManaCost.java -text
src/main/java/forge/card/TriggerReplacementBase.java -text
src/main/java/forge/card/UnOpenedMeta.java -text
src/main/java/forge/card/UnOpenedProduct.java -text
src/main/java/forge/card/ability/AbilityApiBased.java -text
src/main/java/forge/card/ability/AbilityFactory.java svneol=native#text/plain
src/main/java/forge/card/ability/AbilityUtils.java -text
src/main/java/forge/card/ability/ApiType.java -text
src/main/java/forge/card/ability/CommonAbility.java -text
src/main/java/forge/card/ability/CommonSpell.java -text
src/main/java/forge/card/ability/SpellAiLogic.java -text
src/main/java/forge/card/ability/SpellEffect.java -text
src/main/java/forge/card/ability/SpellAbilityAi.java -text
src/main/java/forge/card/ability/SpellAbilityEffect.java -text
src/main/java/forge/card/ability/SpellApiBased.java -text
src/main/java/forge/card/ability/ai/AddPhaseAi.java -text
src/main/java/forge/card/ability/ai/AddTurnAi.java svneol=native#text/plain
src/main/java/forge/card/ability/ai/AlwaysPlayAi.java -text

View File

@@ -14,13 +14,13 @@ import forge.card.spellability.AbilityManaPart;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
public class CommonAbility extends AbilityActivated {
private final SpellEffect effect;
private final SpellAiLogic ai;
public class AbilityApiBased extends AbilityActivated {
private final SpellAbilityEffect effect;
private final SpellAbilityAi ai;
private static final long serialVersionUID = -4183793555528531978L;
public CommonAbility(ApiType api0, Card sourceCard, Cost abCost, Target tgt, Map<String, String> params0) {
public AbilityApiBased(ApiType api0, Card sourceCard, Cost abCost, Target tgt, Map<String, String> params0) {
super(sourceCard, abCost, tgt);
params = params0;
api = api0;
@@ -49,7 +49,7 @@ public class CommonAbility extends AbilityActivated {
@Override
public AbilityActivated getCopy() {
Target tgt = getTarget() == null ? null : new Target(getTarget());
AbilityActivated res = new CommonAbility(api, getSourceCard(), getPayCosts(), tgt, params);
AbilityActivated res = new AbilityApiBased(api, getSourceCard(), getPayCosts(), tgt, params);
CardFactoryUtil.copySpellAbility(this, res);
return res;
}

View File

@@ -128,9 +128,9 @@ public final class AbilityFactory {
if (isAb) {
spellAbility = new CommonAbility(api, hostCard, abCost, abTgt, mapParams);
spellAbility = new AbilityApiBased(api, hostCard, abCost, abTgt, mapParams);
} else if (isSp) {
spellAbility = new CommonSpell(api, hostCard, abCost, abTgt, mapParams);
spellAbility = new SpellApiBased(api, hostCard, abCost, abTgt, mapParams);
} else if (isDb) {
spellAbility = new AbilitySub(api, hostCard, abTgt, mapParams);
}
@@ -160,7 +160,7 @@ public final class AbilityFactory {
spellAbility.setSubAbility(getSubAbility(hostCard, hostCard.getSVar(mapParams.get("SubAbility"))));
}
if (spellAbility instanceof CommonSpell && hostCard.isPermanent()) {
if (spellAbility instanceof SpellApiBased && hostCard.isPermanent()) {
spellAbility.setDescription(spellAbility.getSourceCard().getName());
} else if (mapParams.containsKey("SpellDescription")) {
final StringBuilder sb = new StringBuilder();

View File

@@ -122,13 +122,13 @@ public enum ApiType {
InternalEtbReplacement(ETBReplacementEffect.class, CanPlayAsDrawbackAi.class);
private final Class<? extends SpellEffect> clsEffect;
private final Class<? extends SpellAiLogic> clsAi;
private final Class<? extends SpellAbilityEffect> clsEffect;
private final Class<? extends SpellAbilityAi> clsAi;
private static final Map<String, ApiType> allValues = new TreeMap<String, ApiType>(String.CASE_INSENSITIVE_ORDER);
ApiType(Class<? extends SpellEffect> clsEf, Class<? extends SpellAiLogic> clsAI) {
ApiType(Class<? extends SpellAbilityEffect> clsEf, Class<? extends SpellAbilityAi> clsAI) {
clsEffect = clsEf;
clsAi = clsAI;
}
@@ -144,12 +144,12 @@ public enum ApiType {
return v;
}
public SpellEffect getSpellEffect() {
public SpellAbilityEffect getSpellEffect() {
return clsEffect == null ? null : ReflectionUtil.makeDefaultInstanceOf(clsEffect);
}
public SpellAiLogic getAi() {
public SpellAbilityAi getAi() {
return clsAi == null ? null : ReflectionUtil.makeDefaultInstanceOf(clsAi);
}

View File

@@ -10,7 +10,7 @@ import forge.game.phase.PhaseType;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
public abstract class SpellAiLogic {
public abstract class SpellAbilityAi {
public final boolean canPlayAIWithSubs(final AIPlayer aiPlayer, final SpellAbility sa) {
if (!canPlayAI(aiPlayer, sa)) {

View File

@@ -23,7 +23,7 @@ import forge.game.player.Player;
* @version $Id: AbilityFactoryAlterLife.java 17656 2012-10-22 19:32:56Z Max mtg $
*/
public abstract class SpellEffect {
public abstract class SpellAbilityEffect {
public abstract void resolve(final SpellAbility sa);

View File

@@ -13,12 +13,12 @@ import forge.card.spellability.Spell;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
public class CommonSpell extends Spell {
public class SpellApiBased extends Spell {
private static final long serialVersionUID = -6741797239508483250L;
private final SpellEffect effect;
private final SpellAiLogic ai;
private final SpellAbilityEffect effect;
private final SpellAbilityAi ai;
public CommonSpell(ApiType api0, Card sourceCard, Cost abCost, Target tgt, Map<String, String> params0) {
public SpellApiBased(ApiType api0, Card sourceCard, Cost abCost, Target tgt, Map<String, String> params0) {
super(sourceCard, abCost, tgt);
params = params0;
api = api0;

View File

@@ -1,6 +1,6 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
@@ -8,7 +8,7 @@ import forge.game.player.AIPlayer;
* TODO: Write javadoc for this type.
*
*/
public class AddPhaseAi extends SpellAiLogic {
public class AddPhaseAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) {

View File

@@ -22,7 +22,7 @@ import java.util.List;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
@@ -34,7 +34,7 @@ import forge.game.player.Player;
* @author Forge
* @version $Id$
*/
public class AddTurnAi extends SpellAiLogic {
public class AddTurnAi extends SpellAbilityAi {
@Override

View File

@@ -1,11 +1,11 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class AlwaysPlayAi extends SpellAiLogic {
public class AlwaysPlayAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)
*/

View File

@@ -8,7 +8,7 @@ import forge.Card;
import forge.CardPredicates;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.phase.PhaseType;
@@ -25,7 +25,7 @@ import forge.game.zone.ZoneType;
* @version $Id: AbilityFactoryAnimate.java 17608 2012-10-20 22:27:27Z Max mtg $
*/
public class AnimateAi extends SpellAiLogic {
public class AnimateAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)
@@ -44,7 +44,7 @@ public class AnimateAi extends SpellAiLogic {
// Combat_Begin step
if (!Singletons.getModel().getGame().getPhaseHandler().is(PhaseType.COMBAT_BEGIN)
&& Singletons.getModel().getGame().getPhaseHandler().isPlayerTurn(aiPlayer)
&& !SpellAiLogic.isSorcerySpeed(sa)
&& !SpellAbilityAi.isSorcerySpeed(sa)
&& !sa.hasParam("ActivationPhases") && !sa.hasParam("Permanent")) {
return false;
}

View File

@@ -1,10 +1,10 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class AnimateAllAi extends SpellAiLogic {
public class AnimateAllAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) {

View File

@@ -18,7 +18,7 @@ import forge.Singletons;
import forge.CardPredicates.Presets;
import forge.card.ability.AbilityUtils;
import forge.card.ability.ApiType;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -33,7 +33,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class AttachAi extends SpellAiLogic {
public class AttachAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -18,7 +18,7 @@
package forge.card.ability.ai;
import forge.card.spellability.SpellAbility;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.game.player.AIPlayer;
/**
@@ -29,7 +29,7 @@ import forge.game.player.AIPlayer;
* @author Forge
* @version $Id: AbilityFactoryBond.java 15090 2012-04-07 12:50:31Z Max mtg $
*/
public final class BondAi extends SpellAiLogic {
public final class BondAi extends SpellAbilityAi {
/**
* <p>
* bondCanPlayAI.

View File

@@ -1,11 +1,11 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class CanPlayAsDrawbackAi extends SpellAiLogic {
public class CanPlayAsDrawbackAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -1,11 +1,11 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class CannotPlayAi extends SpellAiLogic {
public class CannotPlayAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)
*/

View File

@@ -18,7 +18,7 @@ import forge.Singletons;
import forge.CardPredicates.Presets;
import forge.card.ability.AbilityUtils;
import forge.card.ability.ApiType;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.ability.effects.AttachEffect;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
@@ -43,7 +43,7 @@ import forge.gui.GuiChoose;
import forge.util.Aggregates;
import forge.util.MyRandom;
public class ChangeZoneAi extends SpellAiLogic {
public class ChangeZoneAi extends SpellAbilityAi {
/**
* <p>
@@ -745,7 +745,7 @@ public class ChangeZoneAi extends SpellAiLogic {
}
}
// Blink permanents with ETB triggers
else if (sa.isAbility() && (sa.getPayCosts() != null) && SpellAiLogic.playReusable(ai, sa)) {
else if (sa.isAbility() && (sa.getPayCosts() != null) && SpellAbilityAi.playReusable(ai, sa)) {
aiPermanents = CardLists.filter(aiPermanents, new Predicate<Card>() {
@Override
public boolean apply(final Card c) {

View File

@@ -7,7 +7,7 @@ import forge.Card;
import forge.CardLists;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -19,7 +19,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class ChangeZoneAllAi extends SpellAiLogic {
public class ChangeZoneAllAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -4,14 +4,14 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.ability.effects.CharmEffect;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
import forge.util.MyRandom;
public class CharmAi extends SpellAiLogic {
public class CharmAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -5,13 +5,13 @@ import java.util.List;
import forge.Card;
import forge.CardLists;
import forge.Singletons;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
import forge.game.zone.ZoneType;
public class ChooseCardAi extends SpellAiLogic {
public class ChooseCardAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -1,12 +1,12 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.ai.ComputerUtil;
import forge.game.player.AIPlayer;
public class ChooseCardNameAi extends SpellAiLogic {
public class ChooseCardNameAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -1,11 +1,11 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
import forge.util.MyRandom;
public class ChooseColorAi extends SpellAiLogic {
public class ChooseColorAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) {

View File

@@ -1,10 +1,10 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class ChoosePlayerAi extends SpellAiLogic {
public class ChoosePlayerAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -10,7 +10,7 @@ import forge.CardLists;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.ApiType;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -20,7 +20,7 @@ import forge.game.phase.PhaseType;
import forge.game.player.AIPlayer;
import forge.game.zone.ZoneType;
public class ChooseSourceAi extends SpellAiLogic {
public class ChooseSourceAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -1,13 +1,13 @@
package forge.card.ability.ai;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
public class ChooseTypeAi extends SpellAiLogic {
public class ChooseTypeAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) {
if (!sa.hasParam("AILogic")) {

View File

@@ -1,13 +1,13 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
public class ClashAi extends SpellAiLogic {
public class ClashAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean)

View File

@@ -5,14 +5,14 @@ import java.util.List;
import forge.Card;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;
import forge.game.player.AIPlayer;
public class CloneAi extends SpellAiLogic {
public class CloneAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {
@@ -37,7 +37,7 @@ public class CloneAi extends SpellAiLogic {
// don't use instant speed clone abilities outside computers
// Combat_Begin step
if (!phase.is(PhaseType.COMBAT_BEGIN)
&& phase.isPlayerTurn(ai) && !SpellAiLogic.isSorcerySpeed(sa)
&& phase.isPlayerTurn(ai) && !SpellAbilityAi.isSorcerySpeed(sa)
&& !sa.hasParam("ActivationPhases") && !sa.hasParam("Permanent")) {
return false;
}

View File

@@ -8,7 +8,7 @@ import com.google.common.base.Predicate;
import forge.Card;
import forge.CardLists;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -16,7 +16,7 @@ import forge.game.player.AIPlayer;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class ControlExchangeAi extends SpellAiLogic {
public class ControlExchangeAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -28,7 +28,7 @@ import forge.Card;
import forge.CardLists;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -61,7 +61,7 @@ import forge.game.zone.ZoneType;
* @author Forge
* @version $Id: AbilityFactoryGainControl.java 17764 2012-10-29 11:04:18Z Sloth $
*/
public class ControlGainAi extends SpellAiLogic {
public class ControlGainAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, final SpellAbility sa) {
boolean hasCreature = false;

View File

@@ -10,7 +10,7 @@ import forge.Card;
import forge.CardLists;
import forge.Singletons;
import forge.CardPredicates.Presets;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -19,7 +19,7 @@ import forge.game.player.AIPlayer;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class CopyPermanentAi extends SpellAiLogic {
public class CopyPermanentAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)
@@ -33,7 +33,7 @@ public class CopyPermanentAi extends SpellAiLogic {
return false;
} else {
double chance = .4; // 40 percent chance with instant speed stuff
if (SpellAiLogic.isSorcerySpeed(sa)) {
if (SpellAbilityAi.isSorcerySpeed(sa)) {
chance = .667; // 66.7% chance for sorcery speed (since it will
// never activate EOT)
}

View File

@@ -3,7 +3,7 @@ package forge.card.ability.ai;
import forge.Card;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -14,7 +14,7 @@ import forge.game.ai.ComputerUtilMana;
import forge.game.player.AIPlayer;
import forge.util.MyRandom;
public class CounterAi extends SpellAiLogic {
public class CounterAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -7,7 +7,7 @@ import forge.Card;
import forge.CardLists;
import forge.CounterType;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -16,7 +16,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class CountersMoveAi extends SpellAiLogic {
public class CountersMoveAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {
// AI needs to be expanded, since this function can be pretty complex
@@ -36,7 +36,7 @@ public class CountersMoveAi extends SpellAiLogic {
// prevent run-away activations - first time will always return true
boolean chance = false;
if (SpellAiLogic.playReusable(ai, sa)) {
if (SpellAbilityAi.playReusable(ai, sa)) {
return chance;
}

View File

@@ -7,13 +7,13 @@ import com.google.common.base.Predicate;
import forge.Card;
import forge.CardLists;
import forge.CounterType;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
import forge.game.zone.ZoneType;
public class CountersProliferateAi extends SpellAiLogic {
public class CountersProliferateAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -11,7 +11,7 @@ import forge.CardLists;
import forge.CounterType;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -25,7 +25,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class CountersPutAi extends SpellAiLogic {
public class CountersPutAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, final SpellAbility sa) {
// AI needs to be expanded, since this function can be pretty complex

View File

@@ -9,7 +9,7 @@ import forge.Card;
import forge.CardLists;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
@@ -23,7 +23,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class CountersPutAllAi extends SpellAiLogic {
public class CountersPutAllAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {
// AI needs to be expanded, since this function can be pretty complex
@@ -124,7 +124,7 @@ public class CountersPutAllAi extends SpellAiLogic {
}
}
if (sa.isTrigger() || sa instanceof AbilitySub || SpellAiLogic.playReusable(ai, sa)) {
if (sa.isTrigger() || sa instanceof AbilitySub || SpellAbilityAi.playReusable(ai, sa)) {
return chance;
}

View File

@@ -5,7 +5,7 @@ import java.util.Random;
import forge.Card;
import forge.CounterType;
import forge.Singletons;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -14,7 +14,7 @@ import forge.game.phase.PhaseType;
import forge.game.player.AIPlayer;
import forge.util.MyRandom;
public class CountersRemoveAi extends SpellAiLogic {
public class CountersRemoveAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -7,14 +7,14 @@ import com.google.common.collect.Iterables;
import forge.Card;
import forge.CardPredicates;
import forge.Singletons;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.ai.ComputerUtilCombat;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
public abstract class DamageAiBase extends SpellAiLogic {
public abstract class DamageAiBase extends SpellAbilityAi {
protected boolean shouldTgtP(final Player comp, final SpellAbility sa, final int d, final boolean noPrevention) {
int restDamage = d;
final Player enemy = comp.getOpponent();

View File

@@ -10,7 +10,7 @@ import forge.Card;
import forge.CardLists;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -23,7 +23,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class DamageAllAi extends SpellAiLogic {
public class DamageAllAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -10,7 +10,7 @@ import forge.Card;
import forge.CardLists;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -307,7 +307,7 @@ public class DamageDealAi extends DamageAiBase {
// because we can
else if (saMe.canTarget(enemy)) {
if ((phase.is(PhaseType.END_OF_TURN) && phase.getNextTurn().equals(ai))
|| (SpellAiLogic.isSorcerySpeed(saMe) && phase.is(PhaseType.MAIN2))
|| (SpellAbilityAi.isSorcerySpeed(saMe) && phase.is(PhaseType.MAIN2))
|| saMe.getPayCosts() == null || isTrigger
|| this.shouldTgtP(ai, saMe, dmg, noPrevention)) {
tgt.addTarget(enemy);
@@ -385,7 +385,7 @@ public class DamageDealAi extends DamageAiBase {
if (!positive) {
return false;
}
if (!urgent && !SpellAiLogic.playReusable(ai, saMe)) {
if (!urgent && !SpellAbilityAi.playReusable(ai, saMe)) {
return false;
}
return true;

View File

@@ -8,7 +8,7 @@ import forge.CardLists;
import forge.CardPredicates;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -22,7 +22,7 @@ import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
public class DamagePreventAi extends SpellAiLogic {
public class DamagePreventAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -3,14 +3,14 @@ package forge.card.ability.ai;
import forge.Card;
import forge.Singletons;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.game.ai.ComputerUtilCost;
import forge.game.phase.PhaseType;
import forge.game.player.AIPlayer;
public class DamagePreventAllAi extends SpellAiLogic {
public class DamagePreventAllAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -10,7 +10,7 @@ import forge.Card;
import forge.CardLists;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -23,7 +23,7 @@ import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
public class DebuffAi extends SpellAiLogic {
public class DebuffAi extends SpellAbilityAi {
// *************************************************************************
// ***************************** Debuff ************************************
// *************************************************************************
@@ -60,7 +60,7 @@ public class DebuffAi extends SpellAiLogic {
|| !Singletons.getModel().getGame().getStack().isEmpty()) {
// Instant-speed pumps should not be cast outside of combat when the
// stack is empty
if (!SpellAiLogic.isSorcerySpeed(sa)) {
if (!SpellAbilityAi.isSorcerySpeed(sa)) {
return false;
}
}

View File

@@ -8,7 +8,7 @@ import com.google.common.base.Predicate;
import forge.Card;
import forge.CardLists;
import forge.Singletons;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.phase.CombatUtil;
import forge.game.phase.PhaseType;
@@ -17,7 +17,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class DebuffAllAi extends SpellAiLogic {
public class DebuffAllAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {
String valid = "";

View File

@@ -1,12 +1,12 @@
package forge.card.ability.ai;
import forge.card.ability.AbilityFactory;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class DelayedTriggerAi extends SpellAiLogic {
public class DelayedTriggerAi extends SpellAbilityAi {
@Override
public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) {

View File

@@ -11,7 +11,7 @@ import forge.CardLists;
import forge.CounterType;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.cost.CostPart;
@@ -25,7 +25,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class DestroyAi extends SpellAiLogic {
public class DestroyAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player)
@@ -74,7 +74,7 @@ public class DestroyAi extends SpellAiLogic {
list = CardLists.getValidCards(list, sa.getParam("AITgts"), sa.getActivatingPlayer(), source);
}
list = CardLists.getNotKeyword(list, "Indestructible");
if (!SpellAiLogic.playReusable(ai, sa)) {
if (!SpellAbilityAi.playReusable(ai, sa)) {
list = CardLists.filter(list, new Predicate<Card>() {
@Override
public boolean apply(final Card c) {

View File

@@ -7,7 +7,7 @@ import com.google.common.base.Predicate;
import forge.Card;
import forge.CardLists;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -18,7 +18,7 @@ import forge.game.player.AIPlayer;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class DestroyAllAi extends SpellAiLogic {
public class DestroyAllAi extends SpellAbilityAi {
private static final Predicate<Card> predicate = new Predicate<Card>() {
@Override

View File

@@ -3,7 +3,7 @@ package forge.card.ability.ai;
import java.util.Random;
import forge.Singletons;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.phase.PhaseType;
@@ -13,14 +13,14 @@ import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class DigAi extends SpellAiLogic {
public class DigAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)
*/
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {
double chance = .4; // 40 percent chance with instant speed stuff
if (SpellAiLogic.isSorcerySpeed(sa)) {
if (SpellAbilityAi.isSorcerySpeed(sa)) {
chance = .667; // 66.7% chance for sorcery speed (since it will
// never activate EOT)
}
@@ -52,7 +52,7 @@ public class DigAi extends SpellAiLogic {
return false;
}
if (SpellAiLogic.playReusable(ai, sa)) {
if (SpellAbilityAi.playReusable(ai, sa)) {
randomReturn = true;
}

View File

@@ -2,7 +2,7 @@ package forge.card.ability.ai;
import java.util.Random;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
@@ -10,12 +10,12 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class DigUntilAi extends SpellAiLogic {
public class DigUntilAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {
double chance = .4; // 40 percent chance with instant speed stuff
if (SpellAiLogic.isSorcerySpeed(sa)) {
if (SpellAbilityAi.isSorcerySpeed(sa)) {
chance = .667; // 66.7% chance for sorcery speed (since it will
// never activate EOT)
}

View File

@@ -6,7 +6,7 @@ import java.util.Random;
import forge.Card;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -19,7 +19,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class DiscardAi extends SpellAiLogic {
public class DiscardAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -5,14 +5,14 @@ import java.util.Random;
import forge.Card;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.util.MyRandom;
public class DrainManaAi extends SpellAiLogic {
public class DrainManaAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -27,7 +27,7 @@ import forge.Card;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.cost.CostDiscard;
import forge.card.cost.CostPart;
@@ -43,7 +43,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class DrawAi extends SpellAiLogic {
public class DrawAi extends SpellAbilityAi {
@Override
public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) {
@@ -110,7 +110,7 @@ public class DrawAi extends SpellAiLogic {
}
if ((!Singletons.getModel().getGame().getPhaseHandler().getNextTurn().equals(ai)
|| Singletons.getModel().getGame().getPhaseHandler().getPhase().isBefore(PhaseType.END_OF_TURN))
&& !sa.hasParam("PlayerTurn") && !SpellAiLogic.isSorcerySpeed(sa)
&& !sa.hasParam("PlayerTurn") && !SpellAbilityAi.isSorcerySpeed(sa)
&& ai.getCardsIn(ZoneType.Hand).size() > 1) {
return false;
}
@@ -124,7 +124,7 @@ public class DrawAi extends SpellAiLogic {
// stuff
final Random r = MyRandom.getRandom();
boolean randomReturn = r.nextFloat() <= Math.pow(chance, sa.getActivationsThisTurn() + 1);
if (SpellAiLogic.isSorcerySpeed(sa)) {
if (SpellAbilityAi.isSorcerySpeed(sa)) {
randomReturn = true;
}
if ((Singletons.getModel().getGame().getPhaseHandler().is(PhaseType.END_OF_TURN)
@@ -132,7 +132,7 @@ public class DrawAi extends SpellAiLogic {
randomReturn = true;
}
if (SpellAiLogic.playReusable(ai, sa)) {
if (SpellAbilityAi.playReusable(ai, sa)) {
randomReturn = true;
}

View File

@@ -8,7 +8,7 @@ import com.google.common.base.Predicate;
import forge.Card;
import forge.CardLists;
import forge.Singletons;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -22,7 +22,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class EffectAi extends SpellAiLogic {
public class EffectAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {
final GameState game = Singletons.getModel().getGame();

View File

@@ -1,7 +1,7 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
@@ -9,7 +9,7 @@ import forge.game.player.AIPlayer;
* TODO: Write javadoc for this type.
*
*/
public class EndTurnAi extends SpellAiLogic {
public class EndTurnAi extends SpellAbilityAi {
@Override
protected boolean doTriggerAINoCost(AIPlayer aiPlayer, SpellAbility sa, boolean mandatory) {

View File

@@ -7,14 +7,14 @@ import com.google.common.base.Predicate;
import forge.Card;
import forge.CardLists;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.ai.ComputerUtilCombat;
import forge.game.player.AIPlayer;
import forge.util.MyRandom;
public class FightAi extends SpellAiLogic {
public class FightAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -2,13 +2,13 @@ package forge.card.ability.ai;
import forge.Singletons;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.ai.ComputerUtilCombat;
import forge.game.phase.PhaseType;
import forge.game.player.AIPlayer;
public class FogAi extends SpellAiLogic {
public class FogAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -1,12 +1,12 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
public class GameLossAi extends SpellAiLogic {
public class GameLossAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {
final Player opp = ai.getOpponent();

View File

@@ -1,11 +1,11 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class GameWinAi extends SpellAiLogic {
public class GameWinAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)
*/

View File

@@ -2,14 +2,14 @@ package forge.card.ability.ai;
import java.util.Random;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.util.MyRandom;
public class LifeExchangeAi extends SpellAiLogic {
public class LifeExchangeAi extends SpellAbilityAi {
/*
* (non-Javadoc)

View File

@@ -5,7 +5,7 @@ import java.util.Random;
import forge.Card;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
@@ -23,7 +23,7 @@ import forge.util.MyRandom;
*
*/
public class LifeGainAi extends SpellAiLogic {
public class LifeGainAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.AbilityFactoryAlterLife.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)
@@ -100,7 +100,7 @@ public class LifeGainAi extends SpellAiLogic {
// Don't use lifegain before main 2 if possible
if (!lifeCritical && (!Singletons.getModel().getGame().getPhaseHandler().getNextTurn().equals(ai)
|| Singletons.getModel().getGame().getPhaseHandler().getPhase().isBefore(PhaseType.END_OF_TURN))
&& !sa.hasParam("PlayerTurn") && !SpellAiLogic.isSorcerySpeed(sa)) {
&& !sa.hasParam("PlayerTurn") && !SpellAbilityAi.isSorcerySpeed(sa)) {
return false;
}
@@ -123,7 +123,7 @@ public class LifeGainAi extends SpellAiLogic {
}
boolean randomReturn = r.nextFloat() <= .6667;
if (lifeCritical || SpellAiLogic.playReusable(ai, sa)) {
if (lifeCritical || SpellAbilityAi.playReusable(ai, sa)) {
randomReturn = true;
}

View File

@@ -6,7 +6,7 @@ import java.util.Random;
import forge.Card;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -18,7 +18,7 @@ import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.util.MyRandom;
public class LifeLoseAi extends SpellAiLogic {
public class LifeLoseAi extends SpellAbilityAi {
@Override
public boolean chkAIDrawback(SpellAbility sa, AIPlayer ai) {
@@ -132,7 +132,7 @@ public class LifeLoseAi extends SpellAiLogic {
}
boolean randomReturn = r.nextFloat() <= .6667;
if (SpellAiLogic.playReusable(ai, sa) || priority) {
if (SpellAbilityAi.playReusable(ai, sa) || priority) {
randomReturn = true;
}

View File

@@ -6,7 +6,7 @@ import forge.Card;
import forge.CounterType;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.ai.ComputerUtilMana;
@@ -15,7 +15,7 @@ import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.util.MyRandom;
public class LifeSetAi extends SpellAiLogic {
public class LifeSetAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -6,7 +6,7 @@ import java.util.Random;
import forge.Card;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -19,7 +19,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class MillAi extends SpellAiLogic {
public class MillAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {
@@ -64,7 +64,7 @@ public class MillAi extends SpellAiLogic {
double chance = .4; // 40 percent chance of milling with instant speed
// stuff
if (SpellAiLogic.isSorcerySpeed(sa)) {
if (SpellAbilityAi.isSorcerySpeed(sa)) {
chance = .667; // 66.7% chance for sorcery speed
}
@@ -85,7 +85,7 @@ public class MillAi extends SpellAiLogic {
}
}
if (SpellAiLogic.playReusable(ai, sa)) {
if (SpellAbilityAi.playReusable(ai, sa)) {
randomReturn = true;
// some other variables here, like deck size, and phase and other fun stuff
}

View File

@@ -1,11 +1,11 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class MustAttackAi extends SpellAiLogic {
public class MustAttackAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) {

View File

@@ -9,7 +9,7 @@ import forge.CardLists;
import forge.CardPredicates;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -19,7 +19,7 @@ import forge.game.phase.PhaseType;
import forge.game.player.AIPlayer;
import forge.game.zone.ZoneType;
public class MustBlockAi extends SpellAiLogic {
public class MustBlockAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) {

View File

@@ -1,6 +1,6 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
@@ -8,7 +8,7 @@ import forge.game.player.AIPlayer;
* TODO: Write javadoc for this type.
*
*/
public class PeekAndRevealAi extends SpellAiLogic {
public class PeekAndRevealAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility)

View File

@@ -8,7 +8,7 @@ import com.google.common.collect.Iterables;
import forge.Card;
import forge.CardPredicates;
import forge.Singletons;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.GameState;
import forge.game.ai.ComputerUtil;
@@ -20,7 +20,7 @@ import forge.game.zone.ZoneType;
* AbilityFactory for Creature Spells.
*
*/
public class PermanentCreatureAi extends SpellAiLogic {
public class PermanentCreatureAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility)

View File

@@ -1,7 +1,7 @@
package forge.card.ability.ai;
import forge.Singletons;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.GameState;
import forge.game.ai.ComputerUtil;
@@ -12,7 +12,7 @@ import forge.game.player.AIPlayer;
* AbilityFactory for Creature Spells.
*
*/
public class PermanentNoncreatureAi extends SpellAiLogic {
public class PermanentNoncreatureAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility)

View File

@@ -7,14 +7,14 @@ import forge.Card;
import forge.CardLists;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class PhasesAi extends SpellAiLogic {
public class PhasesAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -8,7 +8,7 @@ import forge.Card;
import forge.CardLists;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -18,7 +18,7 @@ import forge.game.player.AIPlayer;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class PlayAi extends SpellAiLogic {
public class PlayAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -5,7 +5,7 @@ import java.util.List;
import forge.Card;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -15,7 +15,7 @@ import forge.game.phase.PhaseType;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
public class PoisonAi extends SpellAiLogic {
public class PoisonAi extends SpellAbilityAi {
/*
* (non-Javadoc)

View File

@@ -10,7 +10,7 @@ import forge.CardLists;
import forge.Constant;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -23,7 +23,7 @@ import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
public class ProtectAi extends SpellAiLogic {
public class ProtectAi extends SpellAbilityAi {
private static boolean hasProtectionFrom(final Card card, final String color) {
final ArrayList<String> onlyColors = new ArrayList<String>(Arrays.asList(Constant.Color.ONLY_COLORS));
@@ -141,7 +141,7 @@ public class ProtectAi extends SpellAiLogic {
if ((Singletons.getModel().getGame().getStack().size() == 0) && Singletons.getModel().getGame().getPhaseHandler().getPhase().isBefore(PhaseType.COMBAT_FIRST_STRIKE_DAMAGE)) {
// Instant-speed protections should not be cast outside of combat
// when the stack is empty
if (!SpellAiLogic.isSorcerySpeed(sa)) {
if (!SpellAbilityAi.isSorcerySpeed(sa)) {
return false;
}
} else if (Singletons.getModel().getGame().getStack().size() > 0) {

View File

@@ -2,13 +2,13 @@ package forge.card.ability.ai;
import forge.Card;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.game.ai.ComputerUtilCost;
import forge.game.player.AIPlayer;
public class ProtectAllAi extends SpellAiLogic {
public class ProtectAllAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -10,7 +10,7 @@ import forge.CardLists;
import forge.Singletons;
import forge.CardPredicates.Presets;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.cost.CostUtil;
@@ -71,7 +71,7 @@ public class PumpAi extends PumpAiBase {
if ((Singletons.getModel().getGame().getStack().size() == 0) && ph.getPhase().isBefore(PhaseType.COMBAT_BEGIN)) {
// Instant-speed pumps should not be cast outside of combat when the
// stack is empty
if (!sa.isCurse() && !SpellAiLogic.isSorcerySpeed(sa)) {
if (!sa.isCurse() && !SpellAbilityAi.isSorcerySpeed(sa)) {
return false;
}
} else if (Singletons.getModel().getGame().getStack().size() > 0) {

View File

@@ -12,7 +12,7 @@ import forge.CardLists;
import forge.CardPredicates;
import forge.CardUtil;
import forge.Singletons;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
import forge.game.GameState;
@@ -26,7 +26,7 @@ import forge.game.phase.Untap;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
public abstract class PumpAiBase extends SpellAiLogic {
public abstract class PumpAiBase extends SpellAbilityAi {
public boolean containsUsefulKeyword(final Player ai, final List<String> keywords, final Card card, final SpellAbility sa, final int attack) {
for (final String keyword : keywords) {
@@ -401,7 +401,7 @@ public abstract class PumpAiBase extends SpellAiLogic {
// will the creature attack (only relevant for sorcery speed)?
if (phase.getPhase().isBefore(PhaseType.COMBAT_DECLARE_ATTACKERS)
&& phase.isPlayerTurn(ai)
&& SpellAiLogic.isSorcerySpeed(sa)
&& SpellAbilityAi.isSorcerySpeed(sa)
&& attack > 0
&& CardFactoryUtil.doesCreatureAttackAI(ai, c)) {
return true;

View File

@@ -1,13 +1,13 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
public class RearrangeTopOfLibraryAi extends SpellAiLogic {
public class RearrangeTopOfLibraryAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)
*/

View File

@@ -26,7 +26,7 @@ import forge.CardLists;
import forge.CardPredicates;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -47,7 +47,7 @@ import forge.game.zone.ZoneType;
* @author Forge
* @version $Id$
*/
public class RegenerateAi extends SpellAiLogic {
public class RegenerateAi extends SpellAbilityAi {
// Ex: A:SP$Regenerate | Cost$W | ValidTgts$ Creature | TgtPrompt$ Select target creature | SpellDescription$Regenerate
// target creature.

View File

@@ -7,7 +7,7 @@ import forge.Card;
import forge.CardLists;
import forge.CardPredicates;
import forge.Singletons;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.game.ai.ComputerUtil;
@@ -17,7 +17,7 @@ import forge.game.phase.PhaseType;
import forge.game.player.AIPlayer;
import forge.game.zone.ZoneType;
public class RegenerateAllAi extends SpellAiLogic {
public class RegenerateAllAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -1,11 +1,11 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class RemoveFromCombatAi extends SpellAiLogic {
public class RemoveFromCombatAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) {

View File

@@ -1,13 +1,13 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
public class RepeatAi extends SpellAiLogic {
public class RepeatAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -9,7 +9,7 @@ import forge.Card;
import forge.CardLists;
import forge.CounterType;
import forge.CardPredicates.Presets;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
@@ -20,7 +20,7 @@ import forge.game.zone.ZoneType;
* TODO: Write javadoc for this type.
*
*/
public class RepeatEachAi extends SpellAiLogic {
public class RepeatEachAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility)

View File

@@ -1,10 +1,10 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class RestartGameAi extends SpellAiLogic {
public class RestartGameAi extends SpellAbilityAi {
/*
* (non-Javadoc)

View File

@@ -3,7 +3,7 @@ package forge.card.ability.ai;
import java.util.Random;
import forge.Card;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.game.ai.ComputerUtilCost;
@@ -47,7 +47,7 @@ public class RevealAi extends RevealAiBase {
final Random r = MyRandom.getRandom();
boolean randomReturn = r.nextFloat() <= Math.pow(.667, sa.getActivationsThisTurn() + 1);
if (SpellAiLogic.playReusable(ai, sa)) {
if (SpellAbilityAi.playReusable(ai, sa)) {
randomReturn = true;
}
return randomReturn;

View File

@@ -1,14 +1,14 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
public abstract class RevealAiBase extends SpellAiLogic {
public abstract class RevealAiBase extends SpellAbilityAi {
protected boolean revealHandTargetAI(final Player ai, final SpellAbility sa) {
final Target tgt = sa.getTarget();

View File

@@ -3,7 +3,7 @@ package forge.card.ability.ai;
import java.util.Random;
import forge.Card;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.game.ai.ComputerUtilCost;
@@ -50,7 +50,7 @@ public class RevealHandAi extends RevealAiBase {
final Random r = MyRandom.getRandom();
boolean randomReturn = r.nextFloat() <= Math.pow(.667, sa.getActivationsThisTurn() + 1);
if (SpellAiLogic.playReusable(ai, sa)) {
if (SpellAbilityAi.playReusable(ai, sa)) {
randomReturn = true;
}

View File

@@ -4,7 +4,7 @@ import java.util.List;
import forge.Card;
import forge.CardLists;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -13,7 +13,7 @@ import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
public class SacrificeAi extends SpellAiLogic {
public class SacrificeAi extends SpellAbilityAi {
// **************************************************************
// *************************** Sacrifice ***********************
// **************************************************************

View File

@@ -5,7 +5,7 @@ import java.util.Random;
import forge.Card;
import forge.CardLists;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -15,7 +15,7 @@ import forge.game.player.AIPlayer;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class SacrificeAllAi extends SpellAiLogic {
public class SacrificeAllAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -2,13 +2,13 @@ package forge.card.ability.ai;
import java.util.Random;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
import forge.util.MyRandom;
public class ScryAi extends SpellAiLogic {
public class ScryAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean)
@@ -39,14 +39,14 @@ public class ScryAi extends SpellAiLogic {
double chance = .4; // 40 percent chance of milling with instant speed
// stuff
if (SpellAiLogic.isSorcerySpeed(sa)) {
if (SpellAbilityAi.isSorcerySpeed(sa)) {
chance = .667; // 66.7% chance for sorcery speed (since it will
// never activate EOT)
}
final Random r = MyRandom.getRandom();
boolean randomReturn = r.nextFloat() <= Math.pow(chance, sa.getActivationsThisTurn() + 1);
if (SpellAiLogic.playReusable(ai, sa)) {
if (SpellAbilityAi.playReusable(ai, sa)) {
randomReturn = true;
}

View File

@@ -1,11 +1,11 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class SetStateAi extends SpellAiLogic {
public class SetStateAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) {
return false;

View File

@@ -1,11 +1,11 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class SetStateAllAi extends SpellAiLogic {
public class SetStateAllAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)
*/

View File

@@ -1,10 +1,10 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class ShuffleAi extends SpellAiLogic {
public class ShuffleAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) {
// not really sure when the compy would use this; maybe only after a

View File

@@ -2,13 +2,13 @@ package forge.card.ability.ai;
import forge.Card;
import forge.Singletons;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.ai.ComputerUtilCombat;
import forge.game.ai.ComputerUtil;
import forge.game.player.AIPlayer;
public class StoreSVarAi extends SpellAiLogic {
public class StoreSVarAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) {

View File

@@ -6,7 +6,7 @@ import java.util.Random;
import forge.Card;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.phase.PhaseHandler;
@@ -31,7 +31,7 @@ public class TapAi extends TapAiBase {
// Tap things down if it's Human's turn
} else if (turn == ai && phase.getPhase().isBefore(PhaseType.COMBAT_DECLARE_BLOCKERS)) {
// Tap creatures down if in combat -- handled in tapPrefTargeting().
} else if (SpellAiLogic.isSorcerySpeed(sa)) {
} else if (SpellAbilityAi.isSorcerySpeed(sa)) {
// Cast it if it's a sorcery.
} else {
// Generally don't want to tap things with an Instant during AI turn outside of combat

View File

@@ -10,7 +10,7 @@ import forge.CardLists;
import forge.CardPredicates;
import forge.Singletons;
import forge.CardPredicates.Presets;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -21,7 +21,7 @@ import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
public abstract class TapAiBase extends SpellAiLogic {
public abstract class TapAiBase extends SpellAbilityAi {
/**
* <p>

View File

@@ -10,7 +10,7 @@ import forge.Card;
import forge.CardLists;
import forge.Singletons;
import forge.CardPredicates.Presets;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.phase.PhaseType;
@@ -19,7 +19,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class TapAllAi extends SpellAiLogic {
public class TapAllAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -1,6 +1,6 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
@@ -8,7 +8,7 @@ import forge.game.player.AIPlayer;
* TODO: Write javadoc for this type.
*
*/
public class TapOrUntapAllAi extends SpellAiLogic {
public class TapOrUntapAllAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, forge.card.spellability.SpellAbility)

View File

@@ -5,7 +5,7 @@ import java.util.Random;
import forge.Card;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
@@ -27,7 +27,7 @@ import forge.util.MyRandom;
* @author Forge
* @version $Id: AbilityFactoryToken.java 17656 2012-10-22 19:32:56Z Max mtg $
*/
public class TokenAi extends SpellAiLogic {
public class TokenAi extends SpellAbilityAi {
private String tokenAmount;
@@ -106,7 +106,7 @@ public class TokenAi extends SpellAiLogic {
|| ph.getPhase().isBefore(
PhaseType.COMBAT_DECLARE_ATTACKERS_INSTANT_ABILITY))
&& !sa.hasParam("ActivationPhases") && !sa.hasParam("PlayerTurn")
&& !SpellAiLogic.isSorcerySpeed(sa) && !haste) {
&& !SpellAbilityAi.isSorcerySpeed(sa) && !haste) {
return false;
}
if ((ph.getPhase().isAfter(PhaseType.COMBAT_BEGIN) || Singletons.getModel().getGame().getPhaseHandler().isPlayerTurn(
@@ -159,7 +159,7 @@ public class TokenAi extends SpellAiLogic {
}
}
if (SpellAiLogic.playReusable(ai, sa)) {
if (SpellAbilityAi.playReusable(ai, sa)) {
return true;
}

View File

@@ -6,14 +6,14 @@ import java.util.List;
import forge.Card;
import forge.CardLists;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
public class TwoPilesAi extends SpellAiLogic {
public class TwoPilesAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -6,7 +6,7 @@ import java.util.Random;
import forge.Card;
import forge.Singletons;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -17,7 +17,7 @@ import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.util.MyRandom;
public class UnattachAllAi extends SpellAiLogic {
public class UnattachAllAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -8,7 +8,7 @@ import forge.CardLists;
import forge.Singletons;
import forge.CardPredicates.Presets;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
@@ -19,7 +19,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
public class UntapAi extends SpellAiLogic {
public class UntapAi extends SpellAbilityAi {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)

View File

@@ -1,11 +1,11 @@
package forge.card.ability.ai;
import forge.card.ability.SpellAiLogic;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
import forge.game.player.AIPlayer;
public class UntapAllAi extends SpellAiLogic {
public class UntapAllAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(AIPlayer aiPlayer, SpellAbility sa) {

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