mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
- Fixed the blinking bug.
This commit is contained in:
@@ -384,7 +384,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
tgtCards = tgt.getTargetCards();
|
tgtCards = tgt.getTargetCards();
|
||||||
} else {
|
} else {
|
||||||
tgtCards = new ArrayList<Card>();
|
tgtCards = new ArrayList<Card>();
|
||||||
for (final Card c : AbilityUtils.getDefinedCards(sa.getSourceCard(), sa.getParam("Defined"), sa)) {
|
for (final Card c : AbilityUtils.getDefinedCards(hostCard, sa.getParam("Defined"), sa)) {
|
||||||
tgtCards.add(c);
|
tgtCards.add(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -393,7 +393,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
if (tgt != null) {
|
if (tgt != null) {
|
||||||
sas = tgt.getTargetSAs();
|
sas = tgt.getTargetSAs();
|
||||||
} else {
|
} else {
|
||||||
sas = AbilityUtils.getDefinedSpellAbilities(sa.getSourceCard(), sa.getParam("Defined"), sa);
|
sas = AbilityUtils.getDefinedSpellAbilities(hostCard, sa.getParam("Defined"), sa);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (final SpellAbility tgtSA : sas) {
|
for (final SpellAbility tgtSA : sas) {
|
||||||
@@ -459,15 +459,14 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
if (sa.hasParam("GainControl")) {
|
if (sa.hasParam("GainControl")) {
|
||||||
if (sa.hasParam("NewController")) {
|
if (sa.hasParam("NewController")) {
|
||||||
final Player p = AbilityUtils.getDefinedPlayers(sa.getSourceCard(), sa.getParam("NewController"), sa).get(0);
|
final Player p = AbilityUtils.getDefinedPlayers(hostCard, sa.getParam("NewController"), sa).get(0);
|
||||||
tgtC.setController(p, game.getNextTimestamp());
|
tgtC.setController(p, game.getNextTimestamp());
|
||||||
} else {
|
} else {
|
||||||
tgtC.setController(sa.getActivatingPlayer(), game.getNextTimestamp());
|
tgtC.setController(player, game.getNextTimestamp());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sa.hasParam("AttachedTo")) {
|
if (sa.hasParam("AttachedTo")) {
|
||||||
List<Card> list = AbilityUtils.getDefinedCards(hostCard,
|
List<Card> list = AbilityUtils.getDefinedCards(hostCard, sa.getParam("AttachedTo"), sa);
|
||||||
sa.getParam("AttachedTo"), sa);
|
|
||||||
if (list.isEmpty()) {
|
if (list.isEmpty()) {
|
||||||
list = game.getCardsIn(ZoneType.Battlefield);
|
list = game.getCardsIn(ZoneType.Battlefield);
|
||||||
list = CardLists.getValidCards(list, sa.getParam("AttachedTo"), tgtC.getController(), tgtC);
|
list = CardLists.getValidCards(list, sa.getParam("AttachedTo"), tgtC.getController(), tgtC);
|
||||||
@@ -546,7 +545,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
hostCard.addRemembered(movedCard);
|
hostCard.addRemembered(movedCard);
|
||||||
}
|
}
|
||||||
if (forget != null) {
|
if (forget != null) {
|
||||||
sa.getSourceCard().getRemembered().remove(movedCard);
|
hostCard.getRemembered().remove(movedCard);
|
||||||
}
|
}
|
||||||
if (imprint != null) {
|
if (imprint != null) {
|
||||||
hostCard.addImprinted(movedCard);
|
hostCard.addImprinted(movedCard);
|
||||||
|
|||||||
@@ -520,7 +520,16 @@ public class PlayArea extends CardPanelContainer implements CardPanelMouseListen
|
|||||||
oldCards.add(cpa.getGameCard());
|
oldCards.add(cpa.getGameCard());
|
||||||
}
|
}
|
||||||
toDelete = new ArrayList<Card>(oldCards);
|
toDelete = new ArrayList<Card>(oldCards);
|
||||||
toDelete.removeAll(model);
|
|
||||||
|
// delete all cards that differ in timestamp (they have been blinked)
|
||||||
|
for (final Card c : model) {
|
||||||
|
for (int i = 0; i < toDelete.size(); i++) {
|
||||||
|
final Card c2 = toDelete.get(i);
|
||||||
|
if (c.equals(c2) && c.getTimestamp() == c2.getTimestamp()) {
|
||||||
|
toDelete.remove(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (toDelete.size() == getCardPanels().size()) {
|
if (toDelete.size() == getCardPanels().size()) {
|
||||||
clear();
|
clear();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user