v2.3.0: added two badges for hero remains items
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.6 KiB |
@@ -80,6 +80,8 @@ badges$badge.boss_slain_1_all_classes.title=Jack of Many Trades
|
||||
badges$badge.boss_slain_1_all_classes.desc=Defeat the first boss with every hero class
|
||||
badges$badge.boss_slain_3_all_subclasses.title=Jack of All Trades
|
||||
badges$badge.boss_slain_3_all_subclasses.desc=Defeat the third boss with every hero subclass
|
||||
badges$badge.boss_slain_remains.title=Taste Vengeance!
|
||||
badges$badge.boss_slain_remains.desc=Defeat a boss while holding the signature item of a hero who died to that boss
|
||||
badges$badge.strength_attained_1.title=Novice Bodybuilder
|
||||
badges$badge.strength_attained_1.desc=Reach 12 base points of strength
|
||||
badges$badge.strength_attained_2.title=Adept Bodybuilder
|
||||
@@ -164,6 +166,8 @@ badges$badge.high_score_5.title=Grandmaster Score Chaser
|
||||
badges$badge.high_score_5.desc=End a run with a score of 1,000,000 or higher
|
||||
badges$badge.happy_end.title=Happy Ending
|
||||
badges$badge.happy_end.desc=Take the Amulet of Yendor to the surface
|
||||
badges$badge.happy_end_remains.title=You Made It Too
|
||||
badges$badge.happy_end_remains.desc=Bring a fallen hero's signature item to the surface
|
||||
badges$badge.champion_1.title=Bronze Champion
|
||||
badges$badge.champion_1.desc=Beat the game with 1 or more challenges enabled
|
||||
badges$badge.champion_2.title=Silver Champion
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.bags.MagicalHolster;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bags.PotionBandolier;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bags.ScrollHolder;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bags.VelvetPouch;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.remains.RemainsItem;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
@@ -83,35 +84,36 @@ public class Badges {
|
||||
|
||||
//silver
|
||||
NO_MONSTERS_SLAIN ( 32 ),
|
||||
MONSTERS_SLAIN_3 ( 33 ),
|
||||
MONSTERS_SLAIN_4 ( 34 ),
|
||||
GOLD_COLLECTED_3 ( 35 ),
|
||||
GOLD_COLLECTED_4 ( 36 ),
|
||||
ITEM_LEVEL_2 ( 37 ),
|
||||
ITEM_LEVEL_3 ( 38 ),
|
||||
LEVEL_REACHED_2 ( 39 ),
|
||||
LEVEL_REACHED_3 ( 40 ),
|
||||
STRENGTH_ATTAINED_2 ( 41 ),
|
||||
STRENGTH_ATTAINED_3 ( 42 ),
|
||||
FOOD_EATEN_2 ( 43 ),
|
||||
FOOD_EATEN_3 ( 44 ),
|
||||
ITEMS_CRAFTED_2 ( 45 ),
|
||||
ITEMS_CRAFTED_3 ( 46 ),
|
||||
BOSS_SLAIN_2 ( 47 ),
|
||||
BOSS_SLAIN_3 ( 48 ),
|
||||
ALL_POTIONS_IDENTIFIED ( 49 ),
|
||||
ALL_SCROLLS_IDENTIFIED ( 50 ),
|
||||
DEATH_FROM_ENEMY_MAGIC ( 51 ),
|
||||
DEATH_FROM_FRIENDLY_MAGIC ( 52 ),
|
||||
DEATH_FROM_SACRIFICE ( 53 ),
|
||||
BOSS_SLAIN_REMAINS ( 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 ),
|
||||
ITEMS_CRAFTED_2 ( 46 ),
|
||||
ITEMS_CRAFTED_3 ( 47 ),
|
||||
BOSS_SLAIN_2 ( 48 ),
|
||||
BOSS_SLAIN_3 ( 49 ),
|
||||
ALL_POTIONS_IDENTIFIED ( 50 ),
|
||||
ALL_SCROLLS_IDENTIFIED ( 51 ),
|
||||
DEATH_FROM_ENEMY_MAGIC ( 52 ),
|
||||
DEATH_FROM_FRIENDLY_MAGIC ( 53 ),
|
||||
DEATH_FROM_SACRIFICE ( 54 ),
|
||||
BOSS_SLAIN_1_WARRIOR,
|
||||
BOSS_SLAIN_1_MAGE,
|
||||
BOSS_SLAIN_1_ROGUE,
|
||||
BOSS_SLAIN_1_HUNTRESS,
|
||||
BOSS_SLAIN_1_DUELIST,
|
||||
BOSS_SLAIN_1_ALL_CLASSES ( 54, true ),
|
||||
GAMES_PLAYED_2 ( 55, true ),
|
||||
HIGH_SCORE_2 ( 56 ),
|
||||
BOSS_SLAIN_1_ALL_CLASSES ( 55, true ),
|
||||
GAMES_PLAYED_2 ( 56, true ),
|
||||
HIGH_SCORE_2 ( 57 ),
|
||||
|
||||
//gold
|
||||
PIRANHAS ( 64 ),
|
||||
@@ -146,17 +148,18 @@ public class Badges {
|
||||
ITEM_LEVEL_5 ( 96 ),
|
||||
LEVEL_REACHED_5 ( 97 ),
|
||||
HAPPY_END ( 98 ),
|
||||
ALL_WEAPONS_IDENTIFIED ( 99 ),
|
||||
ALL_ARMOR_IDENTIFIED ( 100 ),
|
||||
ALL_WANDS_IDENTIFIED ( 101 ),
|
||||
ALL_ITEMS_IDENTIFIED ( 102, true ),
|
||||
HAPPY_END_REMAINS ( 99 ),
|
||||
ALL_WEAPONS_IDENTIFIED ( 100 ),
|
||||
ALL_ARMOR_IDENTIFIED ( 101 ),
|
||||
ALL_WANDS_IDENTIFIED ( 102 ),
|
||||
ALL_ITEMS_IDENTIFIED ( 103, true ),
|
||||
VICTORY_WARRIOR,
|
||||
VICTORY_MAGE,
|
||||
VICTORY_ROGUE,
|
||||
VICTORY_HUNTRESS,
|
||||
VICTORY_DUELIST,
|
||||
VICTORY_ALL_CLASSES ( 103, true ),
|
||||
DEATH_FROM_ALL ( 104, true ),
|
||||
VICTORY_ALL_CLASSES ( 104, true ),
|
||||
DEATH_FROM_ALL ( 105, true ),
|
||||
BOSS_SLAIN_3_GLADIATOR,
|
||||
BOSS_SLAIN_3_BERSERKER,
|
||||
BOSS_SLAIN_3_WARLOCK,
|
||||
@@ -167,12 +170,12 @@ public class Badges {
|
||||
BOSS_SLAIN_3_WARDEN,
|
||||
BOSS_SLAIN_3_CHAMPION,
|
||||
BOSS_SLAIN_3_MONK,
|
||||
BOSS_SLAIN_3_ALL_SUBCLASSES ( 105, true ),
|
||||
BOSS_CHALLENGE_3 ( 106 ),
|
||||
BOSS_CHALLENGE_4 ( 107 ),
|
||||
GAMES_PLAYED_4 ( 108, true ),
|
||||
HIGH_SCORE_4 ( 109 ),
|
||||
CHAMPION_1 ( 110 ),
|
||||
BOSS_SLAIN_3_ALL_SUBCLASSES ( 106, true ),
|
||||
BOSS_CHALLENGE_3 ( 107 ),
|
||||
BOSS_CHALLENGE_4 ( 108 ),
|
||||
GAMES_PLAYED_4 ( 109, true ),
|
||||
HIGH_SCORE_4 ( 110 ),
|
||||
CHAMPION_1 ( 111 ),
|
||||
|
||||
//diamond
|
||||
BOSS_CHALLENGE_5 ( 120 ),
|
||||
@@ -794,6 +797,14 @@ public class Badges {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Statistics.qualifiedForBossRemainsBadge && Dungeon.hero.belongings.getItem(RemainsItem.class) != null){
|
||||
badge = Badge.BOSS_SLAIN_REMAINS;
|
||||
if (!isUnlocked( badge )) {
|
||||
displayBadge( badge );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -994,10 +1005,17 @@ public class Badges {
|
||||
if (!local.contains( Badge.HAPPY_END )){
|
||||
local.add( Badge.HAPPY_END );
|
||||
}
|
||||
|
||||
if(!local.contains( Badge.HAPPY_END_REMAINS ) && Dungeon.hero.belongings.getItem(RemainsItem.class) != null){
|
||||
local.add( Badge.HAPPY_END_REMAINS );
|
||||
}
|
||||
}
|
||||
|
||||
public static void validateHappyEnd() {
|
||||
displayBadge( Badge.HAPPY_END );
|
||||
if (local.contains(Badge.HAPPY_END_REMAINS)) {
|
||||
displayBadge(Badge.HAPPY_END_REMAINS);
|
||||
}
|
||||
}
|
||||
|
||||
public static void validateChampion( int challenges ) {
|
||||
|
||||
@@ -239,6 +239,9 @@ public class Bones {
|
||||
|
||||
if (heroClass != null) {
|
||||
result.add(RemainsItem.get(heroClass));
|
||||
if (Dungeon.bossLevel()){
|
||||
Statistics.qualifiedForBossRemainsBadge = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (item != null) {
|
||||
|
||||
@@ -382,6 +382,8 @@ public class Dungeon {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Statistics.qualifiedForBossRemainsBadge = false;
|
||||
|
||||
level.create();
|
||||
|
||||
|
||||
@@ -61,6 +61,7 @@ public class Statistics {
|
||||
|
||||
public static boolean qualifiedForNoKilling = false;
|
||||
public static boolean completedWithNoKilling = false;
|
||||
public static boolean qualifiedForBossRemainsBadge = false;
|
||||
public static boolean qualifiedForBossChallengeBadge = false;
|
||||
|
||||
public static boolean amuletObtained = false;
|
||||
@@ -100,6 +101,7 @@ public class Statistics {
|
||||
duration = 0;
|
||||
|
||||
qualifiedForNoKilling = false;
|
||||
qualifiedForBossRemainsBadge = false;
|
||||
qualifiedForBossChallengeBadge = false;
|
||||
|
||||
amuletObtained = false;
|
||||
@@ -139,6 +141,7 @@ public class Statistics {
|
||||
private static final String DURATION = "duration";
|
||||
|
||||
private static final String NO_KILLING_QUALIFIED = "qualifiedForNoKilling";
|
||||
private static final String BOSS_REMAINS_QUALIFIED = "qualifiedForBossRemainsBadge";
|
||||
private static final String BOSS_CHALLENGE_QUALIFIED= "qualifiedForBossChallengeBadge";
|
||||
|
||||
private static final String AMULET = "amuletObtained";
|
||||
@@ -181,6 +184,7 @@ public class Statistics {
|
||||
bundle.put( DURATION, duration );
|
||||
|
||||
bundle.put(NO_KILLING_QUALIFIED, qualifiedForNoKilling);
|
||||
bundle.put(BOSS_REMAINS_QUALIFIED, qualifiedForBossRemainsBadge);
|
||||
bundle.put(BOSS_CHALLENGE_QUALIFIED, qualifiedForBossChallengeBadge);
|
||||
|
||||
bundle.put( AMULET, amuletObtained );
|
||||
@@ -227,7 +231,7 @@ public class Statistics {
|
||||
duration = bundle.getFloat( DURATION );
|
||||
|
||||
qualifiedForNoKilling = bundle.getBoolean( NO_KILLING_QUALIFIED );
|
||||
|
||||
qualifiedForBossRemainsBadge = bundle.getBoolean( BOSS_REMAINS_QUALIFIED );
|
||||
qualifiedForBossChallengeBadge = bundle.getBoolean( BOSS_CHALLENGE_QUALIFIED );
|
||||
|
||||
amuletObtained = bundle.getBoolean( AMULET );
|
||||
|
||||
@@ -27,6 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.Ratmogrify;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.remains.RemainsItem;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfLivingEarth;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfWarding;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
|
||||
@@ -217,6 +218,14 @@ public class SurfaceScene extends PixelScene {
|
||||
align(allySprite);
|
||||
window.add(allySprite);
|
||||
}
|
||||
|
||||
if (Dungeon.hero.belongings.getItem(RemainsItem.class) != null){
|
||||
Image grave = new Image(Assets.Interfaces.SURFACE, 88, 74, 16, 22);
|
||||
|
||||
grave.x = a.x + a.width() + 10;
|
||||
grave.y = a.y + a.height() - grave.height();
|
||||
window.add(grave);
|
||||
}
|
||||
|
||||
window.add( a );
|
||||
window.add( pet );
|
||||
|
||||
Reference in New Issue
Block a user