From a50414f872a33cf842656eefaf4bb297415e7ebc Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 28 Oct 2024 11:46:46 -0400 Subject: [PATCH] v3.0.0: expanded the changes scene for future v3.0 changes additions --- .../scenes/ChangesScene.java | 86 +++++++++++-------- .../ui/changelist/v2_X_Changes.java | 29 ------- .../ui/changelist/v3_X_Changes.java | 79 +++++++++++++++++ 3 files changed, 131 insertions(+), 63 deletions(-) create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v3_X_Changes.java diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java index 0e74530a5..16e00c6eb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java @@ -47,6 +47,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v0_8_X_Changes; import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v0_9_X_Changes; import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v1_X_Changes; import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v2_X_Changes; +import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v3_X_Changes; import com.shatteredpixel.shatteredpixeldungeon.windows.IconTitle; import com.watabou.noosa.Camera; import com.watabou.noosa.Image; @@ -146,24 +147,27 @@ public class ChangesScene extends PixelScene { switch (changesSelected){ case 0: default: - v2_X_Changes.addAllChanges(changeInfos); + v3_X_Changes.addAllChanges(changeInfos); break; case 1: - v1_X_Changes.addAllChanges(changeInfos); + v2_X_Changes.addAllChanges(changeInfos); break; case 2: - v0_9_X_Changes.addAllChanges(changeInfos); + v1_X_Changes.addAllChanges(changeInfos); break; case 3: - v0_8_X_Changes.addAllChanges(changeInfos); + v0_9_X_Changes.addAllChanges(changeInfos); break; case 4: - v0_7_X_Changes.addAllChanges(changeInfos); + v0_8_X_Changes.addAllChanges(changeInfos); break; case 5: - v0_6_X_Changes.addAllChanges(changeInfos); + v0_7_X_Changes.addAllChanges(changeInfos); break; case 6: + v0_6_X_Changes.addAllChanges(changeInfos); + break; + case 7: v0_5_X_Changes.addAllChanges(changeInfos); v0_4_X_Changes.addAllChanges(changeInfos); v0_3_X_Changes.addAllChanges(changeInfos); @@ -224,7 +228,7 @@ public class ChangesScene extends PixelScene { panel.innerHeight() + 2); list.scrollTo(0, 0); - StyledButton btn2_X = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "2.X"){ + StyledButton btn3_X = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "3.X", 8){ @Override protected void onClick() { super.onClick(); @@ -234,11 +238,11 @@ public class ChangesScene extends PixelScene { } } }; - if (changesSelected != 0) btn2_X.textColor( 0xBBBBBB ); - btn2_X.setRect(list.left()-4f, list.bottom(), 21, changesSelected == 0 ? 19 : 15); - addToBack(btn2_X); + if (changesSelected != 0) btn3_X.textColor( 0xBBBBBB ); + btn3_X.setRect(list.left()-4f, list.bottom(), 19, changesSelected == 0 ? 19 : 15); + addToBack(btn3_X); - StyledButton btn1_X = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "1.X"){ + StyledButton btn2_X = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "2.X", 8){ @Override protected void onClick() { super.onClick(); @@ -248,11 +252,11 @@ public class ChangesScene extends PixelScene { } } }; - if (changesSelected != 1) btn1_X.textColor( 0xBBBBBB ); - btn1_X.setRect(btn2_X.right()-2, list.bottom(), 21, changesSelected == 1 ? 19 : 15); - addToBack(btn1_X); + if (changesSelected != 1) btn2_X.textColor( 0xBBBBBB ); + btn2_X.setRect(btn3_X.right()-2, list.bottom(), 19, changesSelected == 1 ? 19 : 15); + addToBack(btn2_X); - StyledButton btn0_9 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.9"){ + StyledButton btn1_X = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "1.X", 8){ @Override protected void onClick() { super.onClick(); @@ -262,11 +266,11 @@ public class ChangesScene extends PixelScene { } } }; - if (changesSelected != 2) btn0_9.textColor( 0xBBBBBB ); - btn0_9.setRect(btn1_X.right()-2, list.bottom(), 21, changesSelected == 2 ? 19 : 15); - addToBack(btn0_9); + if (changesSelected != 2) btn1_X.textColor( 0xBBBBBB ); + btn1_X.setRect(btn2_X.right()-2, list.bottom(), 19, changesSelected == 2 ? 19 : 15); + addToBack(btn1_X); - StyledButton btn0_8 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.8"){ + StyledButton btn0_9 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.9", 8){ @Override protected void onClick() { super.onClick(); @@ -276,11 +280,11 @@ public class ChangesScene extends PixelScene { } } }; - if (changesSelected != 3) btn0_8.textColor( 0xBBBBBB ); - btn0_8.setRect(btn0_9.right()-2, list.bottom(), 21, changesSelected == 3 ? 19 : 15); - addToBack(btn0_8); - - StyledButton btn0_7 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.7"){ + if (changesSelected != 3) btn0_9.textColor( 0xBBBBBB ); + btn0_9.setRect(btn1_X.right()-2, list.bottom(), 19, changesSelected == 3 ? 19 : 15); + addToBack(btn0_9); + + StyledButton btn0_8 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.8", 8){ @Override protected void onClick() { super.onClick(); @@ -290,11 +294,11 @@ public class ChangesScene extends PixelScene { } } }; - if (changesSelected != 4) btn0_7.textColor( 0xBBBBBB ); - btn0_7.setRect(btn0_8.right()-2, btn0_8.top(), 21, changesSelected == 4 ? 19 : 15); - addToBack(btn0_7); + if (changesSelected != 4) btn0_8.textColor( 0xBBBBBB ); + btn0_8.setRect(btn0_9.right()-2, list.bottom(), 19, changesSelected == 4 ? 19 : 15); + addToBack(btn0_8); - StyledButton btn0_6 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.6"){ + StyledButton btn0_7 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.7", 8){ @Override protected void onClick() { super.onClick(); @@ -304,11 +308,11 @@ public class ChangesScene extends PixelScene { } } }; - if (changesSelected != 5) btn0_6.textColor( 0xBBBBBB ); - btn0_6.setRect(btn0_7.right()-2, btn0_8.top(), 21, changesSelected == 5 ? 19 : 15); - addToBack(btn0_6); + if (changesSelected != 5) btn0_7.textColor( 0xBBBBBB ); + btn0_7.setRect(btn0_8.right()-2, btn0_8.top(), 19, changesSelected == 5 ? 19 : 15); + addToBack(btn0_7); - StyledButton btnOld = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.5-1"){ + StyledButton btn0_6 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.6", 8){ @Override protected void onClick() { super.onClick(); @@ -318,8 +322,22 @@ public class ChangesScene extends PixelScene { } } }; - if (changesSelected != 6) btnOld.textColor( 0xBBBBBB ); - btnOld.setRect(btn0_6.right()-2, btn0_8.top(), 27, changesSelected == 6 ? 19 : 15); + if (changesSelected != 6) btn0_6.textColor( 0xBBBBBB ); + btn0_6.setRect(btn0_7.right()-2, btn0_8.top(), 19, changesSelected == 6 ? 19 : 15); + addToBack(btn0_6); + + StyledButton btnOld = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.5-", 8){ + @Override + protected void onClick() { + super.onClick(); + if (changesSelected != 7) { + changesSelected = 7; + ShatteredPixelDungeon.seamlessResetScene(); + } + } + }; + if (changesSelected != 7) btnOld.textColor( 0xBBBBBB ); + btnOld.setRect(btn0_6.right()-2, btn0_8.top(), 22, changesSelected == 7 ? 19 : 15); addToBack(btnOld); Archs archs = new Archs(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v2_X_Changes.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v2_X_Changes.java index 79332c7e0..e14af1e7b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v2_X_Changes.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v2_X_Changes.java @@ -46,7 +46,6 @@ import java.util.ArrayList; public class v2_X_Changes { public static void addAllChanges( ArrayList changeInfos ){ - add_Coming_Soon(changeInfos); add_v2_5_Changes(changeInfos); add_v2_4_Changes(changeInfos); add_v2_3_Changes(changeInfos); @@ -55,34 +54,6 @@ public class v2_X_Changes { add_v2_0_Changes(changeInfos); } - public static void add_Coming_Soon( ArrayList changeInfos ) { - - ChangeInfo changes = new ChangeInfo("Coming Soon", true, ""); - changes.hardlight(0xCCCCCC); - changeInfos.add(changes); - - changes.addButton( new ChangeButton(Icons.get(Icons.SHPX), "Overview", - "The next major update to Shattered will be v3.0.0, which will add the game's 6th hero: The Cleric!\n" + - "\n" + - "v2.0.0, which added the duelist, took about 5 months. While obviously I would like the update to release faster than that, I can't make any promises. I do expect to make some posts as development progresses though, so you should hear something from me about progress and design on the Cleric before the end of the year, ideally before December.\n" + - "\n" + - "Please keep in mind that while I always try to keep to the ETAs I provide, they are just estimates. If you don't hear from me by the ETA, it means I'm still busy with the update!")); - - changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.MASTERY), "The Cleric!", - "The Cleric is going to be a divine spellcaster who focuses on defense and utility magic that they access through a unique item! I expect them to contrast best with the mage, who's arcane magic abilities enhance the power of wands. I expect to share more details about the cleric in blog posts when v3.0.0 gets closer to releasing. Like all other heroes, the Cleric will have 2 subclasses, 3 armor abilities, and 26 talents!")); - - changes.addButton( new ChangeButton(Icons.get(Icons.DISPLAY), "Visual Improvements", - "v3.0.0 is also likely to feature some visual improvements, potentially including some of what I've teased in the recent '10 years of Shattered Pixel Dungeon' blogpost, plus a few others I've not shared yet.\n" + - "\n" + - "Unfortunately the new art is still in the early stages, and so it's very hard for me to say where things will be when v3.0.0 releases, and what things in particular might be ready.")); - - changes.addButton( new ChangeButton(Icons.get(Icons.PREFS), "Misc. Changes", - "As always there will be some smaller changes in v3.0.0 as well, including bugfixes and minor balance/mechanics tweaks.\n" + - "\n" + - "Given that v3.0.0 will take a while to make, I'll likely give v2.5.0 some bigger patches that usual, including any needed balance or mechanics tweaks that I don't want to delay into v3.0.0.")); - - } - public static void add_v2_5_Changes( ArrayList changeInfos ) { ChangeInfo changes = new ChangeInfo("v2.5", true, ""); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v3_X_Changes.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v3_X_Changes.java new file mode 100644 index 000000000..5d6c41953 --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v3_X_Changes.java @@ -0,0 +1,79 @@ +/* + * Pixel Dungeon + * Copyright (C) 2012-2015 Oleg Dolya + * + * Shattered Pixel Dungeon + * Copyright (C) 2014-2024 Evan Debenham + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ + +package com.shatteredpixel.shatteredpixeldungeon.ui.changelist; + +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.scenes.ChangesScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; +import com.shatteredpixel.shatteredpixeldungeon.ui.Icons; +import com.shatteredpixel.shatteredpixeldungeon.ui.Window; + +import java.util.ArrayList; + +public class v3_X_Changes { + + public static void addAllChanges( ArrayList changeInfos ){ + add_Coming_Soon(changeInfos); + add_v3_0_Changes(changeInfos); + } + + public static void add_Coming_Soon( ArrayList changeInfos ) { + + ChangeInfo changes = new ChangeInfo("Coming Soon", true, ""); + changes.hardlight(0xCCCCCC); + changeInfos.add(changes); + + changes.addButton( new ChangeButton(Icons.get(Icons.SHPX), "Overview", + "...")); + + } + + public static void add_v3_0_Changes( ArrayList changeInfos ) { + + ChangeInfo changes = new ChangeInfo("v3.0", true, ""); + changes.hardlight(Window.TITLE_COLOR); + changeInfos.add(changes); + + changes = new ChangeInfo(Messages.get(ChangesScene.class, "new"), false, null); + changes.hardlight(Window.TITLE_COLOR); + changeInfos.add(changes); + + changes.addButton( new ChangeButton(Icons.get(Icons.SHPX), "Developer Commentary", + "_-_ Released ..., ...\n" + + "_-_ ... days after Shattered v2.5.0\n\n" + + "Dev commentary will be added here in the future.")); + + changes = new ChangeInfo(Messages.get(ChangesScene.class, "changes"), false, null); + changes.hardlight(CharSprite.WARNING); + changeInfos.add(changes); + + changes = new ChangeInfo(Messages.get(ChangesScene.class, "buffs"), false, null); + changes.hardlight(CharSprite.POSITIVE); + changeInfos.add(changes); + + changes = new ChangeInfo(Messages.get(ChangesScene.class, "nerfs"), false, null); + changes.hardlight(CharSprite.NEGATIVE); + changeInfos.add(changes); + + } + +}