mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
ensure generated tokens get added with the correct prefix
This commit is contained in:
@@ -30,6 +30,7 @@ import forge.card.spellability.SpellAbility;
|
|||||||
import forge.card.trigger.Trigger;
|
import forge.card.trigger.Trigger;
|
||||||
import forge.card.trigger.TriggerHandler;
|
import forge.card.trigger.TriggerHandler;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
import forge.item.CardToken;
|
||||||
|
|
||||||
public class TokenEffect extends SpellAbilityEffect {
|
public class TokenEffect extends SpellAbilityEffect {
|
||||||
|
|
||||||
@@ -144,7 +145,6 @@ public class TokenEffect extends SpellAbilityEffect {
|
|||||||
final Card host = sa.getSourceCard();
|
final Card host = sa.getSourceCard();
|
||||||
readParameters(sa);
|
readParameters(sa);
|
||||||
|
|
||||||
String imageName = "";
|
|
||||||
String cost = "";
|
String cost = "";
|
||||||
// Construct colors
|
// Construct colors
|
||||||
final String[] substitutedColors = Arrays.copyOf(this.tokenColors, this.tokenColors.length);
|
final String[] substitutedColors = Arrays.copyOf(this.tokenColors, this.tokenColors.length);
|
||||||
@@ -170,8 +170,10 @@ public class TokenEffect extends SpellAbilityEffect {
|
|||||||
colorDesc = "C";
|
colorDesc = "C";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final String imageName;
|
||||||
if (this.tokenImage.equals("")) {
|
if (this.tokenImage.equals("")) {
|
||||||
imageName += colorDesc.replace(" ", "") + " " + this.tokenPower + " " + this.tokenToughness + " " + this.tokenName;
|
imageName = CardToken.makeTokenFileName(colorDesc.replace(" ", ""), tokenPower, tokenToughness, tokenName);
|
||||||
} else {
|
} else {
|
||||||
imageName = this.tokenImage;
|
imageName = this.tokenImage;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ import forge.game.zone.PlayerZone;
|
|||||||
import forge.game.zone.Zone;
|
import forge.game.zone.Zone;
|
||||||
import forge.game.zone.ZoneType;
|
import forge.game.zone.ZoneType;
|
||||||
import forge.gui.GuiChoose;
|
import forge.gui.GuiChoose;
|
||||||
|
import forge.item.CardToken;
|
||||||
import forge.util.Aggregates;
|
import forge.util.Aggregates;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -73,7 +74,8 @@ public class CardFactoryCreatures {
|
|||||||
final Ability ability = new Ability(card, ManaCost.ZERO) {
|
final Ability ability = new Ability(card, ManaCost.ZERO) {
|
||||||
@Override
|
@Override
|
||||||
public void resolve() {
|
public void resolve() {
|
||||||
final List<Card> cl = CardFactoryUtil.makeToken("Stangg Twin", "RG 3 4 Stangg Twin",
|
final List<Card> cl = CardFactoryUtil.makeToken("Stangg Twin",
|
||||||
|
CardToken.makeTokenFileName("RG", 3, 4, "Stangg Twin"),
|
||||||
card.getController(), "R G", new String[] { "Legendary", "Creature", "Human", "Warrior" },
|
card.getController(), "R G", new String[] { "Legendary", "Creature", "Human", "Warrior" },
|
||||||
3, 4, new String[] { "" });
|
3, 4, new String[] { "" });
|
||||||
|
|
||||||
@@ -373,8 +375,8 @@ public class CardFactoryCreatures {
|
|||||||
} // resolve()
|
} // resolve()
|
||||||
|
|
||||||
public void makeToken() {
|
public void makeToken() {
|
||||||
CardFactoryUtil.makeToken("Kithkin Soldier", "W 1 1 Kithkin Soldier", card.getController(), "W",
|
CardFactoryUtil.makeToken("Kithkin Soldier", CardToken.makeTokenFileName("W", 1, 1, "Kithkin Soldier"),
|
||||||
new String[] { "Creature", "Kithkin", "Soldier" }, 1, 1, new String[] { "" });
|
card.getController(), "W", new String[] { "Creature", "Kithkin", "Soldier" }, 1, 1, new String[] { "" });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2442,29 +2442,6 @@ public class CardFactoryUtil {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* makeToken.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param name
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
* @param imageName
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
* @param controller
|
|
||||||
* a {@link forge.game.player.Player} object.
|
|
||||||
* @param manaCost
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
* @param types
|
|
||||||
* an array of {@link java.lang.String} objects.
|
|
||||||
* @param baseAttack
|
|
||||||
* a int.
|
|
||||||
* @param baseDefense
|
|
||||||
* a int.
|
|
||||||
* @param intrinsicKeywords
|
|
||||||
* an array of {@link java.lang.String} objects.
|
|
||||||
* @return a {@link forge.CardList} object.
|
|
||||||
*/
|
|
||||||
public static List<Card> makeToken(final String name, final String imageName, final Player controller,
|
public static List<Card> makeToken(final String name, final String imageName, final Player controller,
|
||||||
final String manaCost, final String[] types, final int baseAttack, final int baseDefense,
|
final String manaCost, final String[] types, final int baseAttack, final int baseDefense,
|
||||||
final String[] intrinsicKeywords) {
|
final String[] intrinsicKeywords) {
|
||||||
|
|||||||
@@ -41,16 +41,6 @@ import forge.game.phase.PhaseType;
|
|||||||
import forge.game.player.AIPlayer;
|
import forge.game.player.AIPlayer;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.game.zone.ZoneType;
|
import forge.game.zone.ZoneType;
|
||||||
//import forge.util.TextUtil;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* TriggerHandler class.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author Forge
|
|
||||||
* @version $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class TriggerHandler {
|
public class TriggerHandler {
|
||||||
private final ArrayList<TriggerType> suppressedModes = new ArrayList<TriggerType>();
|
private final ArrayList<TriggerType> suppressedModes = new ArrayList<TriggerType>();
|
||||||
@@ -58,9 +48,6 @@ public class TriggerHandler {
|
|||||||
private final ArrayList<Trigger> delayedTriggers = new ArrayList<Trigger>();
|
private final ArrayList<Trigger> delayedTriggers = new ArrayList<Trigger>();
|
||||||
private final List<TriggerWaiting> waitingTriggers = new ArrayList<TriggerWaiting>();
|
private final List<TriggerWaiting> waitingTriggers = new ArrayList<TriggerWaiting>();
|
||||||
|
|
||||||
/**
|
|
||||||
* Clean up temporary triggers.
|
|
||||||
*/
|
|
||||||
public final void cleanUpTemporaryTriggers() {
|
public final void cleanUpTemporaryTriggers() {
|
||||||
final List<Card> absolutelyAllCards = Singletons.getModel().getGame().getCardsInGame();
|
final List<Card> absolutelyAllCards = Singletons.getModel().getGame().getCardsInGame();
|
||||||
for (final Card c : absolutelyAllCards) {
|
for (final Card c : absolutelyAllCards) {
|
||||||
@@ -79,34 +66,14 @@ public class TriggerHandler {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* registerDelayedTrigger.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param trig
|
|
||||||
* a {@link forge.card.trigger.Trigger} object.
|
|
||||||
*/
|
|
||||||
public final void registerDelayedTrigger(final Trigger trig) {
|
public final void registerDelayedTrigger(final Trigger trig) {
|
||||||
this.delayedTriggers.add(trig);
|
this.delayedTriggers.add(trig);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* clearDelayedTrigger.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public final void clearDelayedTrigger() {
|
public final void clearDelayedTrigger() {
|
||||||
this.delayedTriggers.clear();
|
this.delayedTriggers.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* clearDelayedTrigger.
|
|
||||||
* </p>
|
|
||||||
* @param card
|
|
||||||
* a card object.
|
|
||||||
*/
|
|
||||||
public final void clearDelayedTrigger(Card card) {
|
public final void clearDelayedTrigger(Card card) {
|
||||||
ArrayList<Trigger> deltrigs = new ArrayList<Trigger>(this.delayedTriggers);
|
ArrayList<Trigger> deltrigs = new ArrayList<Trigger>(this.delayedTriggers);
|
||||||
|
|
||||||
@@ -118,45 +85,14 @@ public class TriggerHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* suppressMode.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param mode
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
*/
|
|
||||||
public final void suppressMode(final TriggerType mode) {
|
public final void suppressMode(final TriggerType mode) {
|
||||||
this.suppressedModes.add(mode);
|
this.suppressedModes.add(mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* clearSuppression.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param mode
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
*/
|
|
||||||
public final void clearSuppression(final TriggerType mode) {
|
public final void clearSuppression(final TriggerType mode) {
|
||||||
this.suppressedModes.remove(mode);
|
this.suppressedModes.remove(mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* parseTrigger.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param name
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
* @param trigParse
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
* @param host
|
|
||||||
* a {@link forge.Card} object.
|
|
||||||
* @param intrinsic
|
|
||||||
* a boolean.
|
|
||||||
* @return a {@link forge.card.trigger.Trigger} object.
|
|
||||||
*/
|
|
||||||
public static Trigger parseTrigger(final String name, final String trigParse, final Card host,
|
public static Trigger parseTrigger(final String name, final String trigParse, final Card host,
|
||||||
final boolean intrinsic) {
|
final boolean intrinsic) {
|
||||||
final Trigger ret = TriggerHandler.parseTrigger(trigParse, host, intrinsic);
|
final Trigger ret = TriggerHandler.parseTrigger(trigParse, host, intrinsic);
|
||||||
@@ -164,37 +100,11 @@ public class TriggerHandler {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* parseTrigger.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param trigParse
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
* @param host
|
|
||||||
* a {@link forge.Card} object.
|
|
||||||
* @param intrinsic
|
|
||||||
* a boolean.
|
|
||||||
* @return a {@link forge.card.trigger.Trigger} object.
|
|
||||||
*/
|
|
||||||
public static Trigger parseTrigger(final String trigParse, final Card host, final boolean intrinsic) {
|
public static Trigger parseTrigger(final String trigParse, final Card host, final boolean intrinsic) {
|
||||||
final HashMap<String, String> mapParams = TriggerHandler.parseParams(trigParse);
|
final HashMap<String, String> mapParams = TriggerHandler.parseParams(trigParse);
|
||||||
return TriggerHandler.parseTrigger(mapParams, host, intrinsic);
|
return TriggerHandler.parseTrigger(mapParams, host, intrinsic);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* parseTrigger.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param mapParams
|
|
||||||
* a {@link java.util.HashMap} object.
|
|
||||||
* @param host
|
|
||||||
* a {@link forge.Card} object.
|
|
||||||
* @param intrinsic
|
|
||||||
* a boolean.
|
|
||||||
* @return a {@link forge.card.trigger.Trigger} object.
|
|
||||||
*/
|
|
||||||
public static Trigger parseTrigger(final Map<String, String> mapParams, final Card host, final boolean intrinsic) {
|
public static Trigger parseTrigger(final Map<String, String> mapParams, final Card host, final boolean intrinsic) {
|
||||||
Trigger ret = null;
|
Trigger ret = null;
|
||||||
|
|
||||||
@@ -214,15 +124,6 @@ public class TriggerHandler {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* parseParams.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param trigParse
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
* @return a {@link java.util.HashMap} object.
|
|
||||||
*/
|
|
||||||
private static HashMap<String, String> parseParams(final String trigParse) {
|
private static HashMap<String, String> parseParams(final String trigParse) {
|
||||||
final HashMap<String, String> mapParams = new HashMap<String, String>();
|
final HashMap<String, String> mapParams = new HashMap<String, String>();
|
||||||
|
|
||||||
@@ -255,17 +156,6 @@ public class TriggerHandler {
|
|||||||
return mapParams;
|
return mapParams;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* runTrigger.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param mode
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
* @param runParams
|
|
||||||
* a {@link java.util.Map} object.
|
|
||||||
* @param forceHeldTriggers Force certain triggers to be added the waitingTriggers if stack isnt frozen
|
|
||||||
*/
|
|
||||||
public final void runTrigger(final TriggerType mode, final Map<String, Object> runParams, boolean holdTrigger) {
|
public final void runTrigger(final TriggerType mode, final Map<String, Object> runParams, boolean holdTrigger) {
|
||||||
if (this.suppressedModes.contains(mode)) {
|
if (this.suppressedModes.contains(mode)) {
|
||||||
return;
|
return;
|
||||||
@@ -400,19 +290,6 @@ public class TriggerHandler {
|
|||||||
// Checks if the conditions are right for a single trigger to go off, and
|
// Checks if the conditions are right for a single trigger to go off, and
|
||||||
// runs it if so.
|
// runs it if so.
|
||||||
// Return true if the trigger went off, false otherwise.
|
// Return true if the trigger went off, false otherwise.
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* runSingleTrigger.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param regtrig
|
|
||||||
* a {@link forge.card.trigger.Trigger} object.
|
|
||||||
* @param mode
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
* @param runParams
|
|
||||||
* a {@link java.util.HashMap} object.
|
|
||||||
* @return false if trigger is not happening.
|
|
||||||
*/
|
|
||||||
private boolean runSingleTrigger(final Trigger regtrig, final TriggerType mode, final Map<String, Object> runParams) {
|
private boolean runSingleTrigger(final Trigger regtrig, final TriggerType mode, final Map<String, Object> runParams) {
|
||||||
final Map<String, String> triggerParams = regtrig.getMapParams();
|
final Map<String, String> triggerParams = regtrig.getMapParams();
|
||||||
final GameState game = Singletons.getModel().getGame();
|
final GameState game = Singletons.getModel().getGame();
|
||||||
@@ -557,12 +434,6 @@ public class TriggerHandler {
|
|||||||
private final ArrayList<Integer> triggersAlwaysAccept = new ArrayList<Integer>();
|
private final ArrayList<Integer> triggersAlwaysAccept = new ArrayList<Integer>();
|
||||||
private final ArrayList<Integer> triggersAlwaysDecline = new ArrayList<Integer>();
|
private final ArrayList<Integer> triggersAlwaysDecline = new ArrayList<Integer>();
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the always accept trigger.
|
|
||||||
*
|
|
||||||
* @param trigID
|
|
||||||
* the new always accept trigger
|
|
||||||
*/
|
|
||||||
public final void setAlwaysAcceptTrigger(final int trigID) {
|
public final void setAlwaysAcceptTrigger(final int trigID) {
|
||||||
if (this.triggersAlwaysDecline.contains(trigID)) {
|
if (this.triggersAlwaysDecline.contains(trigID)) {
|
||||||
this.triggersAlwaysDecline.remove((Object) trigID);
|
this.triggersAlwaysDecline.remove((Object) trigID);
|
||||||
@@ -573,12 +444,6 @@ public class TriggerHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the always decline trigger.
|
|
||||||
*
|
|
||||||
* @param trigID
|
|
||||||
* the new always decline trigger
|
|
||||||
*/
|
|
||||||
public final void setAlwaysDeclineTrigger(final int trigID) {
|
public final void setAlwaysDeclineTrigger(final int trigID) {
|
||||||
if (this.triggersAlwaysAccept.contains(trigID)) {
|
if (this.triggersAlwaysAccept.contains(trigID)) {
|
||||||
this.triggersAlwaysAccept.remove((Object) trigID);
|
this.triggersAlwaysAccept.remove((Object) trigID);
|
||||||
@@ -589,42 +454,19 @@ public class TriggerHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the always ask trigger.
|
|
||||||
*
|
|
||||||
* @param trigID
|
|
||||||
* the new always ask trigger
|
|
||||||
*/
|
|
||||||
public final void setAlwaysAskTrigger(final int trigID) {
|
public final void setAlwaysAskTrigger(final int trigID) {
|
||||||
this.triggersAlwaysAccept.remove((Object) trigID);
|
this.triggersAlwaysAccept.remove((Object) trigID);
|
||||||
this.triggersAlwaysDecline.remove((Object) trigID);
|
this.triggersAlwaysDecline.remove((Object) trigID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if is always accepted.
|
|
||||||
*
|
|
||||||
* @param trigID
|
|
||||||
* the trig id
|
|
||||||
* @return true, if is always accepted
|
|
||||||
*/
|
|
||||||
public final boolean isAlwaysAccepted(final int trigID) {
|
public final boolean isAlwaysAccepted(final int trigID) {
|
||||||
return this.triggersAlwaysAccept.contains(trigID);
|
return this.triggersAlwaysAccept.contains(trigID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if is always declined.
|
|
||||||
*
|
|
||||||
* @param trigID
|
|
||||||
* the trig id
|
|
||||||
* @return true, if is always declined
|
|
||||||
*/
|
|
||||||
public final boolean isAlwaysDeclined(final int trigID) {
|
public final boolean isAlwaysDeclined(final int trigID) {
|
||||||
return this.triggersAlwaysDecline.contains(trigID);
|
return this.triggersAlwaysDecline.contains(trigID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Clear trigger settings.
|
|
||||||
*/
|
|
||||||
public final void clearTriggerSettings() {
|
public final void clearTriggerSettings() {
|
||||||
this.triggersAlwaysAccept.clear();
|
this.triggersAlwaysAccept.clear();
|
||||||
this.triggersAlwaysDecline.clear();
|
this.triggersAlwaysDecline.clear();
|
||||||
|
|||||||
@@ -26,19 +26,10 @@ import forge.game.player.Player;
|
|||||||
import forge.game.zone.ZoneType;
|
import forge.game.zone.ZoneType;
|
||||||
import forge.gui.match.CMatchUI;
|
import forge.gui.match.CMatchUI;
|
||||||
import forge.view.ButtonUtil;
|
import forge.view.ButtonUtil;
|
||||||
//import forge.Singletons;
|
|
||||||
|
|
||||||
//pays the cost of a card played from the player's hand
|
//pays the cost of a card played from the player's hand
|
||||||
//the card is removed from the players hand if the cost is paid
|
//the card is removed from the players hand if the cost is paid
|
||||||
//CANNOT be used for ABILITIES
|
//CANNOT be used for ABILITIES
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Input_PayManaCost class.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author Forge
|
|
||||||
* @version $Id$
|
|
||||||
*/
|
|
||||||
public class InputPayManaSimple extends InputPayManaBase {
|
public class InputPayManaSimple extends InputPayManaBase {
|
||||||
// anything that uses this should be converted to Ability_Cost
|
// anything that uses this should be converted to Ability_Cost
|
||||||
/** Constant <code>serialVersionUID=3467312982164195091L</code>. */
|
/** Constant <code>serialVersionUID=3467312982164195091L</code>. */
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import forge.gui.deckeditor.tables.DeckController;
|
|||||||
import forge.gui.deckeditor.views.VCurrentDeck;
|
import forge.gui.deckeditor.views.VCurrentDeck;
|
||||||
import forge.gui.framework.ICDoc;
|
import forge.gui.framework.ICDoc;
|
||||||
import forge.gui.toolbox.FLabel;
|
import forge.gui.toolbox.FLabel;
|
||||||
|
import forge.properties.NewConstants;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controls the "current deck" panel in the deck editor UI.
|
* Controls the "current deck" panel in the deck editor UI.
|
||||||
@@ -33,7 +34,7 @@ public enum CCurrentDeck implements ICDoc {
|
|||||||
|
|
||||||
private static File previousDirectory = null;
|
private static File previousDirectory = null;
|
||||||
|
|
||||||
private JFileChooser fileChooser = new JFileChooser();
|
private JFileChooser fileChooser = new JFileChooser(NewConstants.DECK_BASE_DIR);
|
||||||
|
|
||||||
//========== Overridden methods
|
//========== Overridden methods
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package forge.item;
|
package forge.item;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import forge.Card;
|
import forge.Card;
|
||||||
import forge.ImageCache;
|
import forge.ImageCache;
|
||||||
import forge.card.CardEdition;
|
import forge.card.CardEdition;
|
||||||
@@ -14,7 +16,33 @@ public class CardToken implements InventoryItemFromSet, IPaperCard {
|
|||||||
private String imageFileName;
|
private String imageFileName;
|
||||||
private CardRules card;
|
private CardRules card;
|
||||||
|
|
||||||
// Constructor is private. All non-foiled instances are stored in CardDb
|
private static String toTokenFilename(final String in) {
|
||||||
|
final StringBuffer out = new StringBuffer();
|
||||||
|
|
||||||
|
out.append(ImageCache.TOKEN_PREFIX);
|
||||||
|
|
||||||
|
char c;
|
||||||
|
for (int i = 0; i < in.length(); i++) {
|
||||||
|
c = in.charAt(i);
|
||||||
|
if ((c == ' ') || (c == '-') || (c == '_')) {
|
||||||
|
out.append('_');
|
||||||
|
} else if (Character.isLetterOrDigit(c)) {
|
||||||
|
out.append(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return out.toString().toLowerCase(Locale.ENGLISH);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String makeTokenFileName(String colors, int power, int toughness, String name) {
|
||||||
|
return makeTokenFileName(colors, String.valueOf(power), String.valueOf(toughness), name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String makeTokenFileName(String colors, String power, String toughness, String name) {
|
||||||
|
StringBuilder fileName = new StringBuilder();
|
||||||
|
fileName.append(colors).append('_').append(power).append('_').append(toughness).append('_').append(name);
|
||||||
|
return toTokenFilename(fileName.toString());
|
||||||
|
}
|
||||||
|
|
||||||
public CardToken(final CardRules c, CardEdition edition0, final String imageFileName) {
|
public CardToken(final CardRules c, CardEdition edition0, final String imageFileName) {
|
||||||
this.card = c;
|
this.card = c;
|
||||||
this.name = c.getName();
|
this.name = c.getName();
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ package forge.quest;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
import forge.Card;
|
import forge.Card;
|
||||||
import forge.card.CardEdition;
|
import forge.card.CardEdition;
|
||||||
@@ -123,20 +122,6 @@ public class QuestUtil {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String toTokenFilename(final String in) {
|
|
||||||
final StringBuffer out = new StringBuffer();
|
|
||||||
char c;
|
|
||||||
for (int i = 0; i < in.length(); i++) {
|
|
||||||
c = in.charAt(i);
|
|
||||||
if ((c == ' ') || (c == '-') || (c == '_')) {
|
|
||||||
out.append('_');
|
|
||||||
} else if (Character.isLetterOrDigit(c)) {
|
|
||||||
out.append(c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return out.toString().toLowerCase(Locale.ENGLISH);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* createToken.
|
* createToken.
|
||||||
@@ -157,8 +142,7 @@ public class QuestUtil {
|
|||||||
script.add("PT:"+ properties[2] + "/" + properties[3]);
|
script.add("PT:"+ properties[2] + "/" + properties[3]);
|
||||||
script.add("Types:" + properties[5].replace(';', ' '));
|
script.add("Types:" + properties[5].replace(';', ' '));
|
||||||
script.add("Oracle:"); // tokens don't have texts yet
|
script.add("Oracle:"); // tokens don't have texts yet
|
||||||
// c.setManaCost(properties[1]);
|
String fileName = CardToken.makeTokenFileName(properties[1], properties[2], properties[3], properties[4]);
|
||||||
String fileName = properties[1] + "_" + properties[2] + "_" + properties[3] + "_" + toTokenFilename(properties[4]);
|
|
||||||
final CardToken c = new CardToken(CardRulesReader.parseSingleCard(script), CardEdition.UNKNOWN, fileName);
|
final CardToken c = new CardToken(CardRulesReader.parseSingleCard(script), CardEdition.UNKNOWN, fileName);
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -643,12 +643,12 @@ public class CardPanel extends JPanel implements CardContainer {
|
|||||||
&& this.imagePanel.hasImage()) {
|
&& this.imagePanel.hasImage()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setGameCard(card);
|
this.setGameCard(card);
|
||||||
if (!this.isShowing()) {
|
if (!this.isShowing()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//final Insets i = this.getInsets();
|
|
||||||
//System.out.println("Setting card: " + this.getWidth() + ", " + getCardWidth() + " (" + imagePanel.getWidth() + ")" );
|
|
||||||
final BufferedImage image = card == null ? null : ImageCache.getImage(card, imagePanel.getWidth(), imagePanel.getHeight());
|
final BufferedImage image = card == null ? null : ImageCache.getImage(card, imagePanel.getWidth(), imagePanel.getHeight());
|
||||||
if ((this.getGameCard() != null) && Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CARD_OVERLAY)) {
|
if ((this.getGameCard() != null) && Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CARD_OVERLAY)) {
|
||||||
this.setText(this.getGameCard());
|
this.setText(this.getGameCard());
|
||||||
|
|||||||
Reference in New Issue
Block a user