v0.6.2: added support for tinting buff icons

This commit is contained in:
Evan Debenham 2017-08-31 20:18:58 -04:00
parent 592976b91c
commit 6967ed3586
8 changed files with 40 additions and 10 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -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){

View File

@ -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

View File

@ -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) {

View File

@ -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;
}
}
}
}

View File

@ -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 );

View File

@ -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 );