mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
stack descriptions for spells with X in cost fixed (X is displayed correctly)
This commit is contained in:
@@ -1108,6 +1108,9 @@ public class CardFactoryUtil {
|
|||||||
*/
|
*/
|
||||||
public static int xCount(final Card c, final String expression) {
|
public static int xCount(final Card c, final String expression) {
|
||||||
int n = 0;
|
int n = 0;
|
||||||
|
|
||||||
|
if (StringUtils.isNumeric(expression))
|
||||||
|
return Integer.parseInt(expression);
|
||||||
|
|
||||||
final Player cardController = c.getController();
|
final Player cardController = c.getController();
|
||||||
final Player oppController = cardController.getOpponent();
|
final Player oppController = cardController.getOpponent();
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
|
|
||||||
import forge.Card;
|
import forge.Card;
|
||||||
import forge.CardCharacteristicName;
|
import forge.CardCharacteristicName;
|
||||||
import forge.Singletons;
|
|
||||||
import forge.card.ability.AbilityUtils;
|
import forge.card.ability.AbilityUtils;
|
||||||
import forge.card.cost.CostPayment;
|
import forge.card.cost.CostPayment;
|
||||||
import forge.game.GameState;
|
import forge.game.GameState;
|
||||||
@@ -48,7 +47,7 @@ public class HumanPlaySpellAbility {
|
|||||||
|
|
||||||
|
|
||||||
public final void fillRequirements(boolean isAlreadyTargeted, boolean isFree, boolean skipStack) {
|
public final void fillRequirements(boolean isAlreadyTargeted, boolean isFree, boolean skipStack) {
|
||||||
final GameState game = Singletons.getModel().getGame();
|
final GameState game = ability.getActivatingPlayer().getGame();
|
||||||
|
|
||||||
// used to rollback
|
// used to rollback
|
||||||
Zone fromZone = null;
|
Zone fromZone = null;
|
||||||
@@ -128,7 +127,8 @@ public class HumanPlaySpellAbility {
|
|||||||
|
|
||||||
private void rollbackAbility(Zone fromZone, int zonePosition) {
|
private void rollbackAbility(Zone fromZone, int zonePosition) {
|
||||||
// cancel ability during target choosing
|
// cancel ability during target choosing
|
||||||
final Card c = this.ability.getSourceCard();
|
final GameState game = ability.getActivatingPlayer().getGame();
|
||||||
|
final Card c = ability.getSourceCard();
|
||||||
|
|
||||||
// split cards transform back to full form if targeting is canceled
|
// split cards transform back to full form if targeting is canceled
|
||||||
if (c.isSplitCard()) {
|
if (c.isSplitCard()) {
|
||||||
@@ -137,14 +137,14 @@ public class HumanPlaySpellAbility {
|
|||||||
|
|
||||||
if (fromZone != null) { // and not a copy
|
if (fromZone != null) { // and not a copy
|
||||||
// add back to where it came from
|
// add back to where it came from
|
||||||
Singletons.getModel().getGame().getAction().moveTo(fromZone, c, zonePosition >= 0 ? Integer.valueOf(zonePosition) : null);
|
game.getAction().moveTo(fromZone, c, zonePosition >= 0 ? Integer.valueOf(zonePosition) : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
clearTargets(ability);
|
clearTargets(ability);
|
||||||
|
|
||||||
this.ability.resetOnceResolved();
|
this.ability.resetOnceResolved();
|
||||||
this.payment.refundPayment();
|
this.payment.refundPayment();
|
||||||
Singletons.getModel().getGame().getStack().clearFrozen();
|
game.getStack().clearFrozen();
|
||||||
// Singletons.getModel().getGame().getStack().removeFromFrozenStack(this.ability);
|
// Singletons.getModel().getGame().getStack().removeFromFrozenStack(this.ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user