v0.6.1: filled in new changes scene with current 0.6.1 details

This commit is contained in:
Evan Debenham 2017-07-29 03:00:55 -04:00 committed by Evan Debenham
parent 4a2acc4b2b
commit ceb6ca2668

View File

@ -21,13 +21,29 @@
package com.shatteredpixel.shatteredpixeldungeon.scenes; package com.shatteredpixel.shatteredpixeldungeon.scenes;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.Chrome; import com.shatteredpixel.shatteredpixeldungeon.Chrome;
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
import com.shatteredpixel.shatteredpixeldungeon.effects.BadgeBanner;
import com.shatteredpixel.shatteredpixeldungeon.items.DewVial;
import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.PlateArmor;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.EtherealChains;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.HornOfPlenty;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.UnstableSpellbook;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfEnergy;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfMight;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfWealth;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.ui.Archs; import com.shatteredpixel.shatteredpixeldungeon.ui.Archs;
import com.shatteredpixel.shatteredpixeldungeon.ui.ExitButton; import com.shatteredpixel.shatteredpixeldungeon.ui.ExitButton;
import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline;
import com.shatteredpixel.shatteredpixeldungeon.ui.ScrollPane; import com.shatteredpixel.shatteredpixeldungeon.ui.ScrollPane;
import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
@ -44,7 +60,7 @@ import java.util.ArrayList;
//TODO: update this class with relevant info as new versions come out. //TODO: update this class with relevant info as new versions come out.
public class ChangesScene extends PixelScene { public class ChangesScene extends PixelScene {
private static final ArrayList<ChangeInfo> infos = new ArrayList<>(); private final ArrayList<ChangeInfo> infos = new ArrayList<>();
@Override @Override
public void create() { public void create() {
@ -89,22 +105,167 @@ public class ChangesScene extends PixelScene {
}; };
add( list ); add( list );
ChangeInfo changes = new ChangeInfo("v0.6.1", true, "");
changes.hardlight(Window.TITLE_COLOR);
infos.add(changes);
changes = new ChangeInfo("New Content:", false, null);
changes.hardlight( Window.TITLE_COLOR );
infos.add(changes);
changes.addButton( new ChangeButton( new ItemSprite(ItemSpriteSheet.GUIDE_PAGE, null), "Journal Additions",
"_-_ Overhauled the Journal window with loads of new functionality\n\n" +
"_-_ Added a completely overhauled tutorial experience, which replaces the existing signpost system.\n\n" +
"_-_ Massively expanded the items catalog, now contains every identifiable item in the game."));
changes.addButton( new ChangeButton(BadgeBanner.image(Badges.Badge.ALL_ITEMS_IDENTIFIED.image), "Badge Changes",
"_-_ Added new badges for identifying all weapons, armor, wands, and artifacts.\n\n" +
"_-_ All identification-based badges are now tied to the new item list system, and progress for them will persist between runs.\n\n" +
"_-_ Removed the Night Hunter badge.\n\n" +
"_-_ The 'Many Deaths' badge now covers all death related badges, previously it was not covering 2 of them.\n\n" +
"_-_ Blank badges shown in the badges menu are now accurate to how many badges you have left to unlock."));
changes.addButton( new ChangeButton( Icons.get(Icons.DEPTH), "levelgen changes",
"_-_ Added two new uncommon room types\n\n" +
"_-_ Added a new type of tunnel room (plus a chasm variant)"));
changes.addButton( new ChangeButton( new ItemSprite(ItemSpriteSheet.RING_TOPAZ, null), new RingOfEnergy().trueName(),
"_-_ Added the ring of energy."));
changes = new ChangeInfo("Changes:", false, null);
changes.hardlight( CharSprite.WARNING );
infos.add(changes);
changes.addButton( new ChangeButton( new ItemSprite(ItemSpriteSheet.RING_DIAMOND, null), "Ring Mechanics Changes",
"Rings now handle upgrades and curses more similarly to other items:\n\n" +
"_-_ Rings are now found at +0, down from +1, but are more powerful to compensate.\n\n" +
"_-_ Curses no longer affect ring upgrades, it is now impossible to find negatively upgraded rings.\n\n" +
"_-_ Cursed rings are now always harmful regardless of their level, until the curse is cleansed.\n\n" +
"_-_ Scrolls of upgrade have a chance to remove curses on a ring, scrolls of remove curse will always remove the curse."));
changes.addButton( new ChangeButton( new ItemSprite(ItemSpriteSheet.POTION_CRIMSON, null), new PotionOfHealing().trueName(),
"Health Potions are getting a changeup to make hoarding and chugging them less effective, and to encourage a bit more strategy than to just drink them on the verge of death.\n\n" +
"_-_ Health potions now heal in a burst that fades over time, rather than instantly.\n\n" +
"_-_ Health potions now heal more than max HP at low levels, and slightly less than max HP at high levels.\n\n" +
"Make sure to read the dew vial changes as well."));
changes.addButton( new ChangeButton( new DewVial(),
"The dew vial (and dew) are having their healing abilities enhanced both to improve the availability of healing in the sewers, and also to help offset the health potion changes somewhat.\n\n" +
"_-_ Dew drops now heal 5% of max HP, this is an increase in almost all cases.\n\n" +
"_-_ The dew vial is now full at 20 drops, drinking heals 5% per drop and is instantaneous.\n\n" +
"_-_ Dew will always be collected into an available vial, even if the hero is below max HP.\n\n" +
"_-_ When drinking from the vial, the hero will now only drink as many drops as they need to reach full HP.\n\n"));
changes.addButton( new ChangeButton( new ItemSprite(ItemSpriteSheet.RING_AMETHYST, null), new RingOfWealth().trueName(),
"The ring of wealth is getting a change in emphasis, moving away from affecting items generally, and instead affecting item drops more strongly.\n\n" +
"_-_ no longer grants any benefit to item spawns when levels are generated\n\n" +
"_-_ now has a chance to generate extra loot when defeating enemies\n\n" +
"I'm planning to make further tweaks to this item in future updates."));
changes.addButton( new ChangeButton(new Image(Assets.SPINNER, 144, 0, 16, 16), "Bug Fixes",
"_-_ Fixed several issues with multi-window mode in android 7.0+.\n" +
"_-_ Fixed death by chasm showing incorrectly in the rankings.\n" +
"_-_ Fixed rare crashes caused by falling into pits.\n" +
"_-_ Fixed the resting icon sometimes not appearing while resting.\n" +
"_-_ Fixed flare effects rendering incorrectly on the first frame.\n" +
"_-_ Fixed Evil eyes not visually dieing in rare circumstances.\n" +
"_-_ Fixed the ambitious imp rarely blocking the player's path.\n" +
"_-_ Fixed berserking prematurely ending after loading a save.\n" +
"_-_ Fixed wands always becoming uncursed by upgrades, now has a chance to be uncursed as intended."));
changes.addButton( new ChangeButton(Icons.get(Icons.PREFS), "Technical Improvements",
"_-_ Improvements to pathfinding. Characters are now more prone to take efficient paths to their targets, and will prefer to wait instead of taking an extremely inefficient path.\n\n" +
"_-_ Characters will now more consistently decide who to attack based on distance and who they are being attacked by.\n\n" +
"_-_ Item and enemy spawn randomness is now more consistent.\n" +
"_-_ Google Play Games features now require android 4.0+.\n" +
"_-_ Stepping on plants now stops hero movement.\n" +
"_-_ Improved the inventory icons on some potions and scrolls.\n" +
"_-_ The compass now points to the entrance instead of the exit after the amulet has been acquired."));
changes.addButton( new ChangeButton(Icons.get(Icons.LANGS), "Language Improvements",
"_-_ Fixed a missing capitalization in Prison Guard text.\n" +
"_-_ Fixed a typo that appears when trying to open a locked chest with no key"));
changes = new ChangeInfo("Buffs:", false, null);
changes.hardlight( CharSprite.POSITIVE );
infos.add(changes);
changes.addButton( new ChangeButton( new UnstableSpellbook(),
"The Unstable spellbook wasn't really worth upgrading, so it's getting some new effects to make it worth investing in!\n\n" +
"_-_ Infusing a scroll into the unstable spellbook will now grant a unique empowered effect whenever that scroll's spell is cast from the book.\n\n" +
"To compensate, charge mechanics have been adjusted:\n\n" +
"_-_ Max charges reduced from 3-8 to 2-6\n\n" +
"_-_ Recharge time has been increased slightly" ));
changes.addButton( new ChangeButton( new DriedRose().upgrade(10),
"The ghost hero summoned by the rose is now much more capable and is also much less temporary:\n\n" +
"_-_ Ghost can now be equipped with a weapon and armor and uses them just like the hero\n" +
"_-_ Ghost health increased by 10\n" +
"_-_ Ghost no longer takes damage over time as long as the rose remains equipped\n" +
"_-_ Ghost is now capable of following you between floors\n\n" +
"However:\n\n" +
"_-_ Rose no longer recharges while ghost is summoned\n" +
"_-_ Rose takes 25% longer to fully charge\n" +
"_-_ Ghost no longer gains damage and defense from rose levels, instead gains strength to use better equipment" ));
changes.addButton( new ChangeButton( Icons.get(Icons.BACKPACK), "Inventory",
"_-_ Inventory space increased from 19 slots to 20 slots.\n\n" +
"_-_ Gold indicator has been moved to the top-right of the inventory window to make room for the extra slot." ));
changes = new ChangeInfo("Nerfs:", false, null);
changes.hardlight( CharSprite.NEGATIVE );
infos.add(changes);
changes.addButton( new ChangeButton( new HornOfPlenty(),
"The Horn of Plenty was providing a bit too much value in the earlygame, especially without upgrades:\n\n" +
"_-_ Charge Speed reduced: -20% at +0, scaling to -7.5% at +10\n\n" +
"_-_ Upgrade rate adjusted, Food now contributes towards upgrades exactly in line with how much hunger it restores. This means smaller food items will contribute more, larger ones will contribute less."));
changes.addButton( new ChangeButton( new ItemSprite(ItemSpriteSheet.RING_GARNET, null), new RingOfMight().trueName(),
"The Ring of Might's strength bonus is already extremely valuable, having it also provide an excellent health boost was simply too powerful:\n\n" +
"_-_ Health granted reduced from +5 per upgrade to +3.5% of max hp per upgrade\n\n" +
"This is a massive reduction to its earlygame health boosting power, however as the player levels up this will improve. By hero level 26 it will be as strong as before this change."));
changes.addButton( new ChangeButton( new EtherealChains(),
"The ability for Ethereal Chains to pull you literally anywhere limits design possibilities for future updates, so I've added an important limitation.\n\n" +
"_-_ Ethereal chains now cannot reach locations the player cannot reach by walking or flying. e.g. the chains can no longer reach into a locked room.\n\n" +
"_-_ Ethereal chains can now reach through walls on boss floors, but the above limitation still applies."));
changes = new ChangeInfo("Previous Updates", true,
"_v0.6.0:_\n" +
"_-_ Level creation algorithm completely overhauled!\n" +
"_-_ Sewers are now smaller, caves+ are now larger\n" +
"_-_ Some rooms can now be much larger than before\n" +
"_-_ Added 8 new standard room types,\n" +
"\t\t and loads of new standard room layouts\n" +
"_-_ Balance changes to traps and light sources\n" +
"_-_ All food except rations is more filling\n" +
"_-_ many enchant/glyph balance changes\n" +
"\n"+
"_v0.5.0:_ New visual style, shadows and depth!\n" +
"\n"+
"_v0.4.3:_ Various utility features and improvements\n" +
"_v0.4.2:_ Performance and game engine improvements\n" +
"_v0.4.1:_ Balance adjustments to enemies & armor\n" +
"_v0.4.0:_ Reworked equips, enchants & curses\n" +
"\n" +
"_v0.3.5:_ Reworked Warrior & subclasses\n" +
"_v0.3.4:_ Multiple language support\n" +
"_v0.3.3:_ Support for Google Play Games\n" +
"_v0.3.2:_ Prison Rework & Balance Changes\n" +
"_v0.3.1:_ Traps reworked & UI upgrades\n" +
"_v0.3.0:_ Wands & Mage completely reworked\n" +
"\n" +
"_v0.2.4:_ Small improvements and tweaks\n" +
"_v0.2.3:_ Artifact additions & improvements\n" +
"_v0.2.2:_ Small improvements and tweaks\n" +
"_v0.2.1:_ Sewer improvements\n" +
"_v0.2.0:_ Added artifacts, reworked rings\n" +
"\n" +
"_v0.1.1:_ Added blandfruit, reworked dew vial\n" +
"_v0.1.0:_ Improvements to potions/scrolls");
changes.hardlight( Window.TITLE_COLOR);
infos.add(changes);
Component content = list.content(); Component content = list.content();
content.clear(); content.clear();
float posY; float posY = 0;
for (ChangeInfo info : infos){
info.setRect(0, posY, panel.innerWidth(), 0);
content.add( info );
posY = info.bottom();
}
ChangeInfo changes = new ChangeInfo("Test", 12, "Lorem ipsum dolor sit amet, consectetur " +
"adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." +
" Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip" +
" ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit" +
" esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non" +
" proident, sunt in culpa qui officia deserunt mollit anim id est laborum.");
changes.setRect(0, 0, panel.innerWidth(), 0);
changes.hardlight(Window.TITLE_COLOR);
content.add(changes);
infos.add(changes);
posY = changes.bottom();
content.setSize( panel.innerWidth(), (int)Math.ceil(posY) ); content.setSize( panel.innerWidth(), (int)Math.ceil(posY) );
@ -137,13 +298,17 @@ public class ChangesScene extends PixelScene {
private ArrayList<ChangeButton> buttons = new ArrayList<>(); private ArrayList<ChangeButton> buttons = new ArrayList<>();
public ChangeInfo( String title, int titleSize, String text){ public ChangeInfo( String title, boolean majorTitle, String text){
super(); super();
line = new ColorBlock( 1, 1, 0xFF222222); line = new ColorBlock( 1, 1, 0xFF222222);
add(line); if (majorTitle){
this.title = PixelScene.renderText( title, 9 );
add(line);
} else {
this.title = PixelScene.renderText( title, 6 );
}
this.title = PixelScene.renderText( title, titleSize );
add(this.title); add(this.title);
if (text != null && !text.equals("")){ if (text != null && !text.equals("")){
@ -244,7 +409,7 @@ public class ChangesScene extends PixelScene {
this.icon = icon; this.icon = icon;
add(this.icon); add(this.icon);
this.title = title; this.title = Messages.titleCase(title);
this.message = message; this.message = message;
layout(); layout();