v2.5.0: trinket selection window now force-reshows itself

This commit is contained in:
Evan Debenham
2024-09-06 13:36:16 -04:00
parent 422e0cbac5
commit 175c5e06d4
3 changed files with 40 additions and 2 deletions

View File

@@ -21,8 +21,11 @@
package com.shatteredpixel.shatteredpixeldungeon.items.trinkets;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
@@ -38,9 +41,11 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.ItemButton;
import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.shatteredpixel.shatteredpixeldungeon.windows.IconTitle;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndInfoItem;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndSadGhost;
import com.watabou.noosa.audio.Sample;
import com.watabou.utils.Bundle;
import java.io.IOException;
@@ -79,6 +84,10 @@ public class TrinketCatalyst extends Item {
private ArrayList<Trinket> rolledTrinkets = new ArrayList<>();
public boolean hasRolledTrinkets(){
return !rolledTrinkets.isEmpty();
}
private static final String ROLLED_TRINKETS = "rolled_trinkets";
@Override
@@ -217,7 +226,26 @@ public class TrinketCatalyst extends Item {
cata.detach(Dungeon.hero.belongings.backpack);
Catalog.countUse(cata.getClass());
result.identify();
((AlchemyScene)ShatteredPixelDungeon.scene()).craftItem(null, result);
if (ShatteredPixelDungeon.scene() instanceof AlchemyScene) {
((AlchemyScene) ShatteredPixelDungeon.scene()).craftItem(null, result);
} else {
Sample.INSTANCE.play( Assets.Sounds.PUFF );
if (result.doPickUp(Dungeon.hero)){
GLog.p( Messages.capitalize(Messages.get(Hero.class, "you_now_have", item.name())) );
} else {
Dungeon.level.drop(result, Dungeon.hero.pos);
}
Statistics.itemsCrafted++;
Badges.validateItemsCrafted();
try {
Dungeon.saveAll();
} catch (IOException e) {
ShatteredPixelDungeon.reportException(e);
}
}
}
}
};

View File

@@ -514,6 +514,11 @@ public class AlchemyScene extends PixelScene {
align(btnGuide);
add(btnGuide);
TrinketCatalyst cata = Dungeon.hero.belongings.getItem(TrinketCatalyst.class);
if (cata != null && cata.hasRolledTrinkets()){
addToFront(new TrinketCatalyst.WndTrinket(cata));
}
fadeIn();
try {

View File

@@ -60,9 +60,9 @@ import com.shatteredpixel.shatteredpixeldungeon.items.journal.Guidebook;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation;
import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.DimensionalSundial;
import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.TrinketCatalyst;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
import com.shatteredpixel.shatteredpixeldungeon.journal.Bestiary;
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
import com.shatteredpixel.shatteredpixeldungeon.journal.Document;
import com.shatteredpixel.shatteredpixeldungeon.journal.Journal;
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
@@ -610,6 +610,11 @@ public class GameScene extends PixelScene {
GameScene.flashForDocument(Document.ADVENTURERS_GUIDE, Document.GUIDE_DIEING);
}
TrinketCatalyst cata = Dungeon.hero.belongings.getItem(TrinketCatalyst.class);
if (cata != null && cata.hasRolledTrinkets()){
addToFront(new TrinketCatalyst.WndTrinket(cata));
}
if (!invVisible) toggleInvPane();
fadeIn();