mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +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.card.trigger.TriggerType;
|
||||||
import forge.game.ai.ComputerUtilCard;
|
import forge.game.ai.ComputerUtilCard;
|
||||||
import forge.game.player.AIPlayer;
|
import forge.game.player.AIPlayer;
|
||||||
|
import forge.game.player.HumanPlayer;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.game.zone.Zone;
|
import forge.game.zone.Zone;
|
||||||
import forge.game.zone.ZoneType;
|
import forge.game.zone.ZoneType;
|
||||||
@@ -527,7 +528,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
if (decider instanceof AIPlayer) {
|
if (decider instanceof AIPlayer) {
|
||||||
ChangeZoneAi.hiddenOriginResolveAI(decider, sa, player);
|
ChangeZoneAi.hiddenOriginResolveAI(decider, sa, player);
|
||||||
} else {
|
} else {
|
||||||
changeHiddenOriginResolveHuman(sa, player);
|
changeHiddenOriginResolveHuman((HumanPlayer)decider, sa, player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -544,7 +545,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
* @param player
|
* @param player
|
||||||
* a {@link forge.game.player.Player} object.
|
* 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 Card card = sa.getSourceCard();
|
||||||
final List<Card> movedCards = new ArrayList<Card>();
|
final List<Card> movedCards = new ArrayList<Card>();
|
||||||
final boolean defined = sa.hasParam("Defined");
|
final boolean defined = sa.hasParam("Defined");
|
||||||
|
|||||||
@@ -189,8 +189,11 @@ public final class InputSelectTargets extends InputSyncronizedBase {
|
|||||||
addTarget(player);
|
addTarget(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
void addTarget(GameEntity ge) {
|
private void addTarget(GameEntity ge) {
|
||||||
tgt.addTarget(ge);
|
tgt.addTarget(ge);
|
||||||
|
if(ge instanceof Card) {
|
||||||
|
((Card) ge).setUsedToPay(true);
|
||||||
|
}
|
||||||
Integer val = targetDepth.get(ge);
|
Integer val = targetDepth.get(ge);
|
||||||
targetDepth.put(ge, val == null ? Integer.valueOf(1) : Integer.valueOf(val.intValue() + 1) );
|
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();
|
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();
|
this.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean hasAllTargets() {
|
private boolean hasAllTargets() {
|
||||||
return tgt.isMaxTargetsChosen(sa.getSourceCard(), sa) || tgt.getStillToDivide() == 0;
|
return tgt.isMaxTargetsChosen(sa.getSourceCard(), sa) || ( tgt.getStillToDivide() == 0 && tgt.isDividedAsYouChoose());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user