removed references to Aiplayer methods, next step is class removal

This commit is contained in:
Maxmtg
2013-05-12 18:23:24 +00:00
parent a1ecabccf8
commit abbfb171b4
7 changed files with 22 additions and 13 deletions

View File

@@ -34,8 +34,10 @@ import forge.control.input.InputPayManaExecuteCommands;
import forge.control.input.InputSelectCards;
import forge.control.input.InputSelectCardsFromList;
import forge.game.GameState;
import forge.game.ai.AiController;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.game.player.PlayerControllerAi;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
@@ -106,7 +108,8 @@ public class CardFactorySorceries {
for( Card c : sc.getSelected())
p.discard(c, spell);
} else {
final List<Card> toDiscard = ((AIPlayer)p).getAi().getCardsToDiscard(sac, (String[])null, spell);
final AiController ai = ((PlayerControllerAi)p.getController()).getAi();
final List<Card> toDiscard = ai.getCardsToDiscard(sac, (String[])null, spell);
for (int i = 0; i < toDiscard.size(); i++) {
p.discard(toDiscard.get(i), spell);
}

View File

@@ -30,8 +30,10 @@ import forge.card.spellability.SpellAbility;
import forge.control.input.InputSelectCards;
import forge.control.input.InputSelectCardsFromList;
import forge.game.GameState;
import forge.game.ai.AiController;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.game.player.PlayerControllerAi;
import forge.game.zone.ZoneType;
import forge.util.Aggregates;
@@ -279,7 +281,8 @@ public class CostDiscard extends CostPartWithList {
if (type.equals("Random")) {
return new PaymentDecision(CardLists.getRandomSubList(hand, c));
} else {
return new PaymentDecision(ai.getAi().getCardsToDiscard(c, type.split(";"), ability));
final AiController aic = ((PlayerControllerAi)ai.getController()).getAi();
return new PaymentDecision(aic.getCardsToDiscard(c, type.split(";"), ability));
}
}

View File

@@ -31,8 +31,10 @@ import forge.card.spellability.SpellAbility;
import forge.control.input.InputSelectCards;
import forge.control.input.InputSelectCardsFromList;
import forge.game.GameState;
import forge.game.ai.AiController;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.game.player.PlayerControllerAi;
import forge.game.zone.ZoneType;
/**
@@ -128,7 +130,8 @@ public class CostReveal extends CostPartWithList {
}
}
return new PaymentDecision(ai.getAi().getCardsToDiscard(c, type.split(";"), ability));
final AiController aic = ((PlayerControllerAi)ai.getController()).getAi();
return new PaymentDecision(aic.getCardsToDiscard(c, type.split(";"), ability));
}
/*

View File

@@ -70,11 +70,13 @@ import forge.control.input.InputPayManaExecuteCommands;
import forge.control.input.InputPayment;
import forge.control.input.InputSelectCards;
import forge.control.input.InputSelectCardsFromList;
import forge.game.ai.AiController;
import forge.game.event.CardDamagedEvent;
import forge.game.event.LifeLossEvent;
import forge.game.player.AIPlayer;
import forge.game.player.HumanPlay;
import forge.game.player.Player;
import forge.game.player.PlayerControllerAi;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
import forge.gui.GuiDialog;
@@ -286,8 +288,8 @@ public final class GameActionUtil {
revealed.remove(rippledCards[i]);
}
} else {
AIPlayer ai = (AIPlayer) p;
SpellAbility saPlayed = ai.getAi().chooseAndPlaySa(rippledCards[i].getBasicSpells(), false, true);
final AiController aic = ((PlayerControllerAi)p.getController()).getAi();
SpellAbility saPlayed = aic.chooseAndPlaySa(rippledCards[i].getBasicSpells(), false, true);
if ( saPlayed != null )
revealed.remove(rippledCards[i]);
}

View File

@@ -804,7 +804,7 @@ public class AiController {
if (!player.isUnlimitedHandSize()) {
int max = Math.min(player.getZone(ZoneType.Hand).size(), size - player.getMaxHandSize());
if( max > 0) {
final List<Card> toDiscard = player.getAi().getCardsToDiscard(max, (String[])null, null);
final List<Card> toDiscard = getCardsToDiscard(max, (String[])null, null);
for (int i = 0; i < toDiscard.size(); i++) {
player.discard(toDiscard.get(i), null);
}

View File

@@ -51,6 +51,7 @@ import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;
import forge.game.player.AIPlayer;
import forge.game.player.Player;
import forge.game.player.PlayerControllerAi;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
import forge.util.Aggregates;
@@ -1238,7 +1239,8 @@ public class ComputerUtil {
public static boolean wantMulligan(AIPlayer ai) {
final List<Card> handList = ai.getCardsIn(ZoneType.Hand);
final boolean hasLittleCmc0Cards = CardLists.getValidCards(handList, "Card.cmcEQ0", ai, null).size() < 2;
return (handList.size() > ai.getAi().getIntProperty(AiProps.AI_MULLIGAN_THRESHOLD)) && hasLittleCmc0Cards;
final AiController aic = ((PlayerControllerAi)ai.getController()).getAi();
return (handList.size() > aic.getIntProperty(AiProps.AI_MULLIGAN_THRESHOLD)) && hasLittleCmc0Cards;
}
@@ -1368,7 +1370,8 @@ public class ComputerUtil {
*/
public static List<Card> getCardsToDiscardFromFriend(AIPlayer aiChooser, Player p, SpellAbility sa, List<Card> validCards, int min, int max) {
if (p instanceof AIPlayer) { // ask that ai player what he would like to discard
return ((AIPlayer) p).getAi().getCardsToDiscard(min, max, validCards, sa);
final AiController aic = ((PlayerControllerAi)p.getController()).getAi();
return aic.getCardsToDiscard(min, max, validCards, sa);
}
// no special options for human or remote friends
return getCardsToDiscardFromOpponent(aiChooser, p, sa, validCards, min, max);

View File

@@ -42,9 +42,4 @@ public class AIPlayer extends Player {
super(player, game);
controller = new PlayerControllerAi(game, this);
}
public AiController getAi() {
return controller instanceof PlayerControllerAi ? ((PlayerControllerAi) controller).getAi() : null;
}
} // end AIPlayer class