mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
@@ -56,7 +56,6 @@ public class IncubateEffect extends TokenEffectBase {
|
||||
triggerList, combatChanged, sa);
|
||||
|
||||
triggerList.triggerChangesZoneAll(game, sa);
|
||||
triggerList.clear();
|
||||
|
||||
game.fireEvent(new GameEventTokenCreated());
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package forge.game.ability.effects;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import forge.GameCommand;
|
||||
import forge.game.Game;
|
||||
import forge.game.ability.AbilityFactory;
|
||||
@@ -22,8 +20,7 @@ public class SkipPhaseEffect extends SpellAbilityEffect {
|
||||
final String phase = sa.getParam("Phase");
|
||||
final String step = sa.getParam("Step");
|
||||
|
||||
List<Player> tgtPlayers = getTargetPlayers(sa);
|
||||
for (final Player player : tgtPlayers) {
|
||||
for (final Player player : getTargetPlayers(sa)) {
|
||||
sb.append(player).append(" ");
|
||||
sb.append("skips their ");
|
||||
if (duration == null) {
|
||||
@@ -45,8 +42,7 @@ public class SkipPhaseEffect extends SpellAbilityEffect {
|
||||
final String phase = sa.getParam("Phase");
|
||||
final String step = sa.getParam("Step");
|
||||
|
||||
List<Player> tgtPlayers = getTargetPlayers(sa);
|
||||
for (final Player player : tgtPlayers) {
|
||||
for (final Player player : getTargetPlayers(sa)) {
|
||||
createSkipPhaseEffect(sa, player, duration, phase, step);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package forge.game.ability.effects;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import forge.game.Game;
|
||||
import forge.game.ability.AbilityFactory;
|
||||
import forge.game.ability.AbilityUtils;
|
||||
@@ -22,8 +20,7 @@ public class SkipTurnEffect extends SpellAbilityEffect {
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
final int numTurns = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("NumTurns"), sa);
|
||||
|
||||
List<Player> tgtPlayers = getTargetPlayers(sa);
|
||||
for (final Player player : tgtPlayers) {
|
||||
for (final Player player : getTargetPlayers(sa)) {
|
||||
sb.append(player).append(" ");
|
||||
}
|
||||
|
||||
@@ -44,8 +41,7 @@ public class SkipTurnEffect extends SpellAbilityEffect {
|
||||
String exile = "DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile " +
|
||||
"| ConditionCheckSVar$ NumTurns | ConditionSVarCompare$ EQ0";
|
||||
|
||||
List<Player> tgtPlayers = getTargetPlayers(sa);
|
||||
for (final Player player : tgtPlayers) {
|
||||
for (final Player player : getTargetPlayers(sa)) {
|
||||
final Card eff = createEffect(sa, player, name, image);
|
||||
eff.setSVar("NumTurns", "Number$" + numTurns);
|
||||
SpellAbility calcTurn = AbilityFactory.getAbility(effect, eff);
|
||||
|
||||
@@ -117,7 +117,7 @@ public abstract class TokenEffectBase extends SpellAbilityEffect {
|
||||
for (int i = 0; i < cellAmount; i++) {
|
||||
Card tok = new CardCopyService(prototype).copyCard(true);
|
||||
// disconnect from prototype
|
||||
tok.getStates().forEach(cs -> tok.getState(cs).resetOriginalHost());
|
||||
tok.getStates().forEach(cs -> tok.getState(cs).resetOriginalHost(prototype));
|
||||
// Crafty Cutpurse would change under which control it does enter,
|
||||
// but it shouldn't change who creates the token
|
||||
tok.setOwner(creator);
|
||||
|
||||
@@ -10,7 +10,6 @@ import forge.game.spellability.SpellAbility;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class VillainousChoiceEffect extends SpellAbilityEffect {
|
||||
@Override
|
||||
public void resolve(SpellAbility sa) {
|
||||
|
||||
@@ -1991,7 +1991,6 @@ public class CardFactoryUtil {
|
||||
final Trigger t = TriggerHandler.parseTrigger(trigStr, card, intrinsic);
|
||||
t.setOverridingAbility(sa);
|
||||
inst.addTrigger(t);
|
||||
|
||||
} else if (keyword.startsWith("Prize")) {
|
||||
final String[] k = keyword.split(":");
|
||||
|
||||
|
||||
@@ -757,9 +757,10 @@ public class CardState extends GameObject implements IHasSVars {
|
||||
.build();
|
||||
}
|
||||
|
||||
public void resetOriginalHost() {
|
||||
public void resetOriginalHost(Card oldHost) {
|
||||
for (final CardTraitBase ctb : getTraits()) {
|
||||
if (ctb.isIntrinsic()) {
|
||||
if (ctb.isIntrinsic() && ctb.getOriginalHost() != null && ctb.getOriginalHost().equals(oldHost)) {
|
||||
// only update traits with undesired host or SVar lookup would fail
|
||||
ctb.setCardState(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -193,10 +193,6 @@ public class PlayerProperty {
|
||||
if (!player.hasTappedLandForManaThisTurn()) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("NoCardsInHandAtBeginningOfTurn")) {
|
||||
if (player.getNumCardsInHandStartedThisTurnWith() > 0) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("CardsInHandAtBeginningOfTurn")) {
|
||||
if (player.getNumCardsInHandStartedThisTurnWith() <= 0) {
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user