v0.9.4: various refactors and improvements to buff and talent icon code
This commit is contained in:
parent
72275d240d
commit
daa569b4fe
|
@ -27,6 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.ActionIndicator;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIcon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||
import com.watabou.noosa.Image;
|
||||
import com.watabou.noosa.audio.Sample;
|
||||
|
@ -182,7 +183,7 @@ public class Momentum extends Buff implements ActionIndicator.Action {
|
|||
|
||||
@Override
|
||||
public Image getIcon() {
|
||||
Image im = new Image(Assets.Interfaces.BUFFS_LARGE, 144, 32, 16, 16);
|
||||
Image im = new BuffIcon(BuffIndicator.HASTE, true);
|
||||
im.hardlight(0x99992E);
|
||||
return im;
|
||||
}
|
||||
|
|
|
@ -23,9 +23,13 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.hero;
|
|||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Combo;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Fury;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIcon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||
import com.watabou.noosa.Game;
|
||||
import com.watabou.noosa.Image;
|
||||
|
||||
|
@ -70,34 +74,33 @@ public enum HeroSubClass {
|
|||
}
|
||||
}
|
||||
|
||||
//FIXME shouldn't hardcode these, probably want to just have a BuffIcon class
|
||||
public Image icon(){
|
||||
switch (this){
|
||||
case GLADIATOR: default:
|
||||
return new Image(Assets.Interfaces.BUFFS_LARGE, 16, 16, 16, 16);
|
||||
return new BuffIcon(BuffIndicator.COMBO, true);
|
||||
case BERSERKER:
|
||||
return new Image(Assets.Interfaces.BUFFS_LARGE, 32, 16, 16, 16);
|
||||
return new BuffIcon(BuffIndicator.FURY, true);
|
||||
|
||||
case WARLOCK:
|
||||
return new Image(Assets.Interfaces.BUFFS_LARGE, 64, 32, 16, 16);
|
||||
return new BuffIcon(BuffIndicator.CORRUPT, true);
|
||||
case BATTLEMAGE:
|
||||
Image im = new Image(Assets.Interfaces.BUFFS_LARGE, 32, 48, 16, 16);
|
||||
Image im = new BuffIcon(BuffIndicator.UPGRADE, true);
|
||||
im.hardlight(1f, 1f, 0f);
|
||||
return im;
|
||||
|
||||
case ASSASSIN:
|
||||
im = new Image(Assets.Interfaces.BUFFS_LARGE, 160, 32, 16, 16);
|
||||
im = new BuffIcon(BuffIndicator.PREPARATION, true);
|
||||
im.hardlight(1f, 0f, 0f);
|
||||
return im;
|
||||
case FREERUNNER:
|
||||
im = new Image(Assets.Interfaces.BUFFS_LARGE, 48, 48, 16, 16);
|
||||
im = new BuffIcon(BuffIndicator.MOMENTUM, true);
|
||||
im.hardlight(1f, 1f, 0f);
|
||||
return im;
|
||||
|
||||
case SNIPER:
|
||||
return new Image(Assets.Interfaces.BUFFS_LARGE, 176, 16, 16, 16);
|
||||
return new BuffIcon(BuffIndicator.MARK, true);
|
||||
case WARDEN:
|
||||
return new Image(Assets.Interfaces.BUFFS_LARGE, 208, 0, 16, 16);
|
||||
return new BuffIcon(BuffIndicator.BARKSKIN, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.ui;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.watabou.noosa.Image;
|
||||
import com.watabou.noosa.TextureFilm;
|
||||
|
||||
public class BuffIcon extends Image {
|
||||
|
||||
private static TextureFilm smallFilm;
|
||||
private static final int SML_SIZE = 7;
|
||||
|
||||
private static TextureFilm largeFilm;
|
||||
private static final int LRG_SIZE = 16;
|
||||
|
||||
//TODO maybe roll fading behaviour into this too?
|
||||
public BuffIcon(Buff buff, boolean large){
|
||||
this(buff.icon(), large);
|
||||
buff.tintIcon(this);
|
||||
}
|
||||
|
||||
public BuffIcon(int icon, boolean large){
|
||||
super( large ? Assets.Interfaces.BUFFS_LARGE : Assets.Interfaces.BUFFS_SMALL );
|
||||
|
||||
if (large){
|
||||
if (largeFilm == null) largeFilm = new TextureFilm(texture, LRG_SIZE, LRG_SIZE);
|
||||
frame(largeFilm.get(icon));
|
||||
} else {
|
||||
if (smallFilm == null ) smallFilm = new TextureFilm(texture, SML_SIZE, SML_SIZE);
|
||||
frame(smallFilm.get(icon));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -32,8 +32,8 @@ import com.watabou.gltextures.SmartTexture;
|
|||
import com.watabou.gltextures.TextureCache;
|
||||
import com.watabou.noosa.Image;
|
||||
import com.watabou.noosa.TextureFilm;
|
||||
import com.watabou.noosa.audio.Sample;
|
||||
import com.watabou.noosa.tweeners.AlphaTweener;
|
||||
import com.watabou.noosa.ui.Button;
|
||||
import com.watabou.noosa.ui.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -104,10 +104,7 @@ public class BuffIndicator extends Component {
|
|||
|
||||
private static BuffIndicator heroInstance;
|
||||
|
||||
private SmartTexture texture;
|
||||
private TextureFilm film;
|
||||
|
||||
private LinkedHashMap<Buff, BuffIcon> buffIcons = new LinkedHashMap<>();
|
||||
private LinkedHashMap<Buff, BuffButton> buffButtons = new LinkedHashMap<>();
|
||||
private boolean needsRefresh;
|
||||
private Char ch;
|
||||
|
||||
|
@ -128,13 +125,7 @@ public class BuffIndicator extends Component {
|
|||
heroInstance = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createChildren() {
|
||||
texture = TextureCache.get( Assets.Interfaces.BUFFS_SMALL );
|
||||
film = new TextureFilm( texture, SIZE, SIZE );
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public synchronized void update() {
|
||||
super.update();
|
||||
|
@ -155,9 +146,9 @@ public class BuffIndicator extends Component {
|
|||
}
|
||||
|
||||
//remove any icons no longer present
|
||||
for (Buff buff : buffIcons.keySet().toArray(new Buff[0])){
|
||||
for (Buff buff : buffButtons.keySet().toArray(new Buff[0])){
|
||||
if (!newBuffs.contains(buff)){
|
||||
Image icon = buffIcons.get( buff ).icon;
|
||||
Image icon = buffButtons.get( buff ).icon;
|
||||
icon.origin.set( SIZE / 2f );
|
||||
icon.alpha(0.6f);
|
||||
add( icon );
|
||||
|
@ -174,24 +165,24 @@ public class BuffIndicator extends Component {
|
|||
}
|
||||
} );
|
||||
|
||||
buffIcons.get( buff ).destroy();
|
||||
remove(buffIcons.get( buff ));
|
||||
buffIcons.remove( buff );
|
||||
buffButtons.get( buff ).destroy();
|
||||
remove(buffButtons.get( buff ));
|
||||
buffButtons.remove( buff );
|
||||
}
|
||||
}
|
||||
|
||||
//add new icons
|
||||
for (Buff buff : newBuffs) {
|
||||
if (!buffIcons.containsKey(buff)) {
|
||||
BuffIcon icon = new BuffIcon( buff );
|
||||
if (!buffButtons.containsKey(buff)) {
|
||||
BuffButton icon = new BuffButton(buff);
|
||||
add(icon);
|
||||
buffIcons.put( buff, icon );
|
||||
buffButtons.put( buff, icon );
|
||||
}
|
||||
}
|
||||
|
||||
//layout
|
||||
int pos = 0;
|
||||
for (BuffIcon icon : buffIcons.values()){
|
||||
for (BuffButton icon : buffButtons.values()){
|
||||
icon.updateIcon();
|
||||
icon.setRect(x + pos * (SIZE + 2), y, 9, 12);
|
||||
PixelScene.align(icon);
|
||||
|
@ -199,27 +190,28 @@ public class BuffIndicator extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
private class BuffIcon extends Button {
|
||||
private static class BuffButton extends IconButton {
|
||||
|
||||
private Buff buff;
|
||||
|
||||
public Image icon;
|
||||
//Todo maybe move into buff icon?
|
||||
public Image grey;
|
||||
|
||||
public BuffIcon( Buff buff ){
|
||||
super();
|
||||
public BuffButton(Buff buff ){
|
||||
super( new BuffIcon(buff, false));
|
||||
this.buff = buff;
|
||||
|
||||
icon = new Image( texture );
|
||||
icon.frame( film.get( buff.icon() ) );
|
||||
add( icon );
|
||||
bringToFront(grey);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createChildren() {
|
||||
super.createChildren();
|
||||
grey = new Image( TextureCache.createSolid(0xCC666666));
|
||||
add( grey );
|
||||
}
|
||||
|
||||
|
||||
public void updateIcon(){
|
||||
icon.frame( film.get( buff.icon() ) );
|
||||
buff.tintIcon(icon);
|
||||
//round up to the nearest pixel if <50% faded, otherwise round down
|
||||
float fadeHeight = buff.iconFadePercent() * icon.height();
|
||||
|
@ -234,14 +226,24 @@ public class BuffIndicator extends Component {
|
|||
@Override
|
||||
protected void layout() {
|
||||
super.layout();
|
||||
grey.x = icon.x = this.x+1;
|
||||
grey.y = icon.y = this.y+2;
|
||||
grey.x = icon.x = this.x + 1;
|
||||
grey.y = icon.y = this.y + 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onClick() {
|
||||
if (buff.icon() != NONE)
|
||||
GameScene.show(new WndInfoBuff(buff));
|
||||
if (buff.icon() != NONE) GameScene.show(new WndInfoBuff(buff));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPointerDown() {
|
||||
//don't affect buff color
|
||||
Sample.INSTANCE.play( Assets.Sounds.CLICK );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPointerUp() {
|
||||
//don't affect buff color
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -44,15 +44,12 @@ public class TalentButton extends Button {
|
|||
public static final int WIDTH = 20;
|
||||
public static final int HEIGHT = 26;
|
||||
|
||||
private SmartTexture icons;
|
||||
private TextureFilm film;
|
||||
|
||||
int tier;
|
||||
Talent talent;
|
||||
int pointsInTalent;
|
||||
boolean upgradeEnabled;
|
||||
|
||||
Image icon;
|
||||
TalentIcon icon;
|
||||
Image bg;
|
||||
|
||||
ColorBlock fill;
|
||||
|
@ -67,24 +64,20 @@ public class TalentButton extends Button {
|
|||
this.upgradeEnabled = upgradeEnabled;
|
||||
|
||||
bg.frame(20*(talent.maxPoints()-1), 0, WIDTH, HEIGHT);
|
||||
icon.frame( film.get( talent.icon() ) );
|
||||
|
||||
icon = new TalentIcon( talent );
|
||||
add(icon);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createChildren() {
|
||||
super.createChildren();
|
||||
|
||||
icons = TextureCache.get( Assets.Interfaces.TALENT_ICONS );
|
||||
film = new TextureFilm( icons, 16, 16 );
|
||||
|
||||
fill = new ColorBlock(0, 4, 0xFFFFFF44);
|
||||
add(fill);
|
||||
|
||||
bg = new Image(Assets.Interfaces.TALENT_BUTTON);
|
||||
add(bg);
|
||||
|
||||
icon = new Image( icons );
|
||||
add(icon);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.ui;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
|
||||
import com.watabou.noosa.Image;
|
||||
import com.watabou.noosa.TextureFilm;
|
||||
|
||||
public class TalentIcon extends Image {
|
||||
|
||||
private static TextureFilm film;
|
||||
private static final int SIZE = 16;
|
||||
|
||||
public TalentIcon(Talent talent){
|
||||
this(talent.icon());
|
||||
}
|
||||
|
||||
public TalentIcon(int icon){
|
||||
super( Assets.Interfaces.TALENT_ICONS );
|
||||
|
||||
if (film == null) film = new TextureFilm(texture, SIZE, SIZE);
|
||||
|
||||
frame(film.get(icon));
|
||||
}
|
||||
|
||||
}
|
|
@ -55,6 +55,8 @@ 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;
|
||||
|
@ -312,7 +314,7 @@ public class v0_6_X_Changes {
|
|||
changes.hardlight( CharSprite.NEGATIVE );
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton( new ChangeButton(new Image(Assets.Interfaces.BUFFS_LARGE, 64, 0, 16, 16), "Paralysis 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" +
|
||||
|
@ -395,7 +397,7 @@ public class v0_6_X_Changes {
|
|||
changes.hardlight( CharSprite.WARNING );
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton( new ChangeButton(new Image(Assets.Interfaces.BUFFS_LARGE, 32, 0, 16, 16), "Changes to debuffs and resistances",
|
||||
changes.addButton( new ChangeButton(new BuffIcon(BuffIndicator.FIRE, true), "Changes to debuffs and resistances",
|
||||
"The game's resistance system has been totally overhauled, to allow for more flexibility and consistency.\n\n" +
|
||||
"Previously, if a character was resistant to something, its effect would be reduced by a random amount between 0% and 100%.\n\n" +
|
||||
"Now, resistances are much less random, applying a specific reduction to harmful effects. Currently all resistances are 50%.\n\n" +
|
||||
|
|
|
@ -54,6 +54,8 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ShamanSprite;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SpawnerSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.StatueSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.YogSprite;
|
||||
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;
|
||||
|
@ -283,7 +285,7 @@ public class v0_8_X_Changes {
|
|||
"_-_ Some misc sounds have also been added for: gas spewing, chains being thrown, magical effects charging up, and the player being hit to low health.\n\n" +
|
||||
"I've also remastered the title and ending music tracks to improve their quality and volume."));
|
||||
|
||||
changes.addButton( new ChangeButton(new Image(Assets.Interfaces.BUFFS_LARGE, 0, 0, 16, 16), "Item and Buff Icons",
|
||||
changes.addButton( new ChangeButton(new BuffIcon(BuffIndicator.MIND_VISION, true), "Item and Buff Icons",
|
||||
"_Buff icons now have a new fading behaviour_ that much more accurately communicates how much of their duration is left. Several duplicated buff icons have also been recolored so they are distinct.\n\n" +
|
||||
"_Item icons have been added to rings!_ To accommodate this, item icons now appear in the top-right of an item's inventory slot. Several existing item icons have also been improved."));
|
||||
|
||||
|
@ -682,7 +684,7 @@ public class v0_8_X_Changes {
|
|||
"_-_ Doubled corruption resistance reduction from debuffs, as it was 50% weaker than intended. It is now as strong as listed in 0.7.5 changelog (50% for major debuffs, 25% for minor)\n\n" +
|
||||
"Additionally, corruption is getting access to two of the new debuffs added in 0.8.0: _Hex,_ and _Weakness._"));
|
||||
|
||||
changes.addButton( new ChangeButton(new Image(Assets.Interfaces.BUFFS_LARGE, 80, 32, 16, 16), "Bless changes",
|
||||
changes.addButton( new ChangeButton(new BuffIcon(BuffIndicator.BLESS, true), "Bless changes",
|
||||
"Accuracy and evasion bonuses from blessed buff increased to 25% from 20%." ));
|
||||
|
||||
changes.addButton( new ChangeButton(new StoneOfAugmentation(),
|
||||
|
|
|
@ -42,6 +42,7 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SpawnerSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SpinnerSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.TalentIcon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
|
||||
import com.watabou.noosa.Image;
|
||||
|
||||
|
@ -401,7 +402,7 @@ public class v0_9_X_Changes {
|
|||
"_-_ Rather than having a 1/8 chance per enemy, the game now guarantees that every 8th enemy is a champion. This should make champion spawn rates much more consistent.\n" +
|
||||
"_-_ Removed champion enemy caps, no longer needed now that spawning is more consistent."));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Interfaces.TALENT_ICONS, 80, 16, 16, 16), "On-Upgrade Talents",
|
||||
changes.addButton(new ChangeButton(new TalentIcon(Talent.ENERGIZING_UPGRADE), "On-Upgrade Talents",
|
||||
"T2 talents are doing very well overall, but I'm handing out a buff to each on-upgrade talent as they're a bit weak and aren't picked often:\n\n" +
|
||||
"_- Energizing Upgrade_ staff charges increased to 2/3 at +1/+2, up from 1/2 at +1/+2.\n" +
|
||||
"_- Mystical Upgrade_ cloak of shadows charges increased to 2/3 at +1/+2, up from 1/2 at +1/+2."));
|
||||
|
@ -420,7 +421,7 @@ public class v0_9_X_Changes {
|
|||
"_- the Chalice of Blood_ now grants more HP per turn with artifact charging based on its level, instead of based on dungeon depth.\n" +
|
||||
"_-_ This scaling occurs in the same way as how the chalice scales up health regen. The max heal per turn is unchanged at 5."));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image(Assets.Interfaces.TALENT_ICONS, 48, 48, 16, 16), "Nature's Aid",
|
||||
changes.addButton(new ChangeButton(new TalentIcon(Talent.NATURES_AID), "Nature's Aid",
|
||||
"I'm nudging nature's down slightly as it is currently the strongest T1 talent by a fair margin:\n\n" +
|
||||
"_- Nature's Aid_ turns of barkskin reduced to 3/5 at +1/+2, from 4/6 at +1/+2."));
|
||||
|
||||
|
@ -566,7 +567,7 @@ public class v0_9_X_Changes {
|
|||
changes.hardlight(CharSprite.NEGATIVE);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton( new ChangeButton( new Image(Assets.Interfaces.TALENT_ICONS, 0, 0, 16, 16), Talent.HEARTY_MEAL.title(),
|
||||
changes.addButton( new ChangeButton( new TalentIcon(Talent.HEARTY_MEAL), Talent.HEARTY_MEAL.title(),
|
||||
"_Hearty Meal_ is currently the strongest tier one talent in the game, so I'm deepening the missing health requirement slightly to make its power a bit harder to access:\n\n" +
|
||||
"_-_ Now grants 2/3 healing when hero is below 50% health, down from 3/5\n" +
|
||||
"_-_ The full 3/5 heal is still available if the hero is below 25% health"));
|
||||
|
|
|
@ -31,6 +31,7 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIcon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.IconButton;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
|
||||
|
@ -200,9 +201,6 @@ public class WndHero extends WndTabbed {
|
|||
private class BuffsTab extends Component {
|
||||
|
||||
private static final int GAP = 2;
|
||||
|
||||
private SmartTexture icons;
|
||||
private TextureFilm film;
|
||||
|
||||
private float pos;
|
||||
private ScrollPane buffList;
|
||||
|
@ -210,8 +208,6 @@ public class WndHero extends WndTabbed {
|
|||
|
||||
@Override
|
||||
protected void createChildren() {
|
||||
icons = TextureCache.get( Assets.Interfaces.BUFFS_LARGE );
|
||||
film = new TextureFilm( icons, 16, 16 );
|
||||
|
||||
super.createChildren();
|
||||
|
||||
|
@ -260,11 +256,8 @@ public class WndHero extends WndTabbed {
|
|||
public BuffSlot( Buff buff ){
|
||||
super();
|
||||
this.buff = buff;
|
||||
int index = buff.icon();
|
||||
|
||||
icon = new Image( icons );
|
||||
icon.frame( film.get( index ) );
|
||||
buff.tintIcon(icon);
|
||||
icon = new BuffIcon(buff, true);
|
||||
icon.y = this.y;
|
||||
add( icon );
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIcon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
|
||||
import com.watabou.gltextures.SmartTexture;
|
||||
|
@ -38,20 +39,12 @@ public class WndInfoBuff extends Window {
|
|||
|
||||
private static final int WIDTH = 120;
|
||||
|
||||
private SmartTexture icons;
|
||||
private TextureFilm film;
|
||||
|
||||
public WndInfoBuff(Buff buff){
|
||||
super();
|
||||
|
||||
IconTitle titlebar = new IconTitle();
|
||||
|
||||
icons = TextureCache.get( Assets.Interfaces.BUFFS_LARGE );
|
||||
film = new TextureFilm( icons, 16, 16 );
|
||||
|
||||
Image buffIcon = new Image( icons );
|
||||
buffIcon.frame( film.get(buff.icon()) );
|
||||
buff.tintIcon(buffIcon);
|
||||
Image buffIcon = new BuffIcon( buff, true );
|
||||
|
||||
titlebar.icon( buffIcon );
|
||||
titlebar.label( Messages.titleCase(buff.toString()), Window.TITLE_COLOR );
|
||||
|
|
|
@ -21,18 +21,14 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.windows;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.TalentIcon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
|
||||
import com.watabou.gltextures.SmartTexture;
|
||||
import com.watabou.gltextures.TextureCache;
|
||||
import com.watabou.noosa.Image;
|
||||
import com.watabou.noosa.TextureFilm;
|
||||
import com.watabou.utils.Callback;
|
||||
|
||||
public class WndInfoTalent extends Window {
|
||||
|
@ -41,21 +37,12 @@ public class WndInfoTalent extends Window {
|
|||
|
||||
private static final int WIDTH = 120;
|
||||
|
||||
private SmartTexture icons;
|
||||
private TextureFilm film;
|
||||
|
||||
public WndInfoTalent(Talent talent, int points, Callback onUpgradeButton){
|
||||
super();
|
||||
|
||||
IconTitle titlebar = new IconTitle();
|
||||
|
||||
icons = TextureCache.get( Assets.Interfaces.TALENT_ICONS );
|
||||
film = new TextureFilm( icons, 16, 16 );
|
||||
|
||||
Image buffIcon = new Image( icons );
|
||||
buffIcon.frame( film.get(talent.icon()) );
|
||||
|
||||
titlebar.icon( buffIcon );
|
||||
titlebar.icon( new TalentIcon( talent ) );
|
||||
String title = Messages.titleCase(talent.title());
|
||||
if (points > 0){
|
||||
title += " +" + points;
|
||||
|
@ -86,7 +73,6 @@ public class WndInfoTalent extends Window {
|
|||
resize( WIDTH, (int)upgrade.bottom()+1 );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user