diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/AdrenalineSurge.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/AdrenalineSurge.java index 677a1bdda..b2b68748d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/AdrenalineSurge.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/AdrenalineSurge.java @@ -67,6 +67,11 @@ public class AdrenalineSurge extends Buff { return Math.max(0, (DURATION - visualcooldown()) / DURATION); } + @Override + public String iconTextDisplay() { + return Integer.toString((int)visualcooldown()); + } + @Override public String toString() { return Messages.get(this, "name"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ArcaneArmor.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ArcaneArmor.java index 91e163f4e..0642d6de6 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ArcaneArmor.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ArcaneArmor.java @@ -86,6 +86,11 @@ public class ArcaneArmor extends Buff { } return 0; } + + @Override + public String iconTextDisplay() { + return Integer.toString(level); + } @Override public String toString() { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ArtifactRecharge.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ArtifactRecharge.java index 9274bb61f..5fdf00385 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ArtifactRecharge.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ArtifactRecharge.java @@ -96,6 +96,11 @@ public class ArtifactRecharge extends Buff { return Math.max(0, (DURATION - left) / DURATION); } + @Override + public String iconTextDisplay() { + return Integer.toString((int)left); + } + @Override public String toString() { return Messages.get(this, "name"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barkskin.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barkskin.java index 83d1f437e..8d52e895d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barkskin.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barkskin.java @@ -82,6 +82,11 @@ public class Barkskin extends Buff { return 0; } + @Override + public String iconTextDisplay() { + return Integer.toString(level); + } + @Override public String toString() { return Messages.get(this, "name"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barrier.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barrier.java index 847009b0c..e0f9ed078 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barrier.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barrier.java @@ -81,6 +81,11 @@ public class Barrier extends ShieldBuff { public void tintIcon(Image icon) { icon.hardlight(0.5f, 1f, 2f); } + + @Override + public String iconTextDisplay() { + return Integer.toString(shielding()); + } @Override public String toString() { 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 09fe7d0cc..798340323 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 @@ -35,6 +35,8 @@ import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; import com.watabou.utils.GameMath; +import java.text.DecimalFormat; + public class Berserk extends Buff { private enum State{ @@ -192,6 +194,15 @@ public class Berserk extends Buff { } } + public String iconTextDisplay(){ + switch (state){ + case NORMAL: case BERSERK: default: + return (int)(power*100) + "%"; + case RECOVERING: + return new DecimalFormat("#.#").format(levelRecovery); + } + } + @Override public String toString() { switch (state){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bleeding.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bleeding.java index 6a7d054ef..d735acd90 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bleeding.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bleeding.java @@ -67,6 +67,11 @@ public class Bleeding extends Buff { public int icon() { return BuffIndicator.BLEEDING; } + + @Override + public String iconTextDisplay() { + return Integer.toString(Math.round(level)); + } @Override public String toString() { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Buff.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Buff.java index 9931c486c..ce83bb27f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Buff.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Buff.java @@ -103,6 +103,11 @@ public class Buff extends Actor { return 0; } + //text to display on large buff icons in the desktop UI + public String iconTextDisplay(){ + return ""; + } + //visual effect usually attached to the sprite of the character the buff is attacked to public void fx(boolean on) { //do nothing by default diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Burning.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Burning.java index 93d3a30be..02ad0457f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Burning.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Burning.java @@ -182,6 +182,11 @@ public class Burning extends Buff implements Hero.Doom { return Math.max(0, (DURATION - left) / DURATION); } + @Override + public String iconTextDisplay() { + return Integer.toString((int)left); + } + @Override public void fx(boolean on) { if (on) target.sprite.add(CharSprite.State.BURNING); 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 6a55f2e63..fccf83f71 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 @@ -77,6 +77,11 @@ public class Combo extends Buff implements ActionIndicator.Action { return Math.max(0, (initialComboTime - comboTime)/ initialComboTime); } + @Override + public String iconTextDisplay() { + return Integer.toString((int)comboTime); + } + @Override public String toString() { return Messages.get(this, "name"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Corrosion.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Corrosion.java index 2d700d1b8..579d9ffa4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Corrosion.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Corrosion.java @@ -71,6 +71,11 @@ public class Corrosion extends Buff implements Hero.Doom { icon.hardlight(1f, 0.5f, 0f); } + @Override + public String iconTextDisplay() { + return Integer.toString((int)damage); + } + @Override public String toString() { return Messages.get(this, "name"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Dread.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Dread.java index 8c1979865..6052334fd 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Dread.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Dread.java @@ -102,6 +102,11 @@ public class Dread extends Buff { return Math.max(0, (DURATION - left) / DURATION); } + @Override + public String iconTextDisplay() { + return Integer.toString(left); + } + @Override public void tintIcon(Image icon) { icon.hardlight(1, 0, 0); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Drowsy.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Drowsy.java index 615ba001f..e36b42a5f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Drowsy.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Drowsy.java @@ -44,6 +44,11 @@ public class Drowsy extends Buff { return Math.max(0, (DURATION - visualcooldown()) / DURATION); } + @Override + public String iconTextDisplay() { + return Integer.toString((int)visualcooldown()); + } + public boolean attachTo(Char target ) { if (!target.isImmune(Sleep.class) && super.attachTo(target)) { if (cooldown() == 0) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java index c633cec61..3740668fc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java @@ -91,7 +91,12 @@ public class FireImbue extends Buff { @Override public float iconFadePercent() { - return Math.max(0, (DURATION - left+1) / DURATION); + return Math.max(0, (DURATION - left) / DURATION); + } + + @Override + public String iconTextDisplay() { + return Integer.toString((int)left); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FlavourBuff.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FlavourBuff.java index 73e9e0555..720b03865 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FlavourBuff.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FlavourBuff.java @@ -34,4 +34,9 @@ public class FlavourBuff extends Buff { protected String dispTurns() { return dispTurns(visualcooldown()); } + + @Override + public String iconTextDisplay() { + return Integer.toString((int)visualcooldown()); + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Healing.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Healing.java index b4c999a8d..fa7df070b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Healing.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Healing.java @@ -109,6 +109,11 @@ public class Healing extends Buff { public int icon() { return BuffIndicator.HEALING; } + + @Override + public String iconTextDisplay() { + return Integer.toString(healingLeft); + } @Override public String toString() { 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 47c37383b..d6dea05d5 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 @@ -135,6 +135,17 @@ public class Momentum extends Buff implements ActionIndicator.Action { } } + @Override + public String iconTextDisplay() { + if (freerunTurns > 0){ + return Integer.toString(freerunTurns); + } else if (freerunCooldown > 0){ + return Integer.toString(freerunCooldown); + } else { + return Integer.toString(momentumStacks); + } + } + @Override public String toString() { if (freerunTurns > 0){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Ooze.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Ooze.java index 8dd8cf124..6263280ae 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Ooze.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Ooze.java @@ -61,6 +61,11 @@ public class Ooze extends Buff { public float iconFadePercent() { return Math.max(0, (DURATION - left) / DURATION); } + + @Override + public String iconTextDisplay() { + return Integer.toString((int)left); + } @Override public String toString() { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Poison.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Poison.java index 4d4f2ecd9..3fae24e69 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Poison.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Poison.java @@ -74,6 +74,10 @@ public class Poison extends Buff implements Hero.Doom { public void tintIcon(Image icon) { icon.hardlight(0.6f, 0.2f, 0.6f); } + + public String iconTextDisplay(){ + return Integer.toString((int) left); + } @Override public String toString() { 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 174542b90..75b43a61b 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 @@ -195,6 +195,11 @@ public class Preparation extends Buff implements ActionIndicator.Action { } } + @Override + public String iconTextDisplay() { + return Integer.toString(turnsInvis); + } + @Override public String toString() { return Messages.get(this, "name"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/PrismaticGuard.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/PrismaticGuard.java index 5c40c0862..8cee47dfc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/PrismaticGuard.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/PrismaticGuard.java @@ -120,6 +120,11 @@ public class PrismaticGuard extends Buff { return 1f - HP/(float)maxHP(); } + @Override + public String iconTextDisplay() { + return Integer.toString((int)HP); + } + @Override public String toString() { return Messages.get(this, "name"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ScrollEmpower.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ScrollEmpower.java index bb7380e26..6f98224f4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ScrollEmpower.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ScrollEmpower.java @@ -65,6 +65,16 @@ public class ScrollEmpower extends Buff { icon.hardlight(1, 1, 0); } + @Override + public float iconFadePercent() { + return Math.max(0, (2f - left) / 2f); + } + + @Override + public String iconTextDisplay() { + return Integer.toString(left); + } + @Override public String toString() { return Messages.get(this, "name"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java index 6dceca8be..f79b0457f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java @@ -81,6 +81,11 @@ public class ToxicImbue extends Buff { return Math.max(0, (DURATION - left) / DURATION); } + @Override + public String iconTextDisplay() { + return Integer.toString((int)left); + } + @Override public String toString() { return Messages.get(this, "name"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/WandEmpower.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/WandEmpower.java index 59663f865..4951189fd 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/WandEmpower.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/WandEmpower.java @@ -47,6 +47,11 @@ public class WandEmpower extends Buff { return Math.max(0, (3-left) / 3f); } + @Override + public String iconTextDisplay() { + return Integer.toString(left); + } + @Override public String toString() { return Messages.get(this, "name"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/WellFed.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/WellFed.java index b8e498ca4..b32a27806 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/WellFed.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/WellFed.java @@ -69,6 +69,11 @@ public class WellFed extends Buff { public float iconFadePercent() { return Math.max(0, (Hunger.STARVING - left) / Hunger.STARVING); } + + @Override + public String iconTextDisplay() { + return Integer.toString(left); + } @Override public String toString() { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Viscosity.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Viscosity.java index c79beb9ac..1d1af91ad 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Viscosity.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/glyphs/Viscosity.java @@ -127,6 +127,11 @@ public class Viscosity extends Glyph { public int icon() { return BuffIndicator.DEFERRED; } + + @Override + public String iconTextDisplay() { + return Integer.toString(damage); + } @Override public String toString() { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfAquaticRejuvenation.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfAquaticRejuvenation.java index a1c0fba08..fb28ae5c2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfAquaticRejuvenation.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfAquaticRejuvenation.java @@ -111,6 +111,11 @@ public class ElixirOfAquaticRejuvenation extends Elixir { float max = Math.round(target.HT * 1.5f); return Math.max(0, (max - left) / max); } + + @Override + public String iconTextDisplay() { + return Integer.toString(left); + } @Override public String toString() { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfMight.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfMight.java index 5d7a43cb8..10f32816f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfMight.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfMight.java @@ -125,7 +125,12 @@ public class ElixirOfMight extends Elixir { public float iconFadePercent() { return (5f - left) / 5f; } - + + @Override + public String iconTextDisplay() { + return Integer.toString(left); + } + @Override public String toString() { return Messages.get(this, "name"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/exotic/ScrollOfChallenge.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/exotic/ScrollOfChallenge.java index 9d805d44a..7bb8fca68 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/exotic/ScrollOfChallenge.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/exotic/ScrollOfChallenge.java @@ -97,6 +97,11 @@ public class ScrollOfChallenge extends ExoticScroll { return Math.max(0, (DURATION - left) / DURATION); } + @Override + public String iconTextDisplay() { + return Integer.toString(left); + } + @Override public String toString() { return Messages.get(this, "name"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLivingEarth.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLivingEarth.java index e4b9e15f1..fe22e4933 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLivingEarth.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLivingEarth.java @@ -258,6 +258,11 @@ public class WandOfLivingEarth extends DamageWand { return Math.max(0, (armorToGuardian() - armor) / (float)armorToGuardian()); } + @Override + public String iconTextDisplay() { + return Integer.toString(armor); + } + @Override public String toString() { return Messages.get(this, "name"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Kinetic.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Kinetic.java index 3f3087f48..a28633467 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Kinetic.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Kinetic.java @@ -74,6 +74,11 @@ public class Kinetic extends Weapon.Enchantment { icon.hardlight(1f, 1f, 1f - preservedDamage*.2f); } } + + @Override + public String iconTextDisplay() { + return Integer.toString(damageBonus()); + } private float preservedDamage; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Earthroot.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Earthroot.java index 7ba7c4b0d..fd3229620 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Earthroot.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Earthroot.java @@ -126,6 +126,11 @@ public class Earthroot extends Plant { public float iconFadePercent() { return Math.max(0, (target.HT - level) / (float) target.HT); } + + @Override + public String iconTextDisplay() { + return Integer.toString(level); + } @Override public String toString() { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Sungrass.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Sungrass.java index 4db73c061..84fa4c07d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Sungrass.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Sungrass.java @@ -130,6 +130,11 @@ public class Sungrass extends Plant { public float iconFadePercent() { return Math.max(0, (target.HT - level) / (float)target.HT); } + + @Override + public String iconTextDisplay() { + return Integer.toString(level); + } @Override public String toString() { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java index 225b48098..c46e2dfcb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java @@ -89,6 +89,11 @@ public class Swiftthistle extends Plant { public float iconFadePercent() { return Math.max(0, (6f - left) / 6f); } + + @Override + public String iconTextDisplay() { + return Integer.toString((int)left); + } public void reset(){ left = 7f; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BuffIndicator.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BuffIndicator.java index 64dc98cc2..79b06a7c1 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BuffIndicator.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BuffIndicator.java @@ -25,11 +25,14 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FlavourBuff; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.windows.WndInfoBuff; import com.watabou.gltextures.SmartTexture; import com.watabou.gltextures.TextureCache; +import com.watabou.noosa.BitmapText; import com.watabou.noosa.Image; import com.watabou.noosa.TextureFilm; import com.watabou.noosa.audio.Sample; @@ -204,8 +207,8 @@ public class BuffIndicator extends Component { private boolean large; - //Todo maybe move into buff icon? - public Image grey; + public Image grey; //only for small + public BitmapText text; //only for large //TODO for large buffs there is room to have text instead of fading public BuffButton( Buff buff, boolean large ){ @@ -214,6 +217,7 @@ public class BuffIndicator extends Component { this.large = large; bringToFront(grey); + bringToFront(text); } @Override @@ -221,17 +225,31 @@ public class BuffIndicator extends Component { super.createChildren(); grey = new Image( TextureCache.createSolid(0xCC666666)); add( grey ); + + text = new BitmapText(PixelScene.pixelFont); + add( text ); } public void updateIcon(){ ((BuffIcon)icon).refresh(buff); //round up to the nearest pixel if <50% faded, otherwise round down - float fadeHeight = buff.iconFadePercent() * icon.height(); - float zoom = (camera() != null) ? camera().zoom : 1; - if (fadeHeight < icon.height()/2f){ - grey.scale.set( icon.width(), (float)Math.ceil(zoom*fadeHeight)/zoom); - } else { - grey.scale.set( icon.width(), (float)Math.floor(zoom*fadeHeight)/zoom); + if (!large) { + text.visible = false; + float fadeHeight = buff.iconFadePercent() * icon.height(); + float zoom = (camera() != null) ? camera().zoom : 1; + if (fadeHeight < icon.height() / 2f) { + grey.scale.set(icon.width(), (float) Math.ceil(zoom * fadeHeight) / zoom); + } else { + grey.scale.set(icon.width(), (float) Math.floor(zoom * fadeHeight) / zoom); + } + } else if (!buff.iconTextDisplay().isEmpty()) { + grey.visible = false; + if (buff.type == Buff.buffType.POSITIVE) text.hardlight(CharSprite.POSITIVE); + else if (buff.type == Buff.buffType.NEGATIVE) text.hardlight(CharSprite.NEGATIVE); + text.alpha(0.6f); + + text.text(buff.iconTextDisplay()); + text.measure(); } } @@ -240,6 +258,14 @@ public class BuffIndicator extends Component { super.layout(); grey.x = icon.x = this.x + (large ? 0 : 1); grey.y = icon.y = this.y + (large ? 0 : 2); + + if (text.width > width()){ + text.scale.set(PixelScene.align(0.5f)); + } else { + text.scale.set(1f); + } + text.x = this.x + width() - text.width() - 1; + text.y = this.y + width() - text.baseLine() - 2; } @Override