Merge pull request #2469 from kevlahnota/newmaster2

update deckaward dialog
This commit is contained in:
Anthony Calosa
2023-02-14 07:04:03 +08:00
committed by GitHub
6 changed files with 63 additions and 29 deletions

View File

@@ -60,7 +60,7 @@ public class GameHUD extends Stage {
float TOUCHPAD_SCALE = 70f, referenceX;
boolean isHiding = false, isShowing = false;
float opacity = 1f;
private boolean debugMap;
private boolean debugMap, updatelife;
private final Dialog dialog;
private boolean dialogOnlyInput;
@@ -125,7 +125,7 @@ public class GameHUD extends Stage {
shards.setText("[%95][+Shards] 0");
money.setText("[%95][+Gold] ");
lifePoints.setText("[%95][+Life] 20/20");
AdventurePlayer.current().onLifeChange(() -> lifePoints.setText("[%95][+Life] "+AdventurePlayer.current().getLife() + "/" + AdventurePlayer.current().getMaxLife()));
AdventurePlayer.current().onLifeChange(() -> lifePoints.setText("[%95][+Life]"+ lifepointsTextColor +" "+AdventurePlayer.current().getLife() + "/" + AdventurePlayer.current().getMaxLife()));
AdventurePlayer.current().onShardsChange(() -> shards.setText("[%95][+Shards] "+AdventurePlayer.current().getShards()));
WorldSave.getCurrentSave().getPlayer().onGoldChange(() -> money.setText("[%95][+Gold] "+String.valueOf(AdventurePlayer.current().getGold())));
@@ -236,6 +236,7 @@ public class GameHUD extends Stage {
@Override
public void draw() {
updatelife = false;
int yPos = (int) gameStage.player.getY();
int xPos = (int) gameStage.player.getX();
act(Gdx.graphics.getDeltaTime()); //act the Hud
@@ -248,22 +249,26 @@ public class GameHUD extends Stage {
//colored lifepoints
if (Current.player().getLife() >= Current.player().getMaxLife()) {
//color green if max life
if (!lifepointsTextColor.equalsIgnoreCase("green")) {
lifePoints.setText("[%95][+Life] [GREEN]" + AdventurePlayer.current().getLife() + "/" + AdventurePlayer.current().getMaxLife());
lifepointsTextColor = "green";
if (!lifepointsTextColor.equals("[GREEN]")) {
lifepointsTextColor = "[GREEN]";
updatelife = true;
}
} else if (Current.player().getLife() <= 5) {
//color red if critical
if (!lifepointsTextColor.equalsIgnoreCase("red")) {
lifePoints.setText("[%95][+Life] [RED]" + AdventurePlayer.current().getLife() + "/" + AdventurePlayer.current().getMaxLife());
lifepointsTextColor = "red";
if (!lifepointsTextColor.equals("[RED]")) {
lifepointsTextColor = "[RED]";
updatelife = true;
}
} else {
if (!lifepointsTextColor.equals("")) {
lifePoints.setText("[%95][+Life] " + AdventurePlayer.current().getLife() + "/" + AdventurePlayer.current().getMaxLife());
lifepointsTextColor = "";
updatelife = true;
}
}
if (updatelife) {
updatelife = false;
lifePoints.setText("[%95][+Life]" + lifepointsTextColor + " " + AdventurePlayer.current().getLife() + "/" + AdventurePlayer.current().getMaxLife());
}
}
Texture miniMapTexture;

View File

@@ -38,8 +38,12 @@ import forge.adventure.pointofintrest.PointOfInterestChanges;
import forge.adventure.scene.*;
import forge.adventure.util.*;
import forge.adventure.world.WorldSave;
import forge.assets.FImageComplex;
import forge.assets.FSkin;
import forge.card.CardRenderer;
import forge.deck.Deck;
import forge.deck.DeckProxy;
import forge.game.GameType;
import forge.gui.FThreads;
import forge.screens.TransitionScreen;
import forge.sound.SoundEffectType;
@@ -212,7 +216,7 @@ public class MapStage extends GameStage {
super.clicked(event, x, y);
}
});
dialog.getButtonTable().add(ok).width(250f);
dialog.getButtonTable().add(ok).width(240f);
dialog.getContentTable().add(L).width(250f);
dialog.setKeepWithinStage(true);
showDialog();
@@ -234,7 +238,7 @@ public class MapStage extends GameStage {
L.setWrap(true);
L.skipToTheEnd();
dialog.getContentTable().add(L).width(250f);
dialog.getButtonTable().add(Controls.newTextButton("OK", this::hideDialog)).width(250f);
dialog.getButtonTable().add(Controls.newTextButton("OK", this::hideDialog)).width(240f);
dialog.setKeepWithinStage(true);
setDialogStage(GameHUD.getInstance());
showDialog();
@@ -244,14 +248,40 @@ public class MapStage extends GameStage {
dialog.getContentTable().clear();
dialog.getButtonTable().clear();
dialog.clearListeners();
dialog.getContentTable().add(Controls.newTypingLabel("[%150]"+Controls.colorIdToTypingString(DeckProxy.getColorIdentity(deck)))).align(Align.center);
dialog.getContentTable().add().row();
DeckProxy dp = new DeckProxy(deck, "Constructed", GameType.Constructed, null);
FImageComplex cardArt = CardRenderer.getCardArt(dp.getHighestCMCCard());
if (cardArt != null) {
Image art = new Image(cardArt.getTextureRegion());
art.setWidth(50);
art.setHeight(40);
art.setPosition(10, 43);
Image image = new Image(FSkin.getDeckbox().get(1));
image.setWidth(70);
image.setHeight(100);
image.setPosition(0, 15);
TypingLabel label = Controls.newTypingLabel("[%125]"+Controls.colorIdToTypingString(DeckProxy.getColorIdentity(deck))+"\n[%]"+deck.getName());
label.skipToTheEnd();
label.setAlignment(Align.center);
label.setPosition(34, 20);
Group group = new Group();
group.addActor(art);
group.addActor(image);
group.addActor(label);
dialog.getContentTable().add(group).height(100).width(65).center();
dialog.getContentTable().add().row();
} else {
TypingLabel label = Controls.newTypingLabel("[%125]"+Controls.colorIdToTypingString(DeckProxy.getColorIdentity(deck))+"\n[%]"+deck.getName());
label.skipToTheEnd();
label.setAlignment(Align.center);
dialog.getContentTable().add(label).align(Align.center);
dialog.getContentTable().add().row();
}
TypingLabel L = Controls.newTypingLabel(message);
L.setWrap(true);
L.skipToTheEnd();
dialog.getContentTable().add(L).width(240);
dialog.getContentTable().add(L).width(250);
dialog.getButtonTable().add(Controls.newTextButton("OK", this::hideDialog)).width(240);
dialog.setKeepWithinStage(true);
setDialogStage(GameHUD.getInstance());

View File

@@ -258,14 +258,13 @@ public class WorldStage extends GameStage implements SaveFileContent {
//spriteGroup.setCullingArea(new Rectangle(player.getX()-getViewport().getWorldHeight()/2,player.getY()-getViewport().getWorldHeight()/2,getViewport().getWorldHeight(),getViewport().getWorldHeight()));
super.draw();
if (WorldSave.getCurrentSave().getPlayer().hasAnnounceFantasy()) {
MapStage.getInstance().showDeckAwardDialog("{BLINK=WHITE;RED}Chaos Mode!{ENDBLINK}\n" + WorldSave.getCurrentSave().getPlayer().getName() + "'s Deck: " +
WorldSave.getCurrentSave().getPlayer().getSelectedDeck().getName() +
"\nEnemy will use Preconstructed or Random Generated Decks. Genetic AI Decks will be available to some enemies on Hard difficulty.", WorldSave.getCurrentSave().getPlayer().getSelectedDeck());
MapStage.getInstance().showDeckAwardDialog("{BLINK=WHITE;RED}Chaos Mode!{ENDBLINK}\n" +
"Enemy will use Preconstructed or Random Generated Decks. Genetic AI Decks will be available to some enemies on Hard difficulty.",
WorldSave.getCurrentSave().getPlayer().getSelectedDeck());
WorldSave.getCurrentSave().getPlayer().clearAnnounceFantasy();
} else if (WorldSave.getCurrentSave().getPlayer().hasAnnounceCustom()) {
MapStage.getInstance().showDeckAwardDialog("{GRADIENT}Custom Deck Mode!{ENDGRADIENT}\n" + WorldSave.getCurrentSave().getPlayer().getName() + "'s Deck: " +
WorldSave.getCurrentSave().getPlayer().getSelectedDeck().getName() +
"\nSome enemies will use Genetic AI Decks randomly.", WorldSave.getCurrentSave().getPlayer().getSelectedDeck());
MapStage.getInstance().showDeckAwardDialog("{GRADIENT}Custom Deck Mode!{ENDGRADIENT}\n" +
"Some enemies will use Genetic AI Decks randomly.", WorldSave.getCurrentSave().getPlayer().getSelectedDeck());
WorldSave.getCurrentSave().getPlayer().clearAnnounceCustom();
}
}

View File

@@ -28,7 +28,7 @@ public class MapDialog {
private final MapStage stage;
private Array<DialogData> data;
private final int parentID;
private final static float WIDTH = 260f;
private final static float WIDTH = 250f;
static private final String defaultJSON = "[\n" +
" {\n" +
" \"effect\":[],\n" +

View File

@@ -61,7 +61,7 @@
"font": "default",
"width": 64,
"height": 16,
"x": 419,
"x": 425,
"y": 56
},
{
@@ -70,8 +70,8 @@
"font": "default",
"width": 64,
"height": 16,
"x": 419,
"y": 73
"x": 425,
"y": 70
},
{
"type": "Label",
@@ -79,8 +79,8 @@
"font": "default",
"width": 64,
"height": 16,
"x": 419,
"y": 90
"x": 425,
"y": 84
},
{
"type": "TextButton",

View File

@@ -60,7 +60,7 @@
"name": "lifePoints",
"width": 48,
"height": 3,
"x": 209,
"x": 215,
"y": 62
},
{
@@ -69,7 +69,7 @@
"font": "default",
"width": 48,
"height": 3,
"x": 209,
"x": 215,
"y": 76
},
{
@@ -78,7 +78,7 @@
"font": "default",
"width": 48,
"height": 3,
"x": 209,
"x": 215,
"y": 90
},
{