v2.5.0: overhauled icons asset file, creating room for more
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
+2
-2
@@ -724,14 +724,14 @@ public class HeroSelectScene extends PixelScene {
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndChallenges(SPDSettings.challenges(), true) {
|
||||
public void onBackPressed() {
|
||||
super.onBackPressed();
|
||||
icon(Icons.get(SPDSettings.challenges() > 0 ? Icons.CHALLENGE_ON : Icons.CHALLENGE_OFF));
|
||||
icon(Icons.get(SPDSettings.challenges() > 0 ? Icons.CHALLENGE_COLOR : Icons.CHALLENGE_GREY));
|
||||
updateOptionsColor();
|
||||
}
|
||||
} );
|
||||
}
|
||||
};
|
||||
challengeButton.leftJustify = true;
|
||||
challengeButton.icon(Icons.get(SPDSettings.challenges() > 0 ? Icons.CHALLENGE_ON : Icons.CHALLENGE_OFF));
|
||||
challengeButton.icon(Icons.get(SPDSettings.challenges() > 0 ? Icons.CHALLENGE_COLOR : Icons.CHALLENGE_GREY));
|
||||
add(challengeButton);
|
||||
buttons.add(challengeButton);
|
||||
}
|
||||
|
||||
@@ -26,11 +26,14 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.watabou.noosa.Image;
|
||||
import com.watabou.utils.RectF;
|
||||
|
||||
public enum Icons {
|
||||
|
||||
//title screen icons, variable sizes, spacing for 17x16
|
||||
//slightly larger title screen icons, spacing for 17x16
|
||||
ENTER,
|
||||
GOLD,
|
||||
RANKINGS,
|
||||
@@ -41,14 +44,6 @@ public enum Icons {
|
||||
SHPX,
|
||||
JOURNAL,
|
||||
|
||||
//rankings and hero select icons, spacing for 16x16
|
||||
STAIRS,
|
||||
WARRIOR,
|
||||
MAGE,
|
||||
ROGUE,
|
||||
HUNTRESS,
|
||||
DUELIST,
|
||||
|
||||
//grey icons, mainly used for buttons, spacing for 16x16
|
||||
EXIT,
|
||||
DISPLAY, //2 separate images, changes based on orientation
|
||||
@@ -60,51 +55,45 @@ public enum Icons {
|
||||
CONTROLLER,
|
||||
KEYBOARD,
|
||||
STATS,
|
||||
CHALLENGE_OFF,
|
||||
CHALLENGE_ON,
|
||||
RENAME_OFF,
|
||||
RENAME_ON,
|
||||
CHALLENGE_GREY,
|
||||
SCROLL_GREY,
|
||||
SEED,
|
||||
LEFTARROW,
|
||||
RIGHTARROW,
|
||||
CALENDAR,
|
||||
|
||||
//misc icons, mainly used for buttons, spacing for 16x16 until the smaller icons at the end
|
||||
//misc larger icons, mainly used for buttons, tabs, and journal, spacing for 16x16
|
||||
TARGET,
|
||||
INFO,
|
||||
WARNING,
|
||||
UNCHECKED,
|
||||
CHECKED,
|
||||
CLOSE,
|
||||
PLUS,
|
||||
REPEAT,
|
||||
ARROW,
|
||||
INFO,
|
||||
WARNING,
|
||||
CHALLENGE_COLOR,
|
||||
SCROLL_COLOR,
|
||||
COPY,
|
||||
PASTE,
|
||||
|
||||
STAIRS,
|
||||
BACKPACK_LRG,
|
||||
TALENT,
|
||||
MAGNIFY,
|
||||
SNAKE,
|
||||
BUFFS,
|
||||
ENERGY,
|
||||
COPY,
|
||||
PASTE,
|
||||
CATALOG,
|
||||
ALCHEMY,
|
||||
COIN_SML,
|
||||
ENERGY_SML,
|
||||
BACKPACK,
|
||||
SEED_POUCH,
|
||||
SCROLL_HOLDER,
|
||||
WAND_HOLSTER,
|
||||
POTION_BANDOLIER,
|
||||
|
||||
//icons that appear in the game itself, variable spacing
|
||||
TARGET,
|
||||
//smaller icons, variable spacing
|
||||
SKULL,
|
||||
BUSY,
|
||||
COMPASS,
|
||||
SLEEP,
|
||||
ALERT,
|
||||
LOST,
|
||||
DEPTH, //depth icons have two variants, for regular and seeded runs
|
||||
DEPTH, //depth icons have three variants, for regular, seeded, daily, and daily replay runs
|
||||
DEPTH_CHASM,
|
||||
DEPTH_WATER,
|
||||
DEPTH_GRASS,
|
||||
@@ -113,6 +102,13 @@ public enum Icons {
|
||||
DEPTH_TRAPS,
|
||||
DEPTH_SECRETS,
|
||||
CHAL_COUNT,
|
||||
COIN_SML,
|
||||
ENERGY_SML,
|
||||
BACKPACK,
|
||||
SEED_POUCH,
|
||||
SCROLL_HOLDER,
|
||||
WAND_HOLSTER,
|
||||
POTION_BANDOLIER,
|
||||
|
||||
//icons that appear in the about screen, variable spacing
|
||||
LIBGDX,
|
||||
@@ -160,27 +156,8 @@ public enum Icons {
|
||||
icon.frame( icon.texture.uvRectBySize( 136, 0, 17, 16 ) );
|
||||
break;
|
||||
|
||||
case STAIRS:
|
||||
icon.frame( icon.texture.uvRectBySize( 0, 16, 13, 16 ) );
|
||||
break;
|
||||
case WARRIOR:
|
||||
icon.frame( icon.texture.uvRectBySize( 16, 16, 9, 15 ) );
|
||||
break;
|
||||
case MAGE:
|
||||
icon.frame( icon.texture.uvRectBySize( 32, 16, 15, 14 ) );
|
||||
break;
|
||||
case ROGUE:
|
||||
icon.frame( icon.texture.uvRectBySize( 48, 16, 9, 15 ) );
|
||||
break;
|
||||
case HUNTRESS:
|
||||
icon.frame( icon.texture.uvRectBySize( 64, 16, 16, 16 ) );
|
||||
break;
|
||||
case DUELIST:
|
||||
icon.frame( icon.texture.uvRectBySize( 80, 16, 13, 14 ) );
|
||||
break;
|
||||
|
||||
case EXIT:
|
||||
icon.frame( icon.texture.uvRectBySize( 0, 32, 15, 11 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 0, 16, 15, 11 ) );
|
||||
break;
|
||||
case DISPLAY:
|
||||
if (!PixelScene.landscape()){
|
||||
@@ -189,177 +166,178 @@ public enum Icons {
|
||||
return get(DISPLAY_LAND);
|
||||
}
|
||||
case DISPLAY_PORT:
|
||||
icon.frame( icon.texture.uvRectBySize( 16, 32, 12, 16 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 16, 16, 12, 16 ) );
|
||||
break;
|
||||
case DISPLAY_LAND:
|
||||
icon.frame( icon.texture.uvRectBySize( 32, 32, 16, 12 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 32, 16, 16, 12 ) );
|
||||
break;
|
||||
case DATA:
|
||||
icon.frame( icon.texture.uvRectBySize( 48, 32, 14, 15 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 48, 16, 14, 15 ) );
|
||||
break;
|
||||
case AUDIO:
|
||||
icon.frame( icon.texture.uvRectBySize( 64, 32, 14, 14 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 64, 16, 14, 14 ) );
|
||||
break;
|
||||
case LANGS:
|
||||
icon.frame( icon.texture.uvRectBySize( 80, 32, 14, 11 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 80, 16, 14, 11 ) );
|
||||
break;
|
||||
case CONTROLLER:
|
||||
icon.frame( icon.texture.uvRectBySize( 96, 32, 16, 12 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 96, 16, 16, 12 ) );
|
||||
break;
|
||||
case KEYBOARD:
|
||||
icon.frame( icon.texture.uvRectBySize( 112, 32, 15, 12 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 112, 16, 15, 12 ) );
|
||||
break;
|
||||
case STATS:
|
||||
icon.frame( icon.texture.uvRectBySize( 128, 32, 16, 13 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 128, 16, 16, 13 ) );
|
||||
break;
|
||||
case CHALLENGE_OFF:
|
||||
icon.frame( icon.texture.uvRectBySize( 144, 32, 15, 12 ) );
|
||||
case CHALLENGE_GREY:
|
||||
icon.frame( icon.texture.uvRectBySize( 144, 16, 15, 12 ) );
|
||||
break;
|
||||
case CHALLENGE_ON:
|
||||
icon.frame( icon.texture.uvRectBySize( 160, 32, 15, 12 ) );
|
||||
break;
|
||||
case RENAME_OFF:
|
||||
icon.frame( icon.texture.uvRectBySize( 176, 32, 15, 14 ) );
|
||||
break;
|
||||
case RENAME_ON:
|
||||
icon.frame( icon.texture.uvRectBySize( 192, 32, 15, 14 ) );
|
||||
case SCROLL_GREY:
|
||||
icon.frame( icon.texture.uvRectBySize( 160, 16, 15, 14 ) );
|
||||
break;
|
||||
case SEED:
|
||||
icon.frame( icon.texture.uvRectBySize( 208, 32, 15, 10 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 176, 16, 15, 10 ) );
|
||||
break;
|
||||
case LEFTARROW:
|
||||
icon.frame( icon.texture.uvRectBySize( 224, 32, 14, 9 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 192, 16, 14, 9 ) );
|
||||
break;
|
||||
case RIGHTARROW:
|
||||
icon.frame( icon.texture.uvRectBySize( 240, 32, 14, 9 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 208, 16, 14, 9 ) );
|
||||
break;
|
||||
case CALENDAR:
|
||||
icon.frame( icon.texture.uvRectBySize( 240, 16, 15, 12 ) );
|
||||
break;
|
||||
|
||||
case UNCHECKED:
|
||||
icon.frame( icon.texture.uvRectBySize( 0, 48, 12, 12 ) );
|
||||
break;
|
||||
case CHECKED:
|
||||
icon.frame( icon.texture.uvRectBySize( 16, 48, 12, 12 ) );
|
||||
break;
|
||||
case CLOSE:
|
||||
icon.frame( icon.texture.uvRectBySize( 32, 48, 11, 11 ) );
|
||||
break;
|
||||
case PLUS:
|
||||
icon.frame( icon.texture.uvRectBySize( 48, 48, 11, 11 ) );
|
||||
break;
|
||||
case REPEAT:
|
||||
icon.frame( icon.texture.uvRectBySize( 64, 48, 11, 11 ) );
|
||||
break;
|
||||
case ARROW:
|
||||
icon.frame( icon.texture.uvRectBySize( 80, 48, 11, 11 ) );
|
||||
break;
|
||||
case INFO:
|
||||
icon.frame( icon.texture.uvRectBySize( 96, 48, 14, 14 ) );
|
||||
break;
|
||||
case WARNING:
|
||||
icon.frame( icon.texture.uvRectBySize( 112, 48, 14, 14 ) );
|
||||
break;
|
||||
case BACKPACK_LRG:
|
||||
icon.frame( icon.texture.uvRectBySize( 128, 48, 16, 16 ) );
|
||||
break;
|
||||
case TALENT:
|
||||
icon.frame( icon.texture.uvRectBySize( 144, 48, 13, 13 ) );
|
||||
break;
|
||||
case MAGNIFY:
|
||||
icon.frame( icon.texture.uvRectBySize( 160, 48, 14, 14 ) );
|
||||
break;
|
||||
case SNAKE:
|
||||
icon.frame( icon.texture.uvRectBySize( 176, 48, 9, 13 ) );
|
||||
break;
|
||||
case BUFFS:
|
||||
icon.frame( icon.texture.uvRectBySize( 192, 48, 16, 15 ) );
|
||||
break;
|
||||
case ENERGY:
|
||||
icon.frame( icon.texture.uvRectBySize( 208, 48, 16, 16 ) );
|
||||
break;
|
||||
case COPY:
|
||||
icon.frame( icon.texture.uvRectBySize( 224, 48, 13, 13 ) );
|
||||
break;
|
||||
case PASTE:
|
||||
icon.frame( icon.texture.uvRectBySize( 240, 48, 13, 13 ) );
|
||||
break;
|
||||
case CATALOG:
|
||||
icon.frame( icon.texture.uvRectBySize( 240, 64, 13, 16 ) );
|
||||
break;
|
||||
case ALCHEMY:
|
||||
icon.frame( icon.texture.uvRectBySize( 224, 64, 16, 16 ) );
|
||||
break;
|
||||
case COIN_SML:
|
||||
icon.frame( icon.texture.uvRectBySize( 192, 80, 7, 7 ) );
|
||||
break;
|
||||
case ENERGY_SML:
|
||||
icon.frame( icon.texture.uvRectBySize( 192, 88, 8, 7 ) );
|
||||
break;
|
||||
case BACKPACK:
|
||||
icon.frame( icon.texture.uvRectBySize( 201, 80, 10, 10 ) );
|
||||
break;
|
||||
case SCROLL_HOLDER:
|
||||
icon.frame( icon.texture.uvRectBySize( 211, 80, 10, 10 ) );
|
||||
break;
|
||||
case SEED_POUCH:
|
||||
icon.frame( icon.texture.uvRectBySize( 221, 80, 10, 10 ) );
|
||||
break;
|
||||
case WAND_HOLSTER:
|
||||
icon.frame( icon.texture.uvRectBySize( 231, 80, 10, 10 ) );
|
||||
break;
|
||||
case POTION_BANDOLIER:
|
||||
icon.frame( icon.texture.uvRectBySize( 241, 80, 10, 10 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 224, 16, 15, 12 ) );
|
||||
break;
|
||||
|
||||
case TARGET:
|
||||
icon.frame( icon.texture.uvRectBySize( 0, 64, 16, 16 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 0, 32, 16, 16 ) );
|
||||
break;
|
||||
case INFO:
|
||||
icon.frame( icon.texture.uvRectBySize( 16, 32, 14, 14 ) );
|
||||
break;
|
||||
case WARNING:
|
||||
icon.frame( icon.texture.uvRectBySize( 32, 32, 14, 14 ) );
|
||||
break;
|
||||
case UNCHECKED:
|
||||
icon.frame( icon.texture.uvRectBySize( 48, 32, 12, 12 ) );
|
||||
break;
|
||||
case CHECKED:
|
||||
icon.frame( icon.texture.uvRectBySize( 64, 32, 12, 12 ) );
|
||||
break;
|
||||
case CLOSE:
|
||||
icon.frame( icon.texture.uvRectBySize( 80, 32, 11, 11 ) );
|
||||
break;
|
||||
case PLUS:
|
||||
icon.frame( icon.texture.uvRectBySize( 96, 32, 11, 11 ) );
|
||||
break;
|
||||
case REPEAT:
|
||||
icon.frame( icon.texture.uvRectBySize( 112, 32, 11, 11 ) );
|
||||
break;
|
||||
case ARROW:
|
||||
icon.frame( icon.texture.uvRectBySize( 128, 32, 11, 11 ) );
|
||||
break;
|
||||
case CHALLENGE_COLOR:
|
||||
icon.frame( icon.texture.uvRectBySize( 144, 32, 15, 12 ) );
|
||||
break;
|
||||
case SCROLL_COLOR:
|
||||
icon.frame( icon.texture.uvRectBySize( 160, 32, 15, 14 ) );
|
||||
break;
|
||||
case COPY:
|
||||
icon.frame( icon.texture.uvRectBySize( 176, 32, 13, 13 ) );
|
||||
break;
|
||||
case PASTE:
|
||||
icon.frame( icon.texture.uvRectBySize( 192, 32, 13, 13 ) );
|
||||
break;
|
||||
|
||||
case STAIRS:
|
||||
icon.frame( icon.texture.uvRectBySize( 0, 48, 13, 16 ) );
|
||||
break;
|
||||
case BACKPACK_LRG:
|
||||
icon.frame( icon.texture.uvRectBySize( 16, 48, 16, 16 ) );
|
||||
break;
|
||||
case TALENT:
|
||||
icon.frame( icon.texture.uvRectBySize( 32, 48, 13, 13 ) );
|
||||
break;
|
||||
case MAGNIFY:
|
||||
icon.frame( icon.texture.uvRectBySize( 48, 48, 14, 14 ) );
|
||||
break;
|
||||
case SNAKE:
|
||||
icon.frame( icon.texture.uvRectBySize( 64, 48, 9, 13 ) );
|
||||
break;
|
||||
case BUFFS:
|
||||
icon.frame( icon.texture.uvRectBySize( 80, 48, 16, 15 ) );
|
||||
break;
|
||||
case CATALOG:
|
||||
icon.frame( icon.texture.uvRectBySize( 96, 48, 13, 16 ) );
|
||||
break;
|
||||
case ALCHEMY:
|
||||
icon.frame( icon.texture.uvRectBySize( 112, 48, 16, 16 ) );
|
||||
break;
|
||||
|
||||
case SKULL:
|
||||
icon.frame( icon.texture.uvRectBySize( 16, 64, 8, 8 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 0, 64, 8, 8 ) );
|
||||
break;
|
||||
case BUSY:
|
||||
icon.frame( icon.texture.uvRectBySize( 24, 64, 8, 8 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 8, 64, 8, 8 ) );
|
||||
break;
|
||||
case COMPASS:
|
||||
icon.frame( icon.texture.uvRectBySize( 16, 72, 7, 5 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 0, 72, 7, 5 ) );
|
||||
break;
|
||||
case SLEEP:
|
||||
icon.frame( icon.texture.uvRectBySize( 32, 64, 9, 8 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 16, 64, 9, 8 ) );
|
||||
break;
|
||||
case ALERT:
|
||||
icon.frame( icon.texture.uvRectBySize( 32, 72, 8, 8 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 16, 72, 8, 8 ) );
|
||||
break;
|
||||
case LOST:
|
||||
icon.frame( icon.texture.uvRectBySize( 40, 72, 8, 8 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 24, 72, 8, 8 ) );
|
||||
break;
|
||||
case DEPTH:
|
||||
icon.frame( icon.texture.uvRectBySize( 48, 64 + runTypeOfs(), 6, 7 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 32 + runTypeOfsX(), 64 + runTypeOfsY(), 6, 7 ) );
|
||||
break;
|
||||
case DEPTH_CHASM:
|
||||
icon.frame( icon.texture.uvRectBySize( 56, 64 + runTypeOfs(), 7, 7 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 40 + runTypeOfsX(), 64 + runTypeOfsY(), 7, 7 ) );
|
||||
break;
|
||||
case DEPTH_WATER:
|
||||
icon.frame( icon.texture.uvRectBySize( 64, 64 + runTypeOfs(), 7, 7 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 48 + runTypeOfsX(), 64 + runTypeOfsY(), 7, 7 ) );
|
||||
break;
|
||||
case DEPTH_GRASS:
|
||||
icon.frame( icon.texture.uvRectBySize( 72, 64 + runTypeOfs(), 7, 7 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 56 + runTypeOfsX(), 64 + runTypeOfsY(), 7, 7 ) );
|
||||
break;
|
||||
case DEPTH_DARK:
|
||||
icon.frame( icon.texture.uvRectBySize( 80, 64 + runTypeOfs(), 7, 7 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 64 + runTypeOfsX(), 64 + runTypeOfsY(), 7, 7 ) );
|
||||
break;
|
||||
case DEPTH_LARGE:
|
||||
icon.frame( icon.texture.uvRectBySize( 88, 64 + runTypeOfs(), 7, 7 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 72 + runTypeOfsX(), 64 + runTypeOfsY(), 7, 7 ) );
|
||||
break;
|
||||
case DEPTH_TRAPS:
|
||||
icon.frame( icon.texture.uvRectBySize( 96, 64 + runTypeOfs(), 7, 7 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 80 + runTypeOfsX(), 64 + runTypeOfsY(), 7, 7 ) );
|
||||
break;
|
||||
case DEPTH_SECRETS:
|
||||
icon.frame( icon.texture.uvRectBySize( 104, 64 + runTypeOfs(), 7, 7 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 88 + runTypeOfsX(), 64 + runTypeOfsY(), 7, 7 ) );
|
||||
break;
|
||||
case CHAL_COUNT:
|
||||
icon.frame( icon.texture.uvRectBySize( 112, 64, 7, 7 ) );
|
||||
icon.frame( icon.texture.uvRectBySize( 160, 64, 7, 7 ) );
|
||||
break;
|
||||
case COIN_SML:
|
||||
icon.frame( icon.texture.uvRectBySize( 168, 64, 7, 7 ) );
|
||||
break;
|
||||
case ENERGY_SML:
|
||||
icon.frame( icon.texture.uvRectBySize( 168, 72, 8, 7 ) );
|
||||
break;
|
||||
case BACKPACK:
|
||||
icon.frame( icon.texture.uvRectBySize( 176, 64, 10, 10 ) );
|
||||
break;
|
||||
case SCROLL_HOLDER:
|
||||
icon.frame( icon.texture.uvRectBySize( 186, 64, 10, 10 ) );
|
||||
break;
|
||||
case SEED_POUCH:
|
||||
icon.frame( icon.texture.uvRectBySize( 196, 64, 10, 10 ) );
|
||||
break;
|
||||
case WAND_HOLSTER:
|
||||
icon.frame( icon.texture.uvRectBySize( 206, 64, 10, 10 ) );
|
||||
break;
|
||||
case POTION_BANDOLIER:
|
||||
icon.frame( icon.texture.uvRectBySize( 216, 64, 10, 10 ) );
|
||||
break;
|
||||
|
||||
case LIBGDX:
|
||||
@@ -398,14 +376,12 @@ public enum Icons {
|
||||
return icon;
|
||||
}
|
||||
|
||||
private static int runTypeOfs(){
|
||||
if (Dungeon.daily){
|
||||
if (Dungeon.dailyReplay){
|
||||
return 24;
|
||||
} else {
|
||||
return 16;
|
||||
}
|
||||
} else if (!Dungeon.customSeedText.isEmpty()){
|
||||
private static int runTypeOfsX(){
|
||||
return Dungeon.daily ? 64 : 0;
|
||||
}
|
||||
|
||||
private static int runTypeOfsY(){
|
||||
if (Dungeon.dailyReplay || !Dungeon.customSeedText.isEmpty()){
|
||||
return 8;
|
||||
} else {
|
||||
return 0;
|
||||
@@ -415,15 +391,20 @@ public enum Icons {
|
||||
public static Image get( HeroClass cl ) {
|
||||
switch (cl) {
|
||||
case WARRIOR:
|
||||
return get( Icons.WARRIOR );
|
||||
return new ItemSprite(ItemSpriteSheet.SEAL);
|
||||
case MAGE:
|
||||
return get( Icons.MAGE );
|
||||
//mage's staff normally has 2 pixels extra at the top for particle effects, we chop that off here
|
||||
Image result = new ItemSprite(ItemSpriteSheet.MAGES_STAFF);
|
||||
RectF frame = result.frame();
|
||||
frame.top += frame.height()/8f;
|
||||
result.frame(frame);
|
||||
return result;
|
||||
case ROGUE:
|
||||
return get( Icons.ROGUE );
|
||||
return new ItemSprite(ItemSpriteSheet.ARTIFACT_CLOAK);
|
||||
case HUNTRESS:
|
||||
return get( Icons.HUNTRESS );
|
||||
return new ItemSprite(ItemSpriteSheet.SPIRIT_BOW);
|
||||
case DUELIST:
|
||||
return get( Icons.DUELIST );
|
||||
return new ItemSprite(ItemSpriteSheet.RAPIER);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
||||
+1
-1
@@ -218,7 +218,7 @@ public class v0_6_X_Changes {
|
||||
"\n" +
|
||||
"I also made some important changes to challenges in v0.6.4, primarily to make stacked challenge games a bit easier. This made high-challenge games more feasible without extreme luck, which led to a big increase in challenge interest among highly skilled players."));
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.CHALLENGE_ON), "Challenges",
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.CHALLENGE_COLOR), "Challenges",
|
||||
"Challenges have received several major changes, with the goal of making them more fair and interesting.\n" +
|
||||
"\n" +
|
||||
"_-_ Challenges now have descriptions\n" +
|
||||
|
||||
+4
-4
@@ -77,7 +77,7 @@ public class v0_9_X_Changes {
|
||||
"After the defeating the fourth boss, the player now gets to choose between one of three abilities for each hero. Armor abilities also charge much faster, and can be further improved via tier four talents!\n\n" +
|
||||
"Each armor ability has three talents, plus one charge-speed talent that's shared between them. These talents all take up to 4 points, and there are up to 10 points available in tier 4, for levels 21-30."));
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.CHALLENGE_ON), "New Challenge!",
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.CHALLENGE_COLOR), "New Challenge!",
|
||||
"A new challenge has been added: _Badder Bosses!_\n\n" +
|
||||
"This challenge is a followup to Hostile Champions in a lot of ways, making the dungeon's bosses much stronger, instead of the enemies. Early bosses like Goo are only a touch tougher, but lategame bosses are quite a lot more deadly!\n\n" +
|
||||
"To go along with this challenge, I've also made a few targeted tweaks to regular boss mechanics:\n" +
|
||||
@@ -342,7 +342,7 @@ public class v0_9_X_Changes {
|
||||
"_- Succubi:_ Damage up to 25-30 from 22-30.\n" +
|
||||
"_- Scorpios:_ HP up to 110 from 95, damage up to 30-40 from 26-36."));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), "Hostile Champions",
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_COLOR), "Hostile Champions",
|
||||
"I've made another round of tweaks to the Hostile Champions challenge to make it more consistent and a bit harder overall:\n\n" +
|
||||
"_-_ Champion spawn rate up to 1/8 from 1/10.\n" +
|
||||
"_-_ Rather than having a 1/8 chance per enemy, the game now guarantees that every 8th enemy is a champion. This should make champion spawn rates much more consistent.\n" +
|
||||
@@ -551,7 +551,7 @@ public class v0_9_X_Changes {
|
||||
"Talents are split into tiers, and to start only the first tier is available, which covers levels 1 to 6. More talents will be added soon!\n\n" +
|
||||
"Previously I would have spent many more months on v0.9.0 and released the entire system in one update, but I'm changing up my strategy and splitting these big updates into smaller parts."));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), "Hostile Champions!",
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_COLOR), "Hostile Champions!",
|
||||
"A new challenge has been added: _Hostile Champions!_\n\n" +
|
||||
"Unlike most other challenges, this one focuses on amping up the difficulty of the dungeon, rather than removing tools from the player. Give it a try if you've unlocked challenges, and you might find some particularly nasty enemies in the dungeon!"));
|
||||
|
||||
@@ -570,7 +570,7 @@ public class v0_9_X_Changes {
|
||||
"The _Mage_ no longer has an innate wand identification effect, this is replaced by his wand identification talent.\n\n" +
|
||||
"The _Huntress'_ studded gloves have had their base damage reduced to 1-5 from 1-6, to compensate for her damage-dealing talent."));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_OFF), "Existing Challenges",
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_GREY), "Existing Challenges",
|
||||
"Some existing challenges have been tweaked to reduce the number of items that they remove from the game:\n\n" +
|
||||
"_On Diet_ no longer restricts food, but instead causes all food to be 1/3 as effective at satiating hunger.\n\n" +
|
||||
"_Faith Is My Armor_ no longer restricts the hero to cloth armor, but instead heavily reduces the blocking power of all armor above cloth.\n\n" +
|
||||
|
||||
+2
-2
@@ -206,7 +206,7 @@ public class v2_X_Changes {
|
||||
"_-_ Champion's two weapons now share a charge count, but Champion gets boosted max charges and charge speed.\n" +
|
||||
"_-_ Champion's secondary charge talent has been replaced with a new talent that encourages varied ability use."));
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.ENERGY), "Alchemy Changes",
|
||||
changes.addButton( new ChangeButton(new ItemSprite(ItemSpriteSheet.ENERGY), "Alchemy Changes",
|
||||
"I've made a bunch of changes to the alchemy system to streamline things and complement the addition of trinkets:\n" +
|
||||
"\n" +
|
||||
"_-_ Catalysts have been removed entirely, recipes that required one now simply cost 8 or 9 more energy.\n" +
|
||||
@@ -607,7 +607,7 @@ public class v2_X_Changes {
|
||||
changes.hardlight(CharSprite.WARNING);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.CHALLENGE_ON.get(), "Hostile Champions",
|
||||
changes.addButton( new ChangeButton(Icons.CHALLENGE_COLOR.get(), "Hostile Champions",
|
||||
"I've decided to make some changes to the hostile champions challenge, to better balance the difficulty of each of the champion types, and address some common feedback about difficulty spikes:\n" +
|
||||
"\n" +
|
||||
"_- Projecting Champions_ now have +3 attack range, instead of infinite range\n" +
|
||||
|
||||
@@ -70,7 +70,7 @@ public class WndGame extends Window {
|
||||
GameScene.show( new WndChallenges( Dungeon.challenges, false ) );
|
||||
}
|
||||
} );
|
||||
curBtn.icon(Icons.get(Icons.CHALLENGE_ON));
|
||||
curBtn.icon(Icons.get(Icons.CHALLENGE_COLOR));
|
||||
}
|
||||
|
||||
// Restart
|
||||
|
||||
+1
-1
@@ -78,7 +78,7 @@ public class WndGameInProgress extends Window {
|
||||
Game.scene().add( new WndChallenges( info.challenges, false ) );
|
||||
}
|
||||
};
|
||||
btnChallenges.icon(Icons.get(Icons.CHALLENGE_ON));
|
||||
btnChallenges.icon(Icons.get(Icons.CHALLENGE_COLOR));
|
||||
float btnW = btnChallenges.reqWidth() + 2;
|
||||
btnChallenges.setRect( (WIDTH - btnW)/2, pos, btnW , 18 );
|
||||
add( btnChallenges );
|
||||
|
||||
@@ -39,6 +39,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfWarding;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.SpiritBow;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Bestiary;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Document;
|
||||
@@ -702,6 +703,13 @@ public class WndJournal extends WndTabbed {
|
||||
}
|
||||
}
|
||||
|
||||
//mage's staff normally has 2 pixels extra at the top for particle effects, we chop that off here
|
||||
if (item instanceof MagesStaff){
|
||||
RectF frame = sprite.frame();
|
||||
frame.top += frame.height()/8f;
|
||||
sprite.frame(frame);
|
||||
}
|
||||
|
||||
if (item.icon != -1) {
|
||||
secondIcon = new Image(Assets.Sprites.ITEM_ICONS);
|
||||
secondIcon.frame(ItemSpriteSheet.Icons.film.get(item.icon));
|
||||
|
||||
@@ -107,7 +107,7 @@ public class WndRanking extends WndTabbed {
|
||||
|
||||
if (Dungeon.hero != null) {
|
||||
Icons[] icons =
|
||||
{Icons.RANKINGS, Icons.TALENT, Icons.BACKPACK_LRG, Icons.BADGES, Icons.CHALLENGE_ON};
|
||||
{Icons.RANKINGS, Icons.TALENT, Icons.BACKPACK_LRG, Icons.BADGES, Icons.CHALLENGE_COLOR};
|
||||
Group[] pages =
|
||||
{new StatsTab(), new TalentsTab(), new ItemsTab(), new BadgesTab(), null};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user