update PlayerStatisticScene

-add CardActivationAchievements
-fix flipped TextureRegion
This commit is contained in:
Anthony Calosa
2023-05-02 06:26:49 +08:00
parent a93b139323
commit f3ca16bf43

View File

@@ -27,6 +27,7 @@ import forge.card.ColorSet;
import forge.game.GameType; import forge.game.GameType;
import forge.localinstance.achievements.Achievement; import forge.localinstance.achievements.Achievement;
import forge.localinstance.achievements.AchievementCollection; import forge.localinstance.achievements.AchievementCollection;
import forge.localinstance.achievements.CardActivationAchievements;
import forge.localinstance.achievements.PlaneswalkerAchievements; import forge.localinstance.achievements.PlaneswalkerAchievements;
import forge.model.FModel; import forge.model.FModel;
import forge.player.GamePlayerUtil; import forge.player.GamePlayerUtil;
@@ -48,13 +49,14 @@ public class PlayerStatisticScene extends UIScene {
ScrollPane scroller; ScrollPane scroller;
Table root; Table root;
boolean toggle = false; boolean toggle = false;
AchievementCollection planeswalkers, achievements; AchievementCollection planeswalkers, achievements, cardActivation;
Scene lastGameScene; Scene lastGameScene;
private PlayerStatisticScene() { private PlayerStatisticScene() {
super(Forge.isLandscapeMode() ? "ui/statistic.json" : "ui/statistic_portrait.json"); super(Forge.isLandscapeMode() ? "ui/statistic.json" : "ui/statistic_portrait.json");
planeswalkers = PlaneswalkerAchievements.instance; planeswalkers = PlaneswalkerAchievements.instance;
achievements = FModel.getAchievements(GameType.Constructed); achievements = FModel.getAchievements(GameType.Constructed);
cardActivation = CardActivationAchievements.instance;
scrollContainer = new Table(Controls.getSkin()); scrollContainer = new Table(Controls.getSkin());
scrollContainer.row(); scrollContainer.row();
achievementContainer = new Table(Controls.getSkin()); achievementContainer = new Table(Controls.getSkin());
@@ -122,6 +124,10 @@ public class PlayerStatisticScene extends UIScene {
for (Achievement a : planeswalkers) for (Achievement a : planeswalkers)
((FBufferedImage) a.getImage()).dispose(); ((FBufferedImage) a.getImage()).dispose();
} }
if (cardActivation != null) {
for (Achievement a : cardActivation)
((FBufferedImage) a.getImage()).dispose();
}
} }
private void toggleScroller() { private void toggleScroller() {
@@ -165,6 +171,7 @@ public class PlayerStatisticScene extends UIScene {
public void enter() { public void enter() {
super.enter(); super.enter();
achievementContainer.clear(); achievementContainer.clear();
updateAchievements(cardActivation, true);
updateAchievements(planeswalkers, true); updateAchievements(planeswalkers, true);
updateAchievements(achievements, false); updateAchievements(achievements, false);
scrollContainer.clear(); scrollContainer.clear();
@@ -218,9 +225,9 @@ public class PlayerStatisticScene extends UIScene {
performTouch(scrollPaneOfActor(scrollContainer)); //can use mouse wheel if available to scroll performTouch(scrollPaneOfActor(scrollContainer)); //can use mouse wheel if available to scroll
} }
void updateAchievements(AchievementCollection achievementCollection, boolean isPW) { void updateAchievements(AchievementCollection achievementCollection, boolean isActive) {
for (Achievement a : achievementCollection) { for (Achievement a : achievementCollection) {
if (isPW) { if (isActive) {
if (!a.isActive()) //skip inactive if (!a.isActive()) //skip inactive
continue; continue;
} else { } else {
@@ -229,7 +236,7 @@ public class PlayerStatisticScene extends UIScene {
continue; continue;
} }
TextureRegion textureRegion = new TextureRegion(((FBufferedImage) a.getImage()).getTexture()); TextureRegion textureRegion = new TextureRegion(((FBufferedImage) a.getImage()).getTexture());
textureRegion.flip(true, true); textureRegion.flip(false, true);
Image image = new Image(textureRegion); Image image = new Image(textureRegion);
float alpha = a.isActive() ? 1f : 0.25f; float alpha = a.isActive() ? 1f : 0.25f;
image.getColor().a = alpha; image.getColor().a = alpha;