Last input converted

This commit is contained in:
Maxmtg
2013-03-29 09:01:52 +00:00
parent 2b3174c765
commit d2cb50a760
3 changed files with 10 additions and 64 deletions

View File

@@ -46,6 +46,7 @@ import forge.card.spellability.Target;
import forge.card.trigger.Trigger; import forge.card.trigger.Trigger;
import forge.card.trigger.TriggerHandler; import forge.card.trigger.TriggerHandler;
import forge.control.input.InputSelectCards; import forge.control.input.InputSelectCards;
import forge.control.input.InputSelectCardsFromList;
import forge.game.ai.ComputerUtilCard; import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtilCombat;
import forge.game.event.TokenCreatedEvent; import forge.game.event.TokenCreatedEvent;
@@ -206,11 +207,7 @@ public class CardFactoryCreatures {
final Card target = this.getTargetCard(); final Card target = this.getTargetCard();
if (wolves.size() == 0) { if (wolves.isEmpty() || !target.canBeTargetedBy(this)) {
return;
}
if (!(target.canBeTargetedBy(this) && target.isInPlay())) {
return; return;
} }
@@ -220,17 +217,12 @@ public class CardFactoryCreatures {
} }
if (target.getController().isHuman()) { // Human choose spread damage if (target.getController().isHuman()) { // Human choose spread damage
for (int x = 0; x < target.getNetAttack(); x++) { final int netAttack = target.getNetAttack();
Singletons.getModel().getMatch().getInput().setInput( for (int x = 0; x < netAttack; x++) {
CardFactoryUtil.masterOfTheWildHuntInputTargetCreature(this, wolves, new Command() { InputSelectCards inp = new InputSelectCardsFromList(1,1,wolves);
private static final long serialVersionUID = -328305150127775L; inp.setMessage("Select target wolf to damage for " + getSourceCard());
FThreads.setInputAndWait(inp);
@Override inp.getSelected().get(0).addDamage(1, target);
public void execute() {
getTargetCard().addDamage(1, target);
Singletons.getModel().getGame().getAction().checkStateEffects();
}
}));
} }
} else { // AI Choose spread Damage } else { // AI Choose spread Damage
final List<Card> damageableWolves = CardLists.filter(wolves, new Predicate<Card>() { final List<Card> damageableWolves = CardLists.filter(wolves, new Predicate<Card>() {
@@ -292,6 +284,7 @@ public class CardFactoryCreatures {
} }
} }
} }
target.getController().getGame().getAction().checkStateEffects();
} // resolve() } // resolve()
@Override @Override

View File

@@ -509,52 +509,6 @@ public class CardFactoryUtil {
return entersBattleFieldWithCounters(sourceCard, CounterType.TIME, power); return entersBattleFieldWithCounters(sourceCard, CounterType.TIME, power);
} // vanishing } // vanishing
/**
* <p>
* masterOfTheWildHuntInputTargetCreature.
* </p>
*
* @param spell
* a {@link forge.card.spellability.SpellAbility} object.
* @param choices
* a {@link forge.CardList} object.
* @param paid
* a {@link forge.Command} object.
* @return a {@link forge.control.input.InputBase} object.
*/
public static InputBase masterOfTheWildHuntInputTargetCreature(final SpellAbility spell, final List<Card> choices,
final Command paid) {
final InputBase target = new InputBase() {
private static final long serialVersionUID = -1779224307654698954L;
@Override
public void showMessage() {
final StringBuilder sb = new StringBuilder();
sb.append("Select target wolf to damage for ").append(spell.getSourceCard());
CMatchUI.SINGLETON_INSTANCE.showMessage(sb.toString());
ButtonUtil.enableOnlyCancel();
}
@Override
public void selectButtonCancel() {
this.stop();
}
@Override
public void selectCard(final Card card) {
if (choices.size() == 0) {
this.stop();
}
if (choices.contains(card)) {
spell.setTargetCard(card);
paid.execute();
this.stop();
}
} // selectCard()
};
return target;
} // masterOfTheWildHuntInputTargetCreature()
/** /**
* <p> * <p>
* getNumberOfManaSymbolsControlledByColor. * getNumberOfManaSymbolsControlledByColor.

View File

@@ -38,7 +38,6 @@ public class HumanPlayer extends Player {
/** {@inheritDoc} */ /** {@inheritDoc} */
@Override @Override
public final void discardUnless(final int num, final String uType, final SpellAbility sa) { public final void discardUnless(final int num, final String uType, final SpellAbility sa) {
final SpellAbility sp = sa;
final List<Card> hand = getCardsIn(ZoneType.Hand); final List<Card> hand = getCardsIn(ZoneType.Hand);
final InputSelectCards target = new InputSelectCardsFromList(num, num, hand) { final InputSelectCards target = new InputSelectCardsFromList(num, num, hand) {
private static final long serialVersionUID = -5774108410928795591L; private static final long serialVersionUID = -5774108410928795591L;
@@ -55,7 +54,7 @@ public class HumanPlayer extends Player {
target.setMessage("Select %d cards to discard, unless you discard a " + uType + "."); target.setMessage("Select %d cards to discard, unless you discard a " + uType + ".");
FThreads.setInputAndWait(target); FThreads.setInputAndWait(target);
for(Card c : target.getSelected()) for(Card c : target.getSelected())
c.getController().discard(c, sp); c.getController().discard(c, sa);
} // input_discardNumUnless } // input_discardNumUnless