diff --git a/core/src/main/assets/buffs.png b/core/src/main/assets/buffs.png index 6718ed28b..e3b509ff1 100644 Binary files a/core/src/main/assets/buffs.png and b/core/src/main/assets/buffs.png differ diff --git a/core/src/main/assets/large_buffs.png b/core/src/main/assets/large_buffs.png index 27dca72ce..71122c4e8 100644 Binary files a/core/src/main/assets/large_buffs.png and b/core/src/main/assets/large_buffs.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 45af9fd18..b7a724d19 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 @@ -28,6 +28,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.BrokenSeal.WarriorShield; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; +import com.watabou.noosa.Image; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; @@ -136,18 +137,28 @@ public class Berserk extends Buff { @Override public int icon() { + return BuffIndicator.BERSERK; + } + + @Override + public void tintIcon(Image icon) { switch (state){ case NORMAL: default: - return BuffIndicator.ANGERED; + icon.hardlight(1f, 0.67f, 0.2f); + break; case BERSERK: - return BuffIndicator.FURY; + icon.hardlight(1f, 0.1f, 0.1f); + break; case EXHAUSTED: - return BuffIndicator.EXHAUSTED; + icon.resetColor(); + break; case RECOVERING: - return BuffIndicator.RECOVERING; + //icon.hardlight(0.12f, 0.20f, 0.55f); + icon.hardlight(0.35f, 0.45f, 0.75f); + break; } } - + @Override public String toString() { switch (state){ 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 9bdda73e8..b87123434 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 @@ -25,6 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; +import com.watabou.noosa.Image; import java.text.DecimalFormat; import java.util.HashSet; @@ -76,6 +77,10 @@ public class Buff extends Actor { public int icon() { return BuffIndicator.NONE; } + + public void tintIcon( Image icon ){ + //do nothing by default + } public void fx(boolean on) { //do nothing by default 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 9253812e9..729f5385c 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 @@ -58,6 +58,16 @@ public class Combo extends Buff implements ActionIndicator.Action { return BuffIndicator.COMBO; } + @Override + public void tintIcon(Image icon) { + if (count >= 10) icon.hardlight(1f, 0f, 0f); + else if (count >= 8)icon.hardlight(1f, 0.8f, 0f); + else if (count >= 6)icon.hardlight(1f, 1f, 0f); + else if (count >= 4)icon.hardlight(0.8f, 1f, 0f); + else if (count >= 2)icon.hardlight(0f, 1f, 0f); + else icon.resetColor(); + } + @Override public String toString() { return Messages.get(this, "name"); @@ -68,6 +78,7 @@ public class Combo extends Buff implements ActionIndicator.Action { count++; comboTime = 4f; misses = 0; + BuffIndicator.refreshHero(); if (count >= 2) { 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 0e40cede3..1695d41f7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BuffIndicator.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BuffIndicator.java @@ -83,9 +83,7 @@ public class BuffIndicator extends Component { public static final int BLESS = 37; public static final int RAGE = 38; public static final int SACRIFICE = 39; - public static final int ANGERED = 40; - public static final int EXHAUSTED = 41; - public static final int RECOVERING = 42; + public static final int BERSERK = 40; public static final int SIZE = 7; @@ -126,8 +124,8 @@ public class BuffIndicator extends Component { public synchronized void update() { super.update(); if (needsRefresh){ - layout(); needsRefresh = false; + layout(); } } @@ -201,6 +199,7 @@ public class BuffIndicator extends Component { public void updateIcon(){ icon.frame( film.get( buff.icon() ) ); + buff.tintIcon(icon); } @Override @@ -219,7 +218,9 @@ public class BuffIndicator extends Component { public static void refreshHero() { if (heroInstance != null) { - heroInstance.needsRefresh = true; + synchronized (heroInstance) { + heroInstance.needsRefresh = true; + } } } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndHero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndHero.java index dfda77c19..82b5dd9f7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndHero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndHero.java @@ -207,6 +207,7 @@ public class WndHero extends WndTabbed { icon = new Image( icons ); icon.frame( film.get( index ) ); + buff.tintIcon(icon); icon.y = this.y; add( icon ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoBuff.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoBuff.java index abf1d9499..d970b1f41 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoBuff.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoBuff.java @@ -51,6 +51,7 @@ public class WndInfoBuff extends Window { Image buffIcon = new Image( icons ); buffIcon.frame( film.get(buff.icon()) ); + buff.tintIcon(buffIcon); titlebar.icon( buffIcon ); titlebar.label( Messages.titleCase(buff.toString()), Window.TITLE_COLOR );