gt: 		changes.hardlight( CharSprite.WARNING );
context: /*
   * Pixel Dungeon
   * Copyright (C) 2012-2015 Oleg Dolya
   *
   * Shattered Pixel Dungeon
   * Copyright (C) 2014-2021 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.Assets;
  import com.shatteredpixel.shatteredpixeldungeon.Badges;
  import com.shatteredpixel.shatteredpixeldungeon.effects.BadgeBanner;
  import com.shatteredpixel.shatteredpixeldungeon.items.Torch;
  import com.shatteredpixel.shatteredpixeldungeon.items.armor.curses.Bulk;
  import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CloakOfShadows;
  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.TalismanOfForesight;
  import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TimekeepersHourglass;
  import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.UnstableSpellbook;
  import com.shatteredpixel.shatteredpixeldungeon.items.food.Food;
  import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
  import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfElements;
  import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfEnergy;
  import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfEvasion;
  import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfMight;
  import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfSharpshooting;
  import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfWealth;
  import com.shatteredpixel.shatteredpixeldungeon.items.stones.StoneOfAugmentation;
  import com.shatteredpixel.shatteredpixeldungeon.items.stones.StoneOfEnchantment;
  import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfCorrosion;
  import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfCorruption;
  import com.shatteredpixel.shatteredpixeldungeon.items.weapon.curses.Wayward;
  import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Lucky;
  import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Dagger;
  import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Flail;
  import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Greataxe;
  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.ui.BuffIcon;
  import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
  import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
  import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
  import com.watabou.noosa.Image;
  
  import java.util.ArrayList;
  
  public class v0_6_X_Changes {
  	
  	public static void addAllChanges( ArrayList<ChangeInfo> changeInfos ){
  		add_v0_6_5_Changes(changeInfos);
  		add_v0_6_4_Changes(changeInfos);
  		add_v0_6_3_Changes(changeInfos);
  		add_v0_6_2_Changes(changeInfos);
  		add_v0_6_1_Changes(changeInfos);
  		add_v0_6_0_Changes(changeInfos);
  	}
  	
  	public static void add_v0_6_5_Changes( ArrayList<ChangeInfo> changeInfos ){
  		ChangeInfo changes = new ChangeInfo("v0.6.5", 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 May 3rd, 2018\n" +
  				"_-_ 32 days after Shattered v0.6.4\n" +
  				"\n" +
  				"v0.6.5 was the third major design iteration for glyphs, with the first being from Pixel Dungeon and the second from v0.4.0. In both of these earlier iterations glyphs had big trade-offs, which led many players to dislike or outright ignore them. I finally just decided to make them like enchantments. With that, plus the new augmentation functionality, armor finally had some of the variability in stats and effects that weapons had, though adding full blown armor types is still a common suggestion.\n" +
  				"\n" +
  				"I also made another attempt at designing the Berserker in v0.6.5. Prior to this update his death-defying rage would always trigger if it was available. That built-in safety net translated to a win rate that was hugely higher than the other subclasses, so I decided to make building rage and cheating death much harder to access. The Berserker retained his simple up-front gameplay, but started requiring investment in armor and rage management to access his power."));
  		
  		changes.addButton( new ChangeButton(new StoneOfAugmentation(),
  				"The weightstone is now the runestone of augmentation!\n\n" +
  				"Usability on weapons unchanged, can still be used to enhance either speed or damage at the cost of the other.\n\n" +
  				"Can now be used on armor! Armor can be modified to enhance either defense or evasion, at the cost of the other.\n\n" +
  				"Every shop now stocks a runestone of augmentation and an ankh, instead of one or the other."));
  		
  		changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.ARMOR_CLOTH, new Bulk().glowing()), "New Curses",
  				"Added 4 new curses:\n\n" +
  				"_-_ Friendly curse makes weapons sometimes charm both you and the enemy.\n" +
  				"_-_ Elastic curse lets weapons apply knockback, but reduces damage to 0.\n\n" +
  				"_-_ Bulk curse makes armor large, slowing movement through doorways.\n" +
  				"_-_ Overgrowth curse causes random plant effects when you are struck."));
  		
  		changes.addButton( new ChangeButton(BadgeBanner.image(Badges.Badge.CHAMPION_3.image), "New and Changed Badges",
  				"_-_ Added badges for winning with 3 challenges at once and 6 challenges at once.\n\n" +
  				"_-_ 'Death by glyph' badge is now 'death by deferred damage'.\n\n" +
  				"_-_ Removed rare monster slayer badge."));
  		
  		changes.addButton( new ChangeButton(new Image(Assets.Sprites.WARRIOR, 0, 90, 12, 15), "Berserker",
  				"Even with recent nerfs the berserker is still much stronger than other subclasses. Rather than continually nerfing his existing mechanics, which makes the subclass unfun, I have instead opted to give him a small rework.\n\n" +
  				"These changes focus on giving the berserker some of his old power back, but making it more difficult to access that power.\n\n" +
  				"_-_ Rage is built by taking physical damage\n" +
  				"_-_ Rage fades over time, lasts longer at low HP\n" +
  				"_-_ Rage builds faster with better armor\n" +
  				"_-_ Rage grants bonus damage, max of +50%\n" +
  				"_-_ Berserker now needs full rage to berserk\n" +
  				"_-_ Berserking no longer reduces max hp\n" +
  				"_-_ Berserk bonus shielding doubled\n" +
  				"_-_ Berserk bonus damage reduced to +50%\n" +
  				"_-_ Removed exhaustion damage penalty\n" +
  				"_-_ Berserker can't gain rage while recovering"));
  		
  		changes = new ChangeInfo(Messages.get(ChangesScene.class, "changes"), false, null);
  		changes.hardlight( CharSprite.WARNING );
  		changeInfos.add(changes);
  		
  		changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.STYLUS, null), "Glyph Changes",
  				"Glyphs were originally designed with the intention that taking no glyph should be a valid option. Now with augmenting armor, glyphs can be more about added bonuses, somewhat like enchantments. Several glyphs have been adjusted:\n\n" +
  				"_-_ Entanglement now only roots if you stand still.\n\n" +
  				"_-_ Potential no longer self-damages and grants charge more consistently.\n\n" +
  				"_-_ Viscocity now always defers some damage, instead of sometimes deferring all damage.\n\n" +
  				"_-_ Stone reworked. Now sets evasion to 0 and grants armor in proportion to evasion.\n\n" +
  				"_-_ Swiftness reworked. Now grants movement speed when no enemies are near.\n\n" +
  				"_-_ Viscocity is now a common glyph, Stone is now uncommon."));
  		
  		changes.addButton( new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
  				"_-_ All bags now have 20 spaces. Previously only the default bag had 20, and the others had 12.\n\n" +
  				"_-_ Updated the sprites for runestones and throwing stones\n\n" +
  				"_-_ Loading screen transitions are now faster in many cases\n\n" +
  				"_-_ Improved the layout of translator credits in landscape"));
  		
  		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" +
  				"_-_ Antimagic applying to elemental damage\n" +
  				"_-_ 'Happy end' badge not appearing in rankings\n" +
  				"_-_ 'Death from falling' badge not triggering\n" +
  				"_-_ Hero rarely appearing alive when dead\n" +
  				"_-_ Sungrass not interrupting resting at full hp\n" +
  				"_-_ Timekeeper's hourglass unusable at 1 charge\n" +
  				"_-_ Artifacts rarely appearing when blocked by a challenge\n" +
  				"_-_ Hero spending a turn before actually opening a lock\n" +
  				"_-_ Specific cases where an invisible hero would not surprise attack\n" +
  				"_-_ Shields granting full defense when hero does not have enough strength\n" +
  				"_-_ Piranha incorrectly being affect by vertigo\n" +
  				"_-_ Ambitious imp spawning on top of traps\n" +
  				"_-_ Enemies spawning faster than intended in specific cases"));
  		
  		changes.addButton( new ChangeButton(Icons.get(Icons.LANGS), Messages.get(ChangesScene.class, "language"),
  				"Updated Translations"));
  		
  		changes = new ChangeInfo(Messages.get(ChangesScene.class, "buffs"), false, null);
  		changes.hardlight( CharSprite.POSITIVE );
  		changeInfos.add(changes);
  		
  		changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.SWORD, new Lucky().glowing()), "Lucky Enchantment",
  				"The Lucky enchant is a nice overall DPS increase, but comes at the cost of consistency. The problem is that with a bit of bad luck it's possible to do 0x damage many times in a row.\n\n" +
  				"Lucky has been adjusted to reign in the extremes of bad luck, and to give a little more strategy to using it.\n\n" +
  				"_-_ Base chance to deal 2x damage reduced to 50% from 60%\n" +
  				"_-_ Each time 0x damage is dealt, the next hit will be much more likely to deal 2x damage"));
  		
  		changes.addButton( new ChangeButton(new Image(Assets.Sprites.MAGE, 0, 90, 12, 15), "Warlock",
  				"Soul mark chance changed. Now has a 10% chance to activate per wand level, stacking multiplicatively, with a base of 10% at +0.\n" +
  				"e.g. +0 is 10%, +1 is 19%, +2 is 27%, etc.\n\n" +
  				"Previous soul mark chance was 9% at base plus 6% per level, stacking linearly.\n\n" +
  				"This substantially increases soul mark chance at wand levels +1 to +5"));
  		
  		changes.addButton( new ChangeButton( new Image(Assets.Sprites.HUNTRESS, 0, 15, 12, 15), "Huntress",
  				"Huntress ranged weapon durability boost now stacks with magical holster durability boost, for a total of 180% durability."));
  		
  		changes = new ChangeInfo(Messages.get(ChangesScene.class, "nerfs"), false, null);
  		changes.hardlight( CharSprite.NEGATIVE );
  		changeInfos.add(changes);
  		
  		changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.SHORTSWORD, new Wayward().glowing()), "Wayward curse",
  				"Wayward's accuracy penalty was very extreme, often making it impossible to win fights without doors. Wayward should punish non-guaranteed attacks, but this extent of this has been lessened.\n\n" +
  				"_-_ Reduced wayward accuracy penalty by 50%"));
  		
  		changes.addButton( new ChangeButton(new Image(Assets.Sprites.SKELETON, 0, 0, 12, 15), "Skeletons",
  				"Skeletons have been adjusted to be more counterable with armor, and to give less inventory-clogging loot.\n\n" +
  				"_-_ Bone explosion damage up to 6-12 from 2-10\n" +
  				"_-_ Armor is now 2x effective against bone explosion, up from 0.5x\n\n" +
  				"_-_ Loot drop chance reduced to 1/8, from 1/5"));
  		
  		changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.KIT, null), "Rogue Garb and Huntress Cloak",
  				"Eventually I want to totally overhaul class armors. In the meantime though, two of the armors are disproportionately powerful with mind vision, and need to be adjusted:\n\n" +
  				"_-_ Rogue's smoke bomb now has a max range of 8 and does not go through walls\n\n" +
  				"_-_ Huntress's spectral blades now have a max range of 12"));
  	}
  	
  	public static void add_v0_6_4_Changes( ArrayList<ChangeInfo> changeInfos ){
  		ChangeInfo changes = new ChangeInfo("v0.6.4", 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 April 1st, 2018\n" +
  				"_-_ 46 days after Shattered v0.6.3\n" +
  				"\n" +
  				"v0.6.4 was a smaller update, mostly focused on additions and fixes following v0.6.3. Probably the most interesting content that came in v0.6.4 was the crossbow! This weapon was an attempt to fulfill the common request for an ammo-based ranged weapon, without actually having an ammo system in the game. I felt that an ammo system would be more cumbersome than it would be worth. Letting darts piggyback on an equipped weapon seemed like a great compromise.\n" +
  				"\n" +
  				"I also made some important changes to challenges in v0.6.4, primarily to make stacked challenge games a bit easier. This made high-challenge games more feasible without extreme luck, which led to a big increase in challenge interest among highly skilled players."));
  		
  		changes.addButton( new ChangeButton(Icons.get(Icons.CHALLENGE_ON), "Challenges",
  				"Challenges have received several major changes, with the goal of making them more fair and interesting.\n" +
  				"\n" +
  				"_-_ Challenges now have descriptions\n" +
  				"\n" +
  				"_-_ On diet now provides small rations, rather than removing all food\n" +
  				"_-_ Cloth armor is now allowed on faith is my armor\n" +
  				"_-_ Pharmacophobia is unchanged\n" +
  				"_-_ Barren land now allows seeds to drop, but they cannot be planted\n" +
  				"_-_ Swarm intelligence now draws nearby enemies, not all enemies\n" +
  				"_-_ Into darkness now limits light more harshly, but provides torches\n" +
  				"_-_ Forbidden runes now removes 50% of upgrade scrolls, and no other scrolls"));
  		
  		changes.addButton( new ChangeButton(Icons.get(Icons.INFO), "Start game UI",
  				"The interface for starting and loading a game has been completely overhauled!\n" +
  				"\n" +
  				"_-_ Game now supports 4 save slots of any hero class, rather than 1 slot per class\n" +
  				"_-_ Hero select and challenge select are now more streamlined and informative\n" +
  				"_-_ Hero select is now a window, offering more flexibility of where games can be started\n" +
  				"_-_ More details are now shown for games in progress before they are loaded"));
  		
  		changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.CROSSBOW, null), "New Weapons",
  				"Three new weapons have been added!\n" +
  				"\n" +
  				"Throwing spears are a basic tier 3 missile weapon, fishing spears have been reduced to tier 2. Tiers 2-5 now each have a basic missile weapon.\n" +
  				"\n" +
  				"The crossbow is a tier 4 melee weapon which enhances darts! You'll do less damage up-front, but thrown darts will pack a punch!\n" +
  				"\n" +
  				"The gauntlet is a tier 5 fast melee weapon, similar to the sai. Excellent for chaining combos or enchantments."));
  		
  		changes = new ChangeInfo(Messages.get(ChangesScene.class, "changes"), false, null);
  		changes.hardlight( CharSprite.WARNING );
  		changeInfos.add(changes);
  		
  		changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.HOLSTER, null), "Inventory changes",
  				"Since the ranged weapon improvements in 0.6.3, inventory space has become a bit too congested. Rather than make a small change that only helps the issue for a few more updates, I have decided to make a larger-scale adjustment to available inventory space:\n" +
  				"\n" +
  				"_-_ The wand holster is now the magical holster, and can store missile weapons as well as wands.\n" +
  				"\n" +
  				"_-_ The seed pouch is now the velvet pouch, and can store runestones as well as seeds.\n" +
  				"\n" +
  				"_-_ Every hero now starts the game with an extra container."));
  		
  		changes.addButton( new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
  				"_-_ It is now possible to back up game data using ADB backup on android 4.0+ and android auto-backup on android 6.0+. Runs in progress are not backed up to prevent cheating.\n" +
  				"\n" +
  				"_-_ Firebloom plants will no longer appear in garden rooms. Accidentally running into them is massively more harmful than any other plant.\n" +
  				"\n" +
  				"_-_ Mage and Warrior tutorial functionality has been removed, as more players found it confusing than helpful.\n" +
  				"\n" +
  				"_-_ Added a new visual effect to the loading screen\n" +
  				"\n" +
  				"_-_ Piranha treasure rooms now have a one tile wide buffer\n" +
  				"\n" +
  				"_-_ Bags are now unsellable\n" +
  				"\n" +
  				"_-_ The dwarf king is now immune to blindness\n" +
  				"\n" +
  				"_-_ Made adjustments to sending gameplay data. Data use should be slightly reduced."));
  		
  		changes.addButton( new ChangeButton(new Image(Assets.Sprites.SPINNER, 144, 0, 16, 16), Messages.get(ChangesScene.class, "bugfixes"),
  				"Fixed:\n" +
  				"_-_ Crashes involving corrupted mimics\n" +
  				"_-_ Various rare crash bugs\n" +
  				"_-_ Various minor visual bugs\n" +
  				"_-_ Skeletons exploding when falling in chasms\n" +
  				"_-_ Thrown weapons lost when used on sheep\n" +
  				"_-_ Warden gaining benefits from rotberry bush\n" +
  				"_-_ Rare cases where music wouldn't play\n" +
  				"_-_ Unstable enchant not being able to activate venom"));
  		
  		changes.addButton( new ChangeButton(Icons.get(Icons.LANGS), Messages.get(ChangesScene.class, "language"),
  				"Updated Translations"));
  		
  		changes = new ChangeInfo(Messages.get(ChangesScene.class, "buffs"), false, null);
  		changes.hardlight( CharSprite.POSITIVE );
  		changeInfos.add(changes);
  		
  		changes.addButton( new ChangeButton(new TimekeepersHourglass(),
  				"The timekeeper's hourglass has been adjusted to cap at 10 charges, instead of 20, and to have a bit more power without upgrades:\n" +
  				"\n" +
  				"_-_ Number of charges halved\n" +
  				"_-_ 2x freeze duration per charge\n" +
  				"_-_ 5x stasis duration per charge\n" +
  				"_-_ Overall recharge speed increased at +0, unchanged at +10"));
  		
  		changes.addButton( new ChangeButton(new TalismanOfForesight(),
  				"The talisman of foresight now builds power for scrying slightly faster\n" +
  				"\n" +
  				"_-_ Charge speed increased by 20% at +0, scaling to 50% increased at +10\n" +
  				"_-_ Charge gain when discovering traps unchanged"));
  		
  		changes = new ChangeInfo(Messages.get(ChangesScene.class, "nerfs"), false, null);
  		changes.hardlight( CharSprite.NEGATIVE );
  		changeInfos.add(changes);
  		
  		changes.addButton( new ChangeButton(new BuffIcon(BuffIndicator.PARALYSIS, true), "Paralysis changes",
  				"Paralysis is an extremely powerful debuff, and its ability to completely immobilize the player or an enemy while they are killed needs to be adjusted.\n" +
  				"\n" +
  				"Chance to resist paralysis is now based on all recent damage taken while paralyzed, instead of each specific instance of damage separately.\n" +
  				"\n" +
  				"This means that after taking around half current HP in damage, breaking from paralysis becomes very likely, and immediately re-applying paralysis will not reset this resist chance."));
  		
  		changes.addButton( new ChangeButton(new Image(Assets.Environment.TILES_SEWERS, 48, 48, 16, 16), "Chasm changes",
  				"Dropping enemies into chasms is a very fun way to deal with enemies, but killing an enemy instantly and getting almost the full reward is simply too strong. This change should keep killing via chasms fun and useful, without it being as strong.\n" +
  				"\n" +
  				"_-_ Enemies killed via chasms now only award 50% exp"));
  		
  		changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.SEED_SUNGRASS, null), "Seed adjustments",
  				"Sungrass is almost as effective as a potion of healing when used properly, which is extremely strong for a seed. I am increasing the time it takes to heal, so that hunger and combat while waiting can add some cost to the otherwise very powerful healing sungrass provides.\n" +
  				"\n" +
  				"_-_ Sungrass now grants healing significantly more slowly, scaling to ~40% speed at high levels\n" +
  				"_-_ Taking damage no longer reduces sungrass healing\n" +
  				"_-_ Sungrass healing no longer dissapears at full HP\n" +
  				"\n" +
  				"Earthroot is also problematic, as its 50% damage resist makes it an extremely potent tool against bosses, yet not so useful against regular enemies. My hope is that this change levels its power out over both situations.\n" +
  				"\n" +
  				"_-_ Earthroot now blocks up to a certain amount of damage, based on depth, rather than 50% damage"));
  		
  		changes.addButton( new ChangeButton( new ItemSprite(ItemSpriteSheet.POTION_CRIMSON, null), new PotionOfHealing().trueName(),
  				"Heal potion drops have had their RNG bounded in shattered for a long time, but this bound was always fairly lax. This meant that people who wanted to slowly farm for potions could still amass large numbers of them. I have decided to reign this in more harshly.\n" +
  				"\n" +
  				"_-_ Health potion drops now lower in probability more quickly after potions have already been dropped from a given enemy type\n" +
  				"\n" +
  				"This change should not seriously affect the average player, but does make hoarding health potions much less feasible."));
  	}
  	
  	public static void add_v0_6_3_Changes( ArrayList<ChangeInfo> changeInfos ){
  		ChangeInfo changes = new ChangeInfo("v0.6.3", 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 February 14th, 2018\n" +
  				"_-_ 113 days after Shattered v0.6.2\n" +
  				"\n" +
  				"Prior to v0.6.3 thrown weapons broke on a single hit each and so weren't useful for much. I didn't want to just amp up their quantity though, as players would just horde them and use them against bosses. By lowering quantity but also giving thrown weapons durability, I was able to make them much more useful without making hoarding problematic.\n" +
  				"\n" +
  				"v0.6.3 is also an excellent case for why I run betas for every Shattered update. In the original beta for v0.6.3 thrown weapons were seriously overpowered, and threatened to make regular weapons pointless. I ended up significantly reducing their stats and quantity before the full release.\n" +
  				"\n" +
  				"This update also demonstrates Shattered's ever-increasing scope and update size. Despite reworking a whole category of items, I ended up just calling this a minor update."));
  		
  		changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.TRIDENT, null), "Ranged Weapons Overhaul!",
  				"Ranged weapons have been completely overhauled!\n\n" +
  				"_-_ Quantity of ranged weapons decreased, however most ranged weapons now last for several uses before breaking.\n\n" +
  				"_-_ Ranged weapon effectiveness increased significantly.\n\n" +
  				"_-_ Ranged weapons are now dropped in more situations, and do not replace melee weapons.\n\n" +
  				"_-_ Existing ranged weapons reworked, 5 new ranged weapons added.\n\n" +
  				"_-_ Warrior now starts with throwing stones, rogue starts with throwing knives"));
  		
  		changes.addButton( new ChangeButton( new Image(Assets.Sprites.HUNTRESS, 0, 15, 12, 15), "Huntress",
  				"Huntress adjusted due to ranged weapon changes (note that this is not a full class rework):\n\n" +
  				"_-_ Huntress no longer has a chance to reclaim a single ranged weapon.\n\n" +
  				"_-_ Missile weapons now have 50% greater durability when used by the huntress.\n\n" +
  				"_-_ Boomerang dmg increased to 1-6 from 1-5\n" +
  				"_-_ Boomerang str req reduced to 9 from 10\n" +
  				"_-_ Knuckleduster dmg reduced to 1-5 from 1-6"));
  		
  		changes.addButton( new ChangeButton( new ItemSprite(ItemSpriteSheet.CHILLING_DART, null), "Expanded Alchemy",
  				"It is now possible to use alchemy to tip darts!\n\n" +
  				"_-_ Every seed (except blandfruit) can now be combined with two darts to make two tipped darts.\n\n" +
  				"_-_ Tipped dart effects are similar to their potion/seed counterparts.\n\n" +
  				"_-_ Curare darts are now paralytic darts, and paralyze for 5 turns, up from 3\n\n" +
  				"_-_ Alchemy interface now features a recipes button to show you what you can create."));
  		
  		changes.addButton( new ChangeButton( new ItemSprite(ItemSpriteSheet.RING_TOPAZ, null), Messages.get(RingOfSharpshooting.class, "name"),
  				"Ring of Sharpshooting overhauled\n\n" +
  				"_-_ No longer grants bonus accuracy\n\n" +
  				"_-_ Now increases ranged weapon durability, instead of giving a chance to not consume them\n\n" +
  				"_-_ Now increases ranged weapon damage, scaling based on the weapon's initial damage."));
  		
  		changes = new ChangeInfo(Messages.get(ChangesScene.class, "changes"), false, null);
  