v0.6.1: improvements to badges and badges scene:
- badges scene now shows as many blanks as missing badges - badges scene is a bit more condensed on phone screens - YASD badge now covers death by falling/glyph - games played badges reduced from 10/100/500/200 to 10/50/250/1000 - A couple of badges no longer override others
This commit is contained in:
committed by
Evan Debenham
parent
82f58507e7
commit
9924f5d28d
@@ -523,19 +523,25 @@ public class Badges {
|
|||||||
Badge badge = Badge.DEATH_FROM_GLYPH;
|
Badge badge = Badge.DEATH_FROM_GLYPH;
|
||||||
local.add( badge );
|
local.add( badge );
|
||||||
displayBadge( badge );
|
displayBadge( badge );
|
||||||
|
|
||||||
|
validateYASD();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void validateDeathFromFalling() {
|
public static void validateDeathFromFalling() {
|
||||||
Badge badge = Badge.DEATH_FROM_FALLING;
|
Badge badge = Badge.DEATH_FROM_FALLING;
|
||||||
local.add( badge );
|
local.add( badge );
|
||||||
displayBadge( badge );
|
displayBadge( badge );
|
||||||
|
|
||||||
|
validateYASD();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void validateYASD() {
|
private static void validateYASD() {
|
||||||
if (global.contains( Badge.DEATH_FROM_FIRE ) &&
|
if (global.contains( Badge.DEATH_FROM_FIRE ) &&
|
||||||
global.contains( Badge.DEATH_FROM_POISON ) &&
|
global.contains( Badge.DEATH_FROM_POISON ) &&
|
||||||
global.contains( Badge.DEATH_FROM_GAS ) &&
|
global.contains( Badge.DEATH_FROM_GAS ) &&
|
||||||
global.contains( Badge.DEATH_FROM_HUNGER)) {
|
global.contains( Badge.DEATH_FROM_HUNGER) &&
|
||||||
|
global.contains( Badge.DEATH_FROM_GLYPH) &&
|
||||||
|
global.contains( Badge.DEATH_FROM_FALLING)) {
|
||||||
|
|
||||||
Badge badge = Badge.YASD;
|
Badge badge = Badge.YASD;
|
||||||
local.add( badge );
|
local.add( badge );
|
||||||
@@ -793,13 +799,13 @@ public class Badges {
|
|||||||
if (Rankings.INSTANCE.totalNumber >= 10) {
|
if (Rankings.INSTANCE.totalNumber >= 10) {
|
||||||
badge = Badge.GAMES_PLAYED_1;
|
badge = Badge.GAMES_PLAYED_1;
|
||||||
}
|
}
|
||||||
if (Rankings.INSTANCE.totalNumber >= 100) {
|
if (Rankings.INSTANCE.totalNumber >= 50) {
|
||||||
badge = Badge.GAMES_PLAYED_2;
|
badge = Badge.GAMES_PLAYED_2;
|
||||||
}
|
}
|
||||||
if (Rankings.INSTANCE.totalNumber >= 500) {
|
if (Rankings.INSTANCE.totalNumber >= 250) {
|
||||||
badge = Badge.GAMES_PLAYED_3;
|
badge = Badge.GAMES_PLAYED_3;
|
||||||
}
|
}
|
||||||
if (Rankings.INSTANCE.totalNumber >= 2000) {
|
if (Rankings.INSTANCE.totalNumber >= 1000) {
|
||||||
badge = Badge.GAMES_PLAYED_4;
|
badge = Badge.GAMES_PLAYED_4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -870,11 +876,12 @@ public class Badges {
|
|||||||
leaveBest( filtered, Badge.FOOD_EATEN_1, Badge.FOOD_EATEN_2, Badge.FOOD_EATEN_3, Badge.FOOD_EATEN_4 );
|
leaveBest( filtered, Badge.FOOD_EATEN_1, Badge.FOOD_EATEN_2, Badge.FOOD_EATEN_3, Badge.FOOD_EATEN_4 );
|
||||||
leaveBest( filtered, Badge.ITEM_LEVEL_1, Badge.ITEM_LEVEL_2, Badge.ITEM_LEVEL_3, Badge.ITEM_LEVEL_4 );
|
leaveBest( filtered, Badge.ITEM_LEVEL_1, Badge.ITEM_LEVEL_2, Badge.ITEM_LEVEL_3, Badge.ITEM_LEVEL_4 );
|
||||||
leaveBest( filtered, Badge.POTIONS_COOKED_1, Badge.POTIONS_COOKED_2, Badge.POTIONS_COOKED_3, Badge.POTIONS_COOKED_4 );
|
leaveBest( filtered, Badge.POTIONS_COOKED_1, Badge.POTIONS_COOKED_2, Badge.POTIONS_COOKED_3, Badge.POTIONS_COOKED_4 );
|
||||||
leaveBest( filtered, Badge.BOSS_SLAIN_1_ALL_CLASSES, Badge.BOSS_SLAIN_3_ALL_SUBCLASSES );
|
|
||||||
leaveBest( filtered, Badge.DEATH_FROM_FIRE, Badge.YASD );
|
leaveBest( filtered, Badge.DEATH_FROM_FIRE, Badge.YASD );
|
||||||
leaveBest( filtered, Badge.DEATH_FROM_GAS, Badge.YASD );
|
leaveBest( filtered, Badge.DEATH_FROM_GAS, Badge.YASD );
|
||||||
leaveBest( filtered, Badge.DEATH_FROM_HUNGER, Badge.YASD );
|
leaveBest( filtered, Badge.DEATH_FROM_HUNGER, Badge.YASD );
|
||||||
leaveBest( filtered, Badge.DEATH_FROM_POISON, Badge.YASD );
|
leaveBest( filtered, Badge.DEATH_FROM_POISON, Badge.YASD );
|
||||||
|
leaveBest( filtered, Badge.DEATH_FROM_GLYPH, Badge.YASD );
|
||||||
|
leaveBest( filtered, Badge.DEATH_FROM_FALLING, Badge.YASD );
|
||||||
leaveBest( filtered, Badge.ALL_WEAPONS_IDENTIFIED, Badge.ALL_ITEMS_IDENTIFIED );
|
leaveBest( filtered, Badge.ALL_WEAPONS_IDENTIFIED, Badge.ALL_ITEMS_IDENTIFIED );
|
||||||
leaveBest( filtered, Badge.ALL_ARMOR_IDENTIFIED, Badge.ALL_ITEMS_IDENTIFIED );
|
leaveBest( filtered, Badge.ALL_ARMOR_IDENTIFIED, Badge.ALL_ITEMS_IDENTIFIED );
|
||||||
leaveBest( filtered, Badge.ALL_WANDS_IDENTIFIED, Badge.ALL_ITEMS_IDENTIFIED );
|
leaveBest( filtered, Badge.ALL_WANDS_IDENTIFIED, Badge.ALL_ITEMS_IDENTIFIED );
|
||||||
@@ -882,9 +889,6 @@ public class Badges {
|
|||||||
leaveBest( filtered, Badge.ALL_ARTIFACTS_IDENTIFIED, Badge.ALL_ITEMS_IDENTIFIED );
|
leaveBest( filtered, Badge.ALL_ARTIFACTS_IDENTIFIED, Badge.ALL_ITEMS_IDENTIFIED );
|
||||||
leaveBest( filtered, Badge.ALL_POTIONS_IDENTIFIED, Badge.ALL_ITEMS_IDENTIFIED );
|
leaveBest( filtered, Badge.ALL_POTIONS_IDENTIFIED, Badge.ALL_ITEMS_IDENTIFIED );
|
||||||
leaveBest( filtered, Badge.ALL_SCROLLS_IDENTIFIED, Badge.ALL_ITEMS_IDENTIFIED );
|
leaveBest( filtered, Badge.ALL_SCROLLS_IDENTIFIED, Badge.ALL_ITEMS_IDENTIFIED );
|
||||||
leaveBest( filtered, Badge.VICTORY, Badge.VICTORY_ALL_CLASSES );
|
|
||||||
leaveBest( filtered, Badge.VICTORY, Badge.HAPPY_END );
|
|
||||||
leaveBest( filtered, Badge.VICTORY, Badge.CHAMPION );
|
|
||||||
leaveBest( filtered, Badge.GAMES_PLAYED_1, Badge.GAMES_PLAYED_2, Badge.GAMES_PLAYED_3, Badge.GAMES_PLAYED_4 );
|
leaveBest( filtered, Badge.GAMES_PLAYED_1, Badge.GAMES_PLAYED_2, Badge.GAMES_PLAYED_3, Badge.GAMES_PLAYED_4 );
|
||||||
|
|
||||||
ArrayList<Badge> list = new ArrayList<Badge>( filtered );
|
ArrayList<Badge> list = new ArrayList<Badge>( filtered );
|
||||||
|
|||||||
+28
-21
@@ -61,16 +61,8 @@ public class BadgesScene extends PixelScene {
|
|||||||
archs.setSize( w, h );
|
archs.setSize( w, h );
|
||||||
add( archs );
|
add( archs );
|
||||||
|
|
||||||
float pw = Math.min( w, (ShatteredPixelDungeon.landscape() ? MIN_WIDTH_L : MIN_WIDTH_P) * 3 ) - 16;
|
float left = 5;
|
||||||
float ph = Math.min( h, (ShatteredPixelDungeon.landscape() ? MIN_HEIGHT_L : MIN_HEIGHT_P) * 3 ) - 32;
|
float top = 15;
|
||||||
|
|
||||||
float size = (float)Math.sqrt( pw * ph / 27f );
|
|
||||||
int nCols = (int)Math.ceil( pw / size );
|
|
||||||
int nRows = (int)Math.ceil( ph / size );
|
|
||||||
size = Math.min( pw / nCols, ph / nRows );
|
|
||||||
|
|
||||||
float left = (w - size * nCols) / 2;
|
|
||||||
float top = (h - size * nRows) / 2;
|
|
||||||
|
|
||||||
RenderedText title = PixelScene.renderText( Messages.get(this, "title"), 9 );
|
RenderedText title = PixelScene.renderText( Messages.get(this, "title"), 9 );
|
||||||
title.hardlight(Window.TITLE_COLOR);
|
title.hardlight(Window.TITLE_COLOR);
|
||||||
@@ -82,17 +74,32 @@ public class BadgesScene extends PixelScene {
|
|||||||
Badges.loadGlobal();
|
Badges.loadGlobal();
|
||||||
|
|
||||||
List<Badges.Badge> badges = Badges.filtered( true );
|
List<Badges.Badge> badges = Badges.filtered( true );
|
||||||
for (int i=0; i < nRows; i++) {
|
|
||||||
for (int j=0; j < nCols; j++) {
|
int blankBadges = 34;
|
||||||
int index = i * nCols + j;
|
blankBadges -= badges.size();
|
||||||
Badges.Badge b = index < badges.size() ? badges.get( index ) : null;
|
if (badges.contains(Badges.Badge.ALL_ITEMS_IDENTIFIED)) blankBadges -= 6;
|
||||||
BadgeButton button = new BadgeButton( b );
|
if (badges.contains(Badges.Badge.YASD)) blankBadges -= 5;
|
||||||
button.setPos(
|
blankBadges = Math.max(0, blankBadges);
|
||||||
left + j * size + (size - button.width()) / 2,
|
|
||||||
top + i * size + (size - button.height()) / 2);
|
//guarantees a max of 5 rows in landscape, and 8 in portrait, assuming a max of 40 buttons
|
||||||
align(button);
|
int nCols = ShatteredPixelDungeon.landscape() ? 7 : 4;
|
||||||
add( button );
|
if (badges.size() + blankBadges > 32 && !ShatteredPixelDungeon.landscape()) nCols++;
|
||||||
}
|
|
||||||
|
int nRows = 1 + (blankBadges + badges.size())/nCols;
|
||||||
|
|
||||||
|
float badgeWidth = (w - 2*left)/nCols;
|
||||||
|
float badgeHeight = (h - 2*top)/nRows;
|
||||||
|
|
||||||
|
for (int i = 0; i < badges.size() + blankBadges; i++){
|
||||||
|
int row = i / nCols;
|
||||||
|
int col = i % nCols;
|
||||||
|
Badges.Badge b = i < badges.size() ? badges.get( i ) : null;
|
||||||
|
BadgeButton button = new BadgeButton( b );
|
||||||
|
button.setPos(
|
||||||
|
left + col * badgeWidth + (badgeWidth - button.width()) / 2,
|
||||||
|
top + row * badgeHeight + (badgeHeight - button.height()) / 2);
|
||||||
|
align(button);
|
||||||
|
add( button );
|
||||||
}
|
}
|
||||||
|
|
||||||
ExitButton btnExit = new ExitButton();
|
ExitButton btnExit = new ExitButton();
|
||||||
|
|||||||
+4
-4
@@ -28,7 +28,7 @@ badges$badge.death_from_gas=Death from toxic gas
|
|||||||
badges$badge.death_from_hunger=Death from hunger
|
badges$badge.death_from_hunger=Death from hunger
|
||||||
badges$badge.death_from_glyph=Death from a glyph
|
badges$badge.death_from_glyph=Death from a glyph
|
||||||
badges$badge.death_from_falling=Death from falling down
|
badges$badge.death_from_falling=Death from falling down
|
||||||
badges$badge.yasd=Death from fire, poison, toxic gas & hunger
|
badges$badge.yasd=Death from fire, poison, toxic gas, hunger, glyph, and falling
|
||||||
badges$badge.boss_slain_1=1st boss slain
|
badges$badge.boss_slain_1=1st boss slain
|
||||||
badges$badge.boss_slain_2=2nd boss slain
|
badges$badge.boss_slain_2=2nd boss slain
|
||||||
badges$badge.boss_slain_3=3rd boss slain
|
badges$badge.boss_slain_3=3rd boss slain
|
||||||
@@ -59,9 +59,9 @@ badges$badge.no_monsters_slain=Level completed without killing any monsters
|
|||||||
badges$badge.grim_weapon=Monster killed by a Grim weapon
|
badges$badge.grim_weapon=Monster killed by a Grim weapon
|
||||||
badges$badge.piranhas=6 piranhas killed
|
badges$badge.piranhas=6 piranhas killed
|
||||||
badges$badge.games_played_1=10 games played
|
badges$badge.games_played_1=10 games played
|
||||||
badges$badge.games_played_2=100 games played
|
badges$badge.games_played_2=50 games played
|
||||||
badges$badge.games_played_3=500 games played
|
badges$badge.games_played_3=250 games played
|
||||||
badges$badge.games_played_4=2000 games played
|
badges$badge.games_played_4=1000 games played
|
||||||
badges$badge.happy_end=Happy end
|
badges$badge.happy_end=Happy end
|
||||||
badges$badge.champion=Challenge won
|
badges$badge.champion=Challenge won
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user