mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
support choose localization card name
This commit is contained in:
@@ -3,24 +3,40 @@ package forge.game.card;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class CardFaceView implements Serializable, Comparable<CardFaceView> {
|
||||
private String name;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1874016432028306386L;
|
||||
private String displayName;
|
||||
private String oracleName;
|
||||
|
||||
public CardFaceView(String faceName) {
|
||||
this.name = faceName;
|
||||
public CardFaceView(String displayName) {
|
||||
this(displayName, displayName);
|
||||
}
|
||||
|
||||
public String getName() { return name;}
|
||||
public CardFaceView(String displayFaceName, String oracleFaceName ) {
|
||||
this.displayName = displayFaceName;
|
||||
this.oracleName = oracleFaceName;
|
||||
}
|
||||
|
||||
public String getName() { return displayName;}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
this.displayName = name;
|
||||
}
|
||||
|
||||
public String getOracleName() { return oracleName; }
|
||||
|
||||
public void setOracleName(String name) {
|
||||
this.oracleName = name;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return name;
|
||||
return displayName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(CardFaceView o) {
|
||||
return this.getName().compareTo(o.getName());
|
||||
return this.getOracleName().compareTo(o.getOracleName());
|
||||
}
|
||||
}
|
||||
@@ -1561,12 +1561,12 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
CardFaceView cardFaceView;
|
||||
List<CardFaceView> choices = new ArrayList<>();
|
||||
for (ICardFace cardFace : cards) {
|
||||
cardFaceView = new CardFaceView(cardFace.getName());
|
||||
cardFaceView = new CardFaceView(CardTranslation.getTranslatedName(cardFace.getName()), cardFace.getName());
|
||||
choices.add(cardFaceView);
|
||||
}
|
||||
Collections.sort(choices);
|
||||
cardFaceView = getGui().one(message, choices);
|
||||
return StaticData.instance().getCommonCards().getFaceByName(cardFaceView.getName());
|
||||
return StaticData.instance().getCommonCards().getFaceByName(cardFaceView.getOracleName());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1960,7 +1960,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
}
|
||||
|
||||
public class DevModeCheats implements IDevModeCheats {
|
||||
private ICardFace lastAdded;
|
||||
private CardFaceView lastAdded;
|
||||
private ZoneType lastAddedZone;
|
||||
private Player lastAddedPlayer;
|
||||
private SpellAbility lastAddedSA;
|
||||
@@ -2363,15 +2363,21 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
|
||||
final CardDb carddb = FModel.getMagicDb().getCommonCards();
|
||||
final List<ICardFace> faces = Lists.newArrayList(carddb.getAllFaces());
|
||||
Collections.sort(faces);
|
||||
List<CardFaceView> choices = new ArrayList<>();
|
||||
CardFaceView cardFaceView;
|
||||
for (ICardFace cardFace : faces) {
|
||||
cardFaceView = new CardFaceView(CardTranslation.getTranslatedName(cardFace.getName()), cardFace.getName());
|
||||
choices.add(cardFaceView);
|
||||
}
|
||||
Collections.sort(choices);
|
||||
|
||||
// use standard forge's list selection dialog
|
||||
final ICardFace f = repeatLast ? lastAdded : getGui().oneOrNone(localizer.getMessage("lblNameTheCard"), faces);
|
||||
final CardFaceView f = repeatLast ? lastAdded : getGui().oneOrNone(localizer.getMessage("lblNameTheCard"), choices);
|
||||
if (f == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
final PaperCard c = carddb.getUniqueByName(f.getName());
|
||||
final PaperCard c = carddb.getUniqueByName(f.getOracleName());
|
||||
final Card forgeCard = Card.fromPaperCard(c, p);
|
||||
|
||||
game.getAction().invoke(new Runnable() {
|
||||
|
||||
Reference in New Issue
Block a user