Merge branch 'master' into 'master'

[Adventure] Add Gold Indicator

See merge request core-developers/forge!6384
This commit is contained in:
Anthony Calosa
2022-03-11 04:50:42 +00:00
3 changed files with 34 additions and 23 deletions

View File

@@ -14,7 +14,6 @@ import forge.deck.Deck;
import forge.deck.DeckFormat; import forge.deck.DeckFormat;
import forge.deck.DeckSection; import forge.deck.DeckSection;
import forge.deck.FDeckViewer; import forge.deck.FDeckViewer;
import forge.gui.FThreads;
import forge.item.InventoryItem; import forge.item.InventoryItem;
import forge.item.PaperCard; import forge.item.PaperCard;
import forge.itemmanager.CardManager; import forge.itemmanager.CardManager;
@@ -30,7 +29,6 @@ import forge.menu.FMenuItem;
import forge.menu.FPopupMenu; import forge.menu.FPopupMenu;
import forge.model.FModel; import forge.model.FModel;
import forge.screens.FScreen; import forge.screens.FScreen;
import forge.screens.LoadingOverlay;
import forge.screens.TabPageScreen; import forge.screens.TabPageScreen;
import forge.toolbox.FContainer; import forge.toolbox.FContainer;
import forge.toolbox.FEvent; import forge.toolbox.FEvent;
@@ -49,6 +47,7 @@ import java.util.Map;
public static FSkinImage MAIN_DECK_ICON = Forge.hdbuttons ? FSkinImage.HDLIBRARY :FSkinImage.DECKLIST; public static FSkinImage MAIN_DECK_ICON = Forge.hdbuttons ? FSkinImage.HDLIBRARY :FSkinImage.DECKLIST;
public static FSkinImage SIDEBOARD_ICON = Forge.hdbuttons ? FSkinImage.HDSIDEBOARD : FSkinImage.FLASHBACK; public static FSkinImage SIDEBOARD_ICON = Forge.hdbuttons ? FSkinImage.HDSIDEBOARD : FSkinImage.FLASHBACK;
private static final float HEADER_HEIGHT = Math.round(Utils.AVG_FINGER_HEIGHT * 0.8f); private static final float HEADER_HEIGHT = Math.round(Utils.AVG_FINGER_HEIGHT * 0.8f);
private static final FLabel lblGold = new FLabel.Builder().text("0").icon(FSkinImage.QUEST_COINSTACK).font(FSkinFont.get(16)).insets(new Vector2(Utils.scale(5), 0)).build();
private static ItemPool<InventoryItem> decksUsingMyCards=new ItemPool<>(InventoryItem.class); private static ItemPool<InventoryItem> decksUsingMyCards=new ItemPool<>(InventoryItem.class);
public static void leave() { public static void leave() {
@@ -76,6 +75,7 @@ import java.util.Map;
} }
} }
} }
lblGold.setText(String.valueOf(AdventurePlayer.current().getGold()));
} }
public void refresh() { public void refresh() {
for(TabPage<AdventureDeckEditor> page:tabPages) for(TabPage<AdventureDeckEditor> page:tabPages)
@@ -196,13 +196,11 @@ import java.util.Map;
return null; //never use backdrop for editor return null; //never use backdrop for editor
} }
protected class DeckHeader extends FContainer { protected class DeckHeader extends FContainer {
private DeckHeader() { private DeckHeader() {
setHeight(HEADER_HEIGHT); setHeight(HEADER_HEIGHT);
} }
boolean init;
@Override @Override
public void drawBackground(Graphics g) { public void drawBackground(Graphics g) {
@@ -224,6 +222,11 @@ import java.util.Map;
x += height; x += height;
//noinspection SuspiciousNameCombination //noinspection SuspiciousNameCombination
btnMoreOptions.setBounds(x, 0, height, height); btnMoreOptions.setBounds(x, 0, height, height);
if (!init) {
add(lblGold);
init = true;
}
lblGold.setBounds(0, 0, width, height);
} }
} }
@@ -587,24 +590,14 @@ import java.util.Map;
@Override @Override
public void refresh() { public void refresh() {
FThreads.invokeInEdtLater(new Runnable() { final ItemPool<PaperCard> adventurePool = new ItemPool<>(PaperCard.class);
@Override
public void run() {
LoadingOverlay.show(Forge.getLocalizer().getInstance().getMessage("lblLoading"), new Runnable() {
@Override
public void run() {
final ItemPool<PaperCard> adventurePool = new ItemPool<>(PaperCard.class);
adventurePool.addAll(AdventurePlayer.current().getCards()); adventurePool.addAll(AdventurePlayer.current().getCards());
// remove bottom cards that are in the deck from the card pool // remove bottom cards that are in the deck from the card pool
adventurePool.removeAll(AdventurePlayer.current().getSelectedDeck().getMain()); adventurePool.removeAll(AdventurePlayer.current().getSelectedDeck().getMain());
// remove sideboard cards from the catalog // remove sideboard cards from the catalog
adventurePool.removeAll(AdventurePlayer.current().getSelectedDeck().getOrCreate(DeckSection.Sideboard)); adventurePool.removeAll(AdventurePlayer.current().getSelectedDeck().getOrCreate(DeckSection.Sideboard));
cardManager.setPool(adventurePool); cardManager.setPool(adventurePool);
}
});
}
});
} }
@Override @Override
@@ -662,7 +655,8 @@ import java.util.Map;
if (!cardManager.isInfinite()) { if (!cardManager.isInfinite()) {
removeCard(card, result); removeCard(card, result);
} }
AdventurePlayer.current().sellCard(card,result); AdventurePlayer.current().sellCard(card,result);
lblGold.setText(String.valueOf(AdventurePlayer.current().getGold()));
} }
}); });
} }

View File

@@ -4,6 +4,7 @@ import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input; import com.badlogic.gdx.Input;
import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
@@ -13,6 +14,7 @@ import forge.adventure.player.AdventurePlayer;
import forge.adventure.pointofintrest.PointOfInterestChanges; import forge.adventure.pointofintrest.PointOfInterestChanges;
import forge.adventure.stage.GameHUD; import forge.adventure.stage.GameHUD;
import forge.adventure.util.CardUtil; import forge.adventure.util.CardUtil;
import forge.adventure.util.Controls;
import forge.adventure.util.Current; import forge.adventure.util.Current;
import forge.adventure.util.Reward; import forge.adventure.util.Reward;
import forge.adventure.util.RewardActor; import forge.adventure.util.RewardActor;
@@ -24,6 +26,7 @@ import forge.assets.ImageCache;
*/ */
public class RewardScene extends UIScene { public class RewardScene extends UIScene {
private TextButton doneButton; private TextButton doneButton;
private Label goldLabel;
boolean init; boolean init;
public enum Type { public enum Type {
Shop, Shop,
@@ -99,6 +102,8 @@ public class RewardScene extends UIScene {
} }
}); });
doneButton = ui.findActor("done"); doneButton = ui.findActor("done");
goldLabel = new Label("0", Controls.GetSkin().get("white", Label.LabelStyle.class));
goldLabel.setBounds(0, 0, 100, 16);
this.init = true; this.init = true;
} }
} }
@@ -147,6 +152,14 @@ public class RewardScene extends UIScene {
switch (type) { switch (type) {
case Shop: case Shop:
doneButton.setText(Forge.getLocalizer().getMessage("lblLeave")); doneButton.setText(Forge.getLocalizer().getMessage("lblLeave"));
goldLabel.setText("Gold: " + String.valueOf(AdventurePlayer.current().getGold()));
float w = 480 - (goldLabel.getPrefWidth() + 10);
goldLabel.setPosition(w, 250);
if (!Forge.isLandscapeMode()) {
goldLabel.setFontScaleX(2);
w = 480/2 - goldLabel.getPrefWidth();
goldLabel.setPosition(w, 250);
}
break; break;
case Loot: case Loot:
doneButton.setText(Forge.getLocalizer().getMessage("lblDone")); doneButton.setText(Forge.getLocalizer().getMessage("lblDone"));
@@ -215,6 +228,8 @@ public class RewardScene extends UIScene {
} }
i++; i++;
} }
if (type == Type.Shop)
stage.addActor(goldLabel);
updateBuyButtons(); updateBuyButtons();
} }
@@ -260,6 +275,7 @@ public class RewardScene extends UIScene {
reward.flip(); reward.flip();
remove(); remove();
updateBuyButtons(); updateBuyButtons();
goldLabel.setText("Gold: " + String.valueOf(AdventurePlayer.current().getGold()));
} }
} }
}); });

View File

@@ -1,6 +1,7 @@
package forge.screens; package forge.screens;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Align;