diff --git a/core/src/main/assets/interfaces/hero_icons.png b/core/src/main/assets/interfaces/hero_icons.png index 148174b3b..4a7c0525f 100644 Binary files a/core/src/main/assets/interfaces/hero_icons.png and b/core/src/main/assets/interfaces/hero_icons.png differ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Berserk.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Berserk.java index b1afc6828..a8be6ee5c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Berserk.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Berserk.java @@ -29,13 +29,17 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite; import com.shatteredpixel.shatteredpixeldungeon.items.BrokenSeal.WarriorShield; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.ActionIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIcon; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.DangerIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; +import com.watabou.noosa.BitmapText; import com.watabou.noosa.Image; +import com.watabou.noosa.Visual; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; import com.watabou.utils.GameMath; @@ -137,6 +141,8 @@ public class Berserk extends Buff implements ActionIndicator.Action { if (power < 1f){ ActionIndicator.clearAction(this); + } else { + ActionIndicator.refresh(); } if (power <= 0) { @@ -242,17 +248,21 @@ public class Berserk extends Buff implements ActionIndicator.Action { } @Override - public Image actionIcon() { - return new HeroIcon(HeroIcon.BERSERK); + public int actionIcon() { + return HeroIcon.BERSERK; } @Override - public Image secondIcon() { - return null; + public Visual secondaryVisual() { + BitmapText txt = new BitmapText(PixelScene.pixelFont); + txt.text((int) (power * 100) + "%"); + txt.hardlight(CharSprite.POSITIVE); + txt.measure(); + return txt; } @Override - public int actionColor() { + public int indicatorColor() { return 0x660000; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java index 505548ff0..80373112e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java @@ -36,6 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.CellSelector; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; @@ -46,7 +47,9 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon; import com.shatteredpixel.shatteredpixeldungeon.utils.BArray; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.windows.WndCombo; +import com.watabou.noosa.BitmapText; import com.watabou.noosa.Image; +import com.watabou.noosa.Visual; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; import com.watabou.utils.Callback; @@ -175,23 +178,27 @@ public class Combo extends Buff implements ActionIndicator.Action { } @Override - public Image actionIcon() { - return new HeroIcon(HeroIcon.COMBO); + public int actionIcon() { + return HeroIcon.COMBO; } @Override - public Image secondIcon() { - return null; + public Visual secondaryVisual() { + BitmapText txt = new BitmapText(PixelScene.pixelFont); + txt.text( Integer.toString(count) ); + txt.hardlight(CharSprite.POSITIVE); + txt.measure(); + return txt; } @Override - public int actionColor() { + public int indicatorColor() { ComboMove best = getHighestMove(); if (best == null) { return 0xDFDFDF; } else { //take the tint color and darken slightly to match buff icon - int r = (int) ((best.tintColor & 0xFF) * 0.875f); + int r = (int) ((best.tintColor >> 16) * 0.875f); int g = (int) (((best.tintColor >> 8) & 0xFF) * 0.875f); int b = (int) ((best.tintColor & 0xFF) * 0.875f); return (r << 16) + (g << 8) + b; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Momentum.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Momentum.java index 2748bb818..62065c54f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Momentum.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Momentum.java @@ -27,11 +27,15 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.ActionIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIcon; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon; +import com.watabou.noosa.BitmapText; import com.watabou.noosa.Image; +import com.watabou.noosa.Visual; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; import com.watabou.utils.GameMath; @@ -77,6 +81,8 @@ public class Momentum extends Buff implements ActionIndicator.Action { if (momentumStacks <= 0) { ActionIndicator.clearAction(this); if (freerunCooldown <= 0) detach(); + } else { + ActionIndicator.refresh(); } } movedLastTurn = false; @@ -123,12 +129,10 @@ public class Momentum extends Buff implements ActionIndicator.Action { @Override public void tintIcon(Image icon) { - if (freerunTurns > 0){ + if (freerunCooldown == 0){ icon.hardlight(1,1,0); - } else if (freerunCooldown > 0){ - icon.hardlight(0.5f,0.5f,1); } else { - icon.hardlight(1f - (momentumStacks /10f),1,1f - (momentumStacks /10f)); + icon.hardlight(0.5f,0.5f,1); } } @@ -139,7 +143,7 @@ public class Momentum extends Buff implements ActionIndicator.Action { } else if (freerunCooldown > 0){ return (freerunCooldown) / 30f; } else { - return (10 - momentumStacks) / 10f; + return 0; } } @@ -150,7 +154,7 @@ public class Momentum extends Buff implements ActionIndicator.Action { } else if (freerunCooldown > 0){ return Integer.toString(freerunCooldown); } else { - return Integer.toString(momentumStacks); + return ""; } } @@ -206,19 +210,21 @@ public class Momentum extends Buff implements ActionIndicator.Action { } @Override - public Image actionIcon() { - Image actionIco = new HeroIcon(HeroIcon.MOMENTUM); - actionIco.hardlight(1, 1, 0); - return actionIco; + public int actionIcon() { + return HeroIcon.MOMENTUM; } @Override - public Image secondIcon() { - return null; + public Visual secondaryVisual() { + BitmapText txt = new BitmapText(PixelScene.pixelFont); + txt.text(Integer.toString((int)momentumStacks) ); + txt.hardlight(CharSprite.POSITIVE); + txt.measure(); + return txt; } @Override - public int actionColor() { + public int indicatorColor() { return 0x444444; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MonkEnergy.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MonkEnergy.java index 99b2ec4bd..060ad9c1b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MonkEnergy.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MonkEnergy.java @@ -43,14 +43,18 @@ import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.ActionIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.AttackIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; +import com.shatteredpixel.shatteredpixeldungeon.windows.WndInfoItem; import com.shatteredpixel.shatteredpixeldungeon.windows.WndMonkAbilities; import com.watabou.noosa.BitmapText; import com.watabou.noosa.Image; +import com.watabou.noosa.Visual; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; import com.watabou.utils.Callback; @@ -65,6 +69,8 @@ public class MonkEnergy extends Buff implements ActionIndicator.Action { public float energy; public int cooldown; + private static final float MAX_COOLDOWN = 5; + @Override public int icon() { return BuffIndicator.MONK_ENERGY; @@ -74,8 +80,6 @@ public class MonkEnergy extends Buff implements ActionIndicator.Action { public void tintIcon(Image icon) { if (cooldown > 0){ icon.hardlight(0.33f, 0.33f, 1f); - } else if (abilitiesEmpowered(Dungeon.hero)) { - icon.tint(0.6f, 1f, 0.2f, 0.33f); } else { icon.resetColor(); } @@ -83,12 +87,16 @@ public class MonkEnergy extends Buff implements ActionIndicator.Action { @Override public float iconFadePercent() { - return Math.max(0, (energyCap() - energy)/ energyCap()); + return Math.max(0, cooldown/MAX_COOLDOWN); } @Override public String iconTextDisplay() { - return Integer.toString((int)energy); + if (cooldown > 0){ + return Integer.toString(cooldown); + } else { + return ""; + } } @Override @@ -218,6 +226,8 @@ public class MonkEnergy extends Buff implements ActionIndicator.Action { if (cooldown > 0 || energy < 1){ ActionIndicator.clearAction(this); + } else { + ActionIndicator.refresh(); } BuffIndicator.refreshHero(); } @@ -243,22 +253,22 @@ public class MonkEnergy extends Buff implements ActionIndicator.Action { } @Override - public Image actionIcon() { - return new HeroIcon(HeroIcon.MONK_ABILITIES); + public int actionIcon() { + return HeroIcon.MONK_ABILITIES; } @Override - public Image secondIcon() { - return null; + public Visual secondaryVisual() { + BitmapText txt = new BitmapText(PixelScene.pixelFont); + txt.text( Integer.toString((int)energy) ); + if (abilitiesEmpowered(Dungeon.hero)) txt.hardlight(CharSprite.POSITIVE); + txt.measure(); + return txt; } @Override - public int actionColor() { - if (abilitiesEmpowered(Dungeon.hero)){ - return 0xA0FF40; - } else { - return 0xA08840; - } + public int indicatorColor() { + return 0xA08840; } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Preparation.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Preparation.java index ea5c3043c..f33e86298 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Preparation.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Preparation.java @@ -34,12 +34,16 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.CellSelector; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.ActionIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon; import com.shatteredpixel.shatteredpixeldungeon.utils.BArray; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; +import com.watabou.noosa.BitmapText; import com.watabou.noosa.Image; +import com.watabou.noosa.Visual; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; import com.watabou.utils.PathFinder; @@ -183,25 +187,6 @@ public class Preparation extends Buff implements ActionIndicator.Action { } } - @Override - public float iconFadePercent() { - AttackLevel level = AttackLevel.getLvl(turnsInvis); - if (level == AttackLevel.LVL_4){ - return 0; - } else { - float turnsForCur = level.turnsReq; - float turnsForNext = AttackLevel.values()[level.ordinal()+1].turnsReq; - turnsForNext -= turnsForCur; - float turnsToNext = turnsInvis - turnsForCur; - return Math.min(1, (turnsForNext - turnsToNext)/(turnsForNext)); - } - } - - @Override - public String iconTextDisplay() { - return Integer.toString(turnsInvis); - } - @Override public String desc() { String desc = Messages.get(this, "desc"); @@ -252,19 +237,28 @@ public class Preparation extends Buff implements ActionIndicator.Action { } @Override - public Image actionIcon() { - Image actionIco = new HeroIcon(HeroIcon.PREPARATION); + public int actionIcon() { + return HeroIcon.PREPARATION; + } + + @Override + public Visual primaryVisual() { + Image actionIco = new HeroIcon(this); tintIcon(actionIco); return actionIco; } @Override - public Image secondIcon() { - return null; + public Visual secondaryVisual() { + BitmapText txt = new BitmapText(PixelScene.pixelFont); + txt.text(Integer.toString(Math.min(9, turnsInvis))); + txt.hardlight(CharSprite.POSITIVE); + txt.measure(); + return txt; } @Override - public int actionColor() { + public int indicatorColor() { return 0x444444; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SnipersMark.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SnipersMark.java index b52caf770..59de08cf2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SnipersMark.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SnipersMark.java @@ -114,17 +114,12 @@ public class SnipersMark extends FlavourBuff implements ActionIndicator.Action { } @Override - public Image actionIcon() { - return new HeroIcon(HeroIcon.SNIPERS_MARK); + public int actionIcon() { + return HeroIcon.SNIPERS_MARK; } @Override - public Image secondIcon() { - return null; - } - - @Override - public int actionColor() { + public int indicatorColor() { return 0x444444; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MeleeWeapon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MeleeWeapon.java index 754672b4a..834f01b57 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MeleeWeapon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MeleeWeapon.java @@ -46,8 +46,10 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.ui.ActionIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.AttackIndicator; +import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.Image; +import com.watabou.noosa.Visual; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; import com.watabou.utils.Random; @@ -548,10 +550,15 @@ public class MeleeWeapon extends Weapon { } @Override - public Image actionIcon() { + public int actionIcon() { + return HeroIcon.WEAPON_SWAP; + } + + @Override + public Visual primaryVisual() { Image ico; if (Dungeon.hero.belongings.weapon == null){ - ico = new ItemSprite(ItemSpriteSheet.WEAPON_HOLDER); + ico = new HeroIcon(this); } else { ico = new ItemSprite(Dungeon.hero.belongings.weapon); } @@ -560,10 +567,10 @@ public class MeleeWeapon extends Weapon { } @Override - public Image secondIcon() { + public Visual secondaryVisual() { Image ico; if (Dungeon.hero.belongings.secondWep == null){ - ico = new ItemSprite(ItemSpriteSheet.WEAPON_HOLDER); + ico = new HeroIcon(this); } else { ico = new ItemSprite(Dungeon.hero.belongings.secondWep); } @@ -573,7 +580,7 @@ public class MeleeWeapon extends Weapon { } @Override - public int actionColor() { + public int indicatorColor() { return 0x5500BB; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ActionIndicator.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ActionIndicator.java index 93934b8df..d19d919a3 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ActionIndicator.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ActionIndicator.java @@ -26,12 +26,13 @@ import com.shatteredpixel.shatteredpixeldungeon.SPDAction; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.watabou.input.GameAction; -import com.watabou.noosa.Image; +import com.watabou.noosa.BitmapText; +import com.watabou.noosa.Visual; public class ActionIndicator extends Tag { - Image icon; - Image secondIcon; + Visual primaryVis; + Visual secondVis; public static Action action; public static ActionIndicator instance; @@ -60,44 +61,72 @@ public class ActionIndicator extends Tag { protected synchronized void layout() { super.layout(); - if (icon != null){ - if (!flipped) icon.x = x + (SIZE - icon.width()) / 2f + 1; - else icon.x = x + width - (SIZE + icon.width()) / 2f - 1; - icon.y = y + (height - icon.height()) / 2f; - PixelScene.align(icon); - if (secondIcon != null){ - secondIcon.x = icon.center().x + 8 - secondIcon.width(); - secondIcon.y = icon.y + icon.height() - secondIcon.height(); + if (primaryVis != null){ + if (!flipped) primaryVis.x = x + (SIZE - primaryVis.width()) / 2f + 1; + else primaryVis.x = x + width - (SIZE + primaryVis.width()) / 2f - 1; + primaryVis.y = y + (height - primaryVis.height()) / 2f; + PixelScene.align(primaryVis); + if (secondVis != null){ + if (secondVis.width() > 16) secondVis.x = primaryVis.center().x - secondVis.width()/2f; + else secondVis.x = primaryVis.center().x + 8 - secondVis.width(); + if (secondVis instanceof BitmapText){ + //need a special case here for text unfortunately + secondVis.y = primaryVis.center().y + 8 - ((BitmapText) secondVis).baseLine(); + } else { + secondVis.y = primaryVis.center().y + 8 - secondVis.height(); + } + PixelScene.align(secondVis); } } } - private boolean needsLayout = false; + private boolean needsRefresh = false; @Override public synchronized void update() { super.update(); - if (!Dungeon.hero.ready){ - if (icon != null) icon.alpha(0.5f); - if (secondIcon != null) secondIcon.alpha(0.5f); - } else { - if (icon != null) icon.alpha(1f); - if (secondIcon != null) secondIcon.alpha(1f); - } - if (!visible && action != null){ visible = true; - refresh(); + needsRefresh = true; flash(); } else { visible = action != null; } - - if (needsLayout){ + + if (needsRefresh){ + if (primaryVis != null) { + primaryVis.killAndErase(); + primaryVis = null; + } + if (secondVis != null){ + secondVis.killAndErase(); + secondVis = null; + } + if (action != null) { + primaryVis = action.primaryVisual(); + add(primaryVis); + + secondVis = action.secondaryVisual(); + if (secondVis != null){ + add(secondVis); + } + + needsRefresh = true; + setColor(action.indicatorColor()); + } + layout(); - needsLayout = false; } + + if (!Dungeon.hero.ready){ + if (primaryVis != null) primaryVis.alpha(0.5f); + if (secondVis != null) secondVis.alpha(0.5f); + } else { + if (primaryVis != null) primaryVis.alpha(1f); + if (secondVis != null) secondVis.alpha(1f); + } + } @Override @@ -130,44 +159,31 @@ public class ActionIndicator extends Tag { public static void refresh(){ if (instance != null){ - synchronized (instance) { - if (instance.icon != null) { - instance.icon.killAndErase(); - instance.icon = null; - } - if (instance.secondIcon != null){ - instance.secondIcon.killAndErase(); - instance.secondIcon = null; - } - if (action != null) { - instance.icon = action.actionIcon(); - instance.add(instance.icon); - - Image secondIco = action.secondIcon(); - if (secondIco != null){ - instance.secondIcon = secondIco; - instance.add(instance.secondIcon); - } - - instance.needsLayout = true; - instance.setColor(action.actionColor()); - } - } + instance.needsRefresh = true; } } - public interface Action{ + public interface Action { - public String actionName(); + String actionName(); - public Image actionIcon(); + default int actionIcon(){ + return HeroIcon.NONE; + } - //TODO more variable than an icon maybe - public Image secondIcon(); + //usually just a static icon, unless overridden + default Visual primaryVisual(){ + return new HeroIcon(this); + } - public int actionColor(); + //a smaller visual on the bottom-right, usually a tiny icon or bitmap text + default Visual secondaryVisual(){ + return null; //no second visual by default + } - public void doAction(); + int indicatorColor(); + + void doAction(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/HeroIcon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/HeroIcon.java index 773e03269..83139baeb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/HeroIcon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/HeroIcon.java @@ -34,7 +34,7 @@ public class HeroIcon extends Image { private static final int SIZE = 16; //transparent icon - public static final int NONE = 31; + public static final int NONE = 63; //subclasses public static final int BERSERKER = 0; @@ -72,7 +72,8 @@ public class HeroIcon extends Image { public static final int PREPARATION = 34; public static final int MOMENTUM = 35; public static final int SNIPERS_MARK = 36; - public static final int MONK_ABILITIES = 37; + public static final int WEAPON_SWAP = 37; + public static final int MONK_ABILITIES = 38; public HeroIcon(HeroSubClass subCls){ super( Assets.Interfaces.HERO_ICONS ); @@ -90,13 +91,12 @@ public class HeroIcon extends Image { frame(film.get(abil.icon())); } - //TODO make this consistent with subclass and ability icons - public HeroIcon(int icon){ + public HeroIcon(ActionIndicator.Action action){ super( Assets.Interfaces.HERO_ICONS ); if (film == null){ film = new TextureFilm(texture, SIZE, SIZE); } - frame(film.get(icon)); + frame(film.get(action.actionIcon())); } }