v0.9.0: overhauled visuals for badges
This commit is contained in:
parent
cebd646636
commit
7ba15b4712
Binary file not shown.
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
@ -46,48 +46,82 @@ import java.util.List;
|
||||||
public class Badges {
|
public class Badges {
|
||||||
|
|
||||||
public enum Badge {
|
public enum Badge {
|
||||||
MONSTERS_SLAIN_1( 0 ),
|
MASTERY_WARRIOR,
|
||||||
MONSTERS_SLAIN_2( 1 ),
|
MASTERY_MAGE,
|
||||||
MONSTERS_SLAIN_3( 2 ),
|
MASTERY_ROGUE,
|
||||||
MONSTERS_SLAIN_4( 3 ),
|
MASTERY_HUNTRESS,
|
||||||
GOLD_COLLECTED_1( 4 ),
|
|
||||||
GOLD_COLLECTED_2( 5 ),
|
//bronze
|
||||||
GOLD_COLLECTED_3( 6 ),
|
UNLOCK_MAGE ( 1 ),
|
||||||
GOLD_COLLECTED_4( 7 ),
|
UNLOCK_ROGUE ( 2 ),
|
||||||
LEVEL_REACHED_1( 8 ),
|
UNLOCK_HUNTRESS ( 3 ),
|
||||||
LEVEL_REACHED_2( 9 ),
|
MONSTERS_SLAIN_1 ( 4 ),
|
||||||
LEVEL_REACHED_3( 10 ),
|
MONSTERS_SLAIN_2 ( 5 ),
|
||||||
LEVEL_REACHED_4( 11 ),
|
GOLD_COLLECTED_1 ( 6 ),
|
||||||
ALL_WEAPONS_IDENTIFIED( 16 ),
|
GOLD_COLLECTED_2 ( 7 ),
|
||||||
ALL_ARMOR_IDENTIFIED( 17 ),
|
ITEM_LEVEL_1 ( 8 ),
|
||||||
ALL_WANDS_IDENTIFIED( 18 ),
|
LEVEL_REACHED_1 ( 9 ),
|
||||||
ALL_RINGS_IDENTIFIED( 19 ),
|
STRENGTH_ATTAINED_1 ( 10 ),
|
||||||
ALL_ARTIFACTS_IDENTIFIED( 20 ),
|
FOOD_EATEN_1 ( 11 ),
|
||||||
ALL_POTIONS_IDENTIFIED( 21 ),
|
POTIONS_COOKED_1 ( 12 ),
|
||||||
ALL_SCROLLS_IDENTIFIED( 22 ),
|
BOSS_SLAIN_1 ( 13 ),
|
||||||
ALL_ITEMS_IDENTIFIED( 23, true ),
|
DEATH_FROM_FIRE ( 14 ),
|
||||||
|
DEATH_FROM_POISON ( 15 ),
|
||||||
|
DEATH_FROM_GAS ( 16 ),
|
||||||
|
DEATH_FROM_HUNGER ( 17 ),
|
||||||
|
DEATH_FROM_FALLING ( 18 ),
|
||||||
|
|
||||||
|
//silver
|
||||||
|
NO_MONSTERS_SLAIN ( 32 ),
|
||||||
|
GRIM_WEAPON ( 33 ),
|
||||||
|
MONSTERS_SLAIN_3 ( 34 ),
|
||||||
|
MONSTERS_SLAIN_4 ( 35 ),
|
||||||
|
GOLD_COLLECTED_3 ( 36 ),
|
||||||
|
GOLD_COLLECTED_4 ( 37 ),
|
||||||
|
ITEM_LEVEL_2 ( 38 ),
|
||||||
|
ITEM_LEVEL_3 ( 39 ),
|
||||||
|
LEVEL_REACHED_2 ( 40 ),
|
||||||
|
LEVEL_REACHED_3 ( 41 ),
|
||||||
|
STRENGTH_ATTAINED_2 ( 42 ),
|
||||||
|
STRENGTH_ATTAINED_3 ( 43 ),
|
||||||
|
FOOD_EATEN_2 ( 44 ),
|
||||||
|
FOOD_EATEN_3 ( 45 ),
|
||||||
|
POTIONS_COOKED_2 ( 46 ),
|
||||||
|
POTIONS_COOKED_3 ( 47 ),
|
||||||
|
BOSS_SLAIN_2 ( 48 ),
|
||||||
|
BOSS_SLAIN_3 ( 49 ),
|
||||||
|
ALL_POTIONS_IDENTIFIED ( 50 ),
|
||||||
|
ALL_SCROLLS_IDENTIFIED ( 51 ),
|
||||||
|
DEATH_FROM_GLYPH ( 52 ),
|
||||||
|
BOSS_SLAIN_1_WARRIOR,
|
||||||
|
BOSS_SLAIN_1_MAGE,
|
||||||
|
BOSS_SLAIN_1_ROGUE,
|
||||||
|
BOSS_SLAIN_1_HUNTRESS,
|
||||||
|
BOSS_SLAIN_1_ALL_CLASSES ( 53, true ),
|
||||||
|
GAMES_PLAYED_1 ( 54, true ),
|
||||||
|
|
||||||
|
//gold
|
||||||
|
PIRANHAS ( 64 ),
|
||||||
//these names are a bit outdated, but it doesn't really matter.
|
//these names are a bit outdated, but it doesn't really matter.
|
||||||
BAG_BOUGHT_SEED_POUCH,
|
BAG_BOUGHT_SEED_POUCH,
|
||||||
BAG_BOUGHT_SCROLL_HOLDER,
|
BAG_BOUGHT_SCROLL_HOLDER,
|
||||||
BAG_BOUGHT_POTION_BANDOLIER,
|
BAG_BOUGHT_POTION_BANDOLIER,
|
||||||
BAG_BOUGHT_WAND_HOLSTER,
|
BAG_BOUGHT_WAND_HOLSTER,
|
||||||
ALL_BAGS_BOUGHT( 24 ),
|
ALL_BAGS_BOUGHT ( 65 ),
|
||||||
DEATH_FROM_FIRE( 25 ),
|
MASTERY_COMBO ( 66 ),
|
||||||
DEATH_FROM_POISON( 26 ),
|
ITEM_LEVEL_4 ( 67 ),
|
||||||
DEATH_FROM_GAS( 27 ),
|
LEVEL_REACHED_4 ( 68 ),
|
||||||
DEATH_FROM_HUNGER( 28 ),
|
STRENGTH_ATTAINED_4 ( 69 ),
|
||||||
DEATH_FROM_GLYPH( 29 ),
|
FOOD_EATEN_4 ( 70 ),
|
||||||
DEATH_FROM_FALLING( 30 ),
|
POTIONS_COOKED_4 ( 71 ),
|
||||||
YASD( 31, true ),
|
BOSS_SLAIN_4 ( 72 ),
|
||||||
BOSS_SLAIN_1_WARRIOR,
|
ALL_WEAPONS_IDENTIFIED ( 73 ),
|
||||||
BOSS_SLAIN_1_MAGE,
|
ALL_ARMOR_IDENTIFIED ( 74 ),
|
||||||
BOSS_SLAIN_1_ROGUE,
|
ALL_WANDS_IDENTIFIED ( 75 ),
|
||||||
BOSS_SLAIN_1_HUNTRESS,
|
ALL_RINGS_IDENTIFIED ( 76 ),
|
||||||
BOSS_SLAIN_1( 12 ),
|
ALL_ARTIFACTS_IDENTIFIED ( 77 ),
|
||||||
BOSS_SLAIN_2( 13 ),
|
VICTORY ( 78 ),
|
||||||
BOSS_SLAIN_3( 14 ),
|
YASD ( 79, true ),
|
||||||
BOSS_SLAIN_4( 15 ),
|
|
||||||
BOSS_SLAIN_1_ALL_CLASSES( 32, true ),
|
|
||||||
BOSS_SLAIN_3_GLADIATOR,
|
BOSS_SLAIN_3_GLADIATOR,
|
||||||
BOSS_SLAIN_3_BERSERKER,
|
BOSS_SLAIN_3_BERSERKER,
|
||||||
BOSS_SLAIN_3_WARLOCK,
|
BOSS_SLAIN_3_WARLOCK,
|
||||||
|
@ -96,48 +130,24 @@ public class Badges {
|
||||||
BOSS_SLAIN_3_ASSASSIN,
|
BOSS_SLAIN_3_ASSASSIN,
|
||||||
BOSS_SLAIN_3_SNIPER,
|
BOSS_SLAIN_3_SNIPER,
|
||||||
BOSS_SLAIN_3_WARDEN,
|
BOSS_SLAIN_3_WARDEN,
|
||||||
BOSS_SLAIN_3_ALL_SUBCLASSES( 33, true ),
|
BOSS_SLAIN_3_ALL_SUBCLASSES ( 80, true ),
|
||||||
|
GAMES_PLAYED_2 ( 81, true ),
|
||||||
|
|
||||||
|
//platinum
|
||||||
|
HAPPY_END ( 96 ),
|
||||||
|
ALL_ITEMS_IDENTIFIED ( 97, true ),
|
||||||
VICTORY_WARRIOR,
|
VICTORY_WARRIOR,
|
||||||
VICTORY_MAGE,
|
VICTORY_MAGE,
|
||||||
VICTORY_ROGUE,
|
VICTORY_ROGUE,
|
||||||
VICTORY_HUNTRESS,
|
VICTORY_HUNTRESS,
|
||||||
VICTORY( 34 ),
|
VICTORY_ALL_CLASSES ( 98, true ),
|
||||||
VICTORY_ALL_CLASSES( 35, true ),
|
GAMES_PLAYED_3 ( 99, true ),
|
||||||
HAPPY_END( 36 ),
|
CHAMPION_1 ( 100, true ),
|
||||||
CHAMPION_1( 37, true ),
|
|
||||||
CHAMPION_2( 38, true ),
|
//diamond
|
||||||
CHAMPION_3( 39, true ),
|
GAMES_PLAYED_4 ( 112, true ),
|
||||||
STRENGTH_ATTAINED_1( 40 ),
|
CHAMPION_2 ( 113, true ),
|
||||||
STRENGTH_ATTAINED_2( 41 ),
|
CHAMPION_3 ( 114, true );
|
||||||
STRENGTH_ATTAINED_3( 42 ),
|
|
||||||
STRENGTH_ATTAINED_4( 43 ),
|
|
||||||
FOOD_EATEN_1( 44 ),
|
|
||||||
FOOD_EATEN_2( 45 ),
|
|
||||||
FOOD_EATEN_3( 46 ),
|
|
||||||
FOOD_EATEN_4( 47 ),
|
|
||||||
MASTERY_WARRIOR,
|
|
||||||
MASTERY_MAGE,
|
|
||||||
MASTERY_ROGUE,
|
|
||||||
MASTERY_HUNTRESS,
|
|
||||||
UNLOCK_MAGE( 65 ),
|
|
||||||
UNLOCK_ROGUE( 66 ),
|
|
||||||
UNLOCK_HUNTRESS( 67 ),
|
|
||||||
ITEM_LEVEL_1( 48 ),
|
|
||||||
ITEM_LEVEL_2( 49 ),
|
|
||||||
ITEM_LEVEL_3( 50 ),
|
|
||||||
ITEM_LEVEL_4( 51 ),
|
|
||||||
POTIONS_COOKED_1( 52 ),
|
|
||||||
POTIONS_COOKED_2( 53 ),
|
|
||||||
POTIONS_COOKED_3( 54 ),
|
|
||||||
POTIONS_COOKED_4( 55 ),
|
|
||||||
MASTERY_COMBO( 56 ),
|
|
||||||
NO_MONSTERS_SLAIN( 57 ),
|
|
||||||
GRIM_WEAPON( 58 ),
|
|
||||||
PIRANHAS( 59 ),
|
|
||||||
GAMES_PLAYED_1( 60, true ),
|
|
||||||
GAMES_PLAYED_2( 61, true ),
|
|
||||||
GAMES_PLAYED_3( 62, true ),
|
|
||||||
GAMES_PLAYED_4( 63, true );
|
|
||||||
|
|
||||||
public boolean meta;
|
public boolean meta;
|
||||||
|
|
||||||
|
|
|
@ -22,12 +22,17 @@
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.effects;
|
package com.shatteredpixel.shatteredpixeldungeon.effects;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
|
import com.watabou.gltextures.SmartTexture;
|
||||||
|
import com.watabou.gltextures.TextureCache;
|
||||||
import com.watabou.noosa.Game;
|
import com.watabou.noosa.Game;
|
||||||
import com.watabou.noosa.Image;
|
import com.watabou.noosa.Image;
|
||||||
import com.watabou.noosa.TextureFilm;
|
import com.watabou.noosa.TextureFilm;
|
||||||
import com.watabou.noosa.audio.Sample;
|
import com.watabou.noosa.audio.Sample;
|
||||||
|
import com.watabou.utils.Point;
|
||||||
import com.watabou.utils.PointF;
|
import com.watabou.utils.PointF;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
public class BadgeBanner extends Image {
|
public class BadgeBanner extends Image {
|
||||||
|
|
||||||
private enum State {
|
private enum State {
|
||||||
|
@ -120,148 +125,57 @@ public class BadgeBanner extends Image {
|
||||||
super.kill();
|
super.kill();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//map to cache highlight positions so we don't have to keep looking at texture pixels
|
||||||
|
private static HashMap<Integer, Point> highlightPositions = new HashMap<>();
|
||||||
|
|
||||||
|
//we also hardcode any special cases
|
||||||
|
static {
|
||||||
|
//combo master
|
||||||
|
highlightPositions.put(66, new Point(3, 7));
|
||||||
|
}
|
||||||
|
|
||||||
|
//adds a shine to an appropriate pixel on a badge
|
||||||
public static void highlight( Image image, int index ) {
|
public static void highlight( Image image, int index ) {
|
||||||
|
|
||||||
PointF p = new PointF();
|
PointF p = new PointF();
|
||||||
|
|
||||||
switch (index) {
|
if (highlightPositions.containsKey(index)){
|
||||||
case 0:
|
p.x = highlightPositions.get(index).x * image.scale.x;
|
||||||
case 1:
|
p.y = highlightPositions.get(index).y * image.scale.y;
|
||||||
case 2:
|
} else {
|
||||||
case 3:
|
|
||||||
p.offset( 7, 3 );
|
SmartTexture tx = TextureCache.get(Assets.Interfaces.BADGES);
|
||||||
break;
|
|
||||||
case 4:
|
int size = 16;
|
||||||
case 5:
|
|
||||||
case 6:
|
int cols = tx.width / size;
|
||||||
case 7:
|
int row = index / cols;
|
||||||
p.offset( 6, 5 );
|
int col = index % cols;
|
||||||
break;
|
|
||||||
case 8:
|
int x = 3;
|
||||||
case 9:
|
int y = 4;
|
||||||
case 10:
|
int bgColor = tx.getPixel(col * size + x, row * size + y);
|
||||||
case 11:
|
int curColor = 0;
|
||||||
p.offset( 6, 3 );
|
|
||||||
break;
|
for (x = 3; x <= 12; x++) {
|
||||||
case 12:
|
curColor = tx.getPixel(col * size + x, row * size + y);
|
||||||
case 13:
|
if (curColor != bgColor) break;
|
||||||
case 14:
|
}
|
||||||
case 15:
|
|
||||||
p.offset( 7, 4 );
|
if (curColor == bgColor) {
|
||||||
break;
|
y++;
|
||||||
case 16:
|
for (x = 3; x <= 12; x++) {
|
||||||
p.offset( 6, 3 );
|
curColor = tx.getPixel(col * size + x, row * size + y);
|
||||||
break;
|
if (curColor != bgColor) break;
|
||||||
case 17:
|
}
|
||||||
p.offset( 5, 4 );
|
}
|
||||||
break;
|
|
||||||
case 18:
|
p.x = x * image.scale.x;
|
||||||
p.offset( 7, 3 );
|
p.y = y * image.scale.y;
|
||||||
break;
|
|
||||||
case 20:
|
highlightPositions.put(index, new Point(x, y));
|
||||||
p.offset( 7, 3 );
|
|
||||||
break;
|
|
||||||
case 21:
|
|
||||||
p.offset( 7, 3 );
|
|
||||||
break;
|
|
||||||
case 22:
|
|
||||||
p.offset( 6, 4 );
|
|
||||||
break;
|
|
||||||
case 23:
|
|
||||||
p.offset( 4, 5 );
|
|
||||||
break;
|
|
||||||
case 24:
|
|
||||||
p.offset( 6, 4 );
|
|
||||||
break;
|
|
||||||
case 25:
|
|
||||||
p.offset( 6, 5 );
|
|
||||||
break;
|
|
||||||
case 26:
|
|
||||||
p.offset( 5, 5 );
|
|
||||||
break;
|
|
||||||
case 27:
|
|
||||||
p.offset( 6, 4 );
|
|
||||||
break;
|
|
||||||
case 28:
|
|
||||||
p.offset( 3, 5 );
|
|
||||||
break;
|
|
||||||
case 29:
|
|
||||||
p.offset( 5, 4 );
|
|
||||||
break;
|
|
||||||
case 30:
|
|
||||||
p.offset( 5, 4 );
|
|
||||||
break;
|
|
||||||
case 31:
|
|
||||||
p.offset( 5, 5 );
|
|
||||||
break;
|
|
||||||
case 32:
|
|
||||||
case 33:
|
|
||||||
p.offset( 7, 4 );
|
|
||||||
break;
|
|
||||||
case 34:
|
|
||||||
p.offset( 6, 4 );
|
|
||||||
break;
|
|
||||||
case 35:
|
|
||||||
p.offset( 6, 4 );
|
|
||||||
break;
|
|
||||||
case 36:
|
|
||||||
p.offset( 6, 5 );
|
|
||||||
break;
|
|
||||||
case 37:
|
|
||||||
p.offset( 4, 4 );
|
|
||||||
break;
|
|
||||||
case 38:
|
|
||||||
p.offset( 5, 5 );
|
|
||||||
break;
|
|
||||||
case 39:
|
|
||||||
p.offset( 5, 4 );
|
|
||||||
break;
|
|
||||||
case 40:
|
|
||||||
case 41:
|
|
||||||
case 42:
|
|
||||||
case 43:
|
|
||||||
p.offset( 5, 4 );
|
|
||||||
break;
|
|
||||||
case 44:
|
|
||||||
case 45:
|
|
||||||
case 46:
|
|
||||||
case 47:
|
|
||||||
p.offset( 5, 5 );
|
|
||||||
break;
|
|
||||||
case 48:
|
|
||||||
case 49:
|
|
||||||
case 50:
|
|
||||||
case 51:
|
|
||||||
p.offset( 7, 4 );
|
|
||||||
break;
|
|
||||||
case 52:
|
|
||||||
case 53:
|
|
||||||
case 54:
|
|
||||||
case 55:
|
|
||||||
p.offset( 4, 4 );
|
|
||||||
break;
|
|
||||||
case 56:
|
|
||||||
p.offset( 3, 7 );
|
|
||||||
break;
|
|
||||||
case 57:
|
|
||||||
p.offset( 4, 5 );
|
|
||||||
break;
|
|
||||||
case 58:
|
|
||||||
p.offset( 6, 4 );
|
|
||||||
break;
|
|
||||||
case 59:
|
|
||||||
p.offset( 7, 4 );
|
|
||||||
break;
|
|
||||||
case 60:
|
|
||||||
case 61:
|
|
||||||
case 62:
|
|
||||||
case 63:
|
|
||||||
p.offset( 4, 4 );
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
p.x *= image.scale.x;
|
|
||||||
p.y *= image.scale.y;
|
|
||||||
p.offset(
|
p.offset(
|
||||||
-image.origin.x * (image.scale.x - 1),
|
-image.origin.x * (image.scale.x - 1),
|
||||||
-image.origin.y * (image.scale.y - 1) );
|
-image.origin.y * (image.scale.y - 1) );
|
||||||
|
|
|
@ -144,7 +144,7 @@ public class BadgesScene extends PixelScene {
|
||||||
|
|
||||||
icon = BadgeBanner.image(badge.image);
|
icon = BadgeBanner.image(badge.image);
|
||||||
if (!unlocked) {
|
if (!unlocked) {
|
||||||
icon.brightness(0.25f);
|
icon.brightness(0.4f);
|
||||||
}
|
}
|
||||||
add(icon);
|
add(icon);
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class WndBadge extends Window {
|
||||||
|
|
||||||
Image icon = BadgeBanner.image( badge.image );
|
Image icon = BadgeBanner.image( badge.image );
|
||||||
icon.scale.set( 2 );
|
icon.scale.set( 2 );
|
||||||
if (!unlocked) icon.brightness(0.52f);
|
if (!unlocked) icon.brightness(0.4f);
|
||||||
add( icon );
|
add( icon );
|
||||||
|
|
||||||
RenderedTextBlock info = PixelScene.renderTextBlock( badge.desc(), 8 );
|
RenderedTextBlock info = PixelScene.renderTextBlock( badge.desc(), 8 );
|
||||||
|
|
Loading…
Reference in New Issue
Block a user