From ebac9d2e972941cd1b3efdf1964e529d44a1b0c6 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 11 Jul 2020 19:52:12 -0400 Subject: [PATCH] v0.8.2: partially implemented new title scene UI --- core/src/main/assets/interfaces/icons.png | Bin 10467 -> 10474 bytes .../assets/messages/scenes/scenes.properties | 8 + .../scenes/TitleScene.java | 149 ++++++++++++------ .../shatteredpixeldungeon/ui/Icons.java | 6 +- 4 files changed, 108 insertions(+), 55 deletions(-) diff --git a/core/src/main/assets/interfaces/icons.png b/core/src/main/assets/interfaces/icons.png index 3e1b1d9959edd637db986473b787533ea3b6f2e3..23990dd6c6ea985f35cd2c32ad95d8b6cce38c5d 100644 GIT binary patch literal 10474 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 g|KrC70+osQze

75$<$n*aa+07*qoM6N<$f+k=SumAu6 literal 10467 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 Z{C^GIzHq|Wb=?2}002ovPDHLkV1nPRB0T^A diff --git a/core/src/main/assets/messages/scenes/scenes.properties b/core/src/main/assets/messages/scenes/scenes.properties index 525f48fd1..6cc589f9a 100644 --- a/core/src/main/assets/messages/scenes/scenes.properties +++ b/core/src/main/assets/messages/scenes/scenes.properties @@ -61,9 +61,17 @@ scenes.titlescene.play=Play scenes.titlescene.enter=Enter the Dungeon scenes.titlescene.rankings=Rankings scenes.titlescene.badges=Badges +scenes.titlescene.news=News scenes.titlescene.changes=Changes +scenes.titlescene.update=Update +scenes.titlescene.settings=Settings scenes.titlescene.about=About scenes.titlescene.support=Support the Game +scenes.titlescene$changesbutton.title=An Update is Available! +scenes.titlescene$changesbutton.versioned_title=Update Available: %s +scenes.titlescene$changesbutton.desc=Shattered Pixel Dungeon is regularly updated with overhauls to existing game content, or entirely new content!\n\nGame balance is also frequently improved in game updates, so that specific items/heroes/enemies aren't too strong or too weak.\n\nUpdates also include fixes for bugs and other various stability improvements. +scenes.titlescene$changesbutton.update=Get The Update +scenes.titlescene$changesbutton.changes=Current Changes Screen scenes.titlescene.patreon_body=Shattered Pixel Dungeon is a completely free game, which means that I depend on support from generous players in order to keep making it.\n\nIf you're interested in supporting me, the best way to do so is through Patreon. Patreon gives me a consistent income source, and allows me to give something back to those who support me!\n\nPatrons get exclusive blog posts every week which let them know about what I'm working on before anyone else!\n\nYou can take a look at my Patreon page for the most up to date information about benefits, Thank you for your consideration!\n\n(Patreon rewards are only available in English) scenes.titlescene.patreon_button=Patreon Page diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java index 477c7ede2..4565af0a5 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java @@ -28,6 +28,8 @@ import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.effects.BannerSprites; import com.shatteredpixel.shatteredpixeldungeon.effects.Fireball; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.services.updates.AvailableUpdateData; +import com.shatteredpixel.shatteredpixeldungeon.services.updates.Updates; import com.shatteredpixel.shatteredpixeldungeon.ui.Archs; import com.shatteredpixel.shatteredpixeldungeon.ui.ExitButton; import com.shatteredpixel.shatteredpixeldungeon.ui.Icons; @@ -35,14 +37,18 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.LanguageButton; import com.shatteredpixel.shatteredpixeldungeon.ui.PrefsButton; import com.shatteredpixel.shatteredpixeldungeon.ui.StyledButton; import com.shatteredpixel.shatteredpixeldungeon.ui.UpdateNotification; +import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions; +import com.shatteredpixel.shatteredpixeldungeon.windows.WndSettings; import com.shatteredpixel.shatteredpixeldungeon.windows.WndStartGame; import com.watabou.glwrap.Blending; import com.watabou.noosa.BitmapText; import com.watabou.noosa.Camera; import com.watabou.noosa.Game; import com.watabou.noosa.Image; +import com.watabou.noosa.NinePatch; import com.watabou.noosa.audio.Music; +import com.watabou.utils.ColorMath; import com.watabou.utils.DeviceCompat; public class TitleScene extends PixelScene { @@ -66,14 +72,10 @@ public class TitleScene extends PixelScene { Image title = BannerSprites.get( BannerSprites.Type.PIXEL_DUNGEON ); add( title ); - float topRegion = Math.max(title.height, h*0.45f); + float topRegion = Math.max(title.height - 6, h*0.45f); title.x = (w - title.width()) / 2f; - if (landscape()) { - title.y = (topRegion - title.height()) / 2f; - } else { - title.y = 20 + (topRegion - title.height() - 20) / 2f; - } + title.y = 2 + (topRegion - title.height()) / 2f; align(title); @@ -98,8 +100,10 @@ public class TitleScene extends PixelScene { signs.x = title.x + (title.width() - signs.width())/2f; signs.y = title.y; add( signs ); - - TitleButton btnPlay = new TitleButton(Messages.get(this, "enter")){ + + final Chrome.Type GREY_TR = Chrome.Type.GREY_BUTTON_TR; + + StyledButton btnPlay = new StyledButton(GREY_TR, Messages.get(this, "enter")){ @Override protected void onClick() { if (GamesInProgress.checkAll().size() == 0){ @@ -118,7 +122,6 @@ public class TitleScene extends PixelScene { GamesInProgress.selectedClass = null; GamesInProgress.curSlot = 1; ShatteredPixelDungeon.switchScene(HeroSelectScene.class); - //TitleScene.this.add( new WndStartGame(1) ); return true; } return super.onLongClick(); @@ -126,8 +129,9 @@ public class TitleScene extends PixelScene { }; btnPlay.icon(Icons.get(Icons.ENTER)); add(btnPlay); - - TitleButton btnSupport = new TitleButton(Messages.get(this, "support")){ + + //TODO turn this into its own class? + StyledButton btnSupport = new StyledButton(GREY_TR, Messages.get(this, "support")){ @Override protected void onClick() { WndOptions wnd = new WndOptions(Messages.get(TitleScene.class, "support"), @@ -147,8 +151,8 @@ public class TitleScene extends PixelScene { }; btnSupport.icon(Icons.get(Icons.GOLD)); add(btnSupport); - - TitleButton btnRankings = new TitleButton(Messages.get(this, "rankings")){ + + StyledButton btnRankings = new StyledButton(GREY_TR,Messages.get(this, "rankings")){ @Override protected void onClick() { ShatteredPixelDungeon.switchNoFade( RankingsScene.class ); @@ -156,8 +160,8 @@ public class TitleScene extends PixelScene { }; btnRankings.icon(Icons.get(Icons.RANKINGS)); add(btnRankings); - - TitleButton btnBadges = new TitleButton(Messages.get(this, "badges")){ + + StyledButton btnBadges = new StyledButton(GREY_TR, Messages.get(this, "badges")){ @Override protected void onClick() { ShatteredPixelDungeon.switchNoFade( BadgesScene.class ); @@ -165,18 +169,26 @@ public class TitleScene extends PixelScene { }; btnBadges.icon(Icons.get(Icons.BADGES)); add(btnBadges); - - TitleButton btnChanges = new TitleButton(Messages.get(this, "changes")){ - @Override - protected void onClick() { - ChangesScene.changesSelected = 0; - ShatteredPixelDungeon.switchNoFade( ChangesScene.class ); - } - }; + + ChangesButton btnChanges = new ChangesButton(GREY_TR, Messages.get(this, "changes")); btnChanges.icon(Icons.get(Icons.CHANGES)); add(btnChanges); - - TitleButton btnAbout = new TitleButton(Messages.get(this, "about")){ + + //TODO news feed functionality here + StyledButton btnNews = new StyledButton(GREY_TR, Messages.get(this, "news")); + btnNews.icon(Icons.get(Icons.CHANGES)); + add(btnNews); + + StyledButton btnSettings = new StyledButton(GREY_TR, Messages.get(this, "settings")){ + @Override + protected void onClick() { + ShatteredPixelDungeon.scene().add(new WndSettings()); + } + }; + btnSettings.icon(Icons.get(Icons.PREFS)); + add(btnSettings); + + StyledButton btnAbout = new StyledButton(GREY_TR, Messages.get(this, "about")){ @Override protected void onClick() { ShatteredPixelDungeon.switchScene( AboutScene.class ); @@ -185,26 +197,30 @@ public class TitleScene extends PixelScene { btnAbout.icon(Icons.get(Icons.SHPX)); add(btnAbout); - final int BTN_HEIGHT = 21; + final int BTN_HEIGHT = 20; int GAP = (int)(h - topRegion - (landscape() ? 3 : 4)*BTN_HEIGHT)/3; - GAP /= landscape() ? 3 : 4; + GAP /= landscape() ? 3 : 5; GAP = Math.max(GAP, 2); if (landscape()) { btnPlay.setRect(title.x-50, topRegion+GAP, ((title.width()+100)/2)-1, BTN_HEIGHT); align(btnPlay); btnSupport.setRect(btnPlay.right()+2, btnPlay.top(), btnPlay.width(), BTN_HEIGHT); - btnRankings.setRect(btnPlay.left() + (btnPlay.width()*.33f)+1, btnPlay.bottom()+ GAP, (btnPlay.width()*.67f)-1, BTN_HEIGHT); - btnBadges.setRect(btnRankings.right()+2, btnRankings.top(), btnRankings.width(), BTN_HEIGHT); - btnChanges.setRect(btnRankings.left(), btnRankings.bottom() + GAP, btnRankings.width(), BTN_HEIGHT); - btnAbout.setRect(btnChanges.right()+2, btnChanges.top(), btnRankings.width(), BTN_HEIGHT); + btnRankings.setRect(btnPlay.left(), btnPlay.bottom()+ GAP, (btnPlay.width()*.67f)-1, BTN_HEIGHT); + btnBadges.setRect(btnRankings.left(), btnRankings.bottom()+GAP, btnRankings.width(), BTN_HEIGHT); + btnNews.setRect(btnRankings.right()+2, btnRankings.top(), btnRankings.width(), BTN_HEIGHT); + btnChanges.setRect(btnNews.left(), btnNews.bottom() + GAP, btnRankings.width(), BTN_HEIGHT); + btnSettings.setRect(btnNews.right()+2, btnNews.top(), btnRankings.width(), BTN_HEIGHT); + btnAbout.setRect(btnSettings.left(), btnSettings.bottom() + GAP, btnRankings.width(), BTN_HEIGHT); } else { btnPlay.setRect(title.x, topRegion+GAP, title.width(), BTN_HEIGHT); align(btnPlay); btnRankings.setRect(btnPlay.left(), btnPlay.bottom()+ GAP, (btnPlay.width()/2)-1, BTN_HEIGHT); btnBadges.setRect(btnRankings.right()+2, btnRankings.top(), btnRankings.width(), BTN_HEIGHT); - btnChanges.setRect(btnRankings.left(), btnRankings.bottom()+ GAP, btnRankings.width(), BTN_HEIGHT); - btnAbout.setRect(btnChanges.right()+2, btnChanges.top(), btnChanges.width(), BTN_HEIGHT); + btnNews.setRect(btnRankings.left(), btnRankings.bottom()+ GAP, btnRankings.width(), BTN_HEIGHT); + btnChanges.setRect(btnNews.right()+2, btnNews.top(), btnNews.width(), BTN_HEIGHT); + btnSettings.setRect(btnNews.left(), btnNews.bottom()+GAP, btnRankings.width(), BTN_HEIGHT); + btnAbout.setRect(btnSettings.right()+2, btnSettings.top(), btnSettings.width(), BTN_HEIGHT); btnSupport.setRect(btnPlay.left(), btnAbout.bottom()+ GAP, btnPlay.width(), BTN_HEIGHT); } @@ -216,12 +232,6 @@ public class TitleScene extends PixelScene { add( version ); int pos = 2; - - PrefsButton btnPrefs = new PrefsButton(); - btnPrefs.setRect( pos, 0, 16, 20 ); - add( btnPrefs ); - - pos += btnPrefs.width(); LanguageButton btnLang = new LanguageButton(); btnLang.setRect(pos, 0, 16, 20); @@ -231,10 +241,6 @@ public class TitleScene extends PixelScene { btnExit.setPos( w - btnExit.width(), 0 ); add( btnExit ); - UpdateNotification updInfo = new UpdateNotification(); - updInfo.setRect(4, h-BTN_HEIGHT, updInfo.reqWidth() + 6, BTN_HEIGHT-4); - add(updInfo); - fadeIn(); } @@ -243,16 +249,55 @@ public class TitleScene extends PixelScene { fb.setPos( x, y ); add( fb ); } - - private static class TitleButton extends StyledButton { - - public TitleButton( String label ){ - this(label, 9); + + private static class ChangesButton extends StyledButton { + + public ChangesButton( Chrome.Type type, String label ){ + super(type, label); + Updates.checkForUpdate(); } - - public TitleButton( String label, int size ){ - super(Chrome.Type.GREY_BUTTON_TR, label, size); + + boolean updateShown = false; + + @Override + public void update() { + super.update(); + + if (Updates.updateAvailable()){ + if (!updateShown){ + updateShown = true; + text(Messages.get(TitleScene.class, "update")); + } + textColor(ColorMath.interpolate( 0xFFFFFF, Window.SHPX_COLOR, 0.5f + (float)Math.sin(Game.timeTotal*4)/2f)); + } } - + + @Override + protected void onClick() { + if (Updates.updateAvailable()){ + AvailableUpdateData update = Updates.updateData(); + + ShatteredPixelDungeon.scene().addToFront( new WndOptions( + update.versionName == null ? Messages.get(this,"title") : Messages.get(this,"versioned_title", update.versionName), + update.desc == null ? Messages.get(this,"desc") : update.desc, + Messages.get(this,"update"), + Messages.get(this,"changes") + ) { + @Override + protected void onSelect(int index) { + if (index == 0) { + Updates.launchUpdate(Updates.updateData()); + } else if (index == 1){ + ChangesScene.changesSelected = 0; + ShatteredPixelDungeon.switchNoFade( ChangesScene.class ); + } + } + }); + } else { + ChangesScene.changesSelected = 0; + ShatteredPixelDungeon.switchNoFade( ChangesScene.class ); + } + } + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java index 81fcc0c60..b03e4aeef 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java @@ -183,13 +183,13 @@ public enum Icons { break; case ENTER: - icon.frame( icon.texture.uvRect( 0, 64, 17, 81 ) ); + icon.frame( icon.texture.uvRect( 0, 64, 16, 80 ) ); break; case RANKINGS: - icon.frame( icon.texture.uvRect( 17, 64, 34, 81 ) ); + icon.frame( icon.texture.uvRect( 17, 64, 34, 80 ) ); break; case BADGES: - icon.frame( icon.texture.uvRect( 34, 64, 51, 81 ) ); + icon.frame( icon.texture.uvRect( 34, 64, 50, 80 ) ); break; case CHANGES: icon.frame( icon.texture.uvRect( 51, 64, 68, 79 ) );