mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
InputSelectTargets - added targeted cards' highlighting, corrected target selection for divide as you choose
This commit is contained in:
@@ -22,6 +22,7 @@ import forge.card.spellability.Target;
|
||||
import forge.card.trigger.TriggerType;
|
||||
import forge.game.ai.ComputerUtilCard;
|
||||
import forge.game.player.AIPlayer;
|
||||
import forge.game.player.HumanPlayer;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.zone.Zone;
|
||||
import forge.game.zone.ZoneType;
|
||||
@@ -527,7 +528,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||
if (decider instanceof AIPlayer) {
|
||||
ChangeZoneAi.hiddenOriginResolveAI(decider, sa, player);
|
||||
} else {
|
||||
changeHiddenOriginResolveHuman(sa, player);
|
||||
changeHiddenOriginResolveHuman((HumanPlayer)decider, sa, player);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -544,7 +545,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||
* @param player
|
||||
* a {@link forge.game.player.Player} object.
|
||||
*/
|
||||
private static void changeHiddenOriginResolveHuman(final SpellAbility sa, Player player) {
|
||||
private static void changeHiddenOriginResolveHuman(final HumanPlayer decider, final SpellAbility sa, Player player) {
|
||||
final Card card = sa.getSourceCard();
|
||||
final List<Card> movedCards = new ArrayList<Card>();
|
||||
final boolean defined = sa.hasParam("Defined");
|
||||
|
||||
@@ -189,8 +189,11 @@ public final class InputSelectTargets extends InputSyncronizedBase {
|
||||
addTarget(player);
|
||||
}
|
||||
|
||||
void addTarget(GameEntity ge) {
|
||||
private void addTarget(GameEntity ge) {
|
||||
tgt.addTarget(ge);
|
||||
if(ge instanceof Card) {
|
||||
((Card) ge).setUsedToPay(true);
|
||||
}
|
||||
Integer val = targetDepth.get(ge);
|
||||
targetDepth.put(ge, val == null ? Integer.valueOf(1) : Integer.valueOf(val.intValue() + 1) );
|
||||
|
||||
@@ -202,11 +205,23 @@ public final class InputSelectTargets extends InputSyncronizedBase {
|
||||
this.showMessage();
|
||||
}
|
||||
|
||||
void done() {
|
||||
/* (non-Javadoc)
|
||||
* @see forge.control.input.InputSyncronizedBase#afterStop()
|
||||
*/
|
||||
@Override
|
||||
protected void afterStop() {
|
||||
for(GameEntity c : targetDepth.keySet())
|
||||
if( c instanceof Card)
|
||||
((Card)c).setUsedToPay(false);
|
||||
super.afterStop();
|
||||
|
||||
}
|
||||
|
||||
private void done() {
|
||||
this.stop();
|
||||
}
|
||||
|
||||
boolean hasAllTargets() {
|
||||
return tgt.isMaxTargetsChosen(sa.getSourceCard(), sa) || tgt.getStillToDivide() == 0;
|
||||
private boolean hasAllTargets() {
|
||||
return tgt.isMaxTargetsChosen(sa.getSourceCard(), sa) || ( tgt.getStillToDivide() == 0 && tgt.isDividedAsYouChoose());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user