mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
Merge branch 'surveilFixChangesAll' into 'master'
SurveilEffect: fix triggerChangesZoneAll See merge request core-developers/forge!4981
This commit is contained in:
@@ -2,6 +2,7 @@ package forge.game.ability.effects;
|
|||||||
|
|
||||||
import forge.game.ability.AbilityUtils;
|
import forge.game.ability.AbilityUtils;
|
||||||
import forge.game.ability.SpellAbilityEffect;
|
import forge.game.ability.SpellAbilityEffect;
|
||||||
|
import forge.game.card.CardZoneTable;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
import forge.util.Lang;
|
import forge.util.Lang;
|
||||||
@@ -32,15 +33,18 @@ public class SurveilEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
boolean isOptional = sa.hasParam("Optional");
|
boolean isOptional = sa.hasParam("Optional");
|
||||||
|
|
||||||
|
CardZoneTable table = new CardZoneTable();
|
||||||
|
|
||||||
for (final Player p : getTargetPlayers(sa)) {
|
for (final Player p : getTargetPlayers(sa)) {
|
||||||
if (!sa.usesTargeting() || p.canBeTargetedBy(sa)) {
|
if (!sa.usesTargeting() || p.canBeTargetedBy(sa)) {
|
||||||
if (isOptional && !p.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantSurveil"))) {
|
if (isOptional && !p.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantSurveil"))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
p.surveil(num, sa);
|
p.surveil(num, sa, table);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
table.triggerChangesZoneAll(sa.getHostCard().getGame(), sa);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1234,7 +1234,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
return drawCards(1, null);
|
return drawCards(1, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void surveil(int num, SpellAbility cause) {
|
public void surveil(int num, SpellAbility cause, CardZoneTable table) {
|
||||||
final Map<AbilityKey, Object> repParams = AbilityKey.mapFromAffected(this);
|
final Map<AbilityKey, Object> repParams = AbilityKey.mapFromAffected(this);
|
||||||
repParams.put(AbilityKey.Source, cause);
|
repParams.put(AbilityKey.Source, cause);
|
||||||
repParams.put(AbilityKey.SurveilNum, num);
|
repParams.put(AbilityKey.SurveilNum, num);
|
||||||
@@ -1265,7 +1265,9 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
|
|
||||||
if (toGrave != null) {
|
if (toGrave != null) {
|
||||||
for (Card c : toGrave) {
|
for (Card c : toGrave) {
|
||||||
getGame().getAction().moveToGraveyard(c, cause);
|
ZoneType oZone = c.getZone().getZoneType();
|
||||||
|
Card moved = getGame().getAction().moveToGraveyard(c, cause);
|
||||||
|
table.put(oZone, moved.getZone().getZoneType(), moved);
|
||||||
numToGrave++;
|
numToGrave++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user