diff --git a/build.gradle b/build.gradle
index f958cc992..c0b4da671 100644
--- a/build.gradle
+++ b/build.gradle
@@ -16,8 +16,8 @@ allprojects {
appName = 'Shattered Pixel Dungeon'
appPackageName = 'com.shatteredpixel.shatteredpixeldungeon'
- appVersionCode = 464
- appVersionName = '0.8.2d'
+ appVersionCode = 480
+ appVersionName = '0.9.0'
appJavaCompatibility = JavaVersion.VERSION_1_8
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ShatteredPixelDungeon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ShatteredPixelDungeon.java
index 62ee2b884..761d24c6b 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ShatteredPixelDungeon.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ShatteredPixelDungeon.java
@@ -37,7 +37,9 @@ public class ShatteredPixelDungeon extends Game {
public static final int v0_8_0b = 414;
public static final int v0_8_1a = 422;
- public static final int v0_8_2 = 447;
+ public static final int v0_8_2d = 463;
+
+ public static final int v0_9_0 = 479;
public ShatteredPixelDungeon( PlatformSupport platform ) {
super( sceneClass == null ? WelcomeScene.class : sceneClass, platform );
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 969de1280..4262c7515 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java
@@ -40,6 +40,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v0_5_X_Changes;
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v0_6_X_Changes;
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v0_7_X_Changes;
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v0_8_X_Changes;
+import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v0_9_X_Changes;
import com.watabou.noosa.Camera;
import com.watabou.noosa.NinePatch;
import com.watabou.noosa.audio.Music;
@@ -88,7 +89,7 @@ public class ChangesScene extends PixelScene {
switch (changesSelected){
case 0: default:
- //TODO
+ v0_9_X_Changes.addAllChanges(changeInfos);
break;
case 1:
v0_8_X_Changes.addAllChanges(changeInfos);
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java
index 4e2fba387..641114478 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java
@@ -41,7 +41,7 @@ import java.util.ArrayList;
public class WelcomeScene extends PixelScene {
- private static final int LATEST_UPDATE = ShatteredPixelDungeon.v0_8_2;
+ private static final int LATEST_UPDATE = ShatteredPixelDungeon.v0_9_0;
@Override
public void create() {
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v0_8_X_Changes.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v0_8_X_Changes.java
index cbbb0a7f4..65049563b 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v0_8_X_Changes.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v0_8_X_Changes.java
@@ -74,81 +74,6 @@ public class v0_8_X_Changes {
changes.hardlight(Window.TITLE_COLOR);
changeInfos.add(changes);
- changes = new ChangeInfo("v0.8.2c&d", false, null);
- changes.hardlight(Window.TITLE_COLOR);
- changeInfos.add(changes);
-
- changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
- "_Balance Changes:_\n" +
- "_-_ Bleed from gripping/flashing traps reduced, but they are also affected less by armor.\n" +
- "_-_ All effects which cancel invisibility and time freeze now fully resolve before they cancel invis/freeze.\n" +
- "_-_ Swarm intelligence no longer triggers from allies, and no longer affects magically slept enemies.\n" +
- "_-_ Evil eyes are no longer immune to terror\n\n" +
- "_Smaller Tweaks:_\n" +
- "_-_ The dried rose can no longer be sold if it contains a weapon or armor\n" +
- "_-_ Tweaked item visibility in furrowed grass\n" +
- "_-_ Adjusted sizing for inventory and message windows\n" +
- "_-_ Items now automatically get added to bags if room is made for them by dropping/using something else\n" +
- "_-_ Shortened game log text from well of awareness\n" +
- "_-_ Slightly tweaked the sprites of tipped vs. untipped darts\n" +
- "_-_ Torches now play a burning sound when ignited"));
-
- changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
- "Fixed (caused by v0.8.2):\n" +
- "_-_ Various rare crash bugs\n" +
- "_-_ Back button on hero select not appearing when it should\n" +
- "_-_ Enchanted Mage's Staff not showing its enchantment name\n\n" +
- "Fixed (existed prior to v0.8.2):\n" +
- "_-_ Sniper shot incorrectly capping at 2.5x damage instead of 3x\n" +
- "_-_ Golden Lotus having twice at much HP as intended\n" +
- "_-_ Various rare crash bugs\n" +
- "_-_ Lots of minor visual errors\n" +
- "_-_ Particle effects rarely not appearing\n" +
- "_-_ Visual errors with Goo's charge up particles\n" +
- "_-_ DM-201s rarely tossing grenades though walls\n" +
- "_-_ Various rare errors with blacksmith reforging\n" +
- "_-_ Various minor errors with cursed wands and chaos elementals\n" +
- "_-_ Terrored enemies not fleeing in some cases\n" +
- "_-_ Various minor errors with the Tengu fight\n" +
- "_-_ Acidic scorpios not always dropping potions of experience\n" +
- "_-_ Some immovable enemies not knocking items away"));
-
- changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
- "Fixed (caused by v0.8.2c):\n" +
- "_-_ Evil eyes unintentionally dealing 0 damage\n" +
- "_-_ Piranhas dodging less than intended\n" +
- "_-_ Rare crash/freeze bugs caused by changes to container functionality\n\n" +
- "Fixed (caused by v0.8.2):\n" +
- "_-_ Wand of fireblast opening doors out of its reach\n\n" +
- "Fixed (existed prior to v0.8.2):\n" +
- "_-_ Various rare crash bugs\n" +
- "_-_ Various minor visual errors"));
-
- changes = new ChangeInfo("v0.8.2a&b", false, null);
- changes.hardlight(Window.TITLE_COLOR);
- changeInfos.add(changes);
-
- changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
- "I've made a few small tweaks to the new player experience:\n" +
- "_-_ Snakes now give new players a hint about surprise attacks after 3 misses, down from 5\n" +
- "_-_ Accelerated the rate that guidebook pages drop on early floors\n" +
- "_-_ The regular main menu is now only accessible after starting your first game\n\n" +
- "_-_ Enemies now cannot spawn near to the player, even if they are out of the player's view\n\n" +
- "_-_ Sped up loading times on Android when the game is relaunched\n\n" +
- "_-_ Updated translations and translator credits"));
-
- changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
- "Fixed (caused by v0.8.2):\n" +
- "_-_ Various crash and freeze bugs\n" +
- "_-_ Various text errors in the new settings window\n" +
- "_-_ Item names not showing correctly when languages are swapped while ingame\n" +
- "_-_ Clobber knockback not closing doors\n\n" +
- "Fixed (existed prior to v0.8.2):\n" +
- "_-_ Pickaxe not getting bloodied by killing bats in rare cases\n" +
- "_-_ Dried rose ghost healing not respecting level lock limits\n" +
- "_-_ Enemy respawn timer being reset by saving/loading the game\n" +
- "_-_ Wraiths refusing to spawn over traps despite not being able to activate them"));
-
changes = new ChangeInfo(Messages.get(ChangesScene.class, "new"), false, null);
changes.hardlight(Window.TITLE_COLOR);
changeInfos.add(changes);
@@ -194,18 +119,40 @@ public class v0_8_X_Changes {
"_-_ Journal sync is now supported by Google Play Games functionality"));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
- "_-_ New sound effects have been added for sheep and the talisman of foresight\n" +
- "_-_ The SFX for discovering secrets has been remastered\n\n" +
+ "_New Player Experience:_\n" +
+ "_-_ Snakes now give hints about surprise attacks after 3 misses, down from 5\n" +
+ "_-_ Accelerated the rate that guidebook pages drop on early floors\n" +
+ "_-_ The regular main menu is now only accessible after starting your first game\n" +
+ "_-_ Entrance doors on floor 2 are now only hidden the first time\n\n" +
+ "_Balance:_\n" +
+ "_-_ Bleed from gripping/flashing traps reduced, but they are also affected less by armor.\n" +
+ "_-_ All effects which cancel invisibility and time freeze now fully resolve before they cancel invis/freeze.\n" +
+ "_-_ Swarm intelligence no longer triggers from allies, and no longer affects magically slept enemies.\n" +
+ "_-_ Evil eyes are no longer immune to terror\n" +
"_-_ Thrown potions no longer cleanse ooze/fire from enemies\n" +
- "_-_ Strength Potions, Upgrade Scrolls, and items which use them are now considered unique and are immune to burn/freeze\n\n" +
+ "_-_ Strength Potions, Upgrade Scrolls, and items which use them are now considered unique and are immune to burn/freeze\n" +
+ "_-_ Enemies now cannot spawn near to the player, even if they are out of the player's view\n" +
+ "_-_ Ranged traps will now prefer to shoot visible targets over invisible ones"));
+
+ changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
+ "_Audio:_\n" +
+ "_-_ New sound effects have been added for sheep and the talisman of foresight\n" +
+ "_-_ The SFX for discovering secrets has been remastered\n" +
+ "_-_ Torches now play a burning sound\n\n" +
+ "_Quality of Life:_\n" +
+ "_-_ The dried rose can no longer be sold if it contains a weapon or armor\n" +
+ "_-_ Tweaked item visibility in furrowed grass\n" +
+ "_-_ Adjusted sizing for inventory and message windows\n" +
+ "_-_ Items now automatically get added to bags if room is made for them by dropping/using something else\n" +
"_-_ Questgivers now appear in landmarks when they are seen\n" +
"_-_ Shops now appear in landmarks\n" +
"_-_ Items for sale now show their price when being examined\n" +
- "_-_ Stackable unique items can now be sold to shops\n" +
- "_-_ Entrance doors on floor 2 are now only hidden the first time, not every time before Goo is beaten\n" +
- "_-_ Ranged traps will now prefer to shoot visible targets over invisible ones\n\n" +
+ "_-_ Stackable unique items can now be sold\n" +
+ "_-_ Shortened text from well of awareness\n" +
+ "_-_ Tweaked the sprites of tipped vs. untipped darts\n\n" +
+ "_Translations:_\n" +
"_-_ Added a new language: Ukranian!\n" +
- "_-_ Updated translations"));
+ "_-_ Updated translations and translator credits"));
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
"Fixed:\n" +
@@ -227,6 +174,24 @@ public class v0_8_X_Changes {
"_-_ Tengu placing traps over plants\n" +
"_-_ Items not being IDed in rankings in rare cases"));
+ changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
+ "Fixed:\n" +
+ "_-_ Sniper shot incorrectly capping at 2.5x damage instead of 3x\n" +
+ "_-_ Golden Lotus having twice at much HP as intended\n" +
+ "_-_ Pickaxe not getting bloodied by killing bats in rare cases\n" +
+ "_-_ Dried rose ghost healing not respecting level lock limits\n" +
+ "_-_ Enemy respawn timer being reset by saving/loading the game\n" +
+ "_-_ Wraiths refusing to spawn over traps despite not being able to activate them\n" +
+ "_-_ Particle effects rarely not appearing\n" +
+ "_-_ Visual errors with Goo's charge up particles\n" +
+ "_-_ DM-201s rarely tossing grenades though walls\n" +
+ "_-_ Various rare errors with blacksmith reforging\n" +
+ "_-_ Various minor errors with cursed wands and chaos elementals\n" +
+ "_-_ Terrored enemies not fleeing in some cases\n" +
+ "_-_ Various minor errors with the Tengu fight\n" +
+ "_-_ Acidic scorpios not always dropping potions of experience\n" +
+ "_-_ Some immovable enemies not knocking items away"));
+
changes = new ChangeInfo(Messages.get(ChangesScene.class, "buffs"), false, null);
changes.hardlight(CharSprite.POSITIVE);
changeInfos.add(changes);
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v0_9_X_Changes.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v0_9_X_Changes.java
new file mode 100644
index 000000000..ce221ea59
--- /dev/null
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/v0_9_X_Changes.java
@@ -0,0 +1,124 @@
+/*
+ * Pixel Dungeon
+ * Copyright (C) 2012-2015 Oleg Dolya
+ *
+ * Shattered Pixel Dungeon
+ * Copyright (C) 2014-2020 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.Assets;
+import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfFrost;
+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 com.watabou.noosa.Image;
+
+import java.util.ArrayList;
+
+public class v0_9_X_Changes {
+
+ public static void addAllChanges( ArrayList changeInfos ){
+ add_v0_9_0_Changes(changeInfos);
+ }
+
+ public static void add_v0_9_0_Changes( ArrayList changeInfos ) {
+
+ ChangeInfo changes = new ChangeInfo("v0.9.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 October 5th, 2020\n" +
+ "_-_ 61 days after Shattered v0.8.2\n" +
+ "_-_ 173 days after Shattered v0.8.0\n" +
+ "\n" +
+ "Dev commentary will be added here in the future."));
+
+ changes.addButton(new ChangeButton(Icons.get(Icons.TALENT), "Hero Talents!",
+ "_A new gameplay system has been added!_\n\n" +
+ "As you play the game and level up, you now unlock points to spend on hero talents. These talents have a range of effects, from stat adjustments to triggered effects to full on abilities!\n\n" +
+ "Talents are split into tiers, and to start only the first tier is available, which covers levels 1 to 6. More talents will be added soon!\n\n" +
+ "Previously I would have spent many more months on v0.9.0 and released the entire system in one update, but I'm changing up my strategy and splitting these big updates into smaller parts."));
+
+ changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), "Hostile Champions!",
+ "A new challenge has been added: _Hostile Champions!_\n\n" +
+ "Unlike most other challenges, this one focuses on amping up the difficulty of the dungeon, rather than removing tools from the player. Give it a try if you've unlocked challenges, and you might find some particularly nasty enemies in the dungeon!"));
+
+ changes.addButton(new ChangeButton(Icons.get(Icons.BADGES), "Badge Visuals",
+ "The badges screen now shows which badges are locked, rather than just using a generic 'locked badge' visual.\n\n" +
+ "Badges now have different border colors based on their difficulty (bronze, silver, gold, platinum, diamond), and are ordered based on these colors."));
+
+ changes = new ChangeInfo(Messages.get(ChangesScene.class, "changes"), false, null);
+ changes.hardlight(CharSprite.WARNING);
+ changeInfos.add(changes);
+
+ changes.addButton(new ChangeButton(new Image(Assets.Sprites.WARRIOR, 0, 15, 12, 15), "Hero balance adjustments",
+ "The _Warrior, Mage, and Huntress_ are getting some balance tweaks to offset their new talents:\n\n" +
+ "The _Warrior and Mage_ no longer have innate on-eat effects, these are replaced by their food-based talents.\n\n" +
+ "The _Warrior's_ base max shielding has been reduced from 2 to 1, to compensate for his shielding talent.\n\n" +
+ "The _Mage_ no longer has an innate wand identification effect, this is replaced by his wand identification talent.\n\n" +
+ "The _Huntress'_ studded gloves have had their base damage reduced to 1-5 from 1-6, to compensate for her damage-dealing talent."));
+
+ changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_OFF), "Existing Challenges",
+ "Some existing challenges have been tweaked to reduce the number of items that they remove from the game:\n\n" +
+ "_On Diet_ no longer restricts food, but instead causes all food to be 1/3 as effective at satiating hunger.\n\n" +
+ "_Faith Is My Armor_ no longer restricts the hero to cloth armor, but instead heavily reduces the blocking power of all armor above cloth.\n\n" +
+ "_Pharmacophobia_ no longer removes health potions, but instead makes them poisonous to the player."));
+
+ changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
+ "_-_ Unidentified scrolls can now be used to make runestones! You won't know what stones you'll get until you brew the scroll, but the scroll will be retroactively identified.\n\n" +
+ "_-_ Reduced hero unlock requirements.\n\n" +
+ "_-_ Added HP numbers to the player's health bar.\n" +
+ "_-_ Tweaked some interface visuals to be more rounded.\n\n" +
+ "_-_ Spider webs are now flammable, and can be shot through by fireblast.\n" +
+ "_-_ The reclaim trap spell can no longer be dropped when a trap is stored in it. This prevents an exploit.\n" +
+ "_-_ Items gained from secret mazes are now known to be uncursed."));
+
+ changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
+ "Fixed:\n" +
+ "_-_ Various visual errors\n" +
+ "_-_ Various rare crash bugs\n" +
+ "_-_ Various rare game freeze bugs\n" +
+ "_-_ Back button closing the game in hero select\n" +
+ "_-_ Issues with touch input on Android 11 when gestures are enabled\n" +
+ "_-_ Crystal mimics escaping when they are still visible\n" +
+ "_-_ Shadows buff being cancelled by enemies seen via mind vision\n" +
+ "_-_ Aqua blast occasionally not stunning\n" +
+ "_-_ Errors with turn spending when talisman is used\n" +
+ "_-_ Newborn elemental not dropping its quest item for overlevelled heroes\n" +
+ "_-_ Spinners shooting webs though walls\n" +
+ "_-_ Elastic enchantment closing doors when used with spirit bow\n" +
+ "_-_ Shopkeepers buying items worth 0 gold\n" +
+ "_-_ Duplicate artifacts in rare cases\n" +
+ "_-_ Custom names not applying to Mage's staff\n" +
+ "_-_ Ring of might not reducing max HP when degraded\n" +
+ "_-_ Rare bugs involving ripper demon leaping\n" +
+ "_-_ Hero unable to cleanse fire with chill when immune to it, and vice-versa\n" +
+ "_-_ DM-201's attacking while stunned"));
+
+ changes.addButton(new ChangeButton(new WandOfFrost(),
+ "This is actually a bugfix, but I'm listing it separately for clarity. In v0.8.2 the _wand of frost_ is listed as losing 6.67% damage per turn of chill, to a max of -50%. This is not what was implemented however, and the wand instead lost 3.33% per turn to a max of -30%. This has now been corrected and the wand performs as listed in the 0.8.2 changelog."));
+
+ }
+}