- Removed some unnecessary chkAIDrawback overrides.

This commit is contained in:
Sloth
2012-12-04 09:37:29 +00:00
parent d915066d08
commit 43968bb3df
31 changed files with 49 additions and 180 deletions

View File

@@ -63,11 +63,6 @@ public class AddTurnAi extends SpellAiLogic {
return true; return true;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)
*/ */

View File

@@ -13,12 +13,4 @@ public class AlwaysPlayAi extends SpellAiLogic {
protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) {
return true; return true;
} }
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player)
*/
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
} }

View File

@@ -15,14 +15,6 @@ public class CanPlayAsDrawbackAi extends SpellAiLogic {
return false; return false;
} }
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player)
*/
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
/** /**
* <p> * <p>
* copySpellTriggerAI. * copySpellTriggerAI.

View File

@@ -8,11 +8,6 @@ import forge.game.player.Player;
public class ChooseCardNameAi extends SpellAiLogic { public class ChooseCardNameAi extends SpellAiLogic {
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
@Override @Override
protected boolean canPlayAI(Player ai, SpellAbility sa) { protected boolean canPlayAI(Player ai, SpellAbility sa) {

View File

@@ -16,11 +16,6 @@ public class ChooseColorAi extends SpellAiLogic {
return chance; return chance;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
@Override @Override
protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) {
return mandatory || canPlayAI(ai, sa); return mandatory || canPlayAI(ai, sa);

View File

@@ -123,9 +123,4 @@ public class ChooseSourceAi extends SpellAiLogic {
return true; return true;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player ai) {
return true;
}
} }

View File

@@ -18,11 +18,6 @@ public class ChooseTypeAi extends SpellAiLogic {
return doTriggerAINoCost(aiPlayer, sa, false); return doTriggerAINoCost(aiPlayer, sa, false);
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
@Override @Override
protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) {
final Target tgt = sa.getTarget(); final Target tgt = sa.getTarget();

View File

@@ -16,14 +16,6 @@ public class ClashAi extends SpellAiLogic {
return true; return true;
} }
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player)
*/
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)
*/ */

View File

@@ -58,12 +58,6 @@ public class ControlExchangeAi extends SpellAiLogic {
return false; return false;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
// check AI life before playing this drawback?
return true;
}
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean)
*/ */

View File

@@ -44,11 +44,6 @@ public class CopyPermanentAi extends SpellAiLogic {
} }
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
@Override @Override
protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) {
final Card source = sa.getSourceCard(); final Card source = sa.getSourceCard();

View File

@@ -103,8 +103,50 @@ public class DamageAllAi extends SpellAiLogic {
} }
@Override @Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { public boolean chkAIDrawback(SpellAbility sa, Player ai) {
// check AI life before playing this drawback? final Card source = sa.getSourceCard();
String validP = "";
final String damage = sa.getParam("NumDmg");
int dmg = AbilityFactory.calculateAmount(sa.getSourceCard(), damage, sa);
if (damage.equals("X") && sa.getSVar(damage).equals("Count$xPaid")) {
// Set PayX here to maximum value.
dmg = ComputerUtil.determineLeftoverMana(sa, ai);
source.setSVar("PayX", Integer.toString(dmg));
}
if (sa.hasParam("ValidPlayers")) {
validP = sa.getParam("ValidPlayers");
}
// Evaluate creatures getting killed
Player enemy = ai.getOpponent();
final List<Card> humanList = this.getKillableCreatures(sa, enemy, dmg);
List<Card> computerList = this.getKillableCreatures(sa, ai, dmg);
final Target tgt = sa.getTarget();
if (tgt != null && sa.canTarget(enemy)) {
tgt.resetTargets();
sa.getTarget().addTarget(enemy);
computerList.clear();
}
// Don't get yourself killed
if (validP.contains("Each") && (ai.getLife() <= ai.predictDamage(dmg, source, false))) {
return false;
}
// if we can kill human, do it
if ((validP.contains("Each") || validP.contains("EachOpponent") || validP.contains("Targeted"))
&& (enemy.getLife() <= enemy.predictDamage(dmg, source, false))) {
return true;
}
if (!computerList.isEmpty() && CardFactoryUtil.evaluateCreatureList(computerList) > CardFactoryUtil
.evaluateCreatureList(humanList)) {
return false;
}
return true; return true;
} }
@@ -152,7 +194,6 @@ public class DamageAllAi extends SpellAiLogic {
final String damage = sa.getParam("NumDmg"); final String damage = sa.getParam("NumDmg");
int dmg = AbilityFactory.calculateAmount(sa.getSourceCard(), damage, sa); int dmg = AbilityFactory.calculateAmount(sa.getSourceCard(), damage, sa);
if (damage.equals("X") && sa.getSVar(damage).equals("Count$xPaid")) { if (damage.equals("X") && sa.getSVar(damage).equals("Count$xPaid")) {
// Set PayX here to maximum value. // Set PayX here to maximum value.
dmg = ComputerUtil.determineLeftoverMana(sa, ai); dmg = ComputerUtil.determineLeftoverMana(sa, ai);

View File

@@ -21,10 +21,6 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
public class DamagePreventAi extends SpellAiLogic { public class DamagePreventAi extends SpellAiLogic {
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
@Override @Override
protected boolean canPlayAI(Player ai, SpellAbility sa) { protected boolean canPlayAI(Player ai, SpellAbility sa) {

View File

@@ -12,14 +12,6 @@ import forge.game.player.Player;
public class DamagePreventAllAi extends SpellAiLogic { public class DamagePreventAllAi extends SpellAiLogic {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player)
*/
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility) * @see forge.card.abilityfactory.SpellAiLogic#canPlayAI(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility)
*/ */

View File

@@ -63,21 +63,4 @@ public class DebuffAllAi extends SpellAiLogic {
protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) {
return true; return true;
} }
/**
* <p>
* debuffAllChkDrawbackAI.
* </p>
* @param sa
* a {@link forge.card.spellability.SpellAbility} object.
* @param af
* a {@link forge.card.abilityfactory.AbilityFactory} object.
*
* @return a boolean.
*/
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
} }

View File

@@ -74,6 +74,7 @@ public class DestroyAllAi extends SpellAiLogic {
@Override @Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
//TODO: Check for bad outcome
return true; return true;
} }

View File

@@ -59,11 +59,6 @@ public class DigAi extends SpellAiLogic {
return randomReturn; return randomReturn;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
@Override @Override
protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) {
final Target tgt = sa.getTarget(); final Target tgt = sa.getTarget();

View File

@@ -44,11 +44,6 @@ public class DigUntilAi extends SpellAiLogic {
return randomReturn; return randomReturn;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
@Override @Override
protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) {

View File

@@ -82,12 +82,6 @@ public class FightAi extends SpellAiLogic {
return false; return false;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
// check AI life before playing this drawback?
return true;
}
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean)
*/ */

View File

@@ -27,11 +27,6 @@ public class GameLossAi extends SpellAiLogic {
return true; return true;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
@Override @Override
protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) {

View File

@@ -24,12 +24,6 @@ public class GameWinAi extends SpellAiLogic {
return true; return true;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
@Override @Override
protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) {
return true; return true;

View File

@@ -20,14 +20,6 @@ import forge.util.MyRandom;
public class PlayAi extends SpellAiLogic { public class PlayAi extends SpellAiLogic {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player)
*/
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
@Override @Override
protected boolean canPlayAI(Player ai, SpellAbility sa) { protected boolean canPlayAI(Player ai, SpellAbility sa) {
final Cost abCost = sa.getPayCosts(); final Cost abCost = sa.getPayCosts();

View File

@@ -45,12 +45,4 @@ public class ProtectAllAi extends SpellAiLogic {
protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) {
return true; return true;
} }
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player)
*/
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
} // protectAllDrawbackAI()
} }

View File

@@ -167,11 +167,6 @@ public class RegenerateAi extends SpellAiLogic {
return chance; return chance;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
private static boolean regenMandatoryTarget(final Player ai, final SpellAbility sa, final boolean mandatory) { private static boolean regenMandatoryTarget(final Player ai, final SpellAbility sa, final boolean mandatory) {
final Card hostCard = sa.getSourceCard(); final Card hostCard = sa.getSourceCard();
final Target tgt = sa.getTarget(); final Target tgt = sa.getTarget();

View File

@@ -82,11 +82,6 @@ public class RegenerateAllAi extends SpellAiLogic {
return chance; return chance;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
@Override @Override
protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) {
boolean chance = true; boolean chance = true;

View File

@@ -21,14 +21,4 @@ public class RepeatAi extends SpellAiLogic {
} }
return true; return true;
} }
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#chkAIDrawback(java.util.Map, forge.card.spellability.SpellAbility, forge.game.player.Player)
*/
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
} }

View File

@@ -9,7 +9,7 @@ import forge.game.zone.ZoneType;
public abstract class RevealAiBase extends SpellAiLogic { public abstract class RevealAiBase extends SpellAiLogic {
protected boolean revealHandTargetAI(final Player ai, final SpellAbility sa/*, final boolean primarySA, final boolean mandatory*/) { protected boolean revealHandTargetAI(final Player ai, final SpellAbility sa) {
final Target tgt = sa.getTarget(); final Target tgt = sa.getTarget();
Player opp = ai.getOpponent(); Player opp = ai.getOpponent();
@@ -38,6 +38,7 @@ public abstract class RevealAiBase extends SpellAiLogic {
*/ */
@Override @Override
public boolean chkAIDrawback(SpellAbility sa, Player ai) { public boolean chkAIDrawback(SpellAbility sa, Player ai) {
return revealHandTargetAI(ai, sa/*, false, false*/); revealHandTargetAI(ai, sa);
return true;
} }
} }

View File

@@ -77,6 +77,7 @@ public class SacrificeAllAi extends SpellAiLogic {
@Override @Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) { public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
//TODO: Add checks for bad outcome
return true; return true;
} }
} }

View File

@@ -23,13 +23,6 @@ public class StoreSVarAi extends SpellAiLogic {
return true; return true;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
};
@Override @Override
protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) { protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) {

View File

@@ -146,10 +146,4 @@ public class TapAllAi extends SpellAiLogic {
return false; return false;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
} }

View File

@@ -57,11 +57,6 @@ public class TwoPilesAi extends SpellAiLogic {
return size > 2; return size > 2;
} }
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean) * @see forge.card.abilityfactory.SpellAiLogic#doTriggerAINoCost(forge.game.player.Player, java.util.Map, forge.card.spellability.SpellAbility, boolean)
*/ */

View File

@@ -7,11 +7,6 @@ import forge.game.player.Player;
public class UntapAllAi extends SpellAiLogic { public class UntapAllAi extends SpellAiLogic {
@Override
public boolean chkAIDrawback(SpellAbility sa, Player aiPlayer) {
return true;
}
@Override @Override
protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) { protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) {
// check SubAbilities DoTrigger? // check SubAbilities DoTrigger?