v0.8.1: improved a few more buff icons, mainly subclass abilities
This commit is contained in:
parent
2dfa01e1ad
commit
e837d28cf2
Binary file not shown.
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
@ -136,6 +136,7 @@ public class Berserk extends Buff {
|
||||||
public void damage(int damage){
|
public void damage(int damage){
|
||||||
if (state == State.RECOVERING) return;
|
if (state == State.RECOVERING) return;
|
||||||
power = Math.min(1.1f, power + (damage/(float)target.HT)/3f );
|
power = Math.min(1.1f, power + (damage/(float)target.HT)/3f );
|
||||||
|
BuffIndicator.refreshHero(); //show new power immediately
|
||||||
}
|
}
|
||||||
|
|
||||||
public void recover(float percent){
|
public void recover(float percent){
|
||||||
|
@ -157,19 +158,30 @@ public class Berserk extends Buff {
|
||||||
public void tintIcon(Image icon) {
|
public void tintIcon(Image icon) {
|
||||||
switch (state){
|
switch (state){
|
||||||
case NORMAL: default:
|
case NORMAL: default:
|
||||||
if (power < 0.5f) icon.hardlight(1f, 1f, 1f - 2*(power));
|
if (power < 1f) icon.hardlight(1f, 0.5f, 0f);
|
||||||
else if (power < 1f) icon.hardlight(1f, 1.5f - power, 0f);
|
else icon.hardlight(1f, 0f, 0f);
|
||||||
else icon.hardlight(1f, 0f, 0f);
|
|
||||||
break;
|
break;
|
||||||
case BERSERK:
|
case BERSERK:
|
||||||
icon.hardlight(1f, 0f, 0f);
|
icon.hardlight(1f, 0f, 0f);
|
||||||
break;
|
break;
|
||||||
case RECOVERING:
|
case RECOVERING:
|
||||||
icon.hardlight(1f - (levelRecovery*0.5f), 1f - (levelRecovery*0.3f), 1f);
|
icon.hardlight(0, 0, 1f);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float iconFadePercent() {
|
||||||
|
switch (state){
|
||||||
|
case NORMAL: default:
|
||||||
|
return Math.max(0f, 1f - power);
|
||||||
|
case BERSERK:
|
||||||
|
return 0f;
|
||||||
|
case RECOVERING:
|
||||||
|
return 1f - levelRecovery/2f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
switch (state){
|
switch (state){
|
||||||
|
|
|
@ -60,11 +60,17 @@ public class Combo extends Buff implements ActionIndicator.Action {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tintIcon(Image icon) {
|
public void tintIcon(Image icon) {
|
||||||
if (comboTime >= 3f){
|
if (count >= 10) icon.hardlight(1f, 0f, 0f);
|
||||||
icon.resetColor();
|
else if (count >= 8)icon.hardlight(1f, 0.8f, 0f);
|
||||||
} else {
|
else if (count >= 6)icon.hardlight(1f, 1f, 0f);
|
||||||
icon.tint(0xb3b3b3, 0.5f + 0.5f*(3f + 1 - comboTime)/3f);
|
else if (count >= 4)icon.hardlight(0.8f, 1f, 0f);
|
||||||
}
|
else if (count >= 2)icon.hardlight(0f, 1f, 0f);
|
||||||
|
else icon.resetColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float iconFadePercent() {
|
||||||
|
return (4 - comboTime)/4f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -87,6 +93,8 @@ public class Combo extends Buff implements ActionIndicator.Action {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BuffIndicator.refreshHero(); //refresh the buff visually on-hit
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void miss( Char enemy ){
|
public void miss( Char enemy ){
|
||||||
|
|
|
@ -32,14 +32,6 @@ public class FlavourBuff extends Buff {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void greyIcon(Image icon, float startGrey, float remaining){
|
|
||||||
if (remaining >= startGrey){
|
|
||||||
icon.resetColor();
|
|
||||||
} else {
|
|
||||||
icon.tint(0xb3b3b3, 0.6f + 0.3f*(startGrey - remaining)/startGrey);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//flavour buffs can all just rely on cooldown()
|
//flavour buffs can all just rely on cooldown()
|
||||||
protected String dispTurns() {
|
protected String dispTurns() {
|
||||||
return dispTurns(visualcooldown());
|
return dispTurns(visualcooldown());
|
||||||
|
|
|
@ -38,6 +38,11 @@ public class Haste extends FlavourBuff {
|
||||||
return BuffIndicator.MOMENTUM;
|
return BuffIndicator.MOMENTUM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tintIcon(Image icon) {
|
||||||
|
icon.hardlight(1f, 0.8f, 0f);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float iconFadePercent() {
|
public float iconFadePercent() {
|
||||||
return Math.max(0, (DURATION - visualcooldown()) / DURATION);
|
return Math.max(0, (DURATION - visualcooldown()) / DURATION);
|
||||||
|
|
|
@ -72,11 +72,12 @@ public class Momentum extends Buff {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tintIcon(Image icon) {
|
public void tintIcon(Image icon) {
|
||||||
if (stacks <= 5) {
|
icon.invert();
|
||||||
icon.hardlight(0.2f * (stacks - 1), 1f, 0f);
|
}
|
||||||
} else {
|
|
||||||
icon.hardlight(1f, 1f - 0.2f*(stacks - 6), 0f);
|
@Override
|
||||||
}
|
public float iconFadePercent() {
|
||||||
|
return (10-stacks)/10f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -158,6 +158,19 @@ public class Preparation extends Buff implements ActionIndicator.Action {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float iconFadePercent() {
|
||||||
|
if (AttackLevel.getLvl(turnsInvis) == AttackLevel.LVL_5){
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
float turnsForCur = AttackLevel.getLvl(turnsInvis).turnsReq;
|
||||||
|
float turnsForNext = AttackLevel.values()[AttackLevel.getLvl(turnsInvis).ordinal()+1].turnsReq;
|
||||||
|
turnsForNext -= turnsForCur;
|
||||||
|
float turnsToNext = turnsInvis - turnsForCur;
|
||||||
|
return Math.min(1, (turnsForNext - turnsToNext)/(turnsForNext));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return Messages.get(this, "name");
|
return Messages.get(this, "name");
|
||||||
|
|
|
@ -38,6 +38,11 @@ public class Stamina extends FlavourBuff {
|
||||||
return BuffIndicator.MOMENTUM;
|
return BuffIndicator.MOMENTUM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tintIcon(Image icon) {
|
||||||
|
icon.hardlight(0.5f, 1f, 0.5f);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float iconFadePercent() {
|
public float iconFadePercent() {
|
||||||
return Math.max(0, (DURATION - visualcooldown()) / DURATION);
|
return Math.max(0, (DURATION - visualcooldown()) / DURATION);
|
||||||
|
|
|
@ -215,9 +215,14 @@ public class BuffIndicator extends Component {
|
||||||
public void updateIcon(){
|
public void updateIcon(){
|
||||||
icon.frame( film.get( buff.icon() ) );
|
icon.frame( film.get( buff.icon() ) );
|
||||||
buff.tintIcon(icon);
|
buff.tintIcon(icon);
|
||||||
//logic here rounds down to the nearest pixel
|
//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;
|
float zoom = (camera() != null) ? camera().zoom : 1;
|
||||||
grey.scale.set( icon.width(), (float)Math.floor(zoom*icon.height()*buff.iconFadePercent())/zoom);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue
Block a user