v2.0.1: improved changes screen for single large entries
This commit is contained in:
@@ -34,7 +34,8 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.ScrollPane;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.StyledButton;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.ChangeInfo;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.ChangesWindow;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.WndChanges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.WndChangesTabbed;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v0_1_X_Changes;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v0_2_X_Changes;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v0_3_X_Changes;
|
||||
@@ -61,6 +62,7 @@ public class ChangesScene extends PixelScene {
|
||||
public static int changesSelected = 0;
|
||||
|
||||
private NinePatch rightPanel;
|
||||
private ScrollPane rightScroll;
|
||||
private IconTitle changeTitle;
|
||||
private RenderedTextBlock changeBody;
|
||||
|
||||
@@ -105,10 +107,19 @@ public class ChangesScene extends PixelScene {
|
||||
rightPanel.y = title.bottom() + 5;
|
||||
add(rightPanel);
|
||||
|
||||
rightScroll = new ScrollPane(new Component());
|
||||
add(rightScroll);
|
||||
rightScroll.setRect(
|
||||
rightPanel.x + rightPanel.marginLeft(),
|
||||
rightPanel.y + rightPanel.marginTop()-1,
|
||||
rightPanel.innerWidth() + 2,
|
||||
rightPanel.innerHeight() + 2);
|
||||
rightScroll.scrollTo(0, 0);
|
||||
|
||||
changeTitle = new IconTitle(Icons.get(Icons.CHANGES), Messages.get(this, "right_title"));
|
||||
changeTitle.setPos(rightPanel.x + rightPanel.marginLeft(), rightPanel.y + rightPanel.marginTop());
|
||||
changeTitle.setPos(0, 1);
|
||||
changeTitle.setSize(pw, 20);
|
||||
add(changeTitle);
|
||||
rightScroll.content().add(changeTitle);
|
||||
|
||||
String body = Messages.get(this, "right_body");
|
||||
if (Messages.lang() != Languages.ENGLISH){
|
||||
@@ -116,8 +127,8 @@ public class ChangesScene extends PixelScene {
|
||||
}
|
||||
changeBody = PixelScene.renderTextBlock(body, 6);
|
||||
changeBody.maxWidth(pw - panel.marginHor());
|
||||
changeBody.setPos(rightPanel.x + rightPanel.marginLeft(), changeTitle.bottom()+2);
|
||||
add(changeBody);
|
||||
changeBody.setPos(0, changeTitle.bottom()+2);
|
||||
rightScroll.content().add(changeBody);
|
||||
|
||||
} else {
|
||||
panel.size( pw, ph );
|
||||
@@ -314,34 +325,44 @@ public class ChangesScene extends PixelScene {
|
||||
fadeIn();
|
||||
}
|
||||
|
||||
private void updateChangesText(Image icon, String title, String message){
|
||||
private void updateChangesText(Image icon, String title, String... messages){
|
||||
if (changeTitle != null){
|
||||
changeTitle.icon(icon);
|
||||
changeTitle.label(title);
|
||||
changeTitle.setPos(changeTitle.left(), changeTitle.top());
|
||||
|
||||
int pw = 135 + rightPanel.marginHor() - 2;
|
||||
changeBody.text(message, pw - rightPanel.marginHor());
|
||||
int ph = Camera.main.height - 36;
|
||||
while (changeBody.height() > ph-25
|
||||
&& changeBody.right() + 5 < Camera.main.width){
|
||||
changeBody.maxWidth(changeBody.maxWidth()+5);
|
||||
String message = "";
|
||||
for (int i = 0; i < messages.length; i++){
|
||||
message += messages[i];
|
||||
if (i != messages.length-1){
|
||||
message += "\n\n";
|
||||
}
|
||||
}
|
||||
rightPanel.size(changeBody.maxWidth() + rightPanel.marginHor(), Math.max(ph, changeBody.height()+18+rightPanel.marginVer()));
|
||||
changeBody.setPos(changeBody.left(), changeTitle.bottom()+2);
|
||||
changeBody.text(message);
|
||||
rightScroll.content().setSize(rightScroll.width(), changeBody.bottom()+2);
|
||||
rightScroll.setSize(rightScroll.width(), rightScroll.height());
|
||||
rightScroll.scrollTo(0, 0);
|
||||
|
||||
} else {
|
||||
addToFront(new ChangesWindow(icon, title, message));
|
||||
if (messages.length == 1) {
|
||||
addToFront(new WndChanges(icon, title, messages[0]));
|
||||
} else {
|
||||
addToFront(new WndChangesTabbed(icon, title, messages));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void showChangeInfo(Image icon, String title, String message){
|
||||
public static void showChangeInfo(Image icon, String title, String... messages){
|
||||
Scene s = ShatteredPixelDungeon.scene();
|
||||
if (s instanceof ChangesScene){
|
||||
((ChangesScene) s).updateChangesText(icon, title, message);
|
||||
((ChangesScene) s).updateChangesText(icon, title, messages);
|
||||
return;
|
||||
}
|
||||
s.addToFront(new ChangesWindow(icon, title, message));
|
||||
if (messages.length == 1) {
|
||||
s.addToFront(new WndChanges(icon, title, messages[0]));
|
||||
} else {
|
||||
s.addToFront(new WndChangesTabbed(icon, title, messages));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -35,16 +35,16 @@ public class ChangeButton extends Component {
|
||||
|
||||
protected Image icon;
|
||||
protected String title;
|
||||
protected String message;
|
||||
protected String[] messages;
|
||||
|
||||
public ChangeButton( Image icon, String title, String message){
|
||||
public ChangeButton( Image icon, String title, String... messages){
|
||||
super();
|
||||
|
||||
this.icon = icon;
|
||||
add(this.icon);
|
||||
|
||||
this.title = Messages.titleCase(title);
|
||||
this.message = message;
|
||||
this.messages = messages;
|
||||
|
||||
layout();
|
||||
}
|
||||
@@ -54,7 +54,7 @@ public class ChangeButton extends Component {
|
||||
}
|
||||
|
||||
protected void onClick() {
|
||||
ChangesScene.showChangeInfo(new Image(icon), title, message);
|
||||
ChangesScene.showChangeInfo(new Image(icon), title, messages);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -27,9 +27,9 @@ import com.watabou.input.PointerEvent;
|
||||
import com.watabou.noosa.Image;
|
||||
import com.watabou.noosa.PointerArea;
|
||||
|
||||
public class ChangesWindow extends WndTitledMessage {
|
||||
public class WndChanges extends WndTitledMessage {
|
||||
|
||||
public ChangesWindow(Image icon, String title, String message ) {
|
||||
public WndChanges( Image icon, String title, String message ) {
|
||||
super( icon, title, message);
|
||||
|
||||
PointerArea blocker = new PointerArea( 0, 0, PixelScene.uiCamera.width, PixelScene.uiCamera.height ) {
|
||||
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* Pixel Dungeon
|
||||
* Copyright (C) 2012-2015 Oleg Dolya
|
||||
*
|
||||
* Shattered Pixel Dungeon
|
||||
* Copyright (C) 2014-2023 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 <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.ui.changelist;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.windows.IconTitle;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.windows.WndTabbed;
|
||||
import com.watabou.input.PointerEvent;
|
||||
import com.watabou.noosa.Image;
|
||||
import com.watabou.noosa.PointerArea;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class WndChangesTabbed extends WndTabbed {
|
||||
|
||||
protected static final int WIDTH_MIN = 120;
|
||||
protected static final int WIDTH_MAX = 220;
|
||||
protected static final int GAP = 2;
|
||||
|
||||
private ArrayList<RenderedTextBlock> texts = new ArrayList<>();
|
||||
|
||||
public WndChangesTabbed(Image icon, String title, String... messages ) {
|
||||
|
||||
super();
|
||||
|
||||
int width = WIDTH_MIN;
|
||||
|
||||
PointerArea blocker = new PointerArea( 0, 0, PixelScene.uiCamera.width, PixelScene.uiCamera.height ) {
|
||||
@Override
|
||||
protected void onClick( PointerEvent event ) {
|
||||
onBackPressed();
|
||||
}
|
||||
};
|
||||
blocker.camera = PixelScene.uiCamera;
|
||||
add(blocker);
|
||||
|
||||
IconTitle titlebar = new IconTitle( icon, title );
|
||||
titlebar.setRect( 0, 0, width, 0 );
|
||||
add(titlebar);
|
||||
|
||||
RenderedTextBlock largest = null;
|
||||
for (int i = 0; i < messages.length; i++){
|
||||
RenderedTextBlock text = PixelScene.renderTextBlock( 6 );
|
||||
text.text( messages[i], width );
|
||||
text.setPos( titlebar.left(), titlebar.bottom() + 2*GAP );
|
||||
add( text );
|
||||
texts.add(text);
|
||||
|
||||
if (largest == null || text.height() > largest.height()){
|
||||
largest = text;
|
||||
}
|
||||
|
||||
int finalI = i;
|
||||
add(new LabeledTab(numToNumeral(finalI + 1)){
|
||||
@Override
|
||||
protected void select(boolean value) {
|
||||
super.select( value );
|
||||
texts.get(finalI).visible = value;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
while (PixelScene.landscape()
|
||||
&& largest.bottom() > (PixelScene.MIN_HEIGHT_L - 20)
|
||||
&& width < WIDTH_MAX){
|
||||
width += 20;
|
||||
titlebar.setRect(0, 0, width, 0);
|
||||
|
||||
largest = null;
|
||||
for (RenderedTextBlock text : texts){
|
||||
text.setPos( titlebar.left(), titlebar.bottom() + 2*GAP );
|
||||
text.maxWidth(width);
|
||||
if (largest == null || text.height() > largest.height()){
|
||||
largest = text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bringToFront(titlebar);
|
||||
|
||||
resize( width, (int)largest.bottom() + 2 );
|
||||
|
||||
layoutTabs();
|
||||
select(0);
|
||||
|
||||
}
|
||||
|
||||
private String numToNumeral(int num){
|
||||
switch (num){
|
||||
case 1: return "I";
|
||||
case 2: return "II";
|
||||
case 3: return "III";
|
||||
case 4: return "IV";
|
||||
case 5: return "V";
|
||||
case 6: return "VI";
|
||||
case 7: return "VII";
|
||||
case 8: return "VIII";
|
||||
case 9: return "IX";
|
||||
case 10: return "X";
|
||||
default: return Integer.toString(num);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -146,7 +146,7 @@ public class v0_3_X_Changes {
|
||||
"\n" +
|
||||
"Google Play Games was the first online functionality ever added to Shattered. Some people were worried that this was the start of me turning Shattered into a game that would require internet. I tried to address this worry by making the functionality as optional as possible and heavily emphasizing that it was only for tiny extras like cloud sync and play games badges. Nowadays things are much more relaxed and Shattered has several internet-enabled features, but still none of them are needed to play the game itself."));
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.PREFS), "Google Play Games",
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.CONTROLLER), "Google Play Games",
|
||||
"Added support for Google Play Games in the Google Play version:\n\n" +
|
||||
"- Badges can now sync across devices\n" +
|
||||
"- Five Google Play Achievements added\n" +
|
||||
|
||||
@@ -507,7 +507,15 @@ public class v0_7_X_Changes {
|
||||
"_-_ Recipe changed to: strength + catalyst + 5 energy\n" +
|
||||
"_-_ Health boost now scales up with level, but fades after the hero gains a few levels\n\n" +
|
||||
"_-_ Meat Pie recipe cost reduced from 9 to 6, total healing reduced from 45 to 25\n\n" +
|
||||
"_-_ Added a privacy policy link to the Google Play edition of Shattered."));
|
||||
"_-_ Added a privacy policy link to the Google Play edition of Shattered.",
|
||||
|
||||
"Major internal improvements to service integrations for Google Play version of the game:\n" +
|
||||
"_-_ 'Share Gameplay Data' now uses Google Firebase Analytics instead of older Google Analytics. Data collected is unchanged.\n" +
|
||||
"_-_ Many internal improvements to Google Play Games sync and Google Payment integration.\n" +
|
||||
"_-_ Item renaming donation perk now applies to wands.\n\n" +
|
||||
"_-_ Added support for adaptive icons in Android 8.0+.\n" +
|
||||
"_-_ Improved how the game handles orientation changes and window resizing.\n" +
|
||||
"_-_ Shocking enchantment no longer visually arcs lightning to the hero."));
|
||||
|
||||
changes.addButton( new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed:\n" +
|
||||
@@ -526,23 +534,8 @@ public class v0_7_X_Changes {
|
||||
"_-_ Thieves rarely escaping when they are close\n" +
|
||||
"_-_ Beacon of returning losing set location when scroll holder is picked up\n" +
|
||||
"_-_ Recycle not giving an item if inventory is full\n" +
|
||||
"_-_ Rare cases where the game wouldn't save during alchemy"));
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.LANGS), Messages.get(ChangesScene.class, "language"),
|
||||
"Updated Translations\n\n" +
|
||||
"Updated Translator Credits"));
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"Major internal improvements to service integrations for Google Play version of the game:\n" +
|
||||
"_-_ 'Share Gameplay Data' now uses Google Firebase Analytics instead of older Google Analytics. Data collected is unchanged.\n" +
|
||||
"_-_ Many internal improvements to Google Play Games sync and Google Payment integration.\n" +
|
||||
"_-_ Item renaming donation perk now applies to wands.\n\n" +
|
||||
"_-_ Added support for adaptive icons in Android 8.0+.\n" +
|
||||
"_-_ Improved how the game handles orientation changes and window resizing.\n" +
|
||||
"_-_ Shocking enchantment no longer visually arcs lightning to the hero."));
|
||||
|
||||
changes.addButton( new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed (existed before 0.7.2):\n" +
|
||||
"_-_ Rare cases where the game wouldn't save during alchemy",
|
||||
|
||||
"_-_ Cloak of Shadows very rarely consuming more charges than it should\n" +
|
||||
"_-_ Assassin's blink not working on enemies standing on traps\n" +
|
||||
"_-_ Glyph of stone blocking an incorrect amount of damage (too low) in some cases\n" +
|
||||
@@ -557,6 +550,10 @@ public class v0_7_X_Changes {
|
||||
"_-_ Tengu spawning on top of other characters\n" +
|
||||
"_-_ Cloak of shadows only being usable from quickslots if it has 1 charge"));
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.LANGS), Messages.get(ChangesScene.class, "language"),
|
||||
"Updated Translations\n\n" +
|
||||
"Updated Translator Credits"));
|
||||
|
||||
changes = new ChangeInfo(Messages.get(ChangesScene.class, "buffs"), false, null);
|
||||
changes.hardlight( CharSprite.POSITIVE );
|
||||
changeInfos.add(changes);
|
||||
@@ -859,14 +856,12 @@ public class v0_7_X_Changes {
|
||||
"_-_ Augmented weapons rarely having inconsistent speed\n" +
|
||||
"_-_ Scroll of upgrade revealing curses on unidentified items\n" +
|
||||
"_-_ Item curses rarely not being revealed when they should be\n" +
|
||||
"_-_ Assassin buffs not being cleared when they should in some cases\n" +
|
||||
"_-_ Assassin buffs not being cleared when they should in some cases",
|
||||
|
||||
"_-_ Rooting not working correctly on retreating enemies\n" +
|
||||
"_-_ Searching spending hunger in a locked level\n" +
|
||||
"_-_ 'Faith is my armor' deleting class armors\n" +
|
||||
"_-_ Various cases where the player can be ontop of enemies"));
|
||||
|
||||
changes.addButton( new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed:\n" +
|
||||
"_-_ Various cases where the player can be ontop of enemies\n" +
|
||||
"_-_ Various screen layout issues in power saver mode\n" +
|
||||
"_-_ Crashes when tengu is healed above 1/2 health\n" +
|
||||
"_-_ Bolas incorrectly requiring 15 strength\n" +
|
||||
|
||||
@@ -125,11 +125,6 @@ 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 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" +
|
||||
@@ -138,13 +133,21 @@ public class v0_8_X_Changes {
|
||||
"_-_ 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" +
|
||||
"_-_ 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"));
|
||||
"_-_ 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"),
|
||||
"_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" +
|
||||
"_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" +
|
||||
"_Translations:_\n" +
|
||||
"_-_ Added a new language: Ukranian!\n" +
|
||||
"_-_ Updated translations and translator credits",
|
||||
|
||||
"_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" +
|
||||
@@ -155,10 +158,7 @@ public class v0_8_X_Changes {
|
||||
"_-_ Items for sale now show their price when being examined\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 and translator credits"));
|
||||
"_-_ Tweaked the sprites of tipped vs. untipped darts"));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed:\n" +
|
||||
@@ -176,12 +176,10 @@ public class v0_8_X_Changes {
|
||||
"_-_ Large enemies rarely appearing in enclosed spaces\n" +
|
||||
"_-_ Player being able to drop corpse dust\n" +
|
||||
"_-_ Remains in pit rooms rarely not being haunted when they contain cursed items\n" +
|
||||
"_-_ Wandmaker rarely spawning ontop of traps\n" +
|
||||
"_-_ 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" +
|
||||
"_-_ Wandmaker rarely spawning ontop of traps",
|
||||
"_-_ Tengu placing traps over plants\n" +
|
||||
"_-_ Items not being IDed in rankings in rare cases\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" +
|
||||
@@ -624,9 +622,8 @@ public class v0_8_X_Changes {
|
||||
"\n" +
|
||||
"_-_ Upgrading a stack of missile weapons now resets the durability of the stack\n" +
|
||||
"_-_ Brewing a potion with 3 of the same seed now identifies it.\n" +
|
||||
"_-_ Skeletal remains now always spawn a wraith if a cursed item spawned within them."));
|
||||
"_-_ Skeletal remains now always spawn a wraith if a cursed item spawned within them.",
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"_-_ Dried rose desc now includes ghost's weapon and armor.\n" +
|
||||
"_-_ Wand of Transfusion desc now includes damage/healing numbers.\n" +
|
||||
"_-_ Beneficial darts now mention that they don't harm allies.\n" +
|
||||
@@ -660,10 +657,8 @@ public class v0_8_X_Changes {
|
||||
"_-_ Viscocity glyph not considering all armor sources when applying deferred damage\n" +
|
||||
"_-_ Wand of warding bolts not pushing on terrain\n" +
|
||||
"_-_ Wand of prismatic light rarely revealing areas it shouldn't\n" +
|
||||
"_-_ Upgraded wands not spawning fully charged"));
|
||||
"_-_ Upgraded wands not spawning fully charged",
|
||||
|
||||
changes.addButton( new ChangeButton(new Image( Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed:\n" +
|
||||
"_-_ Invisibility not applying if the hero is also shadowmelded\n" +
|
||||
"_-_ Landscape/portrait modes working incorrectly in rare cases\n" +
|
||||
"_-_ Inventory incorrectly being seen as full when upgrading with the blacksmith\n" +
|
||||
|
||||
@@ -149,10 +149,8 @@ public class v0_9_X_Changes {
|
||||
"_-_ AOE from crush combo move being blocked by chasms\n" +
|
||||
"_-_ Blocking enchant and barkskin only applying to the hero\n" +
|
||||
"_-_ Ghost hero not saying anything when the hero dies\n" +
|
||||
"_-_ Various rare AI bugs with Ghost hero"));
|
||||
"_-_ 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" +
|
||||
@@ -163,10 +161,8 @@ public class v0_9_X_Changes {
|
||||
"_-_ 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"));
|
||||
"_-_ 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" +
|
||||
@@ -305,10 +301,8 @@ public class v0_9_X_Changes {
|
||||
"_-_ Ethereal Chains pulling a rooted hero\n" +
|
||||
"_-_ Cloak of Shadows spending an extra charge on save/load\n" +
|
||||
"_-_ kinetic enchantment ignoring enemy shields\n" +
|
||||
"_-_ regrowth bombs placing plants in incorrect locations"));
|
||||
"_-_ regrowth bombs placing plants in incorrect locations",
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed:\n" +
|
||||
"_-_ combo moves not cancelling invisibility or time freeze\n" +
|
||||
"_-_ cases where Assassin couldn't blink to places he should be able to blink to.\n" +
|
||||
"_-_ some on-eat talents unintentionally stacking with themselves\n" +
|
||||
@@ -437,13 +431,11 @@ public class v0_9_X_Changes {
|
||||
"_-_ The Mage's staff is no longer automatically set to max charges when imbuing a new wand.\n" +
|
||||
"_-_ Frozen carpaccio can now burn like mystery meat\n\n" +
|
||||
"_-_ Necromancers now damage enemies if their summoning position is totally blocked\n" +
|
||||
"_-_ Piranha are no longer invulnerable to electricity and frost\n\n" +
|
||||
"_-_ Piranha are no longer invulnerable to electricity and frost",
|
||||
"_-_ Barriers now decay more slowly when under 20 shielding.\n" +
|
||||
"_-_ Sniper's mark, charm, and terror all now cancel if their subject is dead.\n" +
|
||||
"_-_ Rogue's foresight can now also trigger when returning to a floor, if that floor was detected initially\n" +
|
||||
"_-_ The Overgrowth curse can now trigger starflower effects"));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"_-_ The Overgrowth curse can now trigger starflower effects\n\n" +
|
||||
"_-_ Slightly adjusted the Huntress' splash art to improve details on her face.\n" +
|
||||
"_-_ The Sad Ghost's reward UI has been improved.\n" +
|
||||
"_-_ Small UI improvements to rankings window\n" +
|
||||
@@ -468,10 +460,8 @@ public class v0_9_X_Changes {
|
||||
"_-_ Dwarf King and some Yog fists rarely taking negative damage\n" +
|
||||
"_-_ Warlocks not having capped health potions drops\n" +
|
||||
"_-_ Large characters entering tunnels when vertigoed\n" +
|
||||
"_-_ Rare AI issues when paths are blocked"));
|
||||
"_-_ Rare AI issues when paths are blocked",
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed:\n" +
|
||||
"_-_ Various minor errors relating to time freeze\n" +
|
||||
"_-_ Assassin blink ignoring hero being rooted\n" +
|
||||
"_-_ Various rare bugs with corruption\n" +
|
||||
@@ -589,9 +579,8 @@ public class v0_9_X_Changes {
|
||||
"_-_ 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."));
|
||||
"_-_ Items gained from secret mazes are now known to be uncursed.",
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"I'm making some adjustments to sewers loot to give players a bit more control of what gear they get, and to reduce the chance of spawning high tier gear that the player may never get to use:\n" +
|
||||
"_-_ Chance for regular gear drops in the sewers to be T4/T5 reduced by 50%.\n" +
|
||||
"_-_ Players can now see what type of weapon/armor the sad ghost has before selecting it.\n\n" +
|
||||
@@ -615,15 +604,13 @@ public class v0_9_X_Changes {
|
||||
"_-_ 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" +
|
||||
"_-_ Duplicate artifacts in rare cases",
|
||||
|
||||
"_-_ 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 Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed (existed prior to v0.9.0):\n" +
|
||||
"_-_ DM-201's attacking while stunned\n" +
|
||||
"_-_ Tengu's abilities being reset by saving/loading\n" +
|
||||
"_-_ Various cases where game win badges would not appear\n" +
|
||||
"_-_ Force cubes trigger traps before being placed to the floor\n" +
|
||||
|
||||
@@ -119,7 +119,7 @@ public class v1_X_Changes {
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.DISPLAY_LAND), "Landscape Hero Select",
|
||||
"Desktop and mobile landscape users will now see a new hero select screen that better makes use of screen real-estate."));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc") + " 1",
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"_Highlights:_\n" +
|
||||
"_-_ Daily runs can now be replayed for practice\n" +
|
||||
"_-_ Updated translations and translator credits\n" +
|
||||
@@ -129,22 +129,20 @@ public class v1_X_Changes {
|
||||
"_Hero Actions:_\n" +
|
||||
"_-_ Waiting now always takes exactly 1 turn, regardless of hero speed\n" +
|
||||
"_-_ Grass the hero is standing on can now be trampled by selecting the hero's position\n" +
|
||||
"_-_ Hero now pauses before ascending/descending if enemies are nearby\n" +
|
||||
"\n" +
|
||||
"_-_ Hero now pauses before ascending/descending if enemies are nearby",
|
||||
|
||||
"_Items:_\n" +
|
||||
"_-_ Wand of Disintegration no longer harms undiscovered neutral characters\n" +
|
||||
"_-_ Blooming enchant now tries to avoid placing grass on the hero\n" +
|
||||
"_-_ The scroll holder can now hold arcane resin\n" +
|
||||
"_-_ Rotberry plant now gives a small puff of toxic gas when trampled\n" +
|
||||
"_-_ Plants now trigger after time freeze ends, just like traps"));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc") + " 2",
|
||||
"_-_ Plants now trigger after time freeze ends, just like traps\n" +
|
||||
"_Allies & Enemies:_\n" +
|
||||
"_-_ Improved behavior of ally AI when told to hold a position\n" +
|
||||
"_-_ Goo's pump up attack now always gives the hero at least 1 action to react\n" +
|
||||
"_-_ DM-300 now knocks back during rockfall even if hero is 1 tile away\n" +
|
||||
"_-_ Slightly adjusted enemy stats on ascension to smooth out difficulty\n" +
|
||||
"\n" +
|
||||
"_-_ Slightly adjusted enemy stats on ascension to smooth out difficulty",
|
||||
|
||||
"_UI/VFX:_\n" +
|
||||
"_-_ Throwing weapons now show their quantity in orange when one is about to break\n" +
|
||||
"_-_ Item boosts from potion of mastery or curse infusion now change the color of text in that item's item slot\n" +
|
||||
@@ -153,14 +151,13 @@ public class v1_X_Changes {
|
||||
"_-_ Added some ascension dialogue for the ghost hero\n" +
|
||||
"_-_ Slightly improved the marsupial rat attacking animation\n" +
|
||||
"_-_ Improved chains vfx, especially for prison guards\n" +
|
||||
"_-_ Added lullaby vfx to the stone of deep sleep"));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc") + " 3",
|
||||
"_-_ Added lullaby vfx to the stone of deep sleep\n" +
|
||||
"\n" +
|
||||
"_Rankings:_\n" +
|
||||
"_-_ Clarified description for boss score in rankings\n" +
|
||||
"_-_ Yog's laser now deducts score even if the hero dodges it\n" +
|
||||
"_-_ Goo no longer deducts score by healing in water\n" +
|
||||
"\n" +
|
||||
"_-_ Goo no longer deducts score by healing in water",
|
||||
|
||||
"_Levelgen:_\n" +
|
||||
"_-_ Items and enemies can no longer spawn in aquarium room water\n" +
|
||||
"_-_ Improved room merging logic in a few specific situations\n" +
|
||||
@@ -174,7 +171,7 @@ public class v1_X_Changes {
|
||||
"_-_ The controller pointer can now pan the game camera\n" +
|
||||
"_-_ Heroes can now be renamed individually"));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 1",
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed the following bugs:\n\n" +
|
||||
"_Highlights:_\n" +
|
||||
"_-_ Victory and Champion badges not being awarded in some cases\n" +
|
||||
@@ -189,9 +186,8 @@ public class v1_X_Changes {
|
||||
"_-_ Albino rats causing bleed when hitting for 0 damage\n" +
|
||||
"_-_ Necromancers being able to summon through crystal doors\n" +
|
||||
"_-_ Giant necromancers summoning skeletons into doorways\n" +
|
||||
"_-_ Goo Immediately using its pump up attack if a previous pump up was interrupted by sleep"));
|
||||
"_-_ Goo Immediately using its pump up attack if a previous pump up was interrupted by sleep",
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 2",
|
||||
"_Items pt.1:_\n" +
|
||||
"_-_ Honeypots not reacting correctly to being teleported\n" +
|
||||
"_-_ Rare cases where lost inventory and items on stairs could softlock the game\n" +
|
||||
@@ -205,11 +201,10 @@ public class v1_X_Changes {
|
||||
"_-_ Various quirks with charge spending on timekeeper's hourglass\n" +
|
||||
"_-_ Stones of aggression working much more effectively than intended\n" +
|
||||
"_-_ Chalice of Blood benefitting from recharging while hero is starving\n" +
|
||||
"_-_ Cases where explosive curse would create explosions at the wrong location\n" +
|
||||
"_-_ Additional cases where magical spellbook could generate scrolls of lullaby"));
|
||||
"_-_ Cases where explosive curse would create explosions at the wrong location",
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 3",
|
||||
"_Items pt.2:_\n" +
|
||||
"_-_ Additional cases where magical spellbook could generate scrolls of lullaby" +
|
||||
"_-_ Heavy boomerangs getting an accuracy penalty when returning\n" +
|
||||
"_-_ Rare consistency errors in potion of might buff description\n" +
|
||||
"_-_ Death to aqua blast counting as death to a geyser trap\n" +
|
||||
@@ -222,9 +217,8 @@ public class v1_X_Changes {
|
||||
"_-_ Cursed horn of plenty affecting non-food items\n" +
|
||||
"_-_ Being able to self-target with cursed wands in rare cases\n" +
|
||||
"_-_ Some thrown weapons triggering traps as Tengu jumps\n" +
|
||||
"_-_ Magic resistance not applying to some cursed wand effects"));
|
||||
"_-_ Magic resistance not applying to some cursed wand effects",
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 4",
|
||||
"_Effects:_\n" +
|
||||
"_-_ Invisibility effects not working when applied to enemies\n" +
|
||||
"_-_ Rare cases where giant enemies couldn't attack\n" +
|
||||
@@ -239,9 +233,8 @@ public class v1_X_Changes {
|
||||
"_-_ Caves boss arena not displacing all items on the tile that caves in\n" +
|
||||
"_-_ Recharging effects sometimes getting an extra action on game load\n" +
|
||||
"_-_ Exploits during ascension challenge that let players still use shops\n" +
|
||||
"_-_ Elastic and battlemage blast wave ability conflicting with each other"));
|
||||
"_-_ Elastic and battlemage blast wave ability conflicting with each other",
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 5",
|
||||
"_Misc:_\n" +
|
||||
"_-_ Dailies using seeds that are also user-enterable\n" +
|
||||
"_-_ Confusing text when a weapon or armor is partly uncursed\n" +
|
||||
@@ -372,7 +365,7 @@ public class v1_X_Changes {
|
||||
"Several buffs have been given icons when they didn't have any, or have had their icons adjusted to prevent icon duplication. This should improve buff clarity in a few cases, and ensure that two active buffs can never have the exact same icon (recolored icons are still present though).\n\n" +
|
||||
"A few new overhead spell effects have been added as well."));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc") + " 1",
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"_-_ Updated translations, translator credits, and added a new language: Dutch!\n" +
|
||||
"_-_ Made the Huntress a bit easier to unlock again\n" +
|
||||
"_-_ Dreamfoil has been renamed to Mageroyal, to better fit its lack of sleeping functionality since 1.2\n" +
|
||||
@@ -382,12 +375,11 @@ public class v1_X_Changes {
|
||||
"_-_ Progress is now shown for badges that need to be unlocked with multiple heroes\n" +
|
||||
"_-_ Multiple unlocked badges can now be shown at once\n" +
|
||||
"_-_ Various minor tweaks to item and level generation to support seeded runs\n" +
|
||||
"_-_ Keys now appear on top of other items in pit rooms\n" +
|
||||
"_-_ Keys now appear on top of other items in pit rooms",
|
||||
|
||||
"_-_ Large floors now spawn two torches with the 'into darkness' challenge enabled\n" +
|
||||
"_-_ Blazing champions no longer explode if they are killed by chasms\n" +
|
||||
"_-_ Red sentries no longer fire on players with lost inventories"));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc") + " 2",
|
||||
"_-_ Red sentries no longer fire on players with lost inventories\n" +
|
||||
"_-_ Wards and Sentries are now immune to sleep, vertigo and fear\n" +
|
||||
"_-_ Characters with guaranteed dodges (e.g. spirit hawk) can now evade Yog's laser beam\n" +
|
||||
"_-_ Boss health bars have been expanded to show current health and active buffs/debuffs.\n" +
|
||||
@@ -532,7 +524,7 @@ public class v1_X_Changes {
|
||||
"_-_ Added a new language: Galician!\n" +
|
||||
"_-_ Removed the Catalan translation as it was below 70% complete"));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 1",
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed:\n" +
|
||||
"_-_ Various rare cases of save corruption on Android\n" +
|
||||
"_-_ Various minor textual and visual errors\n\n" +
|
||||
@@ -546,10 +538,8 @@ public class v1_X_Changes {
|
||||
"_-_ On-hit effects still triggering when the great crab blocks\n" +
|
||||
"_-_ Corruption debuff affecting smoke bomb decoy\n" +
|
||||
"_-_ Character mind vision persisting after a character dies\n" +
|
||||
"_-_ Dwarf King not being targeted by wands or thrown weapons while on his throne"));
|
||||
"_-_ Dwarf King not being targeted by wands or thrown weapons while on his throne",
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 2",
|
||||
"Fixed:\n" +
|
||||
"_-_ Pharmacophobia challenge incorrectly blocking some alchemy recipes\n" +
|
||||
"_-_ Unidentified wands being usable in alchemy\n" +
|
||||
"_-_ Wild energy spell not cancelling invisibility or time freeze\n" +
|
||||
@@ -559,10 +549,8 @@ public class v1_X_Changes {
|
||||
"_-_ Some items rarely not being consumed when they should be\n" +
|
||||
"_-_ Arcane catalysts not being able to be turned into energy\n" +
|
||||
"_-_ Fog of War not properly updating when warp beacon is used\n" +
|
||||
"_-_ Very rare cases where dried rose becomes unusable"));
|
||||
"_-_ Very rare cases where dried rose becomes unusable",
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 3",
|
||||
"Fixed:\n" +
|
||||
"_-_ Rare cases where lullaby scrolls were generated by the Unstable Spellbook\n" +
|
||||
"_-_ Ring of might health boost not being affected by lost inventory debuff\n" +
|
||||
"_-_ Items that spawn identified counting as being IDed by the player\n" +
|
||||
@@ -703,32 +691,31 @@ public class v1_X_Changes {
|
||||
"_- Scroll of Confusion_ is now _Scroll of Challenge_, which attracts enemies but creates an arena where you take reduced damage.\n" +
|
||||
"_- Scroll of Polymorph_ is now _Scroll of Metamorphosis_, which lets you swap out a talent to one from another class." ));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc") + " 1",
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"_-_ Item drops and special room spawns are now more consistent. Getting loads of the same item is now much less likely.\n" +
|
||||
"_-_ Items present on boss floors are now preserved if the hero is revived from an unblessed ankh\n" +
|
||||
"_-_ Teleport mechanics now work on boss levels\n" +
|
||||
"_-_ Traps that teleport no longer work on items in chests or similar containers\n" +
|
||||
"_-_ Rewards from piranha and trap rooms now always appear in chests\n\n" +
|
||||
|
||||
"_-_ Rewards from piranha and trap rooms now always appear in chests\n" +
|
||||
"\n" +
|
||||
"_-_ Tipped darts can now be transmuted and recycled\n" +
|
||||
"_-_ Thrown weapons no longer stick to allies\n" +
|
||||
"_-_ Liquid metal production from upgraded thrown weapons now caps at +3"));
|
||||
"_-_ Liquid metal production from upgraded thrown weapons now caps at +3",
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc") + " 2",
|
||||
"_-_ Updated game icons on Android and Desktop platforms\n" +
|
||||
"_-_ Tabs in rankings and hero info windows now use icons, not text\n" +
|
||||
"_-_ 'potions cooked' badge and stats are now 'items crafted'\n\n" +
|
||||
|
||||
"_-_ Newborn elementals no longer have a ranged attack\n\n" +
|
||||
|
||||
"_-_ 'potions cooked' badge and stats are now 'items crafted'\n" +
|
||||
"\n" +
|
||||
"_-_ Newborn elementals no longer have a ranged attack\n" +
|
||||
"\n" +
|
||||
"Various small improvements for iOS Devices:\n" +
|
||||
"_-_ Game can now run at higher framerates than 60\n" +
|
||||
"_-_ Ingame UI elements now move inward if notched devices are used in landscape\n" +
|
||||
"_-_ There is now an option to override silent mode\n\n" +
|
||||
|
||||
"_-_ There is now an option to override silent mode\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") + " 1",
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed:\n" +
|
||||
"_-_ Various minor/rare visual and textual errors\n" +
|
||||
"_-_ Cases where pausing/resuming the game at precise moments would cancel animations or attacks\n" +
|
||||
@@ -744,11 +731,9 @@ public class v1_X_Changes {
|
||||
"_-_ Various quirks with thrown weapon durability\n" +
|
||||
"_-_ Rare cases where ghouls would get many extra turns when reviving\n" +
|
||||
"_-_ Magical infusion not preserving curses on armor\n" +
|
||||
"_-_ Vertigo and teleportation effects rarely interfering\n" +
|
||||
"_-_ Layout issues in the hero info window with long buff names"));
|
||||
"_-_ Vertigo and teleportation effects rarely interfering",
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 2",
|
||||
"Fixed:\n" +
|
||||
"_-_ Layout issues in the hero info window with long buff names\n" +
|
||||
"_-_ Cursed wands being usable to create arcane resin\n" +
|
||||
"_-_ Unblessed ankh revival rarely causing crashes or placing the player on hazards\n" +
|
||||
"_-_ Some glyphs not working for armored statues or the ghost hero\n" +
|
||||
@@ -759,14 +744,12 @@ public class v1_X_Changes {
|
||||
"_-_ Ring of Might not updating hero health total in rare cases\n" +
|
||||
"_-_ Specific cases where darts would not recognize an equipped crossbow\n" +
|
||||
"_-_ Cap on regrowth wand being affect by level boosts\n" +
|
||||
"_-_ Some on-hit effects not triggering on ghost or armored statues\n" +
|
||||
"_-_ Some on-hit effects not triggering on ghost or armored statues",
|
||||
|
||||
"_-_ Rare errors when gateway traps teleported multiple things at once\n" +
|
||||
"_-_ Various rare errors when multiple inputs were given in the same frame\n" +
|
||||
"_-_ Fog of War errors in Tengu's arena\n" +
|
||||
"_-_ Rare errors with sheep spawning items and traps"));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 3",
|
||||
"Fixed:\n" +
|
||||
"_-_ Rare errors with sheep spawning items and traps\n" +
|
||||
"_-_ Various rare crash bugs\n" +
|
||||
"_-_ Various minor textual and visual errors\n" +
|
||||
"_-_ Gateway traps rarely teleporting immovable characters\n" +
|
||||
@@ -922,24 +905,22 @@ public class v1_X_Changes {
|
||||
"_-_ 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" +
|
||||
"_-_ disarming traps opening chests\n\n" +
|
||||
|
||||
"_-_ disarming traps opening chests\n" +
|
||||
"\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" +
|
||||
"_-_ time stasis sometimes not preventing harmful effects in its last turn.\n\n" +
|
||||
|
||||
"_-_ time stasis sometimes not preventing harmful effects in its last turn.\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\n" +
|
||||
"_-_ Rings not being renamable if they weren't IDed"));
|
||||
"_-_ Rings not being renamable if they weren't IDed",
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed:\n" +
|
||||
"_-_ statues not becoming aggressive when debuffed\n" +
|
||||
"_-_ swapping places with allies reducing momentum\n" +
|
||||
"_-_ DK minions dropping imp quest tokens\n" +
|
||||
@@ -947,8 +928,8 @@ public class v1_X_Changes {
|
||||
"_-_ spectral blades being blocked by allies\n" +
|
||||
"_-_ Spirit Hawk and Shadow Clone being corruptible\n" +
|
||||
"_-_ Rogue's body replacement ally being vulnerable to various AI-related debuffs\n" +
|
||||
"_-_ some ranged enemies becoming frozen if they were attacked from out of their vision\n\n" +
|
||||
|
||||
"_-_ some ranged enemies becoming frozen if they were attacked from out of their vision\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" +
|
||||
|
||||
@@ -129,7 +129,7 @@ public class v2_X_Changes {
|
||||
"_- Gnoll & Snake_ stat boost up to 9x from 7x\n" +
|
||||
"_- Rat_ stat boost up to 10x from 8x"));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc") + " 1",
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"_Highlights:_\n" +
|
||||
"_-_ The game now remembers if the player removes the waterskin from their quickslot right after starting a run\n" +
|
||||
"_-_ The damage warning vfx now always interrupts the hero, regardless of any other factors\n" +
|
||||
@@ -137,33 +137,31 @@ public class v2_X_Changes {
|
||||
"_-_ Added metamorphosis effects to the two remaining talents that previously couldn't be gained by metamorphosis\n" +
|
||||
"_-_ Desktop users can now toggle fullscreen with right-alt + enter\n" +
|
||||
"_-_ Added a setting to enable/disable playing music in background on desktop\n" +
|
||||
"_-_ Added a 5th games in progress slot for the Duelist\n" +
|
||||
"\n" +
|
||||
"_-_ Added a 5th games in progress slot for the Duelist",
|
||||
|
||||
"_Translations:_\n" +
|
||||
"_-_ Added a new Language: _Vietnamese!_ Currently only system font is supported for Vietnamese.\n" +
|
||||
"_-_ Removed the following Languages due to low usage and lack of maintenance: Finnish, Galician, Basque, Esperanto."));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc") + " 2",
|
||||
"_-_ Removed the following Languages due to low usage and lack of maintenance: Finnish, Galician, Basque, Esperanto.\n" +
|
||||
"\n" +
|
||||
"_iOS:_\n" +
|
||||
"_-_ Improved gesture handling, should reduce/eliminate touch delays\n" +
|
||||
"_-_ Removed unused audio files, reducing download size by about 15%\n" +
|
||||
"\n" +
|
||||
"_Effects:_\n" +
|
||||
"_-_ Backup barrier now triggers before wand zaps fully resolve\n" +
|
||||
"_-_ The chasm warning screen now also appears when levitation is about to end.",
|
||||
|
||||
"_Hero, Allies, & Enemies:_\n" +
|
||||
"_-_ The hero can now also self-trample plants, in addition to grass\n" +
|
||||
"_-_ Ripper demons will now try to leap even if their destination is blocked by terrain\n" +
|
||||
"_-_ Red Sentry attacks can now be dodged or blocked, but are very accurate.\n" +
|
||||
"_-_ Knockback effects now round up after being halved vs. bosses\n" +
|
||||
"\n" +
|
||||
"_Effects:_\n" +
|
||||
"_-_ Backup barrier now triggers before wand zaps fully resolve\n" +
|
||||
"_-_ The chasm warning screen now also appears when levitation is about to end."));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc") + " 3",
|
||||
"_Levelgen:_\n" +
|
||||
"_-_ Adjusted the layout of sacrifice rooms to provide some cover from ranged enemies\n" +
|
||||
"_-_ Secret rooms now never affect the generation of items in other rooms\n" +
|
||||
"_-_ Items and Enemies can no longer spawn on the Wandmaker quest ritual marker.\n" +
|
||||
"\n" +
|
||||
"_-_ Items and Enemies can no longer spawn on the Wandmaker quest ritual marker.",
|
||||
|
||||
"_Items:_\n" +
|
||||
"_-_ Several artifacts now cancel invisibility when used\n" +
|
||||
"_-_ Items no longer spawn on pitfall traps\n" +
|
||||
@@ -175,7 +173,7 @@ public class v2_X_Changes {
|
||||
"_-_ Healing no longer interrupts resting when HP is already full\n" +
|
||||
"_-_ Updated various code libraries\n"));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 1",
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
|
||||
"Fixed the following bugs:\n" +
|
||||
"_Highlights:_\n" +
|
||||
"_-_ Various rare crash and freeze errors\n" +
|
||||
@@ -184,7 +182,12 @@ public class v2_X_Changes {
|
||||
"_-_ AOE from gladiator's crush move invalidating Dwarf King's 'no weapons' badge\n" +
|
||||
"_-_ Magic resistance being extremely effective against Grim traps at low HP\n" +
|
||||
"_-_ Allies spawned by some armor abilities getting boosted stats during ascension\n" +
|
||||
"\n" +
|
||||
"_-_ One upgrade being lost when transferring class armor with a warrior's seal attached\n" +
|
||||
"_-_ Transmuting a dried rose deleting any items held by the ghost\n" +
|
||||
"_-_ Rare cases of hero stacking onto enemies when trying to swap positions with an ally\n" +
|
||||
"_-_ Directable allies being easily distracted after being told to move\n" +
|
||||
"_-_ Several on-kill effects incorrectly triggering when ghouls get downed",
|
||||
|
||||
"_Effects:_\n" +
|
||||
"_-_ Lethal momentum not triggering on kills made via enchantment\n" +
|
||||
"_-_ Teleportation effects not being blocked by magic immunity\n" +
|
||||
@@ -195,13 +198,10 @@ public class v2_X_Changes {
|
||||
"_-_ Iron Stomach talent cancelling fall damage in rare cases\n" +
|
||||
"_-_ Time freeze causing various odd behaviour when triggering plants and traps\n" +
|
||||
"_-_ Rare cases of earthroot armor and hold fast working after movement\n" +
|
||||
"_-_ Volley ability not triggering lethal momentum"));
|
||||
"_-_ Volley ability not triggering lethal momentum",
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 2",
|
||||
"_Items:_\n" +
|
||||
"_-_ One upgrade being lost when transferring class armor with a warrior's seal attached\n" +
|
||||
"_-_ Leftover darts being lost in rare cases when tipped darts have bonus durability\n" +
|
||||
"_-_ Transmuting a dried rose deleting any items held by the ghost\n" +
|
||||
"_-_ Darts being lost in rare cases when tipped darts have bonus durability\n" +
|
||||
"_-_ Alchemist's Toolkit not triggering the enhanced rings talent\n" +
|
||||
"_-_ Wand of fireblast rarely shooting great distances\n" +
|
||||
"_-_ Wand of lightning rarely taking credit for hero deaths not caused by it\n" +
|
||||
@@ -214,17 +214,13 @@ public class v2_X_Changes {
|
||||
"_-_ Rare cases where cloak of shadows wouldn't spend a charge on activation\n" +
|
||||
"_-_ Disarming traps rarely teleporting weapons into chests or graves\n" +
|
||||
"_-_ Blacksmith failing to take his pickaxe back in rare cases\n" +
|
||||
"_-_ Various rare errors with blacksmith reforging and resin boosted wands"));
|
||||
"_-_ Various rare errors with blacksmith reforging and resin boosted wands",
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 3",
|
||||
"_Allies & Enemies:_\n" +
|
||||
"_-_ Rare cases of hero stacking onto enemies when trying to swap positions with an ally\n" +
|
||||
"_-_ Directable allies being easily distracted if attacked after being told to move\n" +
|
||||
"_-_ DM-300 not using abilities in its first phase in specific situations\n" +
|
||||
"_-_ DM-201s rarely lobbing grenades when they shouldn't\n" +
|
||||
"_-_ DM-300's rockfall attack very rarely having no delay\n" +
|
||||
"_-_ Tengu rarely throwing bombs into walls\n" +
|
||||
"_-_ Several on-kill effects incorrectly triggering when ghouls get downed, but not killed\n" +
|
||||
"_-_ Soiled fist being able to see through shrouding fog\n" +
|
||||
"_-_ Rare cases where the Imp's shop could appear without completing his quest\n" +
|
||||
"_-_ Gladiator not gaining combo from attacking hiding mimics\n" +
|
||||
@@ -235,10 +231,8 @@ public class v2_X_Changes {
|
||||
"_-_ Evil eyes only resisting some disintegration effects\n" +
|
||||
"_-_ Several rare issues with spinner web shooting\n" +
|
||||
"_-_ Very rare cases where surprise attacks on mimics would fail\n" +
|
||||
"_-_ Very rare pathfinding bugs with flying enemies\n" +
|
||||
"_-_ Mirror and Prismatic images benefiting from more accuracy or evasion effects than intended"));
|
||||
"_-_ Very rare pathfinding bugs with flying enemies",
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes") + " 4",
|
||||
"_UI/VFX:_\n" +
|
||||
"_-_ Various minor audiovisual errors\n" +
|
||||
"_-_ Various minor textual errors\n" +
|
||||
|
||||
Reference in New Issue
Block a user