v1.0.0: added a mostly finished changelog for v1.0.0
This commit is contained in:
parent
7140736104
commit
88140f3822
|
@ -43,6 +43,7 @@ public class ShatteredPixelDungeon extends Game {
|
|||
public static final int v0_9_1d = 511;
|
||||
public static final int v0_9_2b = 532;
|
||||
public static final int v0_9_3c = 557; //557 on iOS, 554 on other platforms
|
||||
public static final int v1_0_0 = 563;
|
||||
|
||||
public ShatteredPixelDungeon( PlatformSupport platform ) {
|
||||
super( sceneClass == null ? WelcomeScene.class : sceneClass, platform );
|
||||
|
|
|
@ -41,6 +41,7 @@ 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.shatteredpixel.shatteredpixeldungeon.ui.changelist.v1_X_Changes;
|
||||
import com.watabou.noosa.Camera;
|
||||
import com.watabou.noosa.NinePatch;
|
||||
import com.watabou.noosa.audio.Music;
|
||||
|
@ -92,18 +93,21 @@ public class ChangesScene extends PixelScene {
|
|||
|
||||
switch (changesSelected){
|
||||
case 0: default:
|
||||
v0_9_X_Changes.addAllChanges(changeInfos);
|
||||
v1_X_Changes.addAllChanges(changeInfos);
|
||||
break;
|
||||
case 1:
|
||||
v0_8_X_Changes.addAllChanges(changeInfos);
|
||||
v0_9_X_Changes.addAllChanges(changeInfos);
|
||||
break;
|
||||
case 2:
|
||||
v0_7_X_Changes.addAllChanges(changeInfos);
|
||||
v0_8_X_Changes.addAllChanges(changeInfos);
|
||||
break;
|
||||
case 3:
|
||||
v0_6_X_Changes.addAllChanges(changeInfos);
|
||||
v0_7_X_Changes.addAllChanges(changeInfos);
|
||||
break;
|
||||
case 4:
|
||||
v0_6_X_Changes.addAllChanges(changeInfos);
|
||||
break;
|
||||
case 5:
|
||||
v0_5_X_Changes.addAllChanges(changeInfos);
|
||||
v0_4_X_Changes.addAllChanges(changeInfos);
|
||||
v0_3_X_Changes.addAllChanges(changeInfos);
|
||||
|
@ -164,7 +168,7 @@ public class ChangesScene extends PixelScene {
|
|||
panel.innerHeight() + 2);
|
||||
list.scrollTo(0, 0);
|
||||
|
||||
StyledButton btn0_9 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "v0.9"){
|
||||
StyledButton btn1_1 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "1.X"){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
|
@ -174,11 +178,11 @@ public class ChangesScene extends PixelScene {
|
|||
}
|
||||
}
|
||||
};
|
||||
if (changesSelected != 0) btn0_9.textColor( 0xBBBBBB );
|
||||
btn0_9.setRect(list.left()-4f, list.bottom(), 26, changesSelected == 0 ? 19 : 15);
|
||||
addToBack(btn0_9);
|
||||
if (changesSelected != 0) btn1_1.textColor( 0xBBBBBB );
|
||||
btn1_1.setRect(list.left()-4f, list.bottom(), 22, changesSelected == 0 ? 19 : 15);
|
||||
addToBack(btn1_1);
|
||||
|
||||
StyledButton btn0_8 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "v0.8"){
|
||||
StyledButton btn0_9 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.9"){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
|
@ -188,11 +192,11 @@ public class ChangesScene extends PixelScene {
|
|||
}
|
||||
}
|
||||
};
|
||||
if (changesSelected != 1) btn0_8.textColor( 0xBBBBBB );
|
||||
btn0_8.setRect(btn0_9.right() + 1, list.bottom(), 26, changesSelected == 1 ? 19 : 15);
|
||||
addToBack(btn0_8);
|
||||
if (changesSelected != 1) btn0_9.textColor( 0xBBBBBB );
|
||||
btn0_9.setRect(btn1_1.right()+1, list.bottom(), 22, changesSelected == 1 ? 19 : 15);
|
||||
addToBack(btn0_9);
|
||||
|
||||
StyledButton btn0_7 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "v0.7"){
|
||||
StyledButton btn0_8 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.8"){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
|
@ -202,11 +206,11 @@ public class ChangesScene extends PixelScene {
|
|||
}
|
||||
}
|
||||
};
|
||||
if (changesSelected != 2) btn0_7.textColor( 0xBBBBBB );
|
||||
btn0_7.setRect(btn0_8.right() + 1, btn0_8.top(), 26, changesSelected == 2 ? 19 : 15);
|
||||
addToBack(btn0_7);
|
||||
if (changesSelected != 2) btn0_8.textColor( 0xBBBBBB );
|
||||
btn0_8.setRect(btn0_9.right() + 1, list.bottom(), 22, changesSelected == 2 ? 19 : 15);
|
||||
addToBack(btn0_8);
|
||||
|
||||
StyledButton btn0_6 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "v0.6"){
|
||||
StyledButton btn0_7 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.7"){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
|
@ -216,11 +220,11 @@ public class ChangesScene extends PixelScene {
|
|||
}
|
||||
}
|
||||
};
|
||||
if (changesSelected != 3) btn0_6.textColor( 0xBBBBBB );
|
||||
btn0_6.setRect(btn0_7.right() + 1, btn0_8.top(), 26, changesSelected == 3 ? 19 : 15);
|
||||
addToBack(btn0_6);
|
||||
if (changesSelected != 3) btn0_7.textColor( 0xBBBBBB );
|
||||
btn0_7.setRect(btn0_8.right() + 1, btn0_8.top(), 22, changesSelected == 3 ? 19 : 15);
|
||||
addToBack(btn0_7);
|
||||
|
||||
StyledButton btnOld = new StyledButton(Chrome.Type.GREY_BUTTON_TR,"v0.1-5"){
|
||||
StyledButton btn0_6 = new StyledButton(Chrome.Type.GREY_BUTTON_TR, "0.6"){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
|
@ -230,8 +234,22 @@ public class ChangesScene extends PixelScene {
|
|||
}
|
||||
}
|
||||
};
|
||||
if (changesSelected != 4) btnOld.textColor( 0xBBBBBB );
|
||||
btnOld.setRect(btn0_6.right() + 1, btn0_8.top(), 33, changesSelected == 4 ? 19 : 15);
|
||||
if (changesSelected != 4) btn0_6.textColor( 0xBBBBBB );
|
||||
btn0_6.setRect(btn0_7.right() + 1, btn0_8.top(), 22, changesSelected == 4 ? 19 : 15);
|
||||
addToBack(btn0_6);
|
||||
|
||||
StyledButton btnOld = new StyledButton(Chrome.Type.GREY_BUTTON_TR,"0.5-1"){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
if (changesSelected != 5) {
|
||||
changesSelected = 5;
|
||||
ShatteredPixelDungeon.seamlessResetScene();
|
||||
}
|
||||
}
|
||||
};
|
||||
if (changesSelected != 5) btnOld.textColor( 0xBBBBBB );
|
||||
btnOld.setRect(btn0_6.right() + 1, btn0_8.top(), 26, changesSelected == 5 ? 19 : 15);
|
||||
addToBack(btnOld);
|
||||
|
||||
Archs archs = new Archs();
|
||||
|
|
|
@ -50,7 +50,7 @@ import java.util.ArrayList;
|
|||
|
||||
public class WelcomeScene extends PixelScene {
|
||||
|
||||
private static final int LATEST_UPDATE = ShatteredPixelDungeon.v0_9_3;
|
||||
private static final int LATEST_UPDATE = ShatteredPixelDungeon.v1_0_0;
|
||||
|
||||
@Override
|
||||
public void create() {
|
||||
|
|
|
@ -21,17 +21,17 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.ui.changelist;
|
||||
|
||||
import com.badlogic.gdx.Application;
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Spinner;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.ChaliceOfBlood;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CloakOfShadows;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bombs.WoollyBomb;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfEnergy;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfFrost;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfTransfusion;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.ChangesScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||
|
@ -40,6 +40,7 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.GolemSprite;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SpawnerSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SpectralNecromancerSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SpinnerSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.TalentIcon;
|
||||
|
@ -62,74 +63,6 @@ public class v0_9_X_Changes {
|
|||
changes.hardlight(Window.TITLE_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes = new ChangeInfo("", false, null);
|
||||
changes.hardlight(Window.TITLE_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes = new ChangeInfo("v0.9.3c", false, null);
|
||||
changes.hardlight(Window.TITLE_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
||||
if (Gdx.app.getType() == Application.ApplicationType.Android && Gdx.app.getVersion() < 14) {
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.WARNING), "Android 2.3 and 3 Support",
|
||||
"v0.9.3c is the final version of Shattered Pixel Dungeon which supports Android 2.3 Gingerbread and Android 3 Honeycomb. I don't currently have plans to end support for other Android versions.\n\n" +
|
||||
"If you'd like to keep up to date on future updates, check out the blog at _ShatteredPixel.com_"));
|
||||
}
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"_-_ The hero can now collect dew on stairs, even if they are at full HP.\n\n" +
|
||||
"_-_ In the Google Play version of the game, the player can now separately enable Google Play Games and opt-out of sharing gameplay data."));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed (caused by v0.9.3):\n" +
|
||||
"_-_ Various errors with warp beacon\n" +
|
||||
"_-_ Quick use window being usable after hero death\n" +
|
||||
"_-_ Rare cases of rankings failing to load\n" +
|
||||
"_-_ Fear from death mark lasting far longer than intended\n" +
|
||||
"_-_ Errors with the Lightweight Cloak talent\n\n" +
|
||||
"Fixed (existed prior to v0.9.3):\n" +
|
||||
"_-_ Necromancers sometimes losing track of their skeleton\n" +
|
||||
"_-_ Deaths to Dwarf King rarely not being recorded in rankings\n" +
|
||||
"_-_ Various minor text errors"));
|
||||
|
||||
changes = new ChangeInfo("v0.9.3b", false, null);
|
||||
changes.hardlight(Window.TITLE_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"It is now possible to access a quick-use window by quickslotting a bag or by long-pressing the inventory! A few items that were missing quick actions have also been given them, and bags can now appear in the rankings.\n\n" +
|
||||
"_-_ Runestones of flock now also activate before triggering traps"));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed (caused by v0.9.3):\n" +
|
||||
"_-_ Deactivating cloak ending preparation when Assassin is invisible by other means as well\n" +
|
||||
"_-_ Flying transmogrified enemies not falling if above chasms\n\n" +
|
||||
"Fixed (existed prior to v0.9.3):\n" +
|
||||
"_-_ Various rare crash bugs\n" +
|
||||
"_-_ Chaos elemental teleportation not interrupting the hero\n" +
|
||||
"_-_ Pacifist badge not triggering if hero descended by falling"));
|
||||
|
||||
changes = new ChangeInfo("v0.9.3a", false, null);
|
||||
changes.hardlight(Window.TITLE_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"_-_ Runestones now press tiles when they are thrown (stones of disarming specifically activate before triggering traps)"));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed (caused by v0.9.3):\n" +
|
||||
"_-_ Various freeze bugs that were common for certain users\n" +
|
||||
"_-_ Various rare crashes\n" +
|
||||
"_-_ Giant swarms still duplicating into enclosed spaces in rare cases\n" +
|
||||
"_-_ Game freeze bugs with wild magic\n" +
|
||||
"_-_ Various bugs with warp beacon telefragging\n" +
|
||||
"_-_ Ethereal chains causing quickslot UI issues\n\n" +
|
||||
"Fixed (existed prior to v0.9.3):\n" +
|
||||
"_-_ On-hit effects triggering on invulnerable pylons\n" +
|
||||
"_-_ Wells of healing not fully healing the hero in all cases\n" +
|
||||
"_-_ Lightweight cloak getting cancelled when equipped/unequipped\n" +
|
||||
"_-_ Displacing darts sometimes teleporting enemies into unreachable places"));
|
||||
|
||||
changes = new ChangeInfo(Messages.get(ChangesScene.class, "new"), false, null);
|
||||
changes.hardlight(Window.TITLE_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
@ -182,9 +115,18 @@ public class v0_9_X_Changes {
|
|||
"_-_ Overhauled the subclass selection interface, now much more informative."));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"_-_ Long pressing now uses the system long-press time (default 0.5 sec), instead of taking 1 second.\n\n" +
|
||||
"_-_ Deactivating the cloak of shadows no longer takes time.\n\n" +
|
||||
"_-_ Quickslotting a bag or long-pressing the inventory now shows a quick-use windows!\n" +
|
||||
"_-_ Added quickslot actions for some items that were missing them\n" +
|
||||
"_-_ Bags can now appear in the rankings\n\n" +
|
||||
|
||||
"_-_ Long pressing now uses the system long-press time (default 0.5 sec).\n" +
|
||||
"_-_ Google Play Games and sharing gameplay data can now be enabled separately.\n\n" +
|
||||
|
||||
"_-_ Deactivating the cloak of shadows no longer takes time.\n" +
|
||||
"_-_ Runestones now press tiles when they are thrown.\n" +
|
||||
"_-_ The hero can now collect dew on stairs, even if they are at full HP.\n" +
|
||||
"_-_ Improved the functionality for allies following the hero into locked boss arenas.\n\n" +
|
||||
|
||||
"_-_ Improved the descriptions of combo abilities\n" +
|
||||
"_-_ Added dev commentary for v0.6.0-v0.6.5\n" +
|
||||
"_-_ The Unstable Spellbook now greys out scrolls that have already been fed to it.\n" +
|
||||
|
@ -197,8 +139,8 @@ public class v0_9_X_Changes {
|
|||
"_-_ Various rare crash issues\n" +
|
||||
"_-_ Various minor VFX/SFX/text issues\n" +
|
||||
"_-_ Various exploits caused by window stacking and multitaps\n" +
|
||||
"_-_ Resting causing time to pass faster at high framerates\n\n" +
|
||||
"_-_ Errors when zooming with mouse and keyboard keys\n" +
|
||||
"_-_ Resting causing time to pass faster at high framerates\n" +
|
||||
"_-_ Errors when zooming with mouse and keyboard keys\n\n" +
|
||||
|
||||
"_-_ Thief's Intuition not working in rare cases\n" +
|
||||
"_-_ Berries rarely appearing in hero's remains\n" +
|
||||
|
@ -213,6 +155,7 @@ public class v0_9_X_Changes {
|
|||
"_-_ Various rare AI bugs with Ghost hero"));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed:\n" +
|
||||
"_-_ Incendiary darts being instantly used up when used on terrain\n" +
|
||||
"_-_ Wands of regrowth and fireblast using more than 3 charges in rare cases\n" +
|
||||
"_-_ Knockback effects not always working on dead characters\n" +
|
||||
|
@ -220,18 +163,26 @@ public class v0_9_X_Changes {
|
|||
"_-_ Hero accepting input while using potion of dragon's breath\n" +
|
||||
"_-_ Vision effects from talisman and arcane vision not working after save/load\n" +
|
||||
"_-_ Aqua rejuv working while hero is levitating\n" +
|
||||
"_-_ Seeds disappearing if they fall into a chasm with the barren land challenge enabled\n\n" +
|
||||
"_-_ Seeds disappearing if they fall into a chasm with the barren land challenge enabled\n" +
|
||||
"_-_ Displacing darts sometimes teleporting enemies into unreachable places\n" +
|
||||
"_-_ Items with boosted levels being remove-cursable\n" +
|
||||
"_-_ Magical infusion not clearing the degrade debuff"));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed:\n" +
|
||||
"_-_ Giant swarms duplicating in enclosed spaces\n" +
|
||||
"_-_ Giant champions being able to attack through other characters\n" +
|
||||
"_-_ Ghouls rarely healing without reviving\n\n" +
|
||||
"_-_ Ghouls rarely healing without reviving\n" +
|
||||
"_-_ Necromancers sometimes losing track of their skeleton\n" +
|
||||
"_-_ Chaos elemental teleportation not interrupting the hero\n" +
|
||||
"_-_ On-hit effects triggering on invulnerable pylons\n" +
|
||||
"_-_ Deaths to Dwarf King rarely not being recorded in rankings\n\n" +
|
||||
|
||||
"_-_ Quickslots not appearing greyed out when they should\n" +
|
||||
"_-_ Rare cases where non-visible cells would appear visible\n" +
|
||||
"_-_ Game log entries not appearing from alchemy scene\n\n" +
|
||||
|
||||
"_-_ Items with boosted levels being remove-cursable\n" +
|
||||
"_-_ Magical infusion not clearing the degrade debuff"));
|
||||
"_-_ Pacifist badge not triggering if hero descended by falling\n" +
|
||||
"_-_ Wells of healing not fully healing the hero in all cases\n" +
|
||||
"_-_ Game log entries not appearing from alchemy scene"));
|
||||
|
||||
changes = new ChangeInfo(Messages.get(ChangesScene.class, "buffs"), false, null);
|
||||
changes.hardlight(CharSprite.POSITIVE);
|
||||
|
|
|
@ -0,0 +1,199 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.ui.changelist;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bombs.WoollyBomb;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.ChangesScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SpectralNecromancerSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
|
||||
import com.watabou.noosa.Image;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class v1_X_Changes {
|
||||
|
||||
public static void addAllChanges( ArrayList<ChangeInfo> changeInfos ){
|
||||
add_v1_0_Changes(changeInfos);
|
||||
}
|
||||
|
||||
public static void add_v1_0_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
||||
|
||||
ChangeInfo changes = new ChangeInfo("Coming in v0.1.0", true, "");
|
||||
changes.hardlight(CharSprite.POSITIVE);
|
||||
//changeInfos.add(changes);
|
||||
|
||||
//alchemy improvements
|
||||
//???
|
||||
|
||||
changes = new ChangeInfo("v1.0.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 August 17th, 2021\n" +
|
||||
"_-_ 71 days after Shattered v0.9.3\n" +
|
||||
"_-_ 316 days after Shattered v0.9.0\n" +
|
||||
"_-_ A bit more than 7 years after v0.1.0!\n" +
|
||||
"\n" +
|
||||
"Shattered's version naming scheme changed this update! It is now major.minor.patch, and we're moving up to v1.0.0! The next patch will follow this scheme and be v1.0.1, and the next update will be v1.1.0. _This change does not affect my plans for future updates!_\n\n" +
|
||||
"Expect more dev commentary here in the future."));
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.DISPLAY), "iOS Release!",
|
||||
"_Shattered Pixel Dungeon is now available on iOS App Store!_\n\n" +
|
||||
"After years of requests, Shattered is finally available on Apple devices! The iOS version of the game will release in lockstep with the Android version moving forward, with some small variance due to different update approval processes.\n\n" +
|
||||
"Note that the iOS version costs $5, but comes with some supporter features built-in. I have no plans to make any changes to the monetization of the Android version."));
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.AUDIO), "new music!",
|
||||
"_The game's music tracks has been remastered!_\n\n" +
|
||||
"The new music is composed by Kristjan Harristo, check the about scene for more details on them. Currently we have only replaced the existing tracks, but we are working on tracks for each of the dungeons regions as well!\n\n" +
|
||||
"The new in-game track in particular is also an experiment in variable music looping. The track has an intro and a main segment and can play the main segment once or twice before looping back to the intro. This makes the track notably less repetative, and we intend to use similar techniques in other tracks."));
|
||||
|
||||
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.LIQUID_METAL), "new alchemy recipes!",
|
||||
"Two new alchemy recipes have been added! They're focused on helping you recycle thrown weapons and wands that you don't want to use.\n\n" +
|
||||
"_Liquid metal_ lets you sacrifice thrown weapons to repair other ones.\n\n" +
|
||||
"_Arcane resin_ lets you sacrifice a wand to upgrade other low level wands.\n\n" +
|
||||
"A new page has been added to the alchemy guide for these recipes, and it's now possible to find later guidebook pages in the prison."));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(new Image(Assets.Environment.TERRAIN_FEATURES, 64, 64, 16, 16)), "new traps",
|
||||
"Two new traps have been added! They are both less common traps that have a higher potential to be helpful.\n\n" +
|
||||
"_Geyser traps_ convert surrounding terrain to water and throw back anything near them.\n\n" +
|
||||
"_Gateway traps_ are a special teleportation trap which never expire, and always teleport to the same location.\n\n" +
|
||||
"All teleportation traps now also affect characters and items next to them."));
|
||||
|
||||
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.MASTERY), "new player experience improvements",
|
||||
"_The adventurer's guidebook is now the Tome of Dungeon Mastery!_\n\n" +
|
||||
"This is partly as a reference to the tome of mastery, which I removed in the previous update, and partly because the game's tutorial functionality has been improved.\n\n" +
|
||||
"Guidebook pages are now a bit shorter and more plentiful, and some of them are now given to them right at the start of the game. These automatic pages are suggested to the player to read at crucial moments. This way the guidebook does a better job of highlighting info right when it's needed."));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(new SpectralNecromancerSprite()), "spectral necromancers",
|
||||
"A new rare variant has been added for necromancers: _Spectral Necromancers!_\n\n" +
|
||||
"These necromancers don't care for skeletons, and prefer to summon a bunch of wraiths instead! Dealing with their horde might be tricky, but you'll be rewarded with a scroll of remove curse."));
|
||||
|
||||
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.ANKH), "new ankh mechanics",
|
||||
"_Regular Ankhs_ have been totally redesigned, and now give the player a chance to save all of their equipment! Be careful though, you'll have to fight your way back to your lost gear.\n\n" +
|
||||
"_Blessed Ankhs_ have received comparatively minor changes. In addition to the resurrection effect, these ankhs now also give the player 3 turns of invulnerability. This should help give players a moment to heal up after being revived."));
|
||||
|
||||
changes = new ChangeInfo(Messages.get(ChangesScene.class, "changes"), false, null);
|
||||
changes.hardlight(CharSprite.WARNING);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.STONE_FEAR), "runestones",
|
||||
"All Scrolls now produce 2 runestones, instead of some scrolls producing 3. The stones that used to be given in higher quantities have received buffs in compensation:\n\n" +
|
||||
"_- Stone of Intuition_ can now be used a second time if the guess was correct.\n" +
|
||||
"_- Stone of Flock_ AOE up to 5x5 from 3x3, sheep duration increased slightly.\n" +
|
||||
"_- Stone of Deepened Sleep_ is now stone of deep sleep, instantly puts one enemy into magical sleep.\n" +
|
||||
"_- Stone of Clairvoyance_ AOE up to 20x20, from 12x12.\n" +
|
||||
"_- Stone of Aggression_ duration against enemies up 5, now works on bosses, and always forces attacking.\n" +
|
||||
"_- Stone of Affection_ is now stone of fear, it fears one target for 20 turns."));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"_-_ Various tech and stability improvements.\n" +
|
||||
"_-_ Increased the minimum supported Android version to 4.0, from 2.3.\n" +
|
||||
"_-_ Game versions that use github for update checking can now opt-in to beta updates within the game.\n\n" +
|
||||
|
||||
"_-_ Item renaming functionality has been moved to within the item info window.\n" +
|
||||
"_-_ Various minor UI improvements to the intro, welcome and about scenes.\n" +
|
||||
"_-_ Adjusted settings windows, removed some unnecessary elements.\n" +
|
||||
"_-_ Armor with the warrior's seal on it now states max shielding.\n" +
|
||||
"_-_ Bonus strength is now shown separately from base strength.\n\n" +
|
||||
|
||||
"_-_ Improved the exit visuals on floor 10.\n" +
|
||||
"_-_ Becoming magic immune now also cleanses existing magical buffs and debuffs.\n" +
|
||||
"_-_ Traps that spawn visible or that never deactivate can no longer appear in enclosed spaces"));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed:\n" +
|
||||
"_-_ Various rare crash bugs\n" +
|
||||
"_-_ Various minor visual and text errors\n" +
|
||||
"_-_ damage warn triggering when hero gains HP from being hit\n" +
|
||||
"_-_ various rare bugs involving pitfall traps\n\n" +
|
||||
|
||||
"_-_ statues not becoming aggressive when debuffed\n" +
|
||||
"_-_ swapping places with allies reducing momentum\n" +
|
||||
"_-_ DK minions dropping imp quest tokens\n" +
|
||||
"_-_ giant succubi teleporting into enclosed spaces\n" +
|
||||
"_-_ spectral blades being blocked by allies\n" +
|
||||
"_-_ Spirit Hawk and Shadow Clone being corruptible\n\n" +
|
||||
|
||||
"_-_ wands losing max charge on save/load in rare cases\n" +
|
||||
"_-_ magical infusion clearing curses\n" +
|
||||
"_-_ dewdrops stacking on each other in rare cases\n" +
|
||||
"_-_ exploding skeletons not being blocked by transfusion shield in rare cases\n" +
|
||||
"_-_ rare incorrect interactions between swiftthistle and golden lotus"));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed:\n" +
|
||||
"_-_ various minor errors with electricity effects\n" +
|
||||
"_-_ soul mark not working properly on low HP enemies with shielding\n" +
|
||||
"_-_ various rare errors with shadows buff\n" +
|
||||
"_-_ errors with time freeze and inter-floor teleportation mechanics\n" +
|
||||
"_-_ rooted characters not being immune to knockback effects\n\n" +
|
||||
|
||||
"_-_ gladiator combos dealing much more damage than intended in certain cases\n" +
|
||||
"_-_ magical charge and scroll empower interacting incorrectly\n" +
|
||||
"_-_ magical sight not working with farsight talent\n" +
|
||||
"_-_ perfect copy talent giving very slightly more HP than intended\n" +
|
||||
"_-_ wild magic using cursed wands as if they're normal"));
|
||||
|
||||
changes = new ChangeInfo(Messages.get(ChangesScene.class, "buffs"), false, null);
|
||||
changes.hardlight(CharSprite.POSITIVE);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.CROWN, null), "Armor Ability Buffs pt.1",
|
||||
"Based on balance data and feedback, I'm making a bunch of buffs and adjustments to armor abilities and their related talents!\n\n" +
|
||||
"_- Endure_ bonus damage conversion rate up to 1/3 from 1/4.\n\n" +
|
||||
"_- Striking Wave_ effectiveness increased by 20%.\n" +
|
||||
"_- Shock Force_ now actually adds 20% damage per level as stated. Previously it only added 15%.\n\n" +
|
||||
"_- Wild Magic_ now boosts wand levels, instead of overriding them.\n" +
|
||||
"_- Conserved Magic_ now has a chance to give each wand a 3rd shot.\n" +
|
||||
"_- Conserved Magic_ charge cost reduction down to 33/55/70/80% from 44/69/82/90%.\n\n" +
|
||||
"_- Elemental Blast_ base damage increased to 15-25 from 10-20.\n" +
|
||||
"_- Elemental Power_ now boosts power by 20% per level, up from 15%.\n\n" +
|
||||
"_- Remote Beacon_ range per level increased to 4, from 3."));
|
||||
|
||||
changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.CROWN, null), "Armor Ability Buffs pt.2",
|
||||
"_- Shadow Clone_ now follows the hero at 2x speed.\n" +
|
||||
"_- Shadow Blade_ damage per level increased to 7.5% from 6.25%.\n" +
|
||||
"_- Cloned Armor_ armor per level increased to 15% from 12.5%.\n\n" +
|
||||
"_- Spirit Hawk_ evasion, accuracy, and duration increased by 20%.\n" +
|
||||
"_- Swift Spirit_ now gives 2/3/4/5 dodges, up from 1/2/3/4.\n" +
|
||||
"_- Go for the Eyes_ now gives 2/4/6/8 turns of blind, up from 2/3/4/5.\n\n" +
|
||||
"_- Spirit Blades_ effectiveness increased by 20%."));
|
||||
|
||||
changes.addButton( new ChangeButton(new WoollyBomb(),
|
||||
"As stones of flock were buffed, I thought it was only fair to give woolly bombs some compensation buffs as well:\n\n" +
|
||||
"_-_ AOE size up to 9x9 from 5x5\n" +
|
||||
"_-_ Sheep duration up to 12-16 from 8-16"));
|
||||
|
||||
changes = new ChangeInfo(Messages.get(ChangesScene.class, "nerfs"), false, null);
|
||||
changes.hardlight(CharSprite.NEGATIVE);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton(new ChangeButton(new MagesStaff(),
|
||||
"The Mage continues to do too well in the early game since the talent changes in v0.9.1. Rather than weakening his talents and other magical abilities more, I've decided to make him more reliant on them instead by reducing his melee damage.\n\n" +
|
||||
"_- Mage's Staff_ base damage reduced to 1-7 from 1-8."));
|
||||
|
||||
changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.CROWN, null), "Armor Ability Nerfs",
|
||||
"I focused mostly on buffs this update, but a few abilities and talents do need to be scaled back a little:\n\n" +
|
||||
"_- Double Jump_ charge cost reduction down to 20/36/50/60%, from 24/42/56/67%.\n\n" +
|
||||
"_- Telefrag_ self damage increased to a flat 5 per level.\n\n" +
|
||||
"_- Smoke Bomb_ max range reduced to 6 tiles from 8.\n" +
|
||||
"_- Body Replacement_ armor reduced to 1-3 per level, from 1-5.\n" +
|
||||
"_- Hasty Retreat_ turns of haste/invis reduced to 1/2/3/4 from 2/3/4/5\n" +
|
||||
"_- Shadow Step_ charge cost reduction down to 20/36/50/60%, from 24/42/56/67%.\n\n" +
|
||||
"_- Double Mark_ charge cost reduction down to 30/50/65/75%, from 33/55/70/80%.\n\n" +
|
||||
"_- 13th armor ability_ now only lasts for 6 turns, but also no longer prevents EXP or item drops. I'm trying to retain the ability's core theme while making it a bit less effective at totally removing enemies.\n" +
|
||||
"_- resistance talent_ damage reduction reduced to 10/19/27/35%, from 10/20/30/40%."));
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user